'167.206' ************** SAGE ***************** Host 167.206.231.90 (167.206.231.90) Time: Wed Aug 23 14:27:09 2006 Input: maxima('1/(x^3+1)').integral('x', 0, Infinity) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Infinity' is not defined Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '167.206' ************** SAGE ***************** Host 167.206.231.90 (167.206.231.90) Time: Wed Aug 23 14:26:55 2006 Input: maxima('1/(x^3+1)').integral('x', 0, 1) Output: (sqrt(3)*atan(sqrt(3)/3) + log(2))/3 + sqrt(3)*atan(sqrt(3)/3)/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.42s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '167.206' ************** SAGE ***************** Host 167.206.231.90 (167.206.231.90) Time: Wed Aug 23 14:26:36 2006 Input: maxima('x/(x^2+1)').integral('x', 0, 1) Output: log(2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.10s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 14:01:02 2006 Input: 101 /307 Output: 101/307 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 14:00:51 2006 Input: 101 / 307 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(101) / ^ SyntaxError: invalid syntax 307 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 14:00:29 2006 Input: 101/307 Output: 101/307 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:59:56 2006 Input: 202/614 Output: 101/307 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.70.2' ************** SAGE ***************** Host 71.70.245.70 (71.70.245.70) Time: Wed Aug 23 13:47:32 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.70.2' ************** SAGE ***************** Host 71.70.245.70 (71.70.245.70) Time: Wed Aug 23 13:47:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:46:53 2006 Input: 0.0006*10000 Output: 5.9999999999999991 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:45:06 2006 Input: 0.0006*10000 Output: 5.9999999999999991 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:44:30 2006 Input: 0.0006*10 Output: 0.0059999999999999993 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.10s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:41:45 2006 Input: 8^3 Output: 512 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:41:18 2006 Input: 8^2 Output: 64 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:40:50 2006 Input: 8^1 Output: 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:33:35 2006 Input: 10000000000-9000000000 Output: 1000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:33:17 2006 Input: 9*10^9 Output: 9000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:30:41 2006 Input: 9*10^9 Output: 9000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:30:29 2006 Input: 9*10^9 Output: 9000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:28:48 2006 Input: 9*10^9 Output: 9000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.125.' ************** SAGE ***************** Host 69.125.40.37 (69.125.40.37) Time: Wed Aug 23 13:26:40 2006 Input: 10^10 Output: 10000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.118.' ************** SAGE ***************** Host 68.118.184.63 (68.118.184.63) Time: Wed Aug 23 13:04:00 2006 Input: 20/12 Output: 5/3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.41s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '18.87.1' ************** SAGE ***************** Host 18.87.1.142 (18.87.1.142) Time: Wed Aug 23 07:23:49 2006 Input: R = PolynomialRing(QQ, 'a') a = R.gen() Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '18.87.1' ************** SAGE ***************** Host 18.87.1.142 (18.87.1.142) Time: Wed Aug 23 07:23:31 2006 Input: R = PolynomialRing(QQ, 'a,b,c') a,b,c = R.gen() Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/gens.pyx in gens.Generators.assign_names() IndexError: the number of names must equal the number of generators --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'R' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '18.87.1' ************** SAGE ***************** Host 18.87.1.142 (18.87.1.142) Time: Wed Aug 23 07:23:13 2006 Input: R = PolynomialRing(ZZ, 'a,b,c') a,b,c = R.gen() Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/gens.pyx in gens.Generators.assign_names() IndexError: the number of names must equal the number of generators --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'R' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '18.87.1' ************** SAGE ***************** Host 18.87.1.142 (18.87.1.142) Time: Wed Aug 23 07:23:02 2006 Input: R = PolynomialRing(ZZ, 'a,b,c') a,b,c = R.gens() Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/gens.pyx in gens.Generators.assign_names() IndexError: the number of names must equal the number of generators --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'R' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '88.107.' ************** SAGE ***************** Host 88.107.206.230 (88.107.206.230) Time: Wed Aug 23 07:01:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.227.' ************** SAGE ***************** Host 24.227.254.24 (24.227.254.24) Time: Tue Aug 22 20:01:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.206.' ************** SAGE ***************** Host 24.206.127.253 (24.206.127.253) Time: Tue Aug 22 18:54:34 2006 Input: -2/5 Output: -2/5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.206.' ************** SAGE ***************** Host 24.206.127.253 (24.206.127.253) Time: Tue Aug 22 18:53:57 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:39:21 2006 Input: 2/3^3 Output: 2/27 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:38:36 2006 Input: 5-3/4 Output: 17/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:37:49 2006 Input: 30.72-17.74 Output: 12.980000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:37:25 2006 Input: 26.23+4.49 Output: 30.719999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:36:52 2006 Input: .99*26.5 Output: 26.234999999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:35:33 2006 Input: 13.25+4.49 Output: 17.740000000000002 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:35:33 2006 Input: 13.25+4.49 Output: 17.740000000000002 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:34:43 2006 Input: .5*26.5 Output: 13.250000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:29:44 2006 Input: 19.89+2.96 Output: 22.850000000000001 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:28:09 2006 Input: 2*9.95 Output: 19.899999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:27:32 2006 Input: .99+.99+.99 Output: 2.9699999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:27:24 2006 Input: .99+.99.99 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/mpfr.pyx in mpfr.RealField.__call__() /home/sage/mpfr.pyx in mpfr.RealNumber.__init__() TypeError: Unable to convert x (='.99.99') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:27:08 2006 Input: 3*.99 Output: 2.9699999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:24:07 2006 Input: 70/11-9+3 Output: 4/11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:23:38 2006 Input: 9+39+22/2+3 Output: 62 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:23:00 2006 Input: 9+61/11-9+3 Output: 94/11 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:22:25 2006 Input: 9+39+22/11-9+3 Output: 44 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:22:17 2006 Input: 48+22/5 Output: 262/5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:22:00 2006 Input: 48+22/11-6 Output: 44 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:21:30 2006 Input: 70/11-9+3 Output: 4/11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:21:08 2006 Input: 48+22/11-9+3 Output: 44 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:19:37 2006 Input: 50*-6 Output: -300 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:18:59 2006 Input: 9+39+22/11 Output: 50 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:18:49 2006 Input: 9+39+22/11(-9+3) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:18:12 2006 Input: 9+39+22/11-9+3 Output: 44 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:03:50 2006 Input: 3[20-(7-5)^2] Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: unindexable object Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:02:47 2006 Input: 3/4*-12 Output: -9 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.182.' ************** SAGE ***************** Host 67.182.44.233 (67.182.44.233) Time: Tue Aug 22 18:02:05 2006 Input: -2.4 + 0.11 - 3 Output: -5.2900000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:01:20 2006 Input: 6.25*12 Output: 75.000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 18:00:49 2006 Input: 2.5*2.5 Output: 6.2500000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.5.81' ************** SAGE ***************** Host 24.5.81.209 (24.5.81.209) Time: Tue Aug 22 17:59:52 2006 Input: 3*(3^1/3)*4*(6^1/2) Output: 36 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:57:22 2006 Input: 255/4 Output: 255/4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:57:13 2006 Input: 2^4*4-2/8 Output: 255/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:57:00 2006 Input: 2^4*4-2/8 Output: 255/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:56:39 2006 Input: 4*4 Output: 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:56:19 2006 Input: 6+4 Output: 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:56:11 2006 Input: 6+4 Output: 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:55:52 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.163.19 (69.208.163.19) Time: Tue Aug 22 17:55:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:44:12 2006 Input: 4840-4420 Output: 420 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:44:01 2006 Input: 3840+1000 Output: 4840 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:43:45 2006 Input: 384*10 Output: 3840 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:43:34 2006 Input: 96*4 Output: 384 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:43:28 2006 Input: 16*6 Output: 96 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:43:13 2006 Input: 396*10 Output: 3960 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:42:57 2006 Input: 10 Output: 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:42:43 2006 Input: 99*4 Output: 396 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:42:22 2006 Input: 16.5*6 Output: 99.000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.63.159 (68.225.63.159) Time: Tue Aug 22 17:42:14 2006 Input: 16.5*6 Output: 99.000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.252.' ************** SAGE ***************** Host 24.252.118.249 (24.252.118.249) Time: Tue Aug 22 17:27:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.111' ************** SAGE ***************** Host 131.111.200.200 (131.111.200.200) Time: Tue Aug 22 17:07:14 2006 Input: sqrt(2*3.99E+14*(1/6678000-1/6678000)/(1-6678000^2/6678000^2)) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/mpfr.pyx in mpfr.RealField.__call__() /home/sage/mpfr.pyx in mpfr.RealNumber.__init__() TypeError: Unable to convert x (='3.99E') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.111' ************** SAGE ***************** Host 131.111.200.200 (131.111.200.200) Time: Tue Aug 22 17:06:49 2006 Input: sqrt(2*3.99E+14*(1/6678000-1/6778000)/(1-6678000^2/6778000^2)) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/mpfr.pyx in mpfr.RealField.__call__() /home/sage/mpfr.pyx in mpfr.RealNumber.__init__() TypeError: Unable to convert x (='3.99E') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.111' ************** SAGE ***************** Host 131.111.200.200 (131.111.200.200) Time: Tue Aug 22 17:05:47 2006 Input: (1-(6678000)^2/(6678000)^2) Output: 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.111' ************** SAGE ***************** Host 131.111.200.200 (131.111.200.200) Time: Tue Aug 22 17:05:31 2006 Input: (1-(6678000)^2/(6678000)^2)) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(1)-(ZZ(6678000))**ZZ(2)/(ZZ(6678000))**ZZ(2))) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.111' ************** SAGE ***************** Host 131.111.200.200 (131.111.200.200) Time: Tue Aug 22 17:05:20 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.238.' ************** SAGE ***************** Host 69.238.128.170 (69.238.128.170) Time: Tue Aug 22 16:46:14 2006 Input: 3x-4(x+11)=-2(x+8)-43 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x-ZZ(4)(x+ZZ(11))=-ZZ(2)(x+ZZ(8))-ZZ(43) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:43:33 2006 Input: 5+2/3+6+1/2 Output: 73/6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:42:56 2006 Input: 5+2/5+1+3/10 Output: 67/10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:41:58 2006 Input: 3+3/8+1+1/2 Output: 39/8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:41:18 2006 Input: 3+1/3/5/8 Output: 361/120 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:40:06 2006 Input: 4+12/3/4 Output: 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:39:27 2006 Input: 6/2+2/3 Output: 11/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:39:03 2006 Input: 5/1+1/2 Output: 11/2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:38:28 2006 Input: 0.7/100 Output: 0.0069999999999999993 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:37:53 2006 Input: 4.8/0.4 5/0.5 4.6/2 Output: 11.999999999999998 10.000000000000000 2.2999999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:36:51 2006 Input: 8/0.2 7.3/10 0.8/2 Output: 40.000000000000000 0.72999999999999998 0.40000000000000002 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:35:27 2006 Input: 0.6/3 Output: 0.19999999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:35:00 2006 Input: 0.01*9.8 Output: 0.098000000000000004 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:34:41 2006 Input: 4*2 Output: 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:34:11 2006 Input: 2.4*0.03 0.7*0.3 Output: 0.071999999999999995 0.20999999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:33:06 2006 Input: 0.63*100 0.18*4 0.6*7.1 Output: 63.000000000000000 0.71999999999999997 4.2599999999999998 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.15.198 (71.96.15.198) Time: Tue Aug 22 16:32:10 2006 Input: 0.4*32 0.88*10 Output: 12.800000000000001 8.8000000000000007 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.27.2' ************** SAGE ***************** Host 66.27.234.197 (66.27.234.197) Time: Tue Aug 22 16:24:49 2006 Input: -3*3= Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(3)*ZZ(3)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.97.3' ************** SAGE ***************** Host 68.97.3.213 (68.97.3.213) Time: Tue Aug 22 15:15:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.236.' ************** SAGE ***************** Host 70.236.66.198 (70.236.66.198) Time: Tue Aug 22 15:01:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.116.' ************** SAGE ***************** Host 68.116.220.155 (68.116.220.155) Time: Tue Aug 22 14:01:33 2006 Input: -2+9+(-3) Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.40.1' ************** SAGE ***************** Host 65.40.197.116 (65.40.197.116) Time: Tue Aug 22 11:10:13 2006 Input: x/5=15 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '88.70.3' ************** SAGE ***************** Host 88.70.3.138 (88.70.3.138) Time: Tue Aug 22 02:07:51 2006 Input: print kash('GaloisField(X^3 + 15*X^2 - 15*X + 15)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Kash CODE: _s_[1]:=GaloisField(X^3 + 15*X^2 - 15*X + 15);; Kash ERROR: Bad argument types Argument types given: elt-alg^pol/ord^rat Error, KANT failure (5) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.82s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '88.70.3' ************** SAGE ***************** Host 88.70.3.138 (88.70.3.138) Time: Tue Aug 22 02:07:30 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.76s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.203.' ************** SAGE ***************** Host 64.203.49.102 (64.203.49.102) Time: Mon Aug 21 21:29:17 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.96.1' ************** SAGE ***************** Host 24.96.142.162 (24.96.142.162) Time: Mon Aug 21 20:33:24 2006 Input: 49.99 x 8% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('49.99') x ZZ(8)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.154.' ************** SAGE ***************** Host 69.154.89.104 (69.154.89.104) Time: Mon Aug 21 18:15:50 2006 Input: t-(-16)=9 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.154.' ************** SAGE ***************** Host 69.154.89.104 (69.154.89.104) Time: Mon Aug 21 18:07:56 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.88.2' ************** SAGE ***************** Host 68.88.200.203 (68.88.200.203) Time: Mon Aug 21 16:57:59 2006 Input: 99 Output: 99 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.191.' ************** SAGE ***************** Host 65.191.119.214 (65.191.119.214) Time: Mon Aug 21 16:36:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.110.' ************** SAGE ***************** Host 24.110.168.190 (24.110.168.190) Time: Mon Aug 21 15:24:29 2006 Input: 3y/x-2cx/3y Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)y/x-ZZ(2)cx/ZZ(3)y ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.110.' ************** SAGE ***************** Host 24.110.168.190 (24.110.168.190) Time: Mon Aug 21 15:24:28 2006 Input: 3y/x-2cx/3y Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)y/x-ZZ(2)cx/ZZ(3)y ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.110.' ************** SAGE ***************** Host 24.110.168.190 (24.110.168.190) Time: Mon Aug 21 15:24:21 2006 Input: 3y/x-2cx/3y Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)y/x-ZZ(2)cx/ZZ(3)y ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.45.7' ************** SAGE ***************** Host 24.45.76.206 (24.45.76.206) Time: Mon Aug 21 14:07:48 2006 Input: 5=5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.21.1' ************** SAGE ***************** Host 24.21.126.54 (24.21.126.54) Time: Mon Aug 21 13:15:34 2006 Input: 2000000000 x .01% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2000000000) x RealField(max(6,RR.precision()))('.01')% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '88.70.5' ************** SAGE ***************** Host 88.70.5.73 (88.70.5.73) Time: Mon Aug 21 13:15:24 2006 Input: print gap('SubgroupsSolvableGroup(SymmetricGroup(4));') Output: [ Group(()), Group([ (1,3)(2,4) ]), Group([ (1,4)(2,3), (1,3)(2,4) ]), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3) ]), Group([ (2,4,3) ]), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ]), Group([ (3,4), (2,4,3) ]), Group([ (1,3)(2,4), (1,4)(2,3), (1,2) ]), Group([ (3,4) ]), Group([ (1,2)(3,4), (3,4) ]), Group([ (1,2)(3,4), (1,3,2,4) ]) ] Exiting SAGE (CPU time 0m0.04s, Wall time 0m1.02s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.112' ************** SAGE ***************** Host 128.112.33.159 (128.112.33.159) Time: Mon Aug 21 12:39:05 2006 Input: (1+x)^20 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.172' ************** SAGE ***************** Host 199.172.169.21 (199.172.169.21) Time: Mon Aug 21 10:47:01 2006 Input: a=(x^2+y^2+z^2)^15 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.172' ************** SAGE ***************** Host 199.172.169.21 (199.172.169.21) Time: Mon Aug 21 10:46:43 2006 Input: mathilbert(10)^6 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'mathilbert' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '149.169' ************** SAGE ***************** Host 149.169.59.48 (149.169.59.48) Time: Mon Aug 21 10:11:31 2006 Input: log(x) + log(10^ x) - x Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '88.70.5' ************** SAGE ***************** Host 88.70.5.73 (88.70.5.73) Time: Mon Aug 21 09:58:57 2006 Input: print gap('SubgroupsSolvableGroup(SymmetricGroup(5));') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Error, must be solvable executing $sage1:=SubgroupsSolvableGroup(SymmetricGroup(5));;; Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.63s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '132.227' ************** SAGE ***************** Host 132.227.205.230 (132.227.205.230) Time: Mon Aug 21 09:49:02 2006 Input: factor(1543542) Output: 2 * 3 * 7 * 11 * 13 * 257 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:51:32 2006 Input: print gap('SubgroupsSolvableGroup(SymmetricGroup(5));') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Error, must be solvable executing $sage1:=SubgroupsSolvableGroup(SymmetricGroup(5));;; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.27s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:36:29 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(5));') print gap('SymmetricGroup(5)') Output: Sym( [ 1 .. 5 ] ) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.48s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:31:44 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(5));') Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.53s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:30:45 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(5));') print gap('SubgroupsSolvableGroup(SymmetricGroup(5));') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Error, must be solvable executing $sage1:=SubgroupsSolvableGroup(SymmetricGroup(5));;; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.51s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:30:10 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(5));') print gap('SubgroupsSolvableGroup(SymmetricGroup(5));') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Error, must be solvable executing $sage1:=SubgroupsSolvableGroup(SymmetricGroup(5));;; Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.54s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:29:40 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(5));') print gap('SubgroupsSolvableGroup(SymmetricGroup(4));') Output: [ Group(()), Group([ (1,3)(2,4) ]), Group([ (1,4)(2,3), (1,3)(2,4) ]), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3) ]), Group([ (2,4,3) ]), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ]), Group([ (3,4), (2,4,3) ]), Group([ (1,3)(2,4), (1,4)(2,3), (1,2) ]), Group([ (3,4) ]), Group([ (1,2)(3,4), (3,4) ]), Group([ (1,2)(3,4), (1,3,2,4) ]) ] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.86s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:29:01 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(5));') Output: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.58s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:28:18 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(4));') Output: Exiting SAGE (CPU time 0m0.03s, Wall time 0m1.84s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.82.8' ************** SAGE ***************** Host 82.82.85.196 (82.82.85.196) Time: Mon Aug 21 05:27:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.26.' ************** SAGE ***************** Host 129.26.133.101 (129.26.133.101) Time: Mon Aug 21 02:34:22 2006 Input: (x+4)^3 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.26.' ************** SAGE ***************** Host 129.26.133.101 (129.26.133.101) Time: Mon Aug 21 00:51:48 2006 Input: (x+5)^5; Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:52:09 2006 Input: A=CyclotomicField(16); B=A.composite_fields(QuadraticField(5)); C=B[0].composite_fields(QuadraticField(7)); QuadraticField(5).factor_integer(25) Output: [(Fractional ideal (-a) of Number Field in a with defining polynomial x^2 - 5, 4)] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:51:59 2006 Input: A=CyclotomicField(16); B=A.composite_fields(QuadraticField(5)); C=B[0].composite_fields(QuadraticField(7)); QuadraticField(5).factor_integer(11) Output: [(Fractional ideal (-3/2*a + 1/2) of Number Field in a with defining polynomial x^2 - 5, 1), (Fractional ideal (-3/2*a - 1/2) of Number Field in a with defining polynomial x^2 - 5, 1)] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:51:35 2006 Input: A=CyclotomicField(16); B=A.composite_fields(QuadraticField(5)); C=B[0].composite_fields(QuadraticField(7)); QuadraticField(5).factor_integer(5) Output: [(Fractional ideal (-a) of Number Field in a with defining polynomial x^2 - 5, 2)] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:51:28 2006 Input: A=CyclotomicField(16); B=A.composite_fields(QuadraticField(5)); C=B[0].composite_fields(QuadraticField(7)); QuadraticField(5).factor_integer(2) Output: [(Fractional ideal (2) of Number Field in a with defining polynomial x^2 - 5, 1)] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:50:21 2006 Input: A=CyclotomicField(16); B=A.composite_fields(QuadraticField(5)); C=B[0].composite_fields(QuadraticField(7)); C[0].factor_integer(2) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 13283 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:48:58 2006 Input: A=CyclotomicField(16); B=A.composite_fields(QuadraticField(5)); C=B[0].composite_fields(QuadraticField(7)); C[0] Output: Number Field in zeta16 with defining polynomial x^32 - 192*x^30 + 16160*x^28 - 779520*x^26 + 23611844*x^24 - 461453376*x^22 + 5726454496*x^20 - 42167662848*x^18 + 155170367942*x^16 - 169319882304*x^14 + 97924808800*x^12 - 52869796608*x^10 - 94009737660*x^8 + 840487131456*x^6 + 406377946272*x^4 - 7436467968*x^2 + 104231476801 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:48:22 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B); D[0].composite_fields(C) Output: [Number Field in zeta16 with defining polynomial x^32 - 192*x^30 + 16160*x^28 - 779520*x^26 + 23611844*x^24 - 461453376*x^22 + 5726454496*x^20 - 42167662848*x^18 + 155170367942*x^16 - 169319882304*x^14 + 97924808800*x^12 - 52869796608*x^10 - 94009737660*x^8 + 840487131456*x^6 + 406377946272*x^4 - 7436467968*x^2 + 104231476801] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:48:10 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B); D[0] Output: Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:48:05 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B) D[0] Output: Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:47:48 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); A.composite_fields(B) Output: [Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:47:38 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); C.factor_integer(5) Output: [(Fractional ideal (5) of Number Field in a with defining polynomial x^2 - 7, 1)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:47:32 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); B.factor_integer(5) Output: [(Fractional ideal (-a) of Number Field in a with defining polynomial x^2 - 5, 2)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:46:52 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); A.factor_integer(5) Output: [(Fractional ideal (zeta16^6 - 2*zeta16^2) of Cyclotomic Field of order 16 and degree 8, 1), (Fractional ideal (zeta16^6 + 2*zeta16^2) of Cyclotomic Field of order 16 and degree 8, 1)] Exiting SAGE (CPU time 0m0.26s, Wall time 0m0.26s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:46:42 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:46:32 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B) Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:46:22 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B) Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:46:12 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B) D=D[0] E=D.composite_fields(C) Output: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:46:00 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B); D=D[0] E=D.composite_fields(C); E=E[0] Output: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:45:47 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B); D=D[0] E=D.composite_fields(C); E=E[0] Output: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:45:29 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=QuadraticField(7); D=A.composite_fields(B); D=D[0] E=D.composite_fields(C); E=E[0] E.factor_integer(11) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11588 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:44:09 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=A.composite_fields(B) C[0].factor_integer(11) Output: [(Fractional ideal (99001575/16011978250016*zeta16^15 - 63864075/4567999614286*zeta16^14 - 498763875/2001497281252*zeta16^13 + 1302643259/2283999807143*zeta16^12 + 35264031563/8005989125008*zeta16^11 - 186863964683/18271998457144*zeta16^10 - 178761567205/4002994562504*zeta16^9 + 1921304910525/18271998457144*zeta16^8 + 2279378323275/8005989125008*zeta16^7 - 6064978298775/9135999228572*zeta16^6 - 2342966335125/2001497281252*zeta16^5 + 22932791862733/9135999228572*zeta16^4 + 5908622320547/2001497281252*zeta16^3 - 47331548747675/9135999228572*zeta16^2 - 1671209169330/500374320313*zeta16 + 28928297040403/9135999228572) of Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876, 1), (Fractional ideal (99001575/16011978250016*zeta16^15 + 513047475/31975997300002*zeta16^14 - 498763875/2001497281252*zeta16^13 - 10483467188/15987998650001*zeta16^12 + 35264031563/8005989125008*zeta16^11 + 1508239447779/127903989200008*zeta16^10 - 178761567205/4002994562504*zeta16^9 - 15593991648525/127903989200008*zeta16^8 + 2279378323275/8005989125008*zeta16^7 + 49961772646575/63951994600004*zeta16^6 - 2342966335125/2001497281252*zeta16^5 - 198022683718381/63951994600004*zeta16^4 + 5908622320547/2001497281252*zeta16^3 + 455383564540595/63951994600004*zeta16^2 - 1671209169330/500374320313*zeta16 - 387950323573571/63951994600004) of Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876, 1), (Fractional ideal (99001575/16011978250016*zeta16^15 + 63864075/4567999614286*zeta16^14 - 498763875/2001497281252*zeta16^13 - 1302643259/2283999807143*zeta16^12 + 35264031563/8005989125008*zeta16^11 + 186863964683/18271998457144*zeta16^10 - 178761567205/4002994562504*zeta16^9 - 1921304910525/18271998457144*zeta16^8 + 2279378323275/8005989125008*zeta16^7 + 6064978298775/9135999228572*zeta16^6 - 2342966335125/2001497281252*zeta16^5 - 22932791862733/9135999228572*zeta16^4 + 5908622320547/2001497281252*zeta16^3 + 47331548747675/9135999228572*zeta16^2 - 1671209169330/500374320313*zeta16 - 28928297040403/9135999228572) of Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876, 1), (Fractional ideal (99001575/16011978250016*zeta16^15 - 513047475/31975997300002*zeta16^14 - 498763875/2001497281252*zeta16^13 + 10483467188/15987998650001*zeta16^12 + 35264031563/8005989125008*zeta16^11 - 1508239447779/127903989200008*zeta16^10 - 178761567205/4002994562504*zeta16^9 + 15593991648525/127903989200008*zeta16^8 + 2279378323275/8005989125008*zeta16^7 - 49961772646575/63951994600004*zeta16^6 - 2342966335125/2001497281252*zeta16^5 + 198022683718381/63951994600004*zeta16^4 + 5908622320547/2001497281252*zeta16^3 - 455383564540595/63951994600004*zeta16^2 - 1671209169330/500374320313*zeta16 + 387950323573571/63951994600004) of Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876, 1)] Exiting SAGE (CPU time 0m7.52s, Wall time 0m7.58s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:43:53 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=A.composite_fields(B) C[1].factor_integer(11) Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ IndexError: list index out of range Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:43:35 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); C=A.composite_fields(B) C.factor_integer(11) Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'list' object has no attribute 'factor_integer' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:43:16 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); A.composite_fields(B) B.factor_integer(11) Output: [Number Field in zeta16 with defining polynomial x^16 - 40*x^14 + 700*x^12 - 7000*x^10 + 43752*x^8 - 174720*x^6 + 441000*x^4 - 618000*x^2 + 391876] [(Fractional ideal (-3/2*a + 1/2) of Number Field in a with defining polynomial x^2 - 5, 1), (Fractional ideal (-3/2*a - 1/2) of Number Field in a with defining polynomial x^2 - 5, 1)] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:42:09 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); A*B B.factor_integer(11) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/ring.pyx in ring.Ring.__mul__() /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/number_field/number_field.py in ideal(self, gens) /home/sage/ring.pyx in ring.Ring.ideal() /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/number_field/number_field_ideal.py in __init__(self, field, gens, coerce) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/ideal.py in __init__(self, ring, gens, coerce) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/number_field/number_field.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/number_field/number_field.py in __call__(self, x) TypeError: Cannot coerce Number Field in a with defining polynomial x^2 - 5 into Cyclotomic Field of order 16 and degree 8 [(Fractional ideal (-3/2*a + 1/2) of Number Field in a with defining polynomial x^2 - 5, 1), (Fractional ideal (-3/2*a - 1/2) of Number Field in a with defining polynomial x^2 - 5, 1)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:41:48 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); B.factor_integer(11) Output: [(Fractional ideal (-3/2*a + 1/2) of Number Field in a with defining polynomial x^2 - 5, 1), (Fractional ideal (-3/2*a - 1/2) of Number Field in a with defining polynomial x^2 - 5, 1)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:41:24 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); B.factor_integer(4) Output: [(Fractional ideal (2) of Number Field in a with defining polynomial x^2 - 5, 2)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:41:00 2006 Input: A=CyclotomicField(16); B=QuadraticField(5); B.factor_integer(7) Output: [(Fractional ideal (7) of Number Field in a with defining polynomial x^2 - 5, 1)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:40:21 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); x=A.gen(); B=A.quotient(x^2-5,'a'); B.factor_integer(7) Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'PolynomialQuotientRing_field' object has no attribute 'factor_integer' Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:39:39 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); x=A.gen(); B=A.quotient(x^2-5,'a'); ((7)*B).factor() Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'Ideal_pid' object has no attribute 'factor' Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:39:05 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); x=A.gen(); B=A.quotient(x^2-5,'a'); Factorization((7)*B) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/structure/factorization.py in __init__(self, x, unit) TypeError: x must be a list Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:38:51 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); x=A.gen(); B=A.quotient(x^2-5,'a'); (7)*B Output: Principal ideal (1) of Univariate Quotient Polynomial Ring in a over Cyclotomic Field of order 16 and degree 8 with modulus x^2 + -5 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:38:23 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); x=A.gen(); A.quotient(x^2-5,'a').number_field(); Output: Errors: --------------------------------------------------------------------------- exceptions.NotImplementedError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_quotient_ring.py in number_field(self) NotImplementedError: Computation of number field only implemented for quotients of the polynomial ring over the rational field. Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:38:04 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); x=A.gen(); A.quotient(x^2-5,'a') Output: Univariate Quotient Polynomial Ring in a over Cyclotomic Field of order 16 and degree 8 with modulus x^2 + -5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:37:55 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); x=A.gen(); A.quotient(x^2-5,'a'); Output: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.31s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:37:43 2006 Input: A=PolynomialRing(CyclotomicField(16),'x'); A.quotient(x^2-5,'a'); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:37:14 2006 Input: A=PolynomialRing(CyclotomicField(16),'y'); A.quotient(y^2-5,'y2'); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '154.20.' ************** SAGE ***************** Host 154.20.142.100 (154.20.142.100) Time: Sun Aug 20 20:36:45 2006 Input: A=PolynomialRing(CyclotomicField(16),'y').quotient(y^2-5,'y2'); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.166.' ************** SAGE ***************** Host 24.166.28.255 (24.166.28.255) Time: Sun Aug 20 20:24:44 2006 Input: log 15 Output: Errors: ------------------------------------------------------------ File "", line 1 log ZZ(15) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.166.' ************** SAGE ***************** Host 24.166.28.255 (24.166.28.255) Time: Sun Aug 20 20:24:43 2006 Input: log 15 Output: Errors: ------------------------------------------------------------ File "", line 1 log ZZ(15) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.181.' ************** SAGE ***************** Host 69.181.38.161 (69.181.38.161) Time: Sun Aug 20 20:18:02 2006 Input: 45 is 39% of what? Output: Object `ZZ(45) is ZZ(39)% of what` not found. Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.40.2' ************** SAGE ***************** Host 68.40.228.245 (68.40.228.245) Time: Sun Aug 20 15:10:29 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:32:16 2006 Input: 2*-2+1 Output: -3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:32:01 2006 Input: 2*2+1 Output: 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:31:51 2006 Input: 2*1+1 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:31:41 2006 Input: 2*0+1 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:31:25 2006 Input: 2*-1+1 Output: -1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:30:57 2006 Input: 2*-2+1 Output: -3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:24:08 2006 Input: -5*2-3 Output: -13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:23:58 2006 Input: -5*1-3 Output: -8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:23:48 2006 Input: -5*0-3 Output: -3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:23:34 2006 Input: -5*-1-3 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:23:13 2006 Input: -5*-2-3 Output: 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:20:14 2006 Input: 1*2+3 Output: 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:20:04 2006 Input: 1*1+3 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:19:51 2006 Input: 1*0+3 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:19:41 2006 Input: 1*-1+3 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:18:36 2006 Input: 1*-2+3 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:15:07 2006 Input: 4*2-2 Output: 6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:14:50 2006 Input: 4*1-2 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:14:37 2006 Input: 4*0-2 Output: -2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:14:23 2006 Input: 4*-1-2 Output: -6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:14:14 2006 Input: 4*-2-2 Output: -10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:14:04 2006 Input: 4*-2-2 Output: -10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:13:51 2006 Input: 4*-2-2 Output: -10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:05:52 2006 Input: -3*2+3 Output: -3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:05:41 2006 Input: -3*1+3 Output: 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:05:30 2006 Input: -3*0+3 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:05:19 2006 Input: -3*-1+3 Output: 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 13:05:05 2006 Input: -3*-2+3 Output: 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:57:26 2006 Input: 7*2-4 Output: 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:57:08 2006 Input: 7*1-4 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:54:30 2006 Input: 7*0-4 Output: -4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:53:59 2006 Input: 7*-1-4 Output: -11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:53:35 2006 Input: 7*-2-4 Output: -18 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:44:52 2006 Input: 7*2-4 Output: 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:44:31 2006 Input: 7*1-4 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:42:20 2006 Input: 7*0-4 Output: -4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:41:26 2006 Input: -1*7-4 Output: -11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:39:19 2006 Input: -2*7-4 Output: -18 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:35:33 2006 Input: -1*-1-3 Output: -2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:34:24 2006 Input: -2*-1-3 Output: -1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:32:38 2006 Input: 2*-2+8 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:32:18 2006 Input: -2*-2+8 Output: 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:31:54 2006 Input: -2*-2+8 Output: 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:30:32 2006 Input: -2*-1+8 Output: 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.94.6' ************** SAGE ***************** Host 70.94.60.138 (70.94.60.138) Time: Sun Aug 20 12:23:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:19:12 2006 Input: -2*0+8 Output: 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:17:52 2006 Input: 5*0-1 Output: -1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:16:48 2006 Input: 5*1-1 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:16:30 2006 Input: 5*2-1 Output: 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:12:42 2006 Input: 7-1+2 Output: 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:11:32 2006 Input: 5+1+1 Output: 7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:10:50 2006 Input: 5-4+1 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:10:30 2006 Input: 0+1-1 Output: 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:09:48 2006 Input: 0-1 Output: -1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 12:09:26 2006 Input: 5*0 Output: 0 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 11:59:45 2006 Input: -1*-1 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 11:55:15 2006 Input: -2*0 Output: 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 11:46:24 2006 Input: -2+3 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.129.' ************** SAGE ***************** Host 72.129.229.232 (72.129.229.232) Time: Sun Aug 20 11:46:05 2006 Input: 5+3 Output: 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '196.218' ************** SAGE ***************** Host 196.218.18.13 (196.218.18.13) Time: Sun Aug 20 11:39:00 2006 Input: 510*13 Output: 6630 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.107.' ************** SAGE ***************** Host 70.107.47.78 (70.107.47.78) Time: Sun Aug 20 10:24:28 2006 Input: 10 times 10 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10) times ZZ(10) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.61.1' ************** SAGE ***************** Host 82.61.140.164 (82.61.140.164) Time: Sun Aug 20 05:08:42 2006 Input: show((x-3/8)^10) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '86.194.' ************** SAGE ***************** Host 86.194.40.94 (86.194.40.94) Time: Sun Aug 20 00:09:32 2006 Input: 45! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(45)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.111' ************** SAGE ***************** Host 207.111.73.50 (207.111.73.50) Time: Sat Aug 19 23:33:54 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.154.' ************** SAGE ***************** Host 69.154.191.237 (69.154.191.237) Time: Sat Aug 19 22:11:30 2006 Input: 15+5[5+3(8/4+2)] Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'int' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.127.' ************** SAGE ***************** Host 24.127.126.51 (24.127.126.51) Time: Sat Aug 19 17:34:34 2006 Input: 121 Output: 121 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.210.' ************** SAGE ***************** Host 71.210.180.206 (71.210.180.206) Time: Sat Aug 19 12:42:41 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '62.253.' ************** SAGE ***************** Host 62.253.96.42 (62.253.96.42) Time: Sat Aug 19 12:25:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.129.' ************** SAGE ***************** Host 83.129.176.28 (83.129.176.28) Time: Sat Aug 19 07:48:23 2006 Input: singular.poly f = x*y+i*(5/2*x*x+15*x+22)-4 singular.Roots(f); Output: Errors: ------------------------------------------------------------ File "", line 1 singular.poly f = x*y+i*(ZZ(5)/ZZ(2)*x*x+ZZ(15)*x+ZZ(22))-ZZ(4) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.129.' ************** SAGE ***************** Host 83.129.176.28 (83.129.176.28) Time: Sat Aug 19 07:47:01 2006 Input: singular.Roots(x*y+i*(5/2*x*x+15*x+22)-4); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.129.' ************** SAGE ***************** Host 83.129.176.28 (83.129.176.28) Time: Sat Aug 19 07:46:47 2006 Input: singular.Roots(xy+i*(5/2*x*x+15*x+22)-4); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'xy' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.129.' ************** SAGE ***************** Host 83.129.176.28 (83.129.176.28) Time: Sat Aug 19 07:46:20 2006 Input: Roots(xy+i*(5/2*x*x+15*x+22)-4); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Roots' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '76.1.69' ************** SAGE ***************** Host 76.1.69.160 (76.1.69.160) Time: Sat Aug 19 06:27:03 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.161' ************** SAGE ***************** Host 130.161.135.32 (130.161.135.32) Time: Sat Aug 19 05:53:57 2006 Input: sin(3.1415) Output: 0.000092653589660490258 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.161' ************** SAGE ***************** Host 130.161.135.32 (130.161.135.32) Time: Sat Aug 19 05:53:47 2006 Input: tan(3.1415) Output: -0.000092653590058191322 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.161' ************** SAGE ***************** Host 130.161.135.32 (130.161.135.32) Time: Sat Aug 19 05:53:27 2006 Input: tan(0.0524) Output: 0.052448012007135711 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.33s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.126.' ************** SAGE ***************** Host 70.126.58.233 (70.126.58.233) Time: Fri Aug 18 16:39:12 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.126.' ************** SAGE ***************** Host 70.126.58.233 (70.126.58.233) Time: Fri Aug 18 16:39:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.213.' ************** SAGE ***************** Host 69.213.205.32 (69.213.205.32) Time: Fri Aug 18 14:48:34 2006 Input: 21.60/5% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('21.60')/ZZ(5)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.213.' ************** SAGE ***************** Host 69.213.205.32 (69.213.205.32) Time: Fri Aug 18 14:48:26 2006 Input: 21.60/5% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('21.60')/ZZ(5)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.91.5' ************** SAGE ***************** Host 66.91.53.79 (66.91.53.79) Time: Fri Aug 18 14:24:35 2006 Input: 820.26-11.33 Output: 808.92999999999995 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.91.5' ************** SAGE ***************** Host 66.91.53.79 (66.91.53.79) Time: Fri Aug 18 14:24:25 2006 Input: 820.26-11.33 Output: 808.92999999999995 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:59:25 2006 Input: factor(57^59-59^57-58^58) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 23797 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:57:17 2006 Input: factor(57^59-59^57) Output: 2 * 13 * 152148185723 * 9963705991652391296641648381955924081120927923968846103014966096429466873564911862511347513 Exiting SAGE (CPU time 0m2.61s, Wall time 0m2.63s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:51 2006 Input: factor(597543644043339483) Output: 3 * 7 * 1019 * 1736939 * 16076503 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:47 2006 Input: factor(59754364404333948) Output: 2^2 * 3^3 * 17 * 547 * 34589 * 1720171 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:40 2006 Input: factor(5975436440433394) Output: 2 * 11 * 101 * 2689215319727 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:36 2006 Input: factor(597543644043339) Output: 3 * 7 * 12541 * 2268914699 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:33 2006 Input: factor(59754364404333) Output: 3 * 19918121468111 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:28 2006 Input: factor(5975436440433) Output: 3 * 251 * 7935506561 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:22 2006 Input: factor(597543644) Output: 2^2 * 719 * 207769 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:17 2006 Input: factor(597543) Output: 3 * 199181 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:56:09 2006 Input: factor(597) Output: 3 * 199 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.19s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Fri Aug 18 13:55:52 2006 Input: 597 Output: 597 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.80.' ************** SAGE ***************** Host 199.80.75.2 (199.80.75.2) Time: Fri Aug 18 12:49:57 2006 Input: 118.80 -75.00 Output: 118.80000000000000 -75.000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.112.' ************** SAGE ***************** Host 71.112.4.221 (71.112.4.221) Time: Fri Aug 18 09:47:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.44.1' ************** SAGE ***************** Host 83.44.191.152 (83.44.191.152) Time: Fri Aug 18 08:59:53 2006 Input: 5; Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '76.0.13' ************** SAGE ***************** Host 76.0.132.58 (76.0.132.58) Time: Fri Aug 18 06:27:35 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.157.50 (71.96.157.50) Time: Thu Aug 17 22:06:07 2006 Input: 15x30 mother fucker Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(15)x30 mother fucker ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.157.50 (71.96.157.50) Time: Thu Aug 17 22:05:30 2006 Input: 15x30 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(15)x30 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.157.50 (71.96.157.50) Time: Thu Aug 17 22:04:50 2006 Input: 15x30 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(15)x30 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.96.1' ************** SAGE ***************** Host 71.96.157.50 (71.96.157.50) Time: Thu Aug 17 22:03:47 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.187.' ************** SAGE ***************** Host 70.187.182.62 (70.187.182.62) Time: Thu Aug 17 20:55:14 2006 Input: 968/12 Output: 242/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.93.1' ************** SAGE ***************** Host 71.93.172.203 (71.93.172.203) Time: Thu Aug 17 18:46:56 2006 Input: 6<2x<8 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(6)", line 1 ZZ(3)+ZZ(2)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.116.' ************** SAGE ***************** Host 24.116.250.166 (24.116.250.166) Time: Thu Aug 17 16:54:10 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:29:17 2006 Input: print kash(8273153554255617868983008432299507701873690283447163912225368429446311715550180068658483561349865846704311797996005892990494607142525675800342567010930760478881504606029054999488050624099750939339790755426321297478858807972510657577430552150649899640468901338121294090979219428234512847003533414175726178693610069347755095659695353545360529790683181065043538446867918248788742705333365840422466199773229341881841562551926235483545177894989221351527346588987721531194144175285969973689640218042094418808237706900648114671371775300698367651383174442595695957899162146670906778789201530522867749937550298524431256635047936/1073741824) Output: 7704974668338538956812590763251770010100389163426276214630686146622813973156903003024387696152428022310428133230661873696832551753638010286113775345432348995359153119874238036096143186185277010630621347042099849766920141850142420807323001465434115045209323370942188511583227131734148456718338107853872867947081168506066403966113322922364370702470821389037685884971095480759388492753138617074551246849102286511884594850173439349555576122355853534794735339458772476012021466424660732680596614295704680316371570248760389789353846852386712703279382030103072484861279043062503243600206012393224751518620456125988864 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.91s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:28:38 2006 Input: print kash(2^8) Output: 256 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.82s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:28:02 2006 Input: print kash(256^257) Output: 8273153554255617868983008432299507701873690283447163912225368429446311715550180068658483561349865846704311797996005892990494607142525675800342567010930760478881504606029054999488050624099750939339790755426321297478858807972510657577430552150649899640468901338121294090979219428234512847003533414175726178693610069347755095659695353545360529790683181065043538446867918248788742705333365840422466199773229341881841562551926235483545177894989221351527346588987721531194144175285969973689640218042094418808237706900648114671371775300698367651383174442595695957899162146670906778789201530522867749937550298524431256635047936 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.82s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:27:10 2006 Input: print kash(256^256) Output: 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.85s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:26:42 2006 Input: print kash(13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096^7) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/sage_object.pyx in sage_object.SageObject._kash_() /home/sage/sage_object.pyx in sage_object.SageObject._interface_() /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Kash CODE: _s_[1]:=77894081334563378764508707451908598634363875792546106220991280972045090113143756247350828053674522774404165906274379945792494917548310574063247841644081929897178637546129401264215614159952590061562154920415452396586835739484982091767625288759481559848471677444112808287056706983922605030201811478361890468927498235629942743709470298595236463543790410896095163738073479981402477878246455235112829189027769705658237222594837250410596602457047413758430150029851731582921543526442245527917224855827827816621485551057937401676948938343002233871424814483269902707836173007455043074627168642672708601404181510388085656853057668361672906095700421037654202545940344737030366578366357572799593982155560321323484375285391015752337555589179864820742955048320397684982749773202572245522578129312632534144771795735226370030108952558937781899103282137065731057232138475034306548038575468027244771033983289060691556811292977131791103945007556626409018279457155155668381388949742836902985341946964734897090584115806967893331511501620481794544357260889558504863310391891382713164805617024097058816;; Kash ERROR: Syntax error: integer must have less than 1024 digits in /home/sage/.sage//tmp\ /18479//interface//tmp line 1 1620481794544357260889558504863310391891382713164805617024097058816;; \ ^ Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.84s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:26:26 2006 Input: print kash(2^512) Output: 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.88s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:26:13 2006 Input: print kash((2^512)^7) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/sage_object.pyx in sage_object.SageObject._kash_() /home/sage/sage_object.pyx in sage_object.SageObject._interface_() /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Kash CODE: _s_[1]:=77894081334563378764508707451908598634363875792546106220991280972045090113143756247350828053674522774404165906274379945792494917548310574063247841644081929897178637546129401264215614159952590061562154920415452396586835739484982091767625288759481559848471677444112808287056706983922605030201811478361890468927498235629942743709470298595236463543790410896095163738073479981402477878246455235112829189027769705658237222594837250410596602457047413758430150029851731582921543526442245527917224855827827816621485551057937401676948938343002233871424814483269902707836173007455043074627168642672708601404181510388085656853057668361672906095700421037654202545940344737030366578366357572799593982155560321323484375285391015752337555589179864820742955048320397684982749773202572245522578129312632534144771795735226370030108952558937781899103282137065731057232138475034306548038575468027244771033983289060691556811292977131791103945007556626409018279457155155668381388949742836902985341946964734897090584115806967893331511501620481794544357260889558504863310391891382713164805617024097058816;; Kash ERROR: Syntax error: integer must have less than 1024 digits in /home/sage/.sage//tmp\ /18416//interface//tmp line 1 1620481794544357260889558504863310391891382713164805617024097058816;; \ ^ Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.87s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:24:17 2006 Input: print kash(256^256) Output: 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.83s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:23:08 2006 Input: print kash(256^512) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/sage_object.pyx in sage_object.SageObject._kash_() /home/sage/sage_object.pyx in sage_object.SageObject._interface_() /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Kash CODE: _s_[1]:=1044388881413152506691752710716624382579964249047383780384233483283953907971557456848826811934997558340890106714439262837987573438185793607263236087851365277945956976543709998340361590134383718314428070011855946226376318839397712745672334684344586617496807908705803704071284048740118609114467977783598029006686938976881787785946905630190260940599579453432823469303026696443059025015972399867714215541693835559885291486318237914434496734087811872639496475100189041349008417061675093668333850551032972088269550769983616369411933015213796825837188091833656751221318492846368125550225998300412344784862595674492194617023806505913245610825731835380087608622102834270197698202313169017678006675195485079921636419370285375124784014907159135459982790513399611551794271106831134090584272884279791554849782954323534517065223269061394905987693002122963395687782878948440616007412945674919823050571642377154816321380631045902916136926708342856440730447899971901781465763473223850267253059899795996090799469201774624817718449867455659250178329070473119433165550807568221846571746373296884912819520317457002440926616910874148385078411929804522981857338977648103126085903001302413467189726673216491511131602920781738033436090243804708340403154190336;; Kash ERROR: Read("/home/sage/.sage//tmp/18357//interface//tmp"); Syntax error: integer must have less than 1024 digits in /home/sage/.sage//tmp\ /18357//interface//tmp line 1 867455659250178329070473119433165550807568221846571746373296884912819520317457\ 002440926616910874148385078411929804522981857338977648103126085903001302413467\ 189726673216491511131602920781738033436090243804708340403154190336;; \ \ \ ^ Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.85s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:22:48 2006 Input: print kash(256^512) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/sage_object.pyx in sage_object.SageObject._kash_() /home/sage/sage_object.pyx in sage_object.SageObject._interface_() /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Kash CODE: _s_[1]:=1044388881413152506691752710716624382579964249047383780384233483283953907971557456848826811934997558340890106714439262837987573438185793607263236087851365277945956976543709998340361590134383718314428070011855946226376318839397712745672334684344586617496807908705803704071284048740118609114467977783598029006686938976881787785946905630190260940599579453432823469303026696443059025015972399867714215541693835559885291486318237914434496734087811872639496475100189041349008417061675093668333850551032972088269550769983616369411933015213796825837188091833656751221318492846368125550225998300412344784862595674492194617023806505913245610825731835380087608622102834270197698202313169017678006675195485079921636419370285375124784014907159135459982790513399611551794271106831134090584272884279791554849782954323534517065223269061394905987693002122963395687782878948440616007412945674919823050571642377154816321380631045902916136926708342856440730447899971901781465763473223850267253059899795996090799469201774624817718449867455659250178329070473119433165550807568221846571746373296884912819520317457002440926616910874148385078411929804522981857338977648103126085903001302413467189726673216491511131602920781738033436090243804708340403154190336;; Kash ERROR: Read("/home/sage/.sage//tmp/18321//interface//tmp"); Syntax error: integer must have less than 1024 digits in /home/sage/.sage//tmp\ /18321//interface//tmp line 1 867455659250178329070473119433165550807568221846571746373296884912819520317457\ 002440926616910874148385078411929804522981857338977648103126085903001302413467\ 189726673216491511131602920781738033436090243804708340403154190336;; \ \ \ ^ Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.82s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:22:21 2006 Input: print kash(256^256) Output: 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.91s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.92.5' ************** SAGE ***************** Host 83.92.51.114 (83.92.51.114) Time: Thu Aug 17 16:22:06 2006 Input: print kash('NumberField(256^256)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Kash CODE: _s_[1]:=NumberField(256^256);; Kash ERROR: Bad argument types Argument types given: elt-ord^rat Error, KANT failure (5) Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.82s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.180.' ************** SAGE ***************** Host 70.180.62.77 (70.180.62.77) Time: Thu Aug 17 15:26:41 2006 Input: 2.5(x-3)+17x=10.8(x+15) Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('2.5')(x-ZZ(3))+ZZ(17)x=RealField(max(9,RR.precision()))('10.8')(x+ZZ(15)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.125.' ************** SAGE ***************** Host 24.125.86.123 (24.125.86.123) Time: Thu Aug 17 14:47:11 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.171.' ************** SAGE ***************** Host 67.171.222.34 (67.171.222.34) Time: Thu Aug 17 14:05:50 2006 Input: x2-36y2 Output: Errors: ------------------------------------------------------------ File "", line 1 x2-ZZ(36)y2 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.171.' ************** SAGE ***************** Host 67.171.222.34 (67.171.222.34) Time: Thu Aug 17 14:05:29 2006 Input: x2 - 36y2 Output: Errors: ------------------------------------------------------------ File "", line 1 x2 - ZZ(36)y2 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:34:25 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(4));') print gap('SubgroupsSolvableGroup(SymmetricGroup(4));') Output: [ Group(()), Group([ (1,3)(2,4) ]), Group([ (1,4)(2,3), (1,3)(2,4) ]), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3) ]), Group([ (2,4,3) ]), Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ]), Group([ (3,4), (2,4,3) ]), Group([ (1,3)(2,4), (1,4)(2,3), (1,2) ]), Group([ (3,4) ]), Group([ (1,2)(3,4), (3,4) ]), Group([ (1,2)(3,4), (1,3,2,4) ]) ] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.84s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:34:04 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(4));'); print gap('print gap('LatticeSubgroups(SymmetricGroup(4));'); Output: Errors: ------------------------------------------------------------ File "", line 1 print gap('print gap('LatticeSubgroups(SymmetricGroup(ZZ(4)));'); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.75s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:33:53 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(4));') print gap('print gap('LatticeSubgroups(SymmetricGroup(4));') Output: Errors: ------------------------------------------------------------ File "", line 1 print gap('print gap('LatticeSubgroups(SymmetricGroup(ZZ(4)));') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.70s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:33:12 2006 Input: print gap('LatticeSubgroups(SymmetricGroup(4));') Output: Exiting SAGE (CPU time 0m0.05s, Wall time 0m1.38s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:32:25 2006 Input: print(gap('LatticeSubgroups(SymmetricGroup(4));') Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:31:06 2006 Input: print(gap('SubgroupsSolvableGroup(SymmetricGroup(4))') Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:30:50 2006 Input: print(gap('SubgroupsSolvableGroup(SymmetricGroup(4))') Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:30:42 2006 Input: print(gap('SubgroupsSolvableGroup(SymmetricGroup(4))') Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:30:26 2006 Input: print(gap('SubgroupsSolvableGroup(SymmetricGroup(4));') Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.182.' ************** SAGE ***************** Host 85.182.66.38 (85.182.66.38) Time: Thu Aug 17 11:30:14 2006 Input: print(gap('untergruppen s4') Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.236.' ************** SAGE ***************** Host 69.236.179.102 (69.236.179.102) Time: Thu Aug 17 11:29:36 2006 Input: 4x^3+8x^2>0 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)x**ZZ(3)+ZZ(8)x**ZZ(2)>ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.227.' ************** SAGE ***************** Host 74.227.52.100 (74.227.52.100) Time: Thu Aug 17 11:18:44 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.111.' ************** SAGE ***************** Host 70.111.170.49 (70.111.170.49) Time: Thu Aug 17 10:42:30 2006 Input: 7 to the 3rd power Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7) to the ZZ(3)rd power ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.111.' ************** SAGE ***************** Host 70.111.170.49 (70.111.170.49) Time: Thu Aug 17 10:42:04 2006 Input: 7-1000 Output: -993 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.111.' ************** SAGE ***************** Host 70.111.170.49 (70.111.170.49) Time: Thu Aug 17 10:40:59 2006 Input: 7 to the 1000 power Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7) to the ZZ(1000) power ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '124.121' ************** SAGE ***************** Host 124.121.130.209 (124.121.130.209) Time: Thu Aug 17 09:11:38 2006 Input: (1.0105)^300 Output: 22.955954506199291 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '124.121' ************** SAGE ***************** Host 124.121.130.209 (124.121.130.209) Time: Thu Aug 17 09:09:05 2006 Input: (1.012)^300 Output: 35.822323466206505 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '124.121' ************** SAGE ***************** Host 124.121.130.209 (124.121.130.209) Time: Thu Aug 17 09:08:21 2006 Input: (1.01)^300 Output: 19.788466261924441 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '124.121' ************** SAGE ***************** Host 124.121.130.209 (124.121.130.209) Time: Thu Aug 17 09:07:49 2006 Input: (1.1)^300 Output: 2617010996188.4634 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.91.' ************** SAGE ***************** Host 192.91.173.36 (192.91.173.36) Time: Thu Aug 17 07:24:24 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.15s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.4.16' ************** SAGE ***************** Host 75.4.167.188 (75.4.167.188) Time: Thu Aug 17 02:10:48 2006 Input: 5%/1,897 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)%/ZZ(1),ZZ(897) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.4.16' ************** SAGE ***************** Host 75.4.167.188 (75.4.167.188) Time: Thu Aug 17 02:10:08 2006 Input: 5% of 1,897 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)% of ZZ(1),ZZ(897) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '59.140.' ************** SAGE ***************** Host 59.140.3.12 (59.140.3.12) Time: Wed Aug 16 21:26:39 2006 Input: x^3+1 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '59.140.' ************** SAGE ***************** Host 59.140.3.12 (59.140.3.12) Time: Wed Aug 16 20:51:40 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.217.' ************** SAGE ***************** Host 71.217.58.198 (71.217.58.198) Time: Wed Aug 16 20:04:08 2006 Input: 857.25=8.8% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(16,RR.precision()))('857.25')=RealField(max(6,RR.precision()))('8.8')% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.251.' ************** SAGE ***************** Host 70.251.27.39 (70.251.27.39) Time: Wed Aug 16 19:37:54 2006 Input: - 2+(- 4)(- 3) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.251.' ************** SAGE ***************** Host 70.251.27.39 (70.251.27.39) Time: Wed Aug 16 19:36:59 2006 Input: 5+2 Output: 7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.201.' ************** SAGE ***************** Host 72.201.51.122 (72.201.51.122) Time: Wed Aug 16 17:57:45 2006 Input: 5/2-7x=40+x Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)/ZZ(2)-ZZ(7)x=ZZ(40)+x ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.8.19' ************** SAGE ***************** Host 12.8.198.4 (12.8.198.4) Time: Wed Aug 16 17:10:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.69.' ************** SAGE ***************** Host 207.69.139.10 (207.69.139.10) Time: Wed Aug 16 16:05:37 2006 Input: 16/8 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.69.' ************** SAGE ***************** Host 207.69.139.10 (207.69.139.10) Time: Wed Aug 16 16:05:26 2006 Input: 16*8 Output: 128 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.69.' ************** SAGE ***************** Host 207.69.139.10 (207.69.139.10) Time: Wed Aug 16 16:04:08 2006 Input: -4*-8 Output: 32 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.69.' ************** SAGE ***************** Host 207.69.139.10 (207.69.139.10) Time: Wed Aug 16 16:03:03 2006 Input: 5+-2 Output: 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '213.114' ************** SAGE ***************** Host 213.114.87.142 (213.114.87.142) Time: Wed Aug 16 15:41:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '166.82.' ************** SAGE ***************** Host 166.82.222.87 (166.82.222.87) Time: Wed Aug 16 15:17:29 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:38:26 2006 Input: a = 2^1279-1; a^2 Output: 108325052568731694825308930748782632281712981078063391569207841636774413988317069718397999842113439843838114780160527292318560027655210879492525577806114606891011654056790278950415538089848862989723458870226252561675809860925481363435920931734697441985144381138931090599259839646862062185248488927095579270882962783439632883211173576184295773354642797513323249429103453928604435108563558101702444559504237785866820511492308195030197382308626639275164342033662083068346092215727342781610110090744836072241061245394378570405262267408563919174309118216251418345751432563892857044029516841252800193196282756256820508002745121715995717080498786114904021386401887134622043273811238275515825691540210137820266652774676029464369076988555412164142223636011728319088135826799853569 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:38:14 2006 Input: a = 2^1279-1; a Output: 10407932194664399081925240327364085538615262247266704805319112350403608059673360298012239441732324184842421613954281007791383566248323464908139906605677320762924129509389220345773183349661583550472959420547689811211693677147548478866962501384438260291732348885311160828538416585028255604666224831890918801847068222203140521026698435488732958028878050869736186900714720710555703168729087 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:38:00 2006 Input: a = 2^1279-1; a^2 Output: 108325052568731694825308930748782632281712981078063391569207841636774413988317069718397999842113439843838114780160527292318560027655210879492525577806114606891011654056790278950415538089848862989723458870226252561675809860925481363435920931734697441985144381138931090599259839646862062185248488927095579270882962783439632883211173576184295773354642797513323249429103453928604435108563558101702444559504237785866820511492308195030197382308626639275164342033662083068346092215727342781610110090744836072241061245394378570405262267408563919174309118216251418345751432563892857044029516841252800193196282756256820508002745121715995717080498786114904021386401887134622043273811238275515825691540210137820266652774676029464369076988555412164142223636011728319088135826799853569 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:36:20 2006 Input: a = 2^1279-1; a Output: 10407932194664399081925240327364085538615262247266704805319112350403608059673360298012239441732324184842421613954281007791383566248323464908139906605677320762924129509389220345773183349661583550472959420547689811211693677147548478866962501384438260291732348885311160828538416585028255604666224831890918801847068222203140521026698435488732958028878050869736186900714720710555703168729087 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:36:10 2006 Input: a = 2^1279-1; a^2 Output: 108325052568731694825308930748782632281712981078063391569207841636774413988317069718397999842113439843838114780160527292318560027655210879492525577806114606891011654056790278950415538089848862989723458870226252561675809860925481363435920931734697441985144381138931090599259839646862062185248488927095579270882962783439632883211173576184295773354642797513323249429103453928604435108563558101702444559504237785866820511492308195030197382308626639275164342033662083068346092215727342781610110090744836072241061245394378570405262267408563919174309118216251418345751432563892857044029516841252800193196282756256820508002745121715995717080498786114904021386401887134622043273811238275515825691540210137820266652774676029464369076988555412164142223636011728319088135826799853569 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:35:57 2006 Input: a = 2^1279-1 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:35:29 2006 Input: a = 2^1279-1; b = a/2; b * a Output: 108325052568731694825308930748782632281712981078063391569207841636774413988317069718397999842113439843838114780160527292318560027655210879492525577806114606891011654056790278950415538089848862989723458870226252561675809860925481363435920931734697441985144381138931090599259839646862062185248488927095579270882962783439632883211173576184295773354642797513323249429103453928604435108563558101702444559504237785866820511492308195030197382308626639275164342033662083068346092215727342781610110090744836072241061245394378570405262267408563919174309118216251418345751432563892857044029516841252800193196282756256820508002745121715995717080498786114904021386401887134622043273811238275515825691540210137820266652774676029464369076988555412164142223636011728319088135826799853569/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:35:05 2006 Input: a = 2^1279-1; b = a - 50; b * a Output: 108325052568731694825308930748782632281712981078063391569207841636774413988317069718397999842113439843838114780160527292318560027655210879492525577806114606891011654056790278950415538089848862989723458870226252561675809860925481363435920931734697441985144381138931090599259839646862062185248488927095579270882962783439632883211173576184295773354642797513323249429103453928604435108563037705092711339550141523850452307215377431917834047068360683657644161630678415053445480243640726572367989010047122021851492067081962397159855272078280053136162911740781957328462773396409777866505868870225415702635698072399443084059396996646773804065912168670638463344974966305370630493577927033921279751447856726710109626723341107689932429087111509620655414290975992283560350668363399219 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:34:52 2006 Input: a = 2^1279-1; b = a - 27; b * a Output: 108325052568731694825308930748782632281712981078063391569207841636774413988317069718397999842113439843838114780160527292318560027655210879492525577806114606891011654056790278950415538089848862989723458870226252561675809860925481363435920931734697441985144381138931090599259839646862062185248488927095579270882962783439632883211173576184295773354642797513323249429103453928604435108563277087533188620729025804377981681182765582949521181278883023241703444616050902340299761750800570028619364707168070485030693889105673836852742489930210631513710166719497909396415556613451994288166746936898012568293567026973836699073337134178615884052622012695000620044031349886826280372485250205054770883890339295820781858706955171706173287121775704790659346589692430859903131841244168220 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Wed Aug 16 13:34:34 2006 Input: a = 2^1279-1; b = a - 27; b * a Output: 108325052568731694825308930748782632281712981078063391569207841636774413988317069718397999842113439843838114780160527292318560027655210879492525577806114606891011654056790278950415538089848862989723458870226252561675809860925481363435920931734697441985144381138931090599259839646862062185248488927095579270882962783439632883211173576184295773354642797513323249429103453928604435108563277087533188620729025804377981681182765582949521181278883023241703444616050902340299761750800570028619364707168070485030693889105673836852742489930210631513710166719497909396415556613451994288166746936898012568293567026973836699073337134178615884052622012695000620044031349886826280372485250205054770883890339295820781858706955171706173287121775704790659346589692430859903131841244168220 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '165.248' ************** SAGE ***************** Host 165.248.247.134 (165.248.247.134) Time: Wed Aug 16 11:39:40 2006 Input: 62150.00 + 2930.00 + 3120.00 Output: 68200.000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.34s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '161.226' ************** SAGE ***************** Host 161.226.4.6 (161.226.4.6) Time: Wed Aug 16 07:28:25 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.229.' ************** SAGE ***************** Host 64.229.192.33 (64.229.192.33) Time: Wed Aug 16 06:22:48 2006 Input: maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.04s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.229.' ************** SAGE ***************** Host 64.229.192.33 (64.229.192.33) Time: Wed Aug 16 06:22:28 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.91s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.229.' ************** SAGE ***************** Host 64.229.192.33 (64.229.192.33) Time: Wed Aug 16 06:21:59 2006 Input: factor(1234567891011) Output: 3 * 7 * 13 * 67 * 107 * 630803 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.20.1' ************** SAGE ***************** Host 66.20.137.77 (66.20.137.77) Time: Wed Aug 16 00:33:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Tue Aug 15 17:24:43 2006 Input: factor(16253880034389433332671497618115662365579723277760293140235888788399224728688262477733556293546469039787415744860821772351247828110930027445007) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 24164 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Tue Aug 15 17:24:14 2006 Input: factor(16253880034389433332671497618115662365579723277760293140235888788399224728688262477733556293546469039787415744860821772351247828110930027445007) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 24137 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Tue Aug 15 17:22:25 2006 Input: factor(597543644043339483) Output: 3 * 7 * 1019 * 1736939 * 16076503 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.64.2' ************** SAGE ***************** Host 24.64.223.203 (24.64.223.203) Time: Tue Aug 15 17:18:34 2006 Input: 57 Output: 57 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.128.' ************** SAGE ***************** Host 72.128.44.217 (72.128.44.217) Time: Tue Aug 15 16:24:32 2006 Input: (1/3)(9)³= Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(1)/ZZ(3))(ZZ(9))³= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.128.' ************** SAGE ***************** Host 72.128.44.217 (72.128.44.217) Time: Tue Aug 15 16:13:21 2006 Input: 4(-2)² + 8(-2) + 3(-2) + 6 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)(-ZZ(2))² + ZZ(8)(-ZZ(2)) + ZZ(3)(-ZZ(2)) + ZZ(6) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.247.' ************** SAGE ***************** Host 70.247.113.187 (70.247.113.187) Time: Tue Aug 15 15:15:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.196' ************** SAGE ***************** Host 204.196.155.1 (204.196.155.1) Time: Tue Aug 15 14:21:59 2006 Input: 2+2= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)+ZZ(2)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.222' ************** SAGE ***************** Host 137.222.98.45 (137.222.98.45) Time: Tue Aug 15 09:45:46 2006 Input: sum(n,n in {1,10}) Output: Errors: ------------------------------------------------------------ File "", line 1 sum(n,n in {ZZ(1),ZZ(10)}) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.222' ************** SAGE ***************** Host 137.222.98.45 (137.222.98.45) Time: Tue Aug 15 09:45:26 2006 Input: psi(3) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'psi' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.222' ************** SAGE ***************** Host 137.222.98.45 (137.222.98.45) Time: Tue Aug 15 09:45:09 2006 Input: Psi(3) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Psi' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.222' ************** SAGE ***************** Host 137.222.98.45 (137.222.98.45) Time: Tue Aug 15 09:44:49 2006 Input: 1+1 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Tue Aug 15 07:34:38 2006 Input: factor(57385847692928374757293856768492935657383875773829110928357751) Output: 3 * 29 * 1229 * 3307 * 47679775920425671223 * 3403809650223414805784866806769417 Exiting SAGE (CPU time 0m8.43s, Wall time 0m8.45s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Tue Aug 15 07:34:07 2006 Input: factor(5738584769292837475729385676849293) Output: 11^2 * 1640648453 * 12961523723 * 2230220680307 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '86.142.' ************** SAGE ***************** Host 86.142.169.251 (86.142.169.251) Time: Mon Aug 14 23:49:26 2006 Input: london Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'london' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '86.142.' ************** SAGE ***************** Host 86.142.169.251 (86.142.169.251) Time: Mon Aug 14 23:48:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.154.' ************** SAGE ***************** Host 71.154.206.69 (71.154.206.69) Time: Mon Aug 14 22:37:38 2006 Input: E=EllipticCurve([0,0,0,0,-27*15^2]) E E.rank() E.gens() Output: Elliptic Curve defined by y^2 = x^3 - 6075 over Rational Field 2 [(31 : 154 : 1), (482 : 3689 : 8)] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.33s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.154.' ************** SAGE ***************** Host 71.154.206.69 (71.154.206.69) Time: Mon Aug 14 22:36:37 2006 Input: E=EllipticCurve([0,0,0,-27*15^2,0]) E E.rank() E.gens() Output: Elliptic Curve defined by y^2 = x^3 - 6075*x over Rational Field 0 [] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.36s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.154.' ************** SAGE ***************** Host 71.154.206.69 (71.154.206.69) Time: Mon Aug 14 22:36:19 2006 Input: E=EllipticCurve([0,0,0,-27*15^2,0]) E E.rank() E.gens() Output: Elliptic Curve defined by y^2 = x^3 - 6075*x over Rational Field 0 [] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.72s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.211' ************** SAGE ***************** Host 203.211.78.64 (203.211.78.64) Time: Mon Aug 14 22:27:03 2006 Input: P := IntegerRing(); P := IntegerRing(); factorial(x*y) / (factorial(y)*factorial(x*y-y+1)) Output: Errors: ------------------------------------------------------------ File "", line 1 P := IntegerRing(); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 P := IntegerRing(); ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.211' ************** SAGE ***************** Host 203.211.78.64 (203.211.78.64) Time: Mon Aug 14 22:16:38 2006 Input: var x var y factorial(x*y) / (factorial(y)*factorial(x*y-y+1)) Output: Errors: ------------------------------------------------------------ File "", line 1 var x ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 var y ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.211' ************** SAGE ***************** Host 203.211.78.64 (203.211.78.64) Time: Mon Aug 14 22:16:22 2006 Input: factorial(x*y) / (factorial(y)*factorial(x*y-y+1)) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 22:01:11 2006 Input: factor(10^67-1) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 17619 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 22:00:34 2006 Input: factor(10^61-1) Output: 3^2 * 733 * 4637 * 329401 * 974293 * 1360682471 * 106007173861643 * 7061709990156159479 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.15s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 21:58:49 2006 Input: factor(2^127-1) Output: 170141183460469231731687303715884105727 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 21:58:21 2006 Input: factor(2^161-1) Output: 47 * 127 * 1289 * 178481 * 3188767 * 45076044553 * 14808607715315782481 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 21:57:41 2006 Input: factor(2^157-1) Output: 852133201 * 60726444167 * 1654058017289 * 2134387368610417 Exiting SAGE (CPU time 0m0.30s, Wall time 0m0.29s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 21:57:28 2006 Input: factor(2^157-1) Output: 852133201 * 60726444167 * 1654058017289 * 2134387368610417 Exiting SAGE (CPU time 0m0.29s, Wall time 0m0.29s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 21:57:01 2006 Input: factor(2^151-1) Output: 18121 * 55871 * 165799 * 2332951 * 7289088383388253664437433 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 21:56:39 2006 Input: factor(2^131-1) Output: 263 * 10350794431055162386718619237468234569 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.101.181 (64.149.101.181) Time: Mon Aug 14 21:56:21 2006 Input: factor(2^101-1) Output: 7432339208719 * 341117531003194129 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.15s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.128.' ************** SAGE ***************** Host 71.128.206.25 (71.128.206.25) Time: Mon Aug 14 21:00:30 2006 Input: roots(x^2+1) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'roots' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.128.' ************** SAGE ***************** Host 71.128.206.25 (71.128.206.25) Time: Mon Aug 14 20:59:52 2006 Input: solve(x+4=3) Output: Errors: ------------------------------------------------------------ SyntaxError: keyword can't be an expression Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.128.' ************** SAGE ***************** Host 71.128.206.25 (71.128.206.25) Time: Mon Aug 14 20:59:41 2006 Input: x+4=3 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.57.' ************** SAGE ***************** Host 203.57.240.95 (203.57.240.95) Time: Mon Aug 14 20:11:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.97.' ************** SAGE ***************** Host 129.97.77.135 (129.97.77.135) Time: Mon Aug 14 19:08:28 2006 Input: E=EllipticCurve([-36,0]) P=E([-3,9]) print 100*P Output: (14755393452974506456787213342969375288248159342223356209853277794105002334474653916071380675157660443005162367332000207678166889959887755253487755790178331543632517469343147570160906025449708059461481199956310275032798202347131279770244091371473178941634348792880003526631715437684044948022999016227125762503724922553558497640705315630134923721201797675355805492542795594940861811769962277663709526621569625083419579954937640602753891968670241905769587619971570217451450930862741390330818463358124496463848678742693562302962442451584470034830407470080510282356813748269263613773421898868166670666569146124360117327023653629048205246002666819452360055549781520337583594771685326465306349818405537093033445867028035921038308137574260864074352908904709559373349733092909824976569045942244460503974728988259525773993307980758252984786739307643999452453215023487913529894626270040835840058660759211120521739024279933975510708660616333175205709015063701787368904540406207185475712804350451606909211084839604161079633179742485433062411778351726692965306508052100408970240829904743160694900985739400470061370482318915876254841378295048788047161218773073575218271980483125816159692190443325244348164202868038225683574944505046925904663920606212696374279254877159941063478491706050432316000156892660826342622295635082905965622475858007086579452092703667061040167982544875650645078561073050231758956637384215868765423258819698784402238159502889771724295946436407923747795114250530604618795159292796977905183231939970710381158286287818334988323828180536619076427622064596535822577889836172447631452021797240792326356798001087956072623417788902479428678145043275735555536538496928302440826540949495720464430480703338685469247674326075554900813583532650937072069464065488640438922928083935994350232985306560559236068905784777958086171116432787499751193813003227709377945104892333423100822531184941169166786408217770801072070006302384250954937150383894810551314190309485570129873980497188137232353340691071238565792587550979052376131640009930245215716096458384810458471186893702209825976914288805311321887634546259362161592616606907521422955050637578364933985568436285730973282620767903949517747293982331887494596472599862723835359977946267789263594892065486883710434652585523460256178522024570002429383602528956016025118232163248071272348705225284387988204132429749728701184339891694645782896657615925308772009339623500973409629459393056771626829606480792686634102692923405132251304247846595928528185588443490553435858089180372268093192809596826251267664054163742881488039812965979926625532221293688553037089304545452614450662753627364327618888865239777709363593154861162822868814694039571691880888589681504434739418539285019997715572890586067201089227320677217861887619834528493406664548637679048046825096732495496605249780259923682205236203822570797678439694471941884565423308367874692960301363589950253337013907780856892195254305174200977795496980449209402347671146005105815540910173717432053185443815240221703037680356627824620037793594834581977548022454962810838781806163316725573135723893802398184853305347499447486980342771983597762048365027155242782297980618633599527144009567492185705097242901544021743096802114296195743983967504010514972751375126347476975553984462902699342433409043078474474582951830666843798075807367695913194800266247909631475234023852116988676604925227917550327776643774979830723962498359765692046251603050513951974893459358048253946886684501461117123940814702685833785894925961075594960977494668708646708276338733545350425749226508795787856813618396950500041175011641346944037895954564715014911299350670378940109409196521483673868559414963590963942661588295720592575471100923036707220201915734216311115964550879386224348472346272740742298519085461624668542778271393176646207789600524185349490197816591195292089691959534950800751037658501500001/1217795033622992236501545581126251713138624643733245970652384602708874434733708217638751205056511974322284613723689717213517941626622657255103021555220250932412942119462123262540327482346408898811219783610148570251298937096207045064988071299136150675419675584687620733506694958809208314626413046285924305193013341962788748456823481704741972116512237432883138764069102867372618143434009871705401379072398315929227833721844362560272404961054572677007872520108295284750334723406048169998571258019890602300542131051824725574108642048167314823218817491920706884788961077769971216372908836966202236096927771388789756077981035315761212489083574332721431786932916205505285828016497968882548567878812107472872656527236850771614575649926115703968814111370779782803081090156789634574886441647150192844373247748452768378954348591986684472059729834563403701313458735274636950568920695191903486962043840887397670099945446703194372945568862344301827261855953975196851146856201980210799822522029123857372813268024733854108619663477541437059790561592567205879069296990114315901376255352293416022851196873246765193743714854393234120484223198144968341238649580611767226528133059790496585203207278021199633371223374264116135209642988908454089913222349317729711446272844232572163868623333640359625520354238852964988964428046198874128145837225725345680173495325610232228071934743017770093521002055312701089712094328438472087010771952966420907994813498029065398259153625182611057506489906762107077537848350456738048175165967202464229530058388812384191583563667333261024591179212313055924658134573283696827130015237173757964350901368621754353696893906966193626632421905727360868866434414766485417628178653552032566924739480312597527469647688789855263941926319065686318432397463701227316525394289916034305442824479743036599364568937653863300011388352650446016826630948529487959918054161955933112053446084771478712988298401943448656697067560297788495463961651596298637749328138075546858274710161376928327546712437648494228515574423041220838542271308421233951998079674559075980475371873789960481700364724313020841056554619489658372640443680675812468576669924695886001812323248248900300813145796764990240637288764411903951341423900086128030584095425927360050630177861705306388724658725395219485771964991074423916665391220057971974080770000481933613937640042817382705351335388844324957830855547009339913590056271630006683811976046555685169560679241905984732229147218645618296899632346260555049281034644870987990141000690094793486933373604539177951165101827386433937264492765696989193056477993269275206883461538983472232051564443304545701295549871934426376851913453003235205464433601717045095076273475782864811309561304466876449485934577803230734286752214199597651678997945503300332422237566166079598243115364635904471559287052780103189399838604338013057154940604624839068452045562717956317349427977553991191486605639513875112284496442730962207223449493942486786629446870413650600558073543802556106154147121577671335570337066161480288937976374915574992573217205643989916203911548680617432706024045688187532803078822812756693212211447664035676089081308810037015514313288119207971834500271847448165171800613986025772933295824635803892396522274707520271670188550364406909479808528747254381665064509464492186444697228470946375349971297000170491338072010536791143154019235315547776010164322223702661292410716843843051799203313289551316667348522431517552886470224891092258159419142816276187370177852176913505219127675568949502599642305578416667234121976269482130257950913595123604701167895305242957717241850617216742122689205331435394278221002761948055910028385639130613528161791933985339117882411666585678447536610524606031833299726569077942902608094302691121369602586967887288681049747253911641516858661451533299603523178989948726155356394086355621718371894426528026475677712421076777612250000 : -49242200521571342463894337007490773824389296736519464546266511581686310505808048943399849580584445317632339254657678520389224389507658107091337289360480812227420454712102429204280882718382184794660421968255743859311228349973157215536139847486663154110625486791408728147834051211540275098524344738326387911732486327505374815158812816024235706311778648177689163326772953020183948167669249549445785464926693777465647678234513658801461588966170056986268630153988697210733368289559149702003536273636757449309100276271263887515231446386858830097215093948174654977090704214034933338687909126747952698047027625668845074282678053100817025374358170436464011838948192616115251620944297255129033344958147858478727218568845737201354752896979456327876088799301291142574823871219159224162586331534381479023256413417121983266940909666833411425393990706453776119735690945771566913351862432664358633828985234208230060958567737818838464609407675703010936243513074050140629702474364792311260246216595095686973006115461268171403820840778789778966669201563095191089997682525618220285672917505678669754358178496789731769984250425323280936088243806175179251122813685838995721688119473494648352498335392906515565265585443069673005634181354887093709845024375188827217808228881914136075235822998793532864670036483344051143553440158187897727156653496670859553775191213195065825054760684085883166636593040002924307917702806656322034315879193629824305214496193906541008199512099357616716499195022717480693356383742192577742751069053990011699003517630456339619770110745491550657070426199297339382467951680119396356519188179180527353901812310303877565003773590164581637739736087839445802816362754518691044677246073761392617238384847122328833880527017430703518131199328029799766432627842534888273243816514299109224853431777813055208227594855947908048625592189701315112287655872215614283737332670157493124194443518361558428924014028206665307102031155071116561802979859482393126070340605633891489617837463084841870323119303555853030520676929014411152199628986279308616397512783698210677188291693907773450909525109091106549473375415784966459154819136223591331685096742523550815095186606801139880811607346621401890712411098010573661354887299127181745712074766831193495025925366083843070330668774756917376934010686282355262631019863150527847077835035546141258530528817604287746477594057677232730845460185188219639450103076408147100654900091614900112724755473992900595519922934319244312177719911548356968042653461633653679226003976045370385243297240042106597372071985640208811011158611141095134848898887022546648632024797900234155297055499831935135554948324911414119816827292895173966022024902671772248219697688148946722898633028941478293807024024076040751908639732690958083426871871062403292162799070061726849395221288075024219575292979085381071483467257986966120884593158733613560900064829737217438432059873892893074880176249766831779711769901442338640674880788403503263049498137669868743430100027880651800900279001770310509499175059097424033802972407979126721450308885307149691140184513973589860553668810987769417718349616734898036316877294120851193307743829722250857128740477477551251008331243276557337091128940487260970032424342435893365047201486515490026415584174005137777532897632011454799674537139115012514774415901667973004482222249783239700890865341363906647666367109424702273777191961846362915531217707934020274701598394872169721396980298160060119450627564261447230898297077389394478832928082586307300015709143437159007911956841463206451263740925775941639541040914654764135418879489461663575964504342556815944480776134331658633624875529859567806219847492571808440328720923026240762428307023261643456795049196652810803633590998721860106035686696835769980010918956380410662468600398507795490430996669383478867583055269092020820388212172340544790855618059215054448649163940594542454614850840154073464509954550703330641583203693320774945394477888287258508244347475114966336112050524909383441542595173297749191491208830315993780138336442379763046415891140412728872684497309019602258318492031649044237358779713838170352114942893559930240100776102502858794405493306995598630990710284731850536210173013813532096576859322367129719251579045607317137962991988743757802138614467067554841587107530045037761323222986714881254960177853101071851142575551849742647764544446557157139168063127773533900174823787592052452270188851305249468779303128425312510435846939137664952121196262552973913855219864332490272918909565989477284611560660635762686307260033223580016030882338919774508133928559509575126028611459700293397883303129933890510929430966311345896040685099444337121831362628982182274014687827073625384955331862351288188525592075311146632235749435811161585349814539106393674809538107213130097691842381862729188532802312606015982883694153281831326342713748224374116017355668525445615517542039016792518564306258959606786910166038191077394846189935169512964423069649635381209362829710079694136408000895646407430765095044911601913718217888413758523223749550797337494526990129590026615255954879458689780376381726718941226177109480908861736591405591867866522555588144638053177598234133347044544570514203705592349230055232609010168283929560911781687990293067408886386788170996074689334847838675825277483184950580842653242130508903971729794618436432044218178721296502758781335653194271994309493232784082706063090850281573710189407975490465601975067865218799463478421028772541115130183623799158089681978417607769785453054457389896791240635264923726188802809601054736089218548590670683712635894245132559859217041278814757159711615975302126767409097468145157757641024848680161475121393961435827152240097504363140059518119663878878800168405387820694652443439741949516802848280034016922825375995127128302904007235207726075304520881206502250001/1343882497795815145198536495441492440616908926944379503814652675769052535137201595804884806670892297448957652041458392238128473952588193120192316743425340185445421763753611826792173644909751796139406591188519869679565348656490101926347200671820907692701349719561156297969471788174080917556244402302045640832808458746692138925933103198615931038988660209571627856348773950317380570364891080926008607941549634320393528250185774703694252286004086730160076362317196877402875751612556937036564423391821149852856128923620827468159385137959034192090628694522696290159791302964146027511252227590324376033785308443377403277559261425434264975398856922683483381236660217992922108610493654670312582319637962099794285298470596214070510461701372361625124025922073286666293310437871381689621423670932149936627478470561869638005743780173351818403943381439957379992013495383690923318357935042931853905046321093824717609351637101379405300224841519871020742537282967231868266905658982918300196937615310707585059927014910371087197375976183151197008066544755444703611629778612361156579819387288558705019848813782120630770424574745940761069154641963337051958839963103157083485101884992771660623951468717678940364248742721349698053444250889606218218756072334886739034617999671350703412036346761517172788195925670141688437390126393243993079429799893280768960971740217151313547598784057349254627064800061679630937924207890378253906832836579765122880233363074589606178265755297041845718824328312516547504443749529696603993883904391997566849203417912189857612190605361089239831213779430442098400124215383394028608695573867780261721864517430852001852171790125182400311431773721303290391739528930417927679024659911481965235624457510240057487721169236621776837414821354655900435208396088159245091672693911963688765771751345961946130440374717703447919788131485154541566921483530658393671628061334379920309884267509293729749389046641067385103042357990630972507418673729714081734352770601540280637232020404762459175272639637846107738227197374855767444978857393842586174025348012486003023728789021156118831469167382986060385782871643644149908774551926392437846569031447022808701782303906823504545975291662005007148158455755350075668484425303067392900045160525170908979009452259864575209103668765742042091146902162215917219774570600355967800965562280358150457145352589124498339240863593302757408003220201674309889087523345305059710814055475585199336171985268306731691056097563951330281705983069806460685456509389130470074010562045510899922643427094136422568825685515927270261423101773152393398760323675333975470141065060920166424292303091609351491485848856917630030861505765931610101036659950253378268848927092363758644830189976831720512936954238828715411406288610969905475899779014308366108289107623765099386471741774269789137786486515274104964021139409464695645405060844589097921044394596299315157143632966058093878854613638129711576618225601944546301685617838024374184447791861766604309998612229608289320222413031565710273398405750981107284374115894566619446149937854852000124646442871598213254449663386646446485504319972376323408832193484668781022883606200462712230406595032963680759021755467334556543183377891013043633157853651931541961642759336064064975653955354185167706094334616831651884658670608110938710077624357039737047746195613769926373927519805123207624150672908840045805207887214517867842891928879299219187430010255384736623617712545905845645339023606675098369747862611011730829229397456632231864224716926162380106085204391957596953497412389636062305412604975868217059814152361355184645194721218440427277714145661643358065869646621857620226944547764943511305604085491759437908841427593224961775702479508605964831571727886101037391490776417892353777572242421862539642750612619191503622717399317662068058966824583479050438323143949872937764061855322748566217738744789915782902725420004242093976089077859817914871397282339176407337302185003042585151142778051936826267052586397974717711969778684041564737697104987539093492047012753940431307178312462753658388784358443120540733692088141070254149465577271272950101104805792580984347541024087553098427549060804978353026024676063765160416766283186640853788169960351350148640352060096108922910410556993518968993579682447254996093569348863939492526528607761062220966822138880300777303589456051491883574915487213930605471540534047895978718128073346978017350628945306245270964535042801641544570800677791524663076895185307020814461699562848631314287269977341532296558037965294639697029635804290890412535133922199988479869015423784092322430255012463117670789668165995151128165495711131422091400391577946497282347959302372157979287292309066075765276310681803661922717858137266473397914881697289055934204028504293545082921671265602305536893443114003244629473413261261188075276448401710224883885444420150094544932110038574815552482090469379346248956490932957914471431592396806433045354228460305078614181356957312389864091026385991507169905810000777836229216264976145173466662788241198451563414109237766435487947191430208291738746360227076139341399449463559091249608298148795270935602296653532872082530308841344894955256017831895881043919798938145196164556858634652037318091648063827070750952223935983951758250405889975380091005010862896235630935393742137225852444577170672708119340871533945214979835908398103664237429406438186289179181250035524554760988877218564850665114658215288073920355031319213840438028678854793297755543468729134710390186392075429177545224251018929871440582563690578685573576854044842319798154300152327297534753363756428663701557028773615739548147796220158754871434975905879009828421049057246107695433650059109628192911156682794645702356385352071413274249786907555683880537663482517636614254129570514991974447044275368674290292629580732050842442875000000 : 1) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.97.' ************** SAGE ***************** Host 129.97.77.135 (129.97.77.135) Time: Mon Aug 14 19:06:15 2006 Input: E=EllipticCurve([-36,0]) P=E([-3,9]) print 2*P Output: (25/4 : -35/8 : 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.97.' ************** SAGE ***************** Host 129.97.77.135 (129.97.77.135) Time: Mon Aug 14 19:06:05 2006 Input: E=EllipticCurve([-36,0]) P=E([-3,9]) print P Output: (-3 : 9 : 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.97.' ************** SAGE ***************** Host 129.97.77.135 (129.97.77.135) Time: Mon Aug 14 19:04:53 2006 Input: E=EllipticCurve([-36,0]) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.230.' ************** SAGE ***************** Host 69.230.18.219 (69.230.18.219) Time: Mon Aug 14 19:02:03 2006 Input: (4-3)(x+1) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.208.' ************** SAGE ***************** Host 69.208.186.15 (69.208.186.15) Time: Mon Aug 14 18:56:49 2006 Input: 9.72+14.88+10.88+10.88+14.88+10.88 Output: 72.120000000000005 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.08s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.97.' ************** SAGE ***************** Host 129.97.77.135 (129.97.77.135) Time: Mon Aug 14 18:51:46 2006 Input: print factor(2006) Output: 2 * 17 * 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.97.' ************** SAGE ***************** Host 129.97.77.135 (129.97.77.135) Time: Mon Aug 14 18:51:32 2006 Input: factor(2006) Output: 2 * 17 * 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Aug 14 15:17:29 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.84s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Aug 14 15:17:20 2006 Input: f=x^5-x^4-x^3-x^2-x-1; Galois(f); print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Galois' is not defined Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m2.15s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.34.' ************** SAGE ***************** Host 129.34.20.23 (129.34.20.23) Time: Mon Aug 14 15:13:35 2006 Input: M = MatrixSpace(IntegerRing(),4,2)(range(8)) Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.182.' ************** SAGE ***************** Host 69.182.159.72 (69.182.159.72) Time: Mon Aug 14 15:10:30 2006 Input: 30x30x30/1900 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(30)x30x30/ZZ(1900) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Aug 14 15:09:01 2006 Input: f=x^5-x^4-x^3-x^2-x-1; Galois(f); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Galois' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Aug 14 15:08:44 2006 Input: f:=x^5-x^4-x^3-x^2-x-1; Galois(f); Output: Errors: ------------------------------------------------------------ File "", line 1 f:=x**ZZ(5)-x**ZZ(4)-x**ZZ(3)-x**ZZ(2)-x-ZZ(1); ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Galois' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Aug 14 15:08:30 2006 Input: f:=x^5-x^4-x^3-x^2-x-1; PolGalois(f); Output: Errors: ------------------------------------------------------------ File "", line 1 f:=x**ZZ(5)-x**ZZ(4)-x**ZZ(3)-x**ZZ(2)-x-ZZ(1); ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'PolGalois' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Aug 14 15:08:19 2006 Input: f:=x^5-x^4-x^3-x^2-x-1; GaloisGroup(f); Output: Errors: ------------------------------------------------------------ File "", line 1 f:=x**ZZ(5)-x**ZZ(4)-x**ZZ(3)-x**ZZ(2)-x-ZZ(1); ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'GaloisGroup' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Aug 14 15:07:27 2006 Input: Zx:=PolynomialRing(Integers()); f:=x^5-x^4-x^3-x^2-x-1; G:=GaloisGroup(f); a,b:=TransitiveGroupIdentification(G); "Number of group is", a; TransitiveGroupDescription(a,b); Output: Errors: ------------------------------------------------------------ File "", line 1 Zx:=PolynomialRing(Integers()); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 f:=x**ZZ(5)-x**ZZ(4)-x**ZZ(3)-x**ZZ(2)-x-ZZ(1); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 G:=GaloisGroup(f); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 a,b:=TransitiveGroupIdentification(G); ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'TransitiveGroupDescription' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.184.' ************** SAGE ***************** Host 24.184.196.223 (24.184.196.223) Time: Mon Aug 14 15:00:21 2006 Input: 38-15 Output: 23 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.41.1' ************** SAGE ***************** Host 65.41.196.4 (65.41.196.4) Time: Mon Aug 14 14:06:56 2006 Input: 84x11+168+200 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(84)x11+ZZ(168)+ZZ(200) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.206' ************** SAGE ***************** Host 129.206.26.228 (129.206.26.228) Time: Mon Aug 14 13:20:35 2006 Input: p=17 F=GF(p) oneF=F._coerce_(1) twoF=F._coerce_(2) R. = PolynomialRing( GF(p) ) thepower=p-2 S = R/(x^thepower) s=S._coerce_(0) c=S._coerce_(0) HalfPower=oneF # initialization for kk in range(p-1): k=kk-1 # 0 <= k <= p-2 if k: InverseFactorialF = InverseFactorialF / F._coerce_(k) else: InverseFactorialF = oneF Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 3) ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.62s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.206' ************** SAGE ***************** Host 129.206.26.228 (129.206.26.228) Time: Mon Aug 14 13:19:45 2006 Input: for i in range(7): print i Output: ...: ...: 0 1 2 3 4 5 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.206' ************** SAGE ***************** Host 129.206.26.228 (129.206.26.228) Time: Mon Aug 14 13:19:06 2006 Input: for i in range(7) print i Output: Errors: ------------------------------------------------------------ File "", line 1 for i in range(ZZ(7)) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'i' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.73.1' ************** SAGE ***************** Host 24.73.131.250 (24.73.131.250) Time: Mon Aug 14 07:42:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.225' ************** SAGE ***************** Host 130.225.103.21 (130.225.103.21) Time: Mon Aug 14 06:16:50 2006 Input: New := Newforms(CuspidalSubspace(ModularForms(Gamma1(33),2))); Output: Errors: ------------------------------------------------------------ File "", line 1 New := Newforms(CuspidalSubspace(ModularForms(Gamma1(ZZ(33)),ZZ(2)))); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.105.' ************** SAGE ***************** Host 71.105.149.13 (71.105.149.13) Time: Sun Aug 13 22:07:16 2006 Input: x+7=15 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.105.' ************** SAGE ***************** Host 71.105.149.13 (71.105.149.13) Time: Sun Aug 13 22:06:23 2006 Input: 3*3 Output: 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.16.1' ************** SAGE ***************** Host 75.16.138.161 (75.16.138.161) Time: Sun Aug 13 19:35:30 2006 Input: (9,-6)(7,-9) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'tuple' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.47.1' ************** SAGE ***************** Host 68.47.182.155 (68.47.182.155) Time: Sun Aug 13 14:59:28 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.95s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.47.1' ************** SAGE ***************** Host 68.47.182.155 (68.47.182.155) Time: Sun Aug 13 14:58:59 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.44s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.10.1' ************** SAGE ***************** Host 67.10.132.208 (67.10.132.208) Time: Sun Aug 13 13:52:05 2006 Input: 2^85 Output: 38685626227668133590597632 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.10.1' ************** SAGE ***************** Host 67.10.132.208 (67.10.132.208) Time: Sun Aug 13 13:51:48 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.199.' ************** SAGE ***************** Host 68.199.60.254 (68.199.60.254) Time: Sun Aug 13 13:36:10 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '194.165' ************** SAGE ***************** Host 194.165.182.38 (194.165.182.38) Time: Sun Aug 13 13:17:39 2006 Input: 47/3000.001 Output: 0.015666661444446183 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '194.165' ************** SAGE ***************** Host 194.165.182.38 (194.165.182.38) Time: Sun Aug 13 13:16:48 2006 Input: integrate(1/(1+x^4),x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.181.' ************** SAGE ***************** Host 67.181.188.175 (67.181.188.175) Time: Sun Aug 13 12:04:11 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.1.22' ************** SAGE ***************** Host 68.1.224.26 (68.1.224.26) Time: Sun Aug 13 11:51:38 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.174.' ************** SAGE ***************** Host 24.174.146.162 (24.174.146.162) Time: Sat Aug 12 16:35:34 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.148.' ************** SAGE ***************** Host 24.148.148.29 (24.148.148.29) Time: Sat Aug 12 16:08:54 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Sat Aug 12 05:20:58 2006 Input: mwrank([0,0,0,-85,5586]) Output: '\nCurve [0,0,0,-85,5586] :\tBasic pair: I=255, J=-150822\ndisc=-22680950184\n2-adic index bound = 2\n2-adic index = 2\nTwo (I,J) pairs\nLooking for quartics with I = 255, J = -150822\nLooking for Type 3 quartics:\nTrying positive a from 1 up to 15 (square a first...)\nTrying positive a from 1 up to 15 (...then non-square a)\nTrying negative a from -1 down to -9\nFinished looking for Type 3 quartics.\nLooking for quartics with I = 4080, J = -9652608\nLooking for Type 3 quartics:\nTrying positive a from 1 up to 61 (square a first...)\nTrying positive a from 1 up to 61 (...then non-square a)\n(30,-56,60,80,-36)\t--nontrivial...not locally soluble (p = 2)\nTrying negative a from -1 down to -37\n(-9,4,126,92,99)\t--nontrivial...not locally soluble (p = 2)\nFinished looking for Type 3 quartics.\nMordell rank contribution from B=im(eps) = 0\nSelmer rank contribution from B=im(eps) = 0\nSha rank contribution from B=im(eps) = 0\nMordell rank contribution from A=ker(eps) = 0\nSelmer rank contribution from A=ker(eps) = 0\nSha rank contribution from A=ker(eps) = 0\nRank = 0\n\nRegulator (before saturation) = 1\nSearching for points (bound = 10)...done\nRegulator (after searching) = 1\nSaturating (bound = 100)...finished saturation (index was 0)\nRegulator (after saturation) = 1\n\n\nRegulator = 1\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.115 seconds)' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '193.171' ************** SAGE ***************** Host 193.171.131.247 (193.171.131.247) Time: Sat Aug 12 04:06:52 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Sat Aug 12 02:12:08 2006 Input: mwrank([0,0,0,-15,22]) Output: "\nCurve [0,0,0,-15,22] :\t\n1 points of order 2:\n[2:0:1]\n\nUsing 2-isogenous curve [0,-12,0,48,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 0\nrk(S^{phi}(E'))=\t1\nrk(S^{phi'}(E))=\t1\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\n...skipping since we already know rank=0\nAfter second local descent, rank bound = 0\nrk(phi'(S^{2}(E)))=\t1\nrk(phi(S^{2}(E')))=\t1\nrk(S^{2}(E))=\t1\nrk(S^{2}(E'))=\t1\n\nThird step, determining E(Q)/phi(E'(Q)) and E'(Q)/phi'(E(Q))\n-------------------------------------------------------\n1. E(Q)/phi(E'(Q))\n-------------------------------------------------------\n(c,d) =(6,-3)\n(c',d')=(-12,48)\nThis component of the rank is 0\n-------------------------------------------------------\n2. E'(Q)/phi'(E(Q))\n-------------------------------------------------------\nThis component of the rank is 0\n\n-------------------------------------------------------\nSummary of results:\n-------------------------------------------------------\n\trank(E) = 0\n\t#E(Q)/2E(Q) = 2\n\nInformation on III(E/Q):\n\t#III(E/Q)[phi'] = 1\n\t#III(E/Q)[2] = 1\n\nInformation on III(E'/Q):\n\t#phi'(III(E/Q)[2]) = 1\n\t#III(E'/Q)[phi] = 1\n\t#III(E'/Q)[2] = 1\n\nRank = 0\n\nRegulator (before saturation) = 1\nSearching for points (bound = 10)...done\nRegulator (after searching) = 1\nSaturating (bound = 100)...finished saturation (index was 0)\nRegulator (after saturation) = 1\n\n\nRegulator = 1\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.101 seconds)" Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.23s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.29.1' ************** SAGE ***************** Host 71.29.153.151 (71.29.153.151) Time: Fri Aug 11 17:30:23 2006 Input: 190/27 Output: 190/27 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.160.' ************** SAGE ***************** Host 71.160.26.203 (71.160.26.203) Time: Fri Aug 11 13:25:09 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Fri Aug 11 13:12:18 2006 Input: R6 = singular.ring(0, '(s12,s13,s14,s23,s24,s34)', 'lp') I = singular.ideal(['s14*s23 - s13*s14*s23 - s13*s24 + s13*s14*s24 + s13*s23*s24 - s14*s23*s24','-5*s12*s13*s14*s23 + 5*s13*s14^2*s23 + 3*s12*s13*s14*s24 - 3*s13^2*s14*s24 - 5*s12*s13*s23*s24 + 3*s12*s14*s23*s24 + 2*s13*s14*s23*s24 - 2*s12*s13*s14*s23*s24 - 3*s14*s23^2*s24 + 5*s13*s23*s24^2','s14*s23 - s12*s14*s23 - s12*s34 + s12*s14*s34 + s12*s23*s34 - s14*s23*s34','s13*s24 - s12*s13*s24 - s12*s34 + s12*s13*s34 + s12*s24*s34 - s13*s24*s34','5*s12^2*s13*s14*s23 - 5*s12*s13^2*s14*s23 - 5*s12*s13*s14^2*s23 + 5*s13^2*s14^2*s23 - 5*s12*s13*s14*s23^2 - 5*s13*s14^2*s23^2 - 3*s12^2*s13*s14*s24 + 6*s12*s13^2*s14*s24 - 3*s13^3*s14*s24 - 5*s12^2*s13*s23*s24 + 5*s12*s13^2*s23*s24 + 3*s12^2*s14*s23*s24 - s13^2*s14*s23*s24 + 5*s12*s13*s23^2*s24 - 6*s12*s14*s23^2*s24 + s13*s14*s23^2*s24 + 3*s14*s23^3*s24 + 5*s12*s13*s23*s24^2 + 5*s13^2*s23*s24^2 - 5*s13*s23^2*s24^2 + 10*s12*s13*s14*s23*s34 - 10*s12*s13*s23*s24*s34','-2*s13*s14*s23^2 - s13^2*s23*s24 + 2*s13*s14*s23*s24 - s14^2*s23*s24 - 2*s13*s14*s24^2 + 2*s13*s14*s23*s34 + 2*s13*s14*s24*s34 + s13*s23*s24*s34 + s14*s23*s24*s34 - 2*s13*s14*s23*s24*s34',' s12*s13*s23 - s12*s14*s23 - s13*s14*s23 + s14^2*s23 + s14*s23^2 - s12*s13*s24 + s13^2*s24 + s12*s14*s24 - s13*s14*s24 - s13*s23*s24 - s14*s23*s24 + s13*s24^2 + s12^2*s34 - s12*s13*s34 - s12*s14*s34 + s13*s14*s34 - s12*s23*s34 - s14*s23*s34 - s12*s24*s34 - s13*s24*s34 + s23*s24*s34 + s12*s34^2','-5*s12*s13*s23*s24 + 5*s12*s13*s24^2 - 5*s12*s13*s23*s34 - s12^2*s24*s34 + 2*s12*s13*s24*s34 - s13^2*s24*s34 + s12*s23*s24*s34 + s13*s23*s24*s34 - 2*s12*s13*s23*s24*s34 + 5*s12*s13*s34^2','-3*s12*s14*s23^2 + 3*s12*s14*s23*s24 - s12^2*s23*s34 + 2*s12*s14*s23*s34 - s14^2*s23*s34 + 3*s12*s14*s24*s34 + s12*s23*s24*s34 + s14*s23*s24*s34 - 2*s12*s14*s23*s24*s34 - 3*s12*s14*s34^2','-5*s12*s13*s14*s23 + 5*s12*s14^2*s23 - 2*s12^2*s14*s34 + 2*s12*s13*s14*s34 - 5*s12*s13*s23*s34 + 2*s12*s14*s23*s34 + 2*s13*s14*s23*s34 - 2*s12*s13*s14*s23*s34 - 2*s14*s23^2*s34 + 5*s12*s23*s34^2']) I2 = I.groebner() I2 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, *args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in function_call(self, function, args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in new(self, code) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/singular.py in __call__(self, x, type) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/singular.py in __init__(self, parent, type, value, is_name) TypeError: Singular crashed executing def sage12=groebner(sage11); --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'I2' is not defined WARNING: [Errno 3] No such process Exiting SAGE (CPU time 0m0.04s, Wall time 0m21.23s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Fri Aug 11 12:54:35 2006 Input: R6 = singular.ring(0, '(s12,s13,s14,s23,s24,s34)', 'lp') I = singular.ideal(['s14*s23 - s13*s14*s23 - s13*s24 + s13*s14*s24 + s13*s23*s24 - s14*s23*s24', '-5*s12*s13*s14*s23 + 5*s13*s14^2*s23 + 3*s12*s13*s14*s24 - 3*s13^2*s14*s24 - 5*s12*s13*s23*s24 + 3*s12*s14*s23*s24 + 2*s13*s14*s23*s24 - 2*s12*s13*s14*s23*s24 - 3*s14*s23^2*s24 + 5*s13*s23*s24^2', 's14*s23 - s12*s14*s23 - s12*s34 + s12*s14*s34 + s12*s23*s34 - s14*s23*s34', 's13*s24 - s12*s13*s24 - s12*s34 + s12*s13*s34 + s12*s24*s34 - s13*s24*s34']) I2 = I.groebner() I2 Output: 5*s14^5*s23^4*s24-5*s14^5*s23^4-5*s14^5*s23^3*s24^2-5*s14^5*s23^3*s24*s34+5*s14^5*s23^3*s24+5*s14^5*s23^3*s34+5*s14^5*s23^2*s24^2*s34-5*s14^5*s23^2*s24*s34+3*s14^4*s23^5*s24+2*s14^4*s23^4*s24^2*s34-11*s14^4*s23^4*s24^2-2*s14^4*s23^4*s24*s34-3*s14^4*s23^4*s24+5*s14^4*s23^4-2*s14^4*s23^3*s24^3*s34+6*s14^4*s23^3*s24^3+2*s14^4*s23^3*s24^2*s34+13*s14^4*s23^3*s24^2+5*s14^4*s23^3*s24*s34-10*s14^4*s23^3*s24-5*s14^4*s23^3*s34+2*s14^4*s23^2*s24^3*s34-6*s14^4*s23^2*s24^3-9*s14^4*s23^2*s24^2*s34+3*s14^4*s23^2*s24^2+7*s14^4*s23^2*s24*s34-6*s14^3*s23^5*s24^2-3*s14^3*s23^5*s24*s34-2*s14^3*s23^4*s24^3*s34+11*s14^3*s23^4*s24^3+11*s14^3*s23^4*s24^2*s34+7*s14^3*s23^4*s24^2-5*s14^3*s23^3*s24^4-7*s14^3*s23^3*s24^3*s34-5*s14^3*s23^3*s24^3-2*s14^3*s23^3*s24^2*s34-13*s14^3*s23^3*s24^2+5*s14^3*s23^3*s24+5*s14^3*s23^2*s24^4*s34-6*s14^3*s23^2*s24^3*s34+9*s14^3*s23^2*s24^3+6*s14^3*s23^2*s24^2*s34-3*s14^3*s23^2*s24^2-2*s14^3*s23^2*s24*s34+3*s14^2*s23^5*s24^3+6*s14^2*s23^5*s24^2*s34-5*s14^2*s23^4*s24^4-14*s14^2*s23^4*s24^3*s34+s14^2*s23^4*s24^3-4*s14^2*s23^4*s24^2*s34-5*s14^2*s23^4*s24^2+10*s14^2*s23^3*s24^4*s34+5*s14^2*s23^3*s24^4+8*s14^2*s23^3*s24^3*s34-s14^2*s23^3*s24^3+5*s14^2*s23^3*s24^2-10*s14^2*s23^2*s24^4*s34+6*s14^2*s23^2*s24^3*s34-3*s14^2*s23^2*s24^3-2*s14^2*s23^2*s24^2*s34-3*s14*s23^5*s24^3*s34+5*s14*s23^4*s24^4*s34+4*s14*s23^4*s24^3*s34-10*s14*s23^3*s24^4*s34+s14*s23^3*s24^3*s34+5*s14*s23^2*s24^4*s34-2*s14*s23^2*s24^3*s34, 3*s13*s23^5*s24^5-3*s13*s23^5*s24^4*s34-3*s13*s23^5*s24^4+3*s13*s23^5*s24^3*s34-9*s13*s23^4*s24^5+9*s13*s23^4*s24^4*s34+9*s13*s23^4*s24^4-9*s13*s23^4*s24^3*s34+9*s13*s23^3*s24^5-9*s13*s23^3*s24^4*s34-9*s13*s23^3*s24^4+9*s13*s23^3*s24^3*s34-3*s13*s23^2*s24^5+3*s13*s23^2*s24^4*s34+3*s13*s23^2*s24^4-3*s13*s23^2*s24^3*s34-5*s14^4*s23^6*s24+5*s14^4*s23^6+15*s14^4*s23^5*s24^2+5*s14^4*s23^5*s24*s34-15*s14^4*s23^5*s24-5*s14^4*s23^5*s34-15*s14^4*s23^4*s24^3-15*s14^4*s23^4*s24^2*s34+15*s14^4*s23^4*s24^2+15*s14^4*s23^4*s24*s34+5*s14^4*s23^3*s24^4+15*s14^4*s23^3*s24^3*s34-5*s14^4*s23^3*s24^3-15*s14^4*s23^3*s24^2*s34-5*s14^4*s23^2*s24^4*s34+5*s14^4*s23^2*s24^3*s34-3*s14^3*s23^7*s24-2*s14^3*s23^6*s24^2*s34+12*s14^3*s23^6*s24^2+2*s14^3*s23^6*s24*s34+8*s14^3*s23^6*s24-5*s14^3*s23^6+6*s14^3*s23^5*s24^3*s34-21*s14^3*s23^5*s24^3-s14^3*s23^5*s24^2*s34-24*s14^3*s23^5*s24^2-10*s14^3*s23^5*s24*s34+15*s14^3*s23^5*s24+5*s14^3*s23^5*s34-6*s14^3*s23^4*s24^4*s34+18*s14^3*s23^4*s24^4-6*s14^3*s23^4*s24^3*s34+30*s14^3*s23^4*s24^3+24*s14^3*s23^4*s24^2*s34-18*s14^3*s23^4*s24^2-12*s14^3*s23^4*s24*s34+2*s14^3*s23^3*s24^5*s34-6*s14^3*s23^3*s24^5+7*s14^3*s23^3*s24^4*s34-20*s14^3*s23^3*s24^4-18*s14^3*s23^3*s24^3*s34+11*s14^3*s23^3*s24^3+9*s14^3*s23^3*s24^2*s34-2*s14^3*s23^2*s24^5*s34+6*s14^3*s23^2*s24^5+4*s14^3*s23^2*s24^4*s34-3*s14^3*s23^2*s24^4-2*s14^3*s23^2*s24^3*s34+3*s14^2*s23^7*s24^2+3*s14^2*s23^7*s24*s34-14*s14^2*s23^6*s24^3-15*s14^2*s23^6*s24^2*s34+4*s14^2*s23^6*s24^2-5*s14^2*s23^6*s24+21*s14^2*s23^5*s24^4+35*s14^2*s23^5*s24^3*s34-6*s14^2*s23^5*s24^3-10*s14^2*s23^5*s24^2*s34+15*s14^2*s23^5*s24^2+5*s14^2*s23^5*s24*s34-15*s14^2*s23^4*s24^5-39*s14^2*s23^4*s24^4*s34+9*s14^2*s23^4*s24^4+15*s14^2*s23^4*s24^3*s34-27*s14^2*s23^4*s24^3-3*s14^2*s23^4*s24^2*s34+3*s14^2*s23^4*s24^2-3*s14^2*s23^4*s24*s34+5*s14^2*s23^3*s24^6+21*s14^2*s23^3*s24^5*s34-7*s14^2*s23^3*s24^5-9*s14^2*s23^3*s24^4*s34+20*s14^2*s23^3*s24^4-3*s14^2*s23^3*s24^3+3*s14^2*s23^3*s24^2*s34-5*s14^2*s23^2*s24^6*s34+4*s14^2*s23^2*s24^5*s34-3*s14^2*s23^2*s24^5-2*s14^2*s23^2*s24^4*s34-3*s14*s23^7*s24^2*s34+14*s14*s23^6*s24^3*s34+s14*s23^6*s24^2*s34-3*s14*s23^5*s24^5-21*s14*s23^5*s24^4*s34+6*s14*s23^5*s24^4-14*s14*s23^5*s24^3*s34-3*s14*s23^5*s24^3+5*s14*s23^5*s24^2*s34+18*s14*s23^4*s24^5*s34+6*s14*s23^4*s24^5+12*s14*s23^4*s24^4*s34-12*s14*s23^4*s24^4+6*s14*s23^4*s24^3*s34+6*s14*s23^4*s24^3-6*s14*s23^4*s24^2*s34-5*s14*s23^3*s24^6*s34-16*s14*s23^3*s24^5*s34-3*s14*s23^3*s24^5+9*s14*s23^3*s24^4*s34+6*s14*s23^3*s24^4-6*s14*s23^3*s24^3*s34-3*s14*s23^3*s24^3+3*s14*s23^3*s24^2*s34+5*s14*s23^2*s24^6*s34-2*s14*s23^2*s24^5*s34, 3*s13*s14*s24^8-3*s13*s14*s24^7*s34-9*s13*s14*s24^7+9*s13*s14*s24^6*s34+9*s13*s14*s24^6-9*s13*s14*s24^5*s34-3*s13*s14*s24^5+3*s13*s14*s24^4*s34+3*s13*s23^4*s24^5-3*s13*s23^4*s24^4*s34-3*s13*s23^4*s24^4+3*s13*s23^4*s24^3*s34+3*s13*s23^3*s24^6-3*s13*s23^3*s24^5*s34-12*s13*s23^3*s24^5+12*s13*s23^3*s24^4*s34+9*s13*s23^3*s24^4-9*s13*s23^3*s24^3*s34+3*s13*s23^2*s24^7-3*s13*s23^2*s24^6*s34-12*s13*s23^2*s24^6+12*s13*s23^2*s24^5*s34+18*s13*s23^2*s24^5-18*s13*s23^2*s24^4*s34-9*s13*s23^2*s24^4+9*s13*s23^2*s24^3*s34+3*s13*s23*s24^8-3*s13*s23*s24^7*s34-12*s13*s23*s24^7+12*s13*s23*s24^6*s34+18*s13*s23*s24^6-18*s13*s23*s24^5*s34-12*s13*s23*s24^5+12*s13*s23*s24^4*s34+3*s13*s23*s24^4-3*s13*s23*s24^3*s34-3*s13*s24^8+3*s13*s24^7*s34+9*s13*s24^7-9*s13*s24^6*s34-9*s13*s24^6+9*s13*s24^5*s34+3*s13*s24^5-3*s13*s24^4*s34-5*s14^4*s23^5*s24+5*s14^4*s23^5+10*s14^4*s23^4*s24^2+5*s14^4*s23^4*s24*s34-10*s14^4*s23^4*s24-5*s14^4*s23^4*s34-5*s14^4*s23^3*s24^3-10*s14^4*s23^3*s24^2*s34+5*s14^4*s23^3*s24^2+10*s14^4*s23^3*s24*s34+5*s14^4*s23^2*s24^3*s34-5*s14^4*s23^2*s24^2*s34-3*s14^3*s23^6*s24-2*s14^3*s23^5*s24^2*s34+9*s14^3*s23^5*s24^2+2*s14^3*s23^5*s24*s34+8*s14^3*s23^5*s24-5*s14^3*s23^5+4*s14^3*s23^4*s24^3*s34-12*s14^3*s23^4*s24^3+s14^3*s23^4*s24^2*s34-16*s14^3*s23^4*s24^2-10*s14^3*s23^4*s24*s34+10*s14^3*s23^4*s24+5*s14^3*s23^4*s34-2*s14^3*s23^3*s24^4*s34+6*s14^3*s23^3*s24^4-5*s14^3*s23^3*s24^3*s34+14*s14^3*s23^3*s24^3+14*s14^3*s23^3*s24^2*s34-8*s14^3*s23^3*s24^2-7*s14^3*s23^3*s24*s34+2*s14^3*s23^2*s24^4*s34-6*s14^3*s23^2*s24^4-4*s14^3*s23^2*s24^3*s34+3*s14^3*s23^2*s24^3+2*s14^3*s23^2*s24^2*s34+3*s14^2*s23^6*s24^2+3*s14^2*s23^6*s24*s34-11*s14^2*s23^5*s24^3-12*s14^2*s23^5*s24^2*s34+4*s14^2*s23^5*s24^2-5*s14^2*s23^5*s24+10*s14^2*s23^4*s24^4+23*s14^2*s23^4*s24^3*s34-2*s14^2*s23^4*s24^3-10*s14^2*s23^4*s24^2*s34+10*s14^2*s23^4*s24^2+5*s14^2*s23^4*s24*s34-5*s14^2*s23^3*s24^5-16*s14^2*s23^3*s24^4*s34+7*s14^2*s23^3*s24^4+5*s14^2*s23^3*s24^3*s34-17*s14^2*s23^3*s24^3+2*s14^2*s23^3*s24^2*s34+3*s14^2*s23^3*s24^2-3*s14^2*s23^3*s24*s34+5*s14^2*s23^2*s24^5*s34-4*s14^2*s23^2*s24^4*s34+3*s14^2*s23^2*s24^4+2*s14^2*s23^2*s24^3*s34-3*s14*s23^6*s24^2*s34+11*s14*s23^5*s24^3*s34+s14*s23^5*s24^2*s34-3*s14*s23^4*s24^5-10*s14*s23^4*s24^4*s34+6*s14*s23^4*s24^4-13*s14*s23^4*s24^3*s34-3*s14*s23^4*s24^3+5*s14*s23^4*s24^2*s34-3*s14*s23^3*s24^6+8*s14*s23^3*s24^5*s34+12*s14*s23^3*s24^5-s14*s23^3*s24^4*s34-15*s14*s23^3*s24^4+11*s14*s23^3*s24^3*s34+6*s14*s23^3*s24^3-6*s14*s23^3*s24^2*s34-3*s14*s23^2*s24^7+3*s14*s23^2*s24^6*s34+12*s14*s23^2*s24^6-17*s14*s23^2*s24^5*s34-18*s14*s23^2*s24^5+20*s14*s23^2*s24^4*s34+12*s14*s23^2*s24^4-12*s14*s23^2*s24^3*s34-3*s14*s23^2*s24^3+3*s14*s23^2*s24^2*s34-3*s14*s23*s24^8+3*s14*s23*s24^7*s34+12*s14*s23*s24^7-12*s14*s23*s24^6*s34-18*s14*s23*s24^6+18*s14*s23*s24^5*s34+12*s14*s23*s24^5-12*s14*s23*s24^4*s34-3*s14*s23*s24^4+3*s14*s23*s24^3*s34, s13*s14*s23-s13*s14*s24-s13*s23*s24+s13*s24+s14*s23*s24-s14*s23, 3*s13*s14^2*s24^6-3*s13*s14^2*s24^5*s34-6*s13*s14^2*s24^5+6*s13*s14^2*s24^4*s34+3*s13*s14^2*s24^4-3*s13*s14^2*s24^3*s34-2*s13*s14*s23^4*s24^2*s34^2-3*s13*s14*s23^4*s24^2*s34-2*s13*s14*s23^4*s24*s34^3+2*s13*s14*s23^4*s24*s34^2+3*s13*s14*s23^3*s24^4+2*s13*s14*s23^3*s24^3*s34^2+3*s13*s14*s23^3*s24^3*s34-s13*s14*s23^3*s24^3+2*s13*s14*s23^3*s24^2*s34^3+s13*s14*s23^3*s24^2*s34+5*s13*s14*s23^3*s24^2+2*s13*s14*s23^3*s24*s34^3-2*s13*s14*s23^3*s24*s34^2+3*s13*s14*s23^2*s24^5+2*s13*s14*s23^2*s24^4*s34^2-6*s13*s14*s23^2*s24^4*s34-13*s13*s14*s23^2*s24^4+2*s13*s14*s23^2*s24^3*s34^3-4*s13*s14*s23^2*s24^3*s34^2+13*s13*s14*s23^2*s24^3*s34-6*s13*s14*s23^2*s24^3-2*s13*s14*s23^2*s24^2*s34^3+2*s13*s14*s23^2*s24^2*s34^2-s13*s14*s23^2*s24^2*s34-5*s13*s14*s23^2*s24^2+3*s13*s14*s23*s24^6-2*s13*s14*s23*s24^5*s34^2-3*s13*s14*s23*s24^5*s34-7*s13*s14*s23*s24^5-2*s13*s14*s23*s24^4*s34^3+7*s13*s14*s23*s24^4*s34+18*s13*s14*s23*s24^4-2*s13*s14*s23*s24^3*s34^3+2*s13*s14*s23*s24^3*s34^2-19*s13*s14*s23*s24^3*s34+7*s13*s14*s23*s24^3+3*s13*s14*s23*s24^2*s34-3*s13*s14*s24^6+2*s13*s14*s24^5*s34^2+3*s13*s14*s24^5*s34+4*s13*s14*s24^5+2*s13*s14*s24^4*s34^3-2*s13*s14*s24^4*s34^2-s13*s14*s24^4*s34-8*s13*s14*s24^4+3*s13*s14*s24^3*s34+2*s13*s23^4*s24^3*s34^2+3*s13*s23^4*s24^3*s34+2*s13*s23^4*s24^2*s34^3-2*s13*s23^4*s24^2*s34^2-3*s13*s23^3*s24^4*s34-2*s13*s23^3*s24^4-4*s13*s23^3*s24^3*s34^2-s13*s23^3*s24^3*s34-5*s13*s23^3*s24^3-4*s13*s23^3*s24^2*s34^3+4*s13*s23^3*s24^2*s34^2-2*s13*s23^2*s24^5*s34^2+2*s13*s23^2*s24^5-2*s13*s23^2*s24^4*s34^3+2*s13*s23^2*s24^4*s34^2+s13*s23^2*s24^4*s34+9*s13*s23^2*s24^4+2*s13*s23^2*s24^3*s34^2-7*s13*s23^2*s24^3*s34+10*s13*s23^2*s24^3+2*s13*s23^2*s24^2*s34^3-2*s13*s23^2*s24^2*s34^2+4*s13*s23*s24^5*s34^2-4*s13*s23*s24^5+4*s13*s23*s24^4*s34^3-4*s13*s23*s24^4*s34^2+7*s13*s23*s24^4*s34-12*s13*s23*s24^4+5*s13*s23*s24^3*s34-5*s13*s23*s24^3-2*s13*s24^5*s34^2+2*s13*s24^5-2*s13*s24^4*s34^3+2*s13*s24^4*s34^2-5*s13*s24^4*s34+5*s13*s24^4-5*s14^4*s23^4*s24+5*s14^4*s23^4+5*s14^4*s23^3*s24^2+5*s14^4*s23^3*s24*s34-5*s14^4*s23^3*s24-5*s14^4*s23^3*s34-5*s14^4*s23^2*s24^2*s34+5*s14^4*s23^2*s24*s34-3*s14^3*s23^5*s24-2*s14^3*s23^4*s24^2*s34+6*s14^3*s23^4*s24^2+2*s14^3*s23^4*s24*s34+8*s14^3*s23^4*s24-5*s14^3*s23^4+2*s14^3*s23^3*s24^3*s34-6*s14^3*s23^3*s24^3+3*s14^3*s23^3*s24^2*s34-8*s14^3*s23^3*s24^2-10*s14^3*s23^3*s24*s34+5*s14^3*s23^3*s24+5*s14^3*s23^3*s34-2*s14^3*s23^2*s24^3*s34+6*s14^3*s23^2*s24^3+4*s14^3*s23^2*s24^2*s34-3*s14^3*s23^2*s24^2-2*s14^3*s23^2*s24*s34+3*s14^2*s23^5*s24^2+3*s14^2*s23^5*s24*s34-8*s14^2*s23^4*s24^3-9*s14^2*s23^4*s24^2*s34+4*s14^2*s23^4*s24^2-5*s14^2*s23^4*s24+2*s14^2*s23^3*s24^4+14*s14^2*s23^3*s24^3*s34+2*s14^2*s23^3*s24^3-10*s14^2*s23^3*s24^2*s34+5*s14^2*s23^3*s24^2+5*s14^2*s23^3*s24*s34-3*s14^2*s23^2*s24^5-2*s14^2*s23^2*s24^4*s34+9*s14^2*s23^2*s24^4-5*s14^2*s23^2*s24^3*s34-12*s14^2*s23^2*s24^3+7*s14^2*s23^2*s24^2*s34+3*s14^2*s23^2*s24^2-3*s14^2*s23^2*s24*s34-3*s14^2*s23*s24^6+3*s14^2*s23*s24^5*s34+9*s14^2*s23*s24^5-9*s14^2*s23*s24^4*s34-9*s14^2*s23*s24^4+9*s14^2*s23*s24^3*s34+3*s14^2*s23*s24^3-3*s14^2*s23*s24^2*s34-3*s14*s23^5*s24^2*s34-2*s14*s23^4*s24^3*s34^2+5*s14*s23^4*s24^3*s34-2*s14*s23^4*s24^2*s34^3+4*s14*s23^4*s24^2*s34^2+4*s14*s23^4*s24^2*s34+2*s14*s23^4*s24*s34^3-2*s14*s23^4*s24*s34^2-2*s14*s23^3*s24^4*s34+2*s14*s23^3*s24^4+2*s14*s23^3*s24^3*s34^2-11*s14*s23^3*s24^3*s34+3*s14*s23^3*s24^3+2*s14*s23^3*s24^2*s34^3-4*s14*s23^3*s24^2*s34^2+4*s14*s23^3*s24^2*s34-5*s14*s23^3*s24^2-2*s14*s23^3*s24*s34^3+2*s14*s23^3*s24*s34^2+2*s14*s23^2*s24^5*s34^2-2*s14*s23^2*s24^5+2*s14*s23^2*s24^4*s34^3-4*s14*s23^2*s24^4*s34^2+7*s14*s23^2*s24^4*s34-5*s14*s23^2*s24^4-2*s14*s23^2*s24^3*s34^3+2*s14*s23^2*s24^3*s34^2+s14*s23^2*s24^3*s34+2*s14*s23^2*s24^3-5*s14*s23^2*s24^2*s34+5*s14*s23^2*s24^2-2*s14*s23*s24^5*s34^2+2*s14*s23*s24^5-2*s14*s23*s24^4*s34^3+4*s14*s23*s24^4*s34^2-5*s14*s23*s24^4*s34+3*s14*s23*s24^4+2*s14*s23*s24^3*s34^3-2*s14*s23*s24^3*s34^2+5*s14*s23*s24^3*s34-5*s14*s23*s24^3, 3*s13*s14^3*s24^4-3*s13*s14^3*s24^3*s34-3*s13*s14^3*s24^3+3*s13*s14^3*s24^2*s34+2*s13*s14^2*s23^3*s24^2*s34+3*s13*s14^2*s23^3*s24^2+2*s13*s14^2*s23^3*s24*s34^2+6*s13*s14^2*s23^3*s24*s34-10*s13*s14^2*s23^3*s24+2*s13*s14^2*s23^3*s34^3-2*s13*s14^2*s23^3*s34^2-2*s13*s14^2*s23^2*s24^3*s34-4*s13*s14^2*s23^2*s24^2*s34^2-12*s13*s14^2*s23^2*s24^2*s34+7*s13*s14^2*s23^2*s24^2-4*s13*s14^2*s23^2*s24*s34^3+4*s13*s14^2*s23^2*s24*s34^2+5*s13*s14^2*s23^2*s24*s34+3*s13*s14^2*s23*s24^4-4*s13*s14^2*s23*s24^3+2*s13*s14^2*s23*s24^2*s34^2-3*s13*s14^2*s23*s24^2*s34+8*s13*s14^2*s23*s24^2+2*s13*s14^2*s23*s24*s34^3-2*s13*s14^2*s23*s24*s34^2-3*s13*s14^2*s23*s24*s34+2*s13*s14^2*s24^4*s34^2-5*s13*s14^2*s24^4+2*s13*s14^2*s24^3*s34^3-4*s13*s14^2*s24^3*s34^2+10*s13*s14^2*s24^3*s34-2*s13*s14^2*s24^3-2*s13*s14^2*s24^2*s34^3+2*s13*s14^2*s24^2*s34^2-3*s13*s14^2*s24^2*s34-2*s13*s14*s23^3*s24^3*s34-3*s13*s14*s23^3*s24^3-4*s13*s14*s23^3*s24^2*s34^2-9*s13*s14*s23^3*s24^2*s34+10*s13*s14*s23^3*s24^2-4*s13*s14*s23^3*s24*s34^3+4*s13*s14*s23^3*s24*s34^2+2*s13*s14*s23^2*s24^3*s34^2+8*s13*s14*s23^2*s24^3*s34+5*s13*s14*s23^2*s24^3+2*s13*s14*s23^2*s24^2*s34^3+2*s13*s14*s23^2*s24^2*s34^2+2*s13*s14*s23^2*s24^2*s34-5*s13*s14*s23^2*s24^2+4*s13*s14*s23^2*s24*s34^3-4*s13*s14*s23^2*s24*s34^2+4*s13*s14*s23*s24^4*s34^2-4*s13*s14*s23*s24^4+4*s13*s14*s23*s24^3*s34^3-8*s13*s14*s23*s24^3*s34^2+6*s13*s14*s23*s24^3*s34-12*s13*s14*s23*s24^3-4*s13*s14*s23*s24^2*s34^3+4*s13*s14*s23*s24^2*s34^2+7*s13*s14*s23*s24^2*s34-5*s13*s14*s23*s24^2-4*s13*s14*s24^4*s34^2+4*s13*s14*s24^4-4*s13*s14*s24^3*s34^3+6*s13*s14*s24^3*s34^2-12*s13*s14*s24^3*s34+10*s13*s14*s24^3+2*s13*s14*s24^2*s34^3-2*s13*s14*s24^2*s34^2+2*s13*s23^3*s24^3*s34^2+3*s13*s23^3*s24^3*s34+2*s13*s23^3*s24^2*s34^3-2*s13*s23^3*s24^2*s34^2+2*s13*s23^2*s24^4*s34^2-2*s13*s23^2*s24^4+2*s13*s23^2*s24^3*s34^3-6*s13*s23^2*s24^3*s34^2-s13*s23^2*s24^3*s34-5*s13*s23^2*s24^3-4*s13*s23^2*s24^2*s34^3+4*s13*s23^2*s24^2*s34^2-4*s13*s23*s24^4*s34^2+4*s13*s23*s24^4-4*s13*s23*s24^3*s34^3+6*s13*s23*s24^3*s34^2-7*s13*s23*s24^3*s34+10*s13*s23*s24^3+2*s13*s23*s24^2*s34^3-2*s13*s23*s24^2*s34^2+2*s13*s24^4*s34^2-2*s13*s24^4+2*s13*s24^3*s34^3-2*s13*s24^3*s34^2+5*s13*s24^3*s34-5*s13*s24^3-5*s14^4*s23^3*s24+5*s14^4*s23^3+5*s14^4*s23^2*s24*s34-5*s14^4*s23^2*s34-3*s14^3*s23^4*s24-2*s14^3*s23^3*s24^2*s34+3*s14^3*s23^3*s24^2+2*s14^3*s23^3*s24*s34+8*s14^3*s23^3*s24-5*s14^3*s23^3-3*s14^3*s23^2*s24^3+5*s14^3*s23^2*s24^2*s34-10*s14^3*s23^2*s24*s34+5*s14^3*s23^2*s34-3*s14^3*s23*s24^4+3*s14^3*s23*s24^3*s34+6*s14^3*s23*s24^3-6*s14^3*s23*s24^2*s34-3*s14^3*s23*s24^2+3*s14^3*s23*s24*s34+3*s14^2*s23^4*s24^2+3*s14^2*s23^4*s24*s34+2*s14^2*s23^3*s24^3*s34-2*s14^2*s23^3*s24^3+2*s14^2*s23^3*s24^2*s34^2-2*s14^2*s23^3*s24^2*s34-9*s14^2*s23^3*s24^2+2*s14^2*s23^3*s24*s34^3-4*s14^2*s23^3*s24*s34^2-6*s14^2*s23^3*s24*s34+5*s14^2*s23^3*s24-2*s14^2*s23^3*s34^3+2*s14^2*s23^3*s34^2-2*s14^2*s23^2*s24^3*s34^2+2*s14^2*s23^2*s24^3*s34-2*s14^2*s23^2*s24^2*s34^3+4*s14^2*s23^2*s24^2*s34^2+s14^2*s23^2*s24^2*s34+3*s14^2*s23^2*s24^2+2*s14^2*s23^2*s24*s34^3-2*s14^2*s23^2*s24*s34^2-2*s14^2*s23*s24^4*s34^2+2*s14^2*s23*s24^4-2*s14^2*s23*s24^3*s34^3+6*s14^2*s23*s24^3*s34^2-7*s14^2*s23*s24^3*s34+3*s14^2*s23*s24^3+4*s14^2*s23*s24^2*s34^3-6*s14^2*s23*s24^2*s34^2+7*s14^2*s23*s24^2*s34-5*s14^2*s23*s24^2-2*s14^2*s23*s24*s34^3+2*s14^2*s23*s24*s34^2-3*s14*s23^4*s24^2*s34-2*s14*s23^3*s24^3*s34^2+2*s14*s23^3*s24^3*s34-2*s14*s23^3*s24^2*s34^3+4*s14*s23^3*s24^2*s34^2+4*s14*s23^3*s24^2*s34+2*s14*s23^3*s24*s34^3-2*s14*s23^3*s24*s34^2-2*s14*s23^2*s24^4*s34^2+2*s14*s23^2*s24^4-2*s14*s23^2*s24^3*s34^3+6*s14*s23^2*s24^3*s34^2-7*s14*s23^2*s24^3*s34+3*s14*s23^2*s24^3+4*s14*s23^2*s24^2*s34^3-6*s14*s23^2*s24^2*s34^2+4*s14*s23^2*s24^2*s34-5*s14*s23^2*s24^2-2*s14*s23^2*s24*s34^3+2*s14*s23^2*s24*s34^2+2*s14*s23*s24^4*s34^2-2*s14*s23*s24^4+2*s14*s23*s24^3*s34^3-4*s14*s23*s24^3*s34^2+5*s14*s23*s24^3*s34-3*s14*s23*s24^3-2*s14*s23*s24^2*s34^3+2*s14*s23*s24^2*s34^2-5*s14*s23*s24^2*s34+5*s14*s23*s24^2, 3*s13^2*s23^3*s24^3-3*s13^2*s23^3*s24^2*s34-6*s13^2*s23^2*s24^3+6*s13^2*s23^2*s24^2*s34+3*s13^2*s23*s24^3-3*s13^2*s23*s24^2*s34-5*s13*s14^3*s23^4+10*s13*s14^3*s23^3*s24+5*s13*s14^3*s23^3*s34-5*s13*s14^3*s23^2*s24^2-10*s13*s14^3*s23^2*s24*s34+5*s13*s14^3*s23*s24^2*s34-2*s13*s14^2*s23^4*s24+5*s13*s14^2*s23^4*s34-2*s13*s14^2*s23^3*s24^2*s34+3*s13*s14^2*s23^3*s24^2-2*s13*s14^2*s23^3*s24*s34^2-8*s13*s14^2*s23^3*s24*s34+5*s13*s14^2*s23^3*s24-2*s13*s14^2*s23^3*s34^3+2*s13*s14^2*s23^3*s34^2-5*s13*s14^2*s23^3*s34+4*s13*s14^2*s23^2*s24^3*s34-3*s13*s14^2*s23^2*s24^3+6*s13*s14^2*s23^2*s24^2*s34^2+2*s13*s14^2*s23^2*s24^2*s34-7*s13*s14^2*s23^2*s24^2+6*s13*s14^2*s23^2*s24*s34^3-6*s13*s14^2*s23^2*s24*s34^2+7*s13*s14^2*s23^2*s24*s34-2*s13*s14^2*s23*s24^4*s34+2*s13*s14^2*s23*s24^4-6*s13*s14^2*s23*s24^3*s34^2+3*s13*s14^2*s23*s24^3*s34+2*s13*s14^2*s23*s24^3-6*s13*s14^2*s23*s24^2*s34^3+6*s13*s14^2*s23*s24^2*s34^2-2*s13*s14^2*s23*s24^2*s34+2*s13*s14^2*s24^4*s34^2-2*s13*s14^2*s24^4*s34+2*s13*s14^2*s24^3*s34^3-2*s13*s14^2*s24^3*s34^2-2*s13*s14*s23^4*s24^2*s34-3*s13*s14*s23^4*s24^2-2*s13*s14*s23^4*s24*s34^2-6*s13*s14*s23^4*s24*s34+10*s13*s14*s23^4*s24-2*s13*s14*s23^4*s34^3+2*s13*s14*s23^4*s34^2+4*s13*s14*s23^3*s24^3*s34+3*s13*s14*s23^3*s24^3+6*s13*s14*s23^3*s24^2*s34^2+18*s13*s14*s23^3*s24^2*s34-17*s13*s14*s23^3*s24^2+6*s13*s14*s23^3*s24*s34^3-6*s13*s14*s23^3*s24*s34^2-5*s13*s14*s23^3*s24*s34-2*s13*s14*s23^2*s24^4*s34-3*s13*s14*s23^2*s24^4-4*s13*s14*s23^2*s24^3*s34^2-12*s13*s14*s23^2*s24^3*s34+11*s13*s14*s23^2*s24^3-4*s13*s14*s23^2*s24^2*s34^3+2*s13*s14*s23^2*s24^2*s34^2+8*s13*s14*s23^2*s24^2*s34-8*s13*s14*s23^2*s24^2-2*s13*s14*s23^2*s24*s34^3+2*s13*s14*s23^2*s24*s34^2+3*s13*s14*s23^2*s24*s34-2*s13*s14*s23*s24^4*s34^2+3*s13*s14*s23*s24^4*s34+4*s13*s14*s23*s24^4-2*s13*s14*s23*s24^3*s34^3+6*s13*s14*s23*s24^3*s34^2-16*s13*s14*s23*s24^3*s34+10*s13*s14*s23*s24^3+4*s13*s14*s23*s24^2*s34^3-4*s13*s14*s23*s24^2*s34^2+2*s13*s14*s24^5*s34^2-2*s13*s14*s24^5+2*s13*s14*s24^4*s34^3-4*s13*s14*s24^4*s34^2+7*s13*s14*s24^4*s34-5*s13*s14*s24^4-2*s13*s14*s24^3*s34^3+2*s13*s14*s24^3*s34^2+2*s13*s23^4*s24^2*s34^2+3*s13*s23^4*s24^2*s34+2*s13*s23^4*s24*s34^3-2*s13*s23^4*s24*s34^2-2*s13*s23^3*s24^3*s34^2-6*s13*s23^3*s24^3*s34-2*s13*s23^3*s24^3-2*s13*s23^3*s24^2*s34^3+2*s13*s23^3*s24^2*s34-5*s13*s23^3*s24^2-2*s13*s23^3*s24*s34^3+2*s13*s23^3*s24*s34^2-2*s13*s23^2*s24^4*s34^2+3*s13*s23^2*s24^4*s34+4*s13*s23^2*s24^4-2*s13*s23^2*s24^3*s34^3+4*s13*s23^2*s24^3*s34^2-4*s13*s23^2*s24^3*s34+12*s13*s23^2*s24^3+2*s13*s23^2*s24^2*s34^3-2*s13*s23^2*s24^2*s34^2-5*s13*s23^2*s24^2*s34+5*s13*s23^2*s24^2+2*s13*s23*s24^5*s34^2-2*s13*s23*s24^5+2*s13*s23*s24^4*s34^3+2*s13*s23*s24^4*s34-9*s13*s23*s24^4+2*s13*s23*s24^3*s34^3-2*s13*s23*s24^3*s34^2+10*s13*s23*s24^3*s34-10*s13*s23*s24^3-2*s13*s24^5*s34^2+2*s13*s24^5-2*s13*s24^4*s34^3+2*s13*s24^4*s34^2-5*s13*s24^4*s34+5*s13*s24^4+3*s14^2*s23^5*s24+2*s14^2*s23^4*s24^2*s34-8*s14^2*s23^4*s24^2+3*s14^2*s23^4*s24*s34-6*s14^2*s23^4*s24-5*s14^2*s23^4*s34+5*s14^2*s23^4-4*s14^2*s23^3*s24^3*s34+7*s14^2*s23^3*s24^3-2*s14^2*s23^3*s24^2*s34^2-4*s14^2*s23^3*s24^2*s34+12*s14^2*s23^3*s24^2-2*s14^2*s23^3*s24*s34^3+4*s14^2*s23^3*s24*s34^2+8*s14^2*s23^3*s24*s34-10*s14^2*s23^3*s24+2*s14^2*s23^3*s34^3-2*s14^2*s23^3*s34^2+2*s14^2*s23^2*s24^4*s34-2*s14^2*s23^2*s24^4+4*s14^2*s23^2*s24^3*s34^2-s14^2*s23^2*s24^3*s34-6*s14^2*s23^2*s24^3+4*s14^2*s23^2*s24^2*s34^3-8*s14^2*s23^2*s24^2*s34^2-s14^2*s23^2*s24^2*s34+5*s14^2*s23^2*s24^2-4*s14^2*s23^2*s24*s34^3+4*s14^2*s23^2*s24*s34^2-2*s14^2*s23*s24^4*s34^2+2*s14^2*s23*s24^4*s34-2*s14^2*s23*s24^3*s34^3+4*s14^2*s23*s24^3*s34^2-2*s14^2*s23*s24^3*s34+2*s14^2*s23*s24^2*s34^3-2*s14^2*s23*s24^2*s34^2-3*s14*s23^5*s24*s34-2*s14*s23^4*s24^2*s34^2+8*s14*s23^4*s24^2*s34-2*s14*s23^4*s24*s34^3+4*s14*s23^4*s24*s34^2+s14*s23^4*s24*s34+2*s14*s23^4*s34^3-2*s14*s23^4*s34^2+2*s14*s23^3*s24^3*s34^2-7*s14*s23^3*s24^3*s34+2*s14*s23^3*s24^3+2*s14*s23^3*s24^2*s34^3-4*s14*s23^3*s24^2*s34^2-7*s14*s23^3*s24^2*s34+3*s14*s23^3*s24^2-2*s14*s23^3*s24*s34^3+2*s14*s23^3*s24*s34^2+5*s14*s23^3*s24*s34-5*s14*s23^3*s24+2*s14*s23^2*s24^4*s34^2+2*s14*s23^2*s24^4*s34-4*s14*s23^2*s24^4+2*s14*s23^2*s24^3*s34^3-4*s14*s23^2*s24^3*s34^2+11*s14*s23^2*s24^3*s34-6*s14*s23^2*s24^3-2*s14*s23^2*s24^2*s34^3+2*s14*s23^2*s24^2*s34^2-10*s14*s23^2*s24^2*s34+10*s14*s23^2*s24^2-2*s14*s23*s24^5*s34^2+2*s14*s23*s24^5-2*s14*s23*s24^4*s34^3+4*s14*s23*s24^4*s34^2-5*s14*s23*s24^4*s34+3*s14*s23*s24^4+2*s14*s23*s24^3*s34^3-2*s14*s23*s24^3*s34^2+5*s14*s23*s24^3*s34-5*s14*s23*s24^3, 3*s13^2*s14*s24^4-3*s13^2*s14*s24^3*s34-3*s13^2*s14*s24^3+3*s13^2*s14*s24^2*s34+3*s13^2*s23^2*s24^3-3*s13^2*s23^2*s24^2*s34+3*s13^2*s23*s24^4-3*s13^2*s23*s24^3*s34-6*s13^2*s23*s24^3+6*s13^2*s23*s24^2*s34-3*s13^2*s24^4+3*s13^2*s24^3*s34+3*s13^2*s24^3-3*s13^2*s24^2*s34-5*s13*s14^3*s23^3+5*s13*s14^3*s23^2*s24+5*s13*s14^3*s23^2*s34-5*s13*s14^3*s23*s24*s34-2*s13*s14^2*s23^3*s24+5*s13*s14^2*s23^3*s34-2*s13*s14^2*s23^2*s24^2*s34+s13*s14^2*s23^2*s24^2-2*s13*s14^2*s23^2*s24*s34^2-3*s13*s14^2*s23^2*s24*s34+5*s13*s14^2*s23^2*s24-2*s13*s14^2*s23^2*s34^3+2*s13*s14^2*s23^2*s34^2-5*s13*s14^2*s23^2*s34+2*s13*s14^2*s23*s24^3*s34-2*s13*s14^2*s23*s24^3+4*s13*s14^2*s23*s24^2*s34^2-s13*s14^2*s23*s24^2*s34-2*s13*s14^2*s23*s24^2+4*s13*s14^2*s23*s24*s34^3-4*s13*s14^2*s23*s24*s34^2+2*s13*s14^2*s23*s24*s34-2*s13*s14^2*s24^3*s34^2+2*s13*s14^2*s24^3*s34-2*s13*s14^2*s24^2*s34^3+2*s13*s14^2*s24^2*s34^2-2*s13*s14*s23^3*s24^2*s34-3*s13*s14*s23^3*s24^2-2*s13*s14*s23^3*s24*s34^2-6*s13*s14*s23^3*s24*s34+10*s13*s14*s23^3*s24-2*s13*s14*s23^3*s34^3+2*s13*s14*s23^3*s34^2+2*s13*s14*s23^2*s24^3*s34+4*s13*s14*s23^2*s24^2*s34^2+12*s13*s14*s23^2*s24^2*s34-7*s13*s14*s23^2*s24^2+4*s13*s14*s23^2*s24*s34^3-4*s13*s14*s23^2*s24*s34^2-5*s13*s14*s23^2*s24*s34-3*s13*s14*s23*s24^4+4*s13*s14*s23*s24^3-2*s13*s14*s23*s24^2*s34^2+3*s13*s14*s23*s24^2*s34-8*s13*s14*s23*s24^2-2*s13*s14*s23*s24*s34^3+2*s13*s14*s23*s24*s34^2+3*s13*s14*s23*s24*s34-2*s13*s14*s24^4*s34^2+2*s13*s14*s24^4-2*s13*s14*s24^3*s34^3+4*s13*s14*s24^3*s34^2-7*s13*s14*s24^3*s34+5*s13*s14*s24^3+2*s13*s14*s24^2*s34^3-2*s13*s14*s24^2*s34^2+2*s13*s23^3*s24^2*s34^2+3*s13*s23^3*s24^2*s34+2*s13*s23^3*s24*s34^3-2*s13*s23^3*s24*s34^2-3*s13*s23^2*s24^3*s34-2*s13*s23^2*s24^3-2*s13*s23^2*s24^2*s34^2+2*s13*s23^2*s24^2*s34-5*s13*s23^2*s24^2-2*s13*s23^2*s24*s34^3+2*s13*s23^2*s24*s34^2-2*s13*s23*s24^4*s34^2+2*s13*s23*s24^4-2*s13*s23*s24^3*s34^3+2*s13*s23*s24^3*s34^2-2*s13*s23*s24^3*s34+7*s13*s23*s24^3-5*s13*s23*s24^2*s34+5*s13*s23*s24^2+2*s13*s24^4*s34^2-2*s13*s24^4+2*s13*s24^3*s34^3-2*s13*s24^3*s34^2+5*s13*s24^3*s34-5*s13*s24^3+3*s14^2*s23^4*s24+2*s14^2*s23^3*s24^2*s34-5*s14^2*s23^3*s24^2+3*s14^2*s23^3*s24*s34-6*s14^2*s23^3*s24-5*s14^2*s23^3*s34+5*s14^2*s23^3-2*s14^2*s23^2*s24^3*s34+2*s14^2*s23^2*s24^3-2*s14^2*s23^2*s24^2*s34^2-s14^2*s23^2*s24^2*s34+6*s14^2*s23^2*s24^2-2*s14^2*s23^2*s24*s34^3+4*s14^2*s23^2*s24*s34^2+3*s14^2*s23^2*s24*s34-5*s14^2*s23^2*s24+2*s14^2*s23^2*s34^3-2*s14^2*s23^2*s34^2+2*s14^2*s23*s24^3*s34^2-2*s14^2*s23*s24^3*s34+2*s14^2*s23*s24^2*s34^3-4*s14^2*s23*s24^2*s34^2+2*s14^2*s23*s24^2*s34-2*s14^2*s23*s24*s34^3+2*s14^2*s23*s24*s34^2-3*s14*s23^4*s24*s34-2*s14*s23^3*s24^2*s34^2+5*s14*s23^3*s24^2*s34-2*s14*s23^3*s24*s34^3+4*s14*s23^3*s24*s34^2+s14*s23^3*s24*s34+2*s14*s23^3*s34^3-2*s14*s23^3*s34^2-2*s14*s23^2*s24^3*s34+2*s14*s23^2*s24^3-6*s14*s23^2*s24^2*s34+3*s14*s23^2*s24^2+5*s14*s23^2*s24*s34-5*s14*s23^2*s24+2*s14*s23*s24^4*s34^2-2*s14*s23*s24^4+2*s14*s23*s24^3*s34^3-4*s14*s23*s24^3*s34^2+5*s14*s23*s24^3*s34-3*s14*s23*s24^3-2*s14*s23*s24^2*s34^3+2*s14*s23*s24^2*s34^2-5*s14*s23*s24^2*s34+5*s14*s23*s24^2, 3*s13^2*s14^2*s24^2-3*s13^2*s14^2*s24*s34+3*s13^2*s14*s23*s24^2-3*s13^2*s14*s23*s24*s34-3*s13^2*s14*s24^2+3*s13^2*s14*s24*s34-5*s13*s14^3*s23^2+5*s13*s14^3*s23*s34-2*s13*s14^2*s23^2*s24+5*s13*s14^2*s23^2*s34-2*s13*s14^2*s23*s24^2*s34-s13*s14^2*s23*s24^2-2*s13*s14^2*s23*s24*s34^2+2*s13*s14^2*s23*s24*s34+5*s13*s14^2*s23*s24-2*s13*s14^2*s23*s34^3+2*s13*s14^2*s23*s34^2-5*s13*s14^2*s23*s34+2*s13*s14^2*s24^2*s34^2-2*s13*s14^2*s24^2*s34+2*s13*s14^2*s24*s34^3-2*s13*s14^2*s24*s34^2-2*s13*s14*s23^2*s24^2*s34-3*s13*s14*s23^2*s24^2-2*s13*s14*s23^2*s24*s34^2-6*s13*s14*s23^2*s24*s34+10*s13*s14*s23^2*s24-2*s13*s14*s23^2*s34^3+2*s13*s14*s23^2*s34^2+2*s13*s14*s23*s24^2*s34^2+3*s13*s14*s23*s24^2*s34+2*s13*s14*s23*s24*s34^3-2*s13*s14*s23*s24*s34^2-2*s13*s14*s23*s24*s34+2*s13*s14*s24^3*s34^2-2*s13*s14*s24^3+2*s13*s14*s24^2*s34^3-4*s13*s14*s24^2*s34^2+7*s13*s14*s24^2*s34-5*s13*s14*s24^2-2*s13*s14*s24*s34^3+2*s13*s14*s24*s34^2+2*s13*s23^2*s24^2*s34^2+3*s13*s23^2*s24^2*s34+2*s13*s23^2*s24*s34^3-2*s13*s23^2*s24*s34^2+2*s13*s23*s24^3*s34^2-2*s13*s23*s24^3+2*s13*s23*s24^2*s34^3-4*s13*s23*s24^2*s34^2+2*s13*s23*s24^2*s34-5*s13*s23*s24^2-2*s13*s23*s24*s34^3+2*s13*s23*s24*s34^2-2*s13*s24^3*s34^2+2*s13*s24^3-2*s13*s24^2*s34^3+2*s13*s24^2*s34^2-5*s13*s24^2*s34+5*s13*s24^2+3*s14^2*s23^3*s24+2*s14^2*s23^2*s24^2*s34-2*s14^2*s23^2*s24^2+3*s14^2*s23^2*s24*s34-6*s14^2*s23^2*s24-5*s14^2*s23^2*s34+5*s14^2*s23^2-2*s14^2*s23*s24^2*s34^2+2*s14^2*s23*s24^2*s34-2*s14^2*s23*s24*s34^3+4*s14^2*s23*s24*s34^2-2*s14^2*s23*s24*s34+2*s14^2*s23*s34^3-2*s14^2*s23*s34^2-3*s14*s23^3*s24*s34-2*s14*s23^2*s24^2*s34^2+2*s14*s23^2*s24^2*s34-2*s14*s23^2*s24*s34^3+4*s14*s23^2*s24*s34^2+s14*s23^2*s24*s34+2*s14*s23^2*s34^3-2*s14*s23^2*s34^2-2*s14*s23*s24^3*s34^2+2*s14*s23*s24^3-2*s14*s23*s24^2*s34^3+4*s14*s23*s24^2*s34^2-5*s14*s23*s24^2*s34+3*s14*s23*s24^2+2*s14*s23*s24*s34^3-2*s14*s23*s24*s34^2+5*s14*s23*s24*s34-5*s14*s23*s24, 3*s13^3*s23*s24^3-3*s13^3*s23*s24^2*s34-3*s13^3*s24^3+3*s13^3*s24^2*s34-5*s13^2*s14^2*s23^2*s24+5*s13^2*s14^2*s23^2*s34+5*s13^2*s14^2*s23*s24^2-5*s13^2*s14^2*s23*s24*s34-2*s13^2*s14*s23^2*s24^2+2*s13^2*s14*s23^2*s24*s34-2*s13^2*s14*s23*s24^3*s34+s13^2*s14*s23*s24^3-4*s13^2*s14*s23*s24^2*s34+5*s13^2*s14*s23*s24^2+2*s13^2*s14*s24^4*s34-2*s13^2*s14*s24^4+5*s13^2*s14*s24^3*s34-2*s13^2*s14*s24^3-3*s13^2*s14*s24^2*s34-2*s13^2*s23^2*s24^3*s34-3*s13^2*s23^2*s24^3-5*s13^2*s23^2*s24^2*s34+10*s13^2*s23^2*s24^2+2*s13^2*s23*s24^4*s34+3*s13^2*s23*s24^4+7*s13^2*s23*s24^3*s34-12*s13^2*s23*s24^3+5*s13^2*s23*s24^2*s34-5*s13^2*s23*s24^2-2*s13^2*s24^4*s34+2*s13^2*s24^4-5*s13^2*s24^3*s34+5*s13^2*s24^3+5*s13*s14^2*s23^2*s24*s34-5*s13*s14^2*s23^2*s34-5*s13*s14^2*s23*s24^2*s34+5*s13*s14^2*s23*s24*s34+3*s13*s14*s23^3*s24^2-3*s13*s14*s23^3*s24*s34+2*s13*s14*s23^2*s24^3*s34-5*s13*s14*s23^2*s24^3-2*s13*s14*s23^2*s24^2*s34^2+13*s13*s14*s23^2*s24^2*s34-6*s13*s14*s23^2*s24^2-6*s13*s14*s23^2*s24*s34^2-s13*s14*s23^2*s24*s34+5*s13*s14*s23^2*s24+5*s13*s14*s23^2*s34^2-5*s13*s14*s23^2*s34-2*s13*s14*s23*s24^4*s34+2*s13*s14*s23*s24^4+4*s13*s14*s23*s24^3*s34^2-12*s13*s14*s23*s24^3*s34+6*s13*s14*s23*s24^3+12*s13*s14*s23*s24^2*s34^2-5*s13*s14*s23*s24^2*s34-5*s13*s14*s23*s24^2-10*s13*s14*s23*s24*s34^2+10*s13*s14*s23*s24*s34-2*s13*s14*s24^4*s34^2+2*s13*s14*s24^4*s34-6*s13*s14*s24^3*s34^2+6*s13*s14*s24^3*s34+5*s13*s14*s24^2*s34^2-5*s13*s14*s24^2*s34+2*s13*s23^2*s24^3*s34^2+3*s13*s23^2*s24^3*s34+6*s13*s23^2*s24^2*s34^2-11*s13*s23^2*s24^2*s34-5*s13*s23^2*s24*s34^2+5*s13*s23^2*s24*s34-2*s13*s23*s24^4*s34^2-3*s13*s23*s24^4*s34-8*s13*s23*s24^3*s34^2+13*s13*s23*s24^3*s34-s13*s23*s24^2*s34^2+s13*s23*s24^2*s34+5*s13*s23*s24*s34^2-5*s13*s23*s24*s34+2*s13*s24^4*s34^2-2*s13*s24^4*s34+6*s13*s24^3*s34^2-6*s13*s24^3*s34-5*s13*s24^2*s34^2+5*s13*s24^2*s34-3*s14*s23^3*s24^2*s34+3*s14*s23^3*s24*s34-2*s14*s23^2*s24^3*s34^2+5*s14*s23^2*s24^3*s34-4*s14*s23^2*s24^2*s34^2+s14*s23^2*s24^2*s34+11*s14*s23^2*s24*s34^2-11*s14*s23^2*s24*s34-5*s14*s23^2*s34^2+5*s14*s23^2*s34+2*s14*s23*s24^4*s34^2-2*s14*s23*s24^4*s34+4*s14*s23*s24^3*s34^2-4*s14*s23*s24^3*s34-11*s14*s23*s24^2*s34^2+11*s14*s23*s24^2*s34+5*s14*s23*s24*s34^2-5*s14*s23*s24*s34, 3*s13^3*s14*s24^2-3*s13^3*s14*s24*s34-5*s13^2*s14^2*s23*s24+5*s13^2*s14^2*s23*s34-2*s13^2*s14*s23*s24^2+2*s13^2*s14*s23*s24*s34-2*s13^2*s14*s24^3*s34+2*s13^2*s14*s24^3-5*s13^2*s14*s24^2*s34+2*s13^2*s14*s24^2+3*s13^2*s14*s24*s34-2*s13^2*s23*s24^3*s34-3*s13^2*s23*s24^3-5*s13^2*s23*s24^2*s34+10*s13^2*s23*s24^2+2*s13^2*s24^3*s34-2*s13^2*s24^3+5*s13^2*s24^2*s34-5*s13^2*s24^2+5*s13*s14^2*s23*s24*s34-5*s13*s14^2*s23*s34+3*s13*s14*s23^2*s24^2-3*s13*s14*s23^2*s24*s34+2*s13*s14*s23*s24^3*s34-2*s13*s14*s23*s24^3-2*s13*s14*s23*s24^2*s34^2+10*s13*s14*s23*s24^2*s34-6*s13*s14*s23*s24^2-6*s13*s14*s23*s24*s34^2-s13*s14*s23*s24*s34+5*s13*s14*s23*s24+5*s13*s14*s23*s34^2-5*s13*s14*s23*s34+2*s13*s14*s24^3*s34^2-2*s13*s14*s24^3*s34+6*s13*s14*s24^2*s34^2-6*s13*s14*s24^2*s34-5*s13*s14*s24*s34^2+5*s13*s14*s24*s34+2*s13*s23*s24^3*s34^2+3*s13*s23*s24^3*s34+6*s13*s23*s24^2*s34^2-11*s13*s23*s24^2*s34-5*s13*s23*s24*s34^2+5*s13*s23*s24*s34-2*s13*s24^3*s34^2+2*s13*s24^3*s34-6*s13*s24^2*s34^2+6*s13*s24^2*s34+5*s13*s24*s34^2-5*s13*s24*s34-3*s14*s23^2*s24^2*s34+3*s14*s23^2*s24*s34-2*s14*s23*s24^3*s34^2+2*s14*s23*s24^3*s34-4*s14*s23*s24^2*s34^2+4*s14*s23*s24^2*s34+11*s14*s23*s24*s34^2-11*s14*s23*s24*s34-5*s14*s23*s34^2+5*s14*s23*s34, 2*s12*s23^2*s24^2*s34^2+2*s12*s23^2*s24^2*s34+6*s12*s23^2*s24*s34^2-5*s12*s23^2*s24*s34-5*s12*s23^2*s34^2-10*s12*s23*s24^2*s34^2+3*s12*s23*s24^2*s34+2*s12*s23*s24*s34^2+5*s12*s23*s34^2+3*s12*s24^2*s34^2-3*s12*s24*s34^2+3*s13^2*s14*s23*s24^2-3*s13^2*s14*s23*s24*s34-3*s13^2*s14*s24^2*s34+3*s13^2*s14*s24*s34^2-5*s13*s14^2*s23^2*s24+5*s13*s14^2*s23^2*s34+5*s13*s14^2*s23*s24*s34-5*s13*s14^2*s23*s34^2-2*s13*s14*s23^2*s24^2+2*s13*s14*s23^2*s24*s34-2*s13*s14*s23*s24^3*s34+2*s13*s14*s23*s24^3+2*s13*s14*s23*s24^2-2*s13*s14*s23*s24*s34^2+2*s13*s14*s24^3*s34^2-2*s13*s14*s24^3*s34+2*s13*s14*s24^2*s34^2-2*s13*s14*s24^2*s34-2*s13*s23^2*s24^3*s34-3*s13*s23^2*s24^3-5*s13*s23^2*s24^2*s34+10*s13*s23^2*s24^2+2*s13*s23*s24^3*s34^2+5*s13*s23*s24^3*s34-2*s13*s23*s24^3+5*s13*s23*s24^2*s34^2-5*s13*s23*s24^2*s34-5*s13*s23*s24^2-2*s13*s24^3*s34^2+2*s13*s24^3*s34-5*s13*s24^2*s34^2+5*s13*s24^2*s34+3*s14*s23^3*s24^2-3*s14*s23^3*s24*s34+2*s14*s23^2*s24^3*s34-2*s14*s23^2*s24^3-2*s14*s23^2*s24^2*s34^2+5*s14*s23^2*s24^2*s34-6*s14*s23^2*s24^2-3*s14*s23^2*s24*s34^2+s14*s23^2*s24*s34+5*s14*s23^2*s24+5*s14*s23^2*s34^2-5*s14*s23^2*s34-2*s14*s23*s24^3*s34^2+2*s14*s23*s24^3*s34+2*s14*s23*s24*s34^2-2*s14*s23*s24*s34, 2*s12*s14*s24^2*s34^2-6*s12*s14*s24^2*s34+6*s12*s14*s24*s34^2+3*s12*s14*s24*s34-5*s12*s14*s34^2+2*s12*s23*s24^2*s34^2+2*s12*s23*s24^2*s34+6*s12*s23*s24*s34^2-5*s12*s23*s24*s34-5*s12*s23*s34^2-2*s12*s24^2*s34^2+3*s12*s24^2*s34-6*s12*s24*s34^2+5*s12*s34^2+3*s13^2*s14*s24^2-3*s13^2*s14*s24*s34-5*s13*s14^2*s23*s24+5*s13*s14^2*s23*s34-2*s13*s14*s23*s24^2+2*s13*s14*s23*s24*s34-2*s13*s14*s24^3*s34+2*s13*s14*s24^3-2*s13*s14*s24^2*s34+2*s13*s14*s24^2-2*s13*s23*s24^3*s34-3*s13*s23*s24^3-5*s13*s23*s24^2*s34+10*s13*s23*s24^2+2*s13*s24^3*s34-2*s13*s24^3+5*s13*s24^2*s34-5*s13*s24^2+3*s14*s23^2*s24^2-3*s14*s23^2*s24*s34+2*s14*s23*s24^3*s34-2*s14*s23*s24^3-2*s14*s23*s24^2*s34^2+8*s14*s23*s24^2*s34-6*s14*s23*s24^2-6*s14*s23*s24*s34^2+s14*s23*s24*s34+5*s14*s23*s24+5*s14*s23*s34^2-5*s14*s23*s34, s12*s14*s23-s12*s14*s34-s12*s23*s34+s12*s34+s14*s23*s34-s14*s23, s12*s13*s24-s12*s13*s34-s12*s24*s34+s12*s34+s13*s24*s34-s13*s24, 2*s12*s13*s23^2*s34^2+10*s12*s13*s23^2*s34-2*s12*s13*s23*s24^2*s34-2*s12*s13*s23*s24^2-8*s12*s13*s23*s24*s34-5*s12*s13*s23*s24+2*s12*s13*s23*s34^3+2*s12*s13*s24^2*s34+3*s12*s13*s24*s34-2*s12*s13*s34^3-2*s12*s14*s23^2*s24^2-6*s12*s14*s23^2*s24+5*s12*s14*s23^2+4*s12*s14*s23*s24^2*s34+2*s12*s14*s23*s24*s34^2+4*s12*s14*s23*s24*s34-2*s12*s14*s23*s34^2-5*s12*s14*s23*s34-2*s12*s14*s24^2*s34^2-2*s12*s14*s24*s34^3+2*s12*s14*s24*s34^2+2*s12*s14*s34^3+2*s12*s23^2*s24^2*s34+2*s12*s23^2*s24*s34^2+8*s12*s23^2*s24*s34-2*s12*s23^2*s34^2-10*s12*s23^2*s34+3*s13^2*s14*s23*s24-3*s13^2*s14*s24*s34-5*s13*s14^2*s23^2+5*s13*s14^2*s23*s34-2*s13*s14*s23^2*s24-2*s13*s14*s23*s24^2*s34+2*s13*s14*s23*s24^2-2*s13*s14*s23*s24*s34^2+2*s13*s14*s23*s24*s34+2*s13*s14*s23*s24-2*s13*s14*s23*s34^3+2*s13*s14*s23*s34^2+2*s13*s14*s24^2*s34^2-2*s13*s14*s24^2*s34+2*s13*s14*s24*s34^3-2*s13*s14*s24*s34^2-2*s13*s23^2*s24^2*s34-3*s13*s23^2*s24^2-2*s13*s23^2*s24*s34^2-8*s13*s23^2*s24*s34+10*s13*s23^2*s24+5*s13*s23*s24^2*s34+3*s14*s23^3*s24-3*s14*s23^2*s24*s34, 2*s12*s13*s14*s34^2+2*s12*s13*s14*s34+2*s12*s13*s23*s24^2+10*s12*s13*s23*s24-2*s12*s13*s24^2-5*s12*s13*s24-2*s12*s14*s23*s24^2-6*s12*s14*s23*s24+5*s12*s14*s23+2*s12*s14*s24^2*s34+2*s12*s14*s24*s34^2-2*s12*s14*s34^2-2*s12*s14*s34+3*s13^2*s14*s24-5*s13*s14^2*s23-2*s13*s14*s23*s24-2*s13*s14*s24^2*s34+2*s13*s14*s24^2-2*s13*s14*s24*s34^2+2*s13*s14*s24-5*s13*s23*s24^2+3*s14*s23^2*s24 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Fri Aug 11 12:52:15 2006 Input: R6 = singular.ring(0, '(s12,s13,s14,s23,s24,s34)', 'lp') I = singular.ideal(['s14*s23 - s13*s14*s23 - s13*s24 + s13*s14*s24 + s13*s23*s24 - s14*s23*s24', '-5*s12*s13*s14*s23 + 5*s13*s14^2*s23 + 3*s12*s13*s14*s24 - 3*s13^2*s14*s24 - 5*s12*s13*s23*s24 + 3*s12*s14*s23*s24 + 2*s13*s14*s23*s24 - 2*s12*s13*s14*s23*s24 - 3*s14*s23^2*s24 + 5*s13*s23*s24^2', 's14*s23 - s12*s14*s23 - s12*s34 + s12*s14*s34 + s12*s23*s34 - s14*s23*s34', 's13*s24 - s12*s13*s24 - s12*s34 + s12*s13*s34 + s12*s24*s34 - s13*s24*s34', ' 5*s12^2*s13*s14*s23 - 5*s12*s13^2*s14*s23 - 5*s12*s13*s14^2*s23 + 5*s13^2*s14^2*s23 - 5*s12*s13*s14*s23^2 - 5*s13*s14^2*s23^2 - 3*s12^2*s13*s14*s24 + 6*s12*s13^2*s14*s24 - 3*s13^3*s14*s24 - 5*s12^2*s13*s23*s24 + 5*s12*s13^2*s23*s24 + 3*s12^2*s14*s23*s24 - s13^2*s14*s23*s24 + 5*s12*s13*s23^2*s24 - 6*s12*s14*s23^2*s24 + s13*s14*s23^2*s24 + 3*s14*s23^3*s24 + 5*s12*s13*s23*s24^2 + 5*s13^2*s23*s24^2 - 5*s13*s23^2*s24^2 + 10*s12*s13*s14*s23*s34 - 10*s12*s13*s23*s24*s34', ' -2*s13*s14*s23^2 - s13^2*s23*s24 + 2*s13*s14*s23*s24 - s14^2*s23*s24 - 2*s13*s14*s24^2 + 2*s13*s14*s23*s34 + 2*s13*s14*s24*s34 + s13*s23*s24*s34 + s14*s23*s24*s34 - 2*s13*s14*s23*s24*s34', ' s12*s13*s23 - s12*s14*s23 - s13*s14*s23 + s14^2*s23 + s14*s23^2 - s12*s13*s24 + s13^2*s24 + s12*s14*s24 - s13*s14*s24 - s13*s23*s24 - s14*s23*s24 + s13*s24^2 + s12^2*s34 - s12*s13*s34 - s12*s14*s34 + s13*s14*s34 - s12*s23*s34 - s14*s23*s34 - s12*s24*s34 - s13*s24*s34 + s23*s24*s34 + s12*s34^2', '-5*s12*s13*s23*s24 + 5*s12*s13*s24^2 - 5*s12*s13*s23*s34 - s12^2*s24*s34 + 2*s12*s13*s24*s34 - s13^2*s24*s34 + s12*s23*s24*s34 + s13*s23*s24*s34 - 2*s12*s13*s23*s24*s34 + 5*s12*s13*s34^2', ' -3*s12*s14*s23^2 + 3*s12*s14*s23*s24 - s12^2*s23*s34 + 2*s12*s14*s23*s34 - s14^2*s23*s34 + 3*s12*s14*s24*s34 + s12*s23*s24*s34 + s14*s23*s24*s34 - 2*s12*s14*s23*s24*s34 - 3*s12*s14*s34^2', ' -5*s12*s13*s14*s23 + 5*s12*s14^2*s23 - 2*s12^2*s14*s34 + 2*s12*s13*s14*s34 - 5*s12*s13*s23*s34 + 2*s12*s14*s23*s34 + 2*s13*s14*s23*s34 - 2*s12*s13*s14*s23*s34 - 2*s14*s23^2*s34 + 5*s12*s23*s34^2', ' -5*s12^2*s13*s23*s24 - 5*s12*s13^2*s23*s24 + 10*s12*s13*s14*s23*s24 + 5*s12*s13*s23^2*s24 + 5*s12^2*s13*s24^2 - 5*s12*s13^2*s24^2 - 5*s12*s13*s23*s24^2 + 5*s12^2*s13*s23*s34 + 5*s12*s13^2*s23*s34 - 10*s12*s13*s14*s23*s34 - 5*s12*s13*s23^2*s34 - s12^3*s24*s34 - 7*s12^2*s13*s24*s34 + 7*s12*s13^2*s24*s34 + s13^3*s24*s34 + 2*s12^2*s23*s24*s34 - 2*s13^2*s23*s24*s34 - s12*s23^2*s24*s34 + s13*s23^2*s24*s34 + 5*s12^2*s13*s34^2 - 5*s12*s13^2*s34^2 + 5*s12*s13*s23*s34^2', '-5*s12^2*s13*s14*s23 + 5*s12*s13^2*s14*s23 + 5*s12^2*s14^2*s23 - 5*s12*s13*s14^2*s23 - 5*s12*s13*s14*s23^2 - 5*s12*s14^2*s23^2 + 10*s12*s13*s14*s23*s24 - 2*s12^3*s14*s34 + 4*s12^2*s13*s14*s34 - 2*s12*s13^2*s14*s34 + 5*s12^2*s13*s23*s34 - 5*s12*s13^2*s23*s34 - 4*s12^2*s14*s23*s34 + 2*s13^2*s14*s23*s34 + 5*s12*s13*s23^2*s34 + 4*s12*s14*s23^2*s34 - 4*s13*s14*s23^2*s34 + 2*s14*s23^3*s34 - 10*s12*s13*s23*s24*s34 + 5*s12^2*s23*s34^2 + 5*s12*s13*s23*s34^2 - 5*s12*s23^2*s34^2', '-3*s12*s13^2*s24 + 3*s12*s13*s14*s24 - 2*s12^2*s13*s34 + 2*s12*s13*s14*s34 + 2*s12*s13*s24*s34 + 3*s12*s14*s24*s34 + 2*s13*s14*s24*s34 - 2*s12*s13*s14*s24*s34 - 2*s13*s24^2*s34 - 3*s12*s24*s34^2', ' -3*s12^2*s14*s23^2 + 3*s12*s14^2*s23^2 + 3*s12^2*s14*s23*s24 - 6*s12*s13*s14*s23*s24 + 3*s12*s14^2*s23*s24 + 3*s12*s14*s23^2*s24 - 3*s12*s14*s23*s24^2 - s12^3*s23*s34 + 9*s12^2*s14*s23*s34 - 9*s12*s14^2*s23*s34 + s14^3*s23*s34 - 3*s12^2*s14*s24*s34 + 6*s12*s13*s14*s24*s34 - 3*s12*s14^2*s24*s34 + 2*s12^2*s23*s24*s34 - 2*s14^2*s23*s24*s34 + 3*s12*s14*s24^2*s34 - s12*s23*s24^2*s34 + s14*s23*s24^2*s34 - 3*s12^2*s14*s34^2 + 3*s12*s14^2*s34^2 - 3*s12*s14*s24*s34^2', '-2*s13^2*s14*s23^2 + 2*s13*s14^2*s23^2 - s13^3*s23*s24 + 7*s13^2*s14*s23*s24 - 7*s13*s14^2*s23*s24 + s14^3*s23*s24 - 2*s13^2*s14*s24^2 + 2*s13*s14^2*s24^2 - 4*s12*s13*s14*s23*s34 + 2*s13^2*s14*s23*s34 + 2*s13*s14^2*s23*s34 + 2*s13*s14*s23^2*s34 + 4*s12*s13*s14*s24*s34 - 2*s13^2*s14*s24*s34 - 2*s13*s14^2*s24*s34 + 2*s13^2*s23*s24*s34 - 2*s14^2*s23*s24*s34 - 2*s13*s14*s24^2*s34 - 2*s13*s14*s23*s34^2 + 2*s13*s14*s24*s34^2 - s13*s23*s24*s34^2 + s14*s23*s24*s34^2', '-3*s12^2*s13^2*s24 + 3*s12^2*s13*s14*s24 + 3*s12*s13^2*s14*s24 - 3*s12*s13*s14^2*s24 - 6*s12*s13*s14*s23*s24 + 3*s12*s13^2*s24^2 + 3*s12*s13*s14*s24^2 - 2*s12^3*s13*s34 + 4*s12^2*s13*s14*s34 - 2*s12*s13*s14^2*s34 + 12*s12^2*s13*s24*s34 - 3*s12^2*s14*s24*s34 + 3*s12*s14^2*s24*s34 + 2*s13*s14^2*s24*s34 + 6*s12*s14*s23*s24*s34 - 12*s12*s13*s24^2*s34 - 3*s12*s14*s24^2*s34 - 4*s13*s14*s24^2*s34 + 2*s13*s24^3*s34 - 3*s12^2*s24*s34^2 - 3*s12*s14*s24*s34^2 + 3*s12*s24^2*s34^2']) I2 = I.groebner() I2 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, *args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in function_call(self, function, args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in new(self, code) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/singular.py in __call__(self, x, type) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/singular.py in __init__(self, parent, type, value, is_name) TypeError: Singular crashed executing def sage18=groebner(sage17); --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'I2' is not defined Exiting SAGE (CPU time 0m0.05s, Wall time 0m21.29s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Fri Aug 11 12:44:52 2006 Input: R6 = singular.ring(0, '(x,y,z,w,u,v)', 'lp') I = singular.ideal([x*y*z*u*v - 2*y*u^2*v - 3*x*u*v^2, -3*x^2*z*w^2 + 3*x*z^2*w^2 + 3*x^2*z*w*u - 6*x*y*z*w*u + 3*x*z^2*w*u + 3*x*z*w^2*u - 3*x*z*w*u^2 - x^3*w*v + 9*x^2*z*w*v - 9*x*z^2*w*v + z^3*w*v - 3*x^2*z*u*v + 6*x*y*z*u*v - 3*x*z^2*u*v + 2*x^2*w*u*v - 2*z^2*w*u*v + 3*x*z*u^2*v - x*w*u^2*v + z*w*u^2*v - 3*x^2*z*v^2 + 3*x*z^2*v^2 - 3*x*z*u*v^2, -2*y^2*z*w^2 + 2*y*z^2*w^2 - y^3*w*u + 7*y^2*z*w*u - 7*y*z^2*w*u + z^3*w*u - 2*y^2*z*u^2 + 2*y*z^2*u^2 - 4*x*y*z*w*v + 2*y^2*z*w*v + 2*y*z^2*w*v + 2*y*z*w^2*v + 4*x*y*z*u*v - 2*y^2*z*u*v - 2*y*z^2*u*v + 2*y^2*w*u*v - 2*z^2*w*u*v - 2*y*z*u^2*v - 2*y*z*w*v^2 + 2*y*z*u*v^2 - y*w*u*v^2 + z*w*u*v^2, -3*x^2*y^2*u + 3*x^2*y*z*u + 3*x*y^2*z*u - 3*x*y*z^2*u - 6*x*y*z*w*u + 3*x*y^2*u^2 + 3*x*y*z*u^2 - 2*x^3*y*v + 4*x^2*y*z*v - 2*x*y*z^2*v + 12*x^2*y*u*v - 3*x^2*z*u*v + 3*x*z^2*u*v + 2*y*z^2*u*v + 6*x*z*w*u*v - 12*x*y*u^2*v - 3*x*z*u^2*v - 4*y*z*u^2*v + 2*y*u^3*v - 3*x^2*u*v^2 - 3*x*z*u*v^2 + 3*x*u^2*v^2]) I2 = I.groebner() I2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'ComplexNumber' object has no attribute 'groebner' --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'I2' is not defined Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Fri Aug 11 12:42:41 2006 Input: R6 = singular.ring(0, '(s12,s13,s14,s23,s24,s34)', 'lp') I = singular.ideal([s12*s13*s14*s24*s34 - 2*s13*s24^2*s34 - 3*s12*s24*s34^2, -3*s12^2*s14*s23^2 + 3*s12*s14^2*s23^2 + 3*s12^2*s14*s23*s24 - 6*s12*s13*s14*s23*s24 + 3*s12*s14^2*s23*s24 + 3*s12*s14*s23^2*s24 - 3*s12*s14*s23*s24^2 - s12^3*s23*s34 + 9*s12^2*s14*s23*s34 - 9*s12*s14^2*s23*s34 + s14^3*s23*s34 - 3*s12^2*s14*s24*s34 + 6*s12*s13*s14*s24*s34 - 3*s12*s14^2*s24*s34 + 2*s12^2*s23*s24*s34 - 2*s14^2*s23*s24*s34 + 3*s12*s14*s24^2*s34 - s12*s23*s24^2*s34 + s14*s23*s24^2*s34 - 3*s12^2*s14*s34^2 + 3*s12*s14^2*s34^2 - 3*s12*s14*s24*s34^2, -2*s13^2*s14*s23^2 + 2*s13*s14^2*s23^2 - s13^3*s23*s24 + 7*s13^2*s14*s23*s24 - 7*s13*s14^2*s23*s24 + s14^3*s23*s24 - 2*s13^2*s14*s24^2 + 2*s13*s14^2*s24^2 - 4*s12*s13*s14*s23*s34 + 2*s13^2*s14*s23*s34 + 2*s13*s14^2*s23*s34 + 2*s13*s14*s23^2*s34 + 4*s12*s13*s14*s24*s34 - 2*s13^2*s14*s24*s34 - 2*s13*s14^2*s24*s34 + 2*s13^2*s23*s24*s34 - 2*s14^2*s23*s24*s34 - 2*s13*s14*s24^2*s34 - 2*s13*s14*s23*s34^2 + 2*s13*s14*s24*s34^2 - s13*s23*s24*s34^2 + s14*s23*s24*s34^2, -3*s12^2*s13^2*s24 + 3*s12^2*s13*s14*s24 + 3*s12*s13^2*s14*s24 - 3*s12*s13*s14^2*s24 - 6*s12*s13*s14*s23*s24 + 3*s12*s13^2*s24^2 + 3*s12*s13*s14*s24^2 - 2*s12^3*s13*s34 + 4*s12^2*s13*s14*s34 - 2*s12*s13*s14^2*s34 + 12*s12^2*s13*s24*s34 - 3*s12^2*s14*s24*s34 + 3*s12*s14^2*s24*s34 + 2*s13*s14^2*s24*s34 + 6*s12*s14*s23*s24*s34 - 12*s12*s13*s24^2*s34 - 3*s12*s14*s24^2*s34 - 4*s13*s14*s24^2*s34 + 2*s13*s24^3*s34 - 3*s12^2*s24*s34^2 - 3*s12*s14*s24*s34^2 + 3*s12*s24^2*s34^2]) I2 = I.groebner() I2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 's12' is not defined --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'ComplexNumber' object has no attribute 'groebner' --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'I2' is not defined Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.09s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Fri Aug 11 12:41:35 2006 Input: R6 = singular.ring(0, '(s12,s13,s14,s23,s24,s34)', 'lp') Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.43s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Fri Aug 11 11:43:40 2006 Input: mwrank([3,0,-8,0,4]) Output: '\nCurve [3,0,-8,0,4] :\tWorking with minimal curve [1,-1,1,-14,33]\n\t[u,r,s,t] = [1,-1,-1,6]\nBasic pair: I=657, J=-51570\ndisc=-1525091328\n2-adic index bound = 2\nBy Lemma 5.1(b), 2-adic index = 1\n2-adic index = 1\nOne (I,J) pair\n*** BSD give two (I,J) pairs\nLooking for quartics with I = 657, J = -51570\nLooking for Type 3 quartics:\nTrying positive a from 1 up to 10 (square a first...)\nTrying positive a from 1 up to 10 (...then non-square a)\n(2,-2,-3,28,20)\t--trivial\n(5,2,-21,14,5)\t--nontrivial...not locally soluble (p = 2)\n(5,2,3,22,13)\t--nontrivial...not locally soluble (p = 2)\n(5,-6,-33,66,-27)\t--nontrivial...not locally soluble (p = 2)\n(5,-6,-15,24,0)\t--trivial\n(5,8,3,18,18)\t--trivial\nTrying negative a from -1 down to -3\n(-3,-2,27,18,5)\t--nontrivial...not locally soluble (p = 2)\nFinished looking for Type 3 quartics.\nMordell rank contribution from B=im(eps) = 0\nSelmer rank contribution from B=im(eps) = 0\nSha rank contribution from B=im(eps) = 0\nMordell rank contribution from A=ker(eps) = 0\nSelmer rank contribution from A=ker(eps) = 0\nSha rank contribution from A=ker(eps) = 0\nRank = 0\n\nRegulator (before saturation) = 1\nSearching for points (bound = 10)...done\nRegulator (after searching) = 1\nSaturating (bound = 100)...finished saturation (index was 0)\nRegulator (after saturation) = 1\n\n\nRegulator = 1\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.128 seconds)' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.19s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Fri Aug 11 11:41:38 2006 Input: mwrank([3,0,-8,0,-24]) Output: '\nCurve [3,0,-8,0,-24] :\tWorking with minimal curve [1,-1,1,-14,5]\n\t[u,r,s,t] = [1,-1,-1,6]\nBasic pair: I=657, J=-3186\ndisc=1124222976\n2-adic index bound = 2\nBy Lemma 5.1(b), 2-adic index = 1\n2-adic index = 1\nOne (I,J) pair\n*** BSD give two (I,J) pairs\nLooking for quartics with I = 657, J = -3186\nLooking for Type 2 quartics:\nTrying positive a from 1 up to 5 (square a first...)\nTrying positive a from 1 up to 5 (...then non-square a)\nTrying negative a from -1 down to -4\n(-2,4,33,30,3)\t--trivial\nFinished looking for Type 2 quartics.\nLooking for Type 1 quartics:\nTrying positive a from 1 up to 9 (square a first...)\nTrying positive a from 1 up to 9 (...then non-square a)\nFinished looking for Type 1 quartics.\nMordell rank contribution from B=im(eps) = 0\nSelmer rank contribution from B=im(eps) = 0\nSha rank contribution from B=im(eps) = 0\nMordell rank contribution from A=ker(eps) = 0\nSelmer rank contribution from A=ker(eps) = 0\nSha rank contribution from A=ker(eps) = 0\nRank = 0\n\nRegulator (before saturation) = 1\nSearching for points (bound = 10)...done\nRegulator (after searching) = 1\nSaturating (bound = 100)...finished saturation (index was 0)\nRegulator (after saturation) = 1\n\n\nRegulator = 1\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.117 seconds)' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.21s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Fri Aug 11 11:21:19 2006 Input: mwrank([11,433,2,-8,-8]) Output: '\nCurve [11,433,2,-8,-8] :\tWorking with minimal curve [1,1,0,-71530,7333704]\n\t[u,r,s,t] = [1,-154,-5,846]\nBasic pair: I=3433465, J=-12724142362\ndisc=308036184339456\n2-adic index bound = 2\nBy Lemma 5.1(b), 2-adic index = 1\n2-adic index = 1\nOne (I,J) pair\n*** BSD give two (I,J) pairs\nLooking for quartics with I = 3433465, J = -12724142362\nLooking for Type 2 quartics:\nTrying positive a from 1 up to 617 (square a first...)\nTrying positive a from 1 up to 617 (...then non-square a)\nFinished looking for Type 2 quartics.\nLooking for Type 1 quartics:\nTrying positive a from 1 up to 617 (square a first...)\nTrying positive a from 1 up to 617 (...then non-square a)\n(89,74,-901,-374,2377)\t--nontrivial...locally soluble...(x:y:z) = (-21 : 2533 : 5)\nPoint = [2500166595420:-1214924545284:16251953437]\n\theight = 17.7223695188662\nRank of B=im(eps) increases to 1 (The previous point is on the egg)\nExiting search for Type 1 quartics after finding one which is globally soluble.\nMordell rank contribution from B=im(eps) = 1\nSelmer rank contribution from B=im(eps) = 1\nSha rank contribution from B=im(eps) = 0\nMordell rank contribution from A=ker(eps) = 0\nSelmer rank contribution from A=ker(eps) = 0\nSha rank contribution from A=ker(eps) = 0\nRank = 1\n\nRegulator (before saturation) = 17.7223695188662\nSearching for points (bound = 10)...done\nRegulator (after searching) = 17.7223695188662\nSaturating (bound = 100)...finished saturation (index was 1)\nRegulator (after saturation) = 17.7223695188662\nTransferring points back to original curve [11,433,2,-8,-8]\n\nGenerator 1 is [-2634233878:33395085318:16251953437]; height 17.7223695188615\n\nRegulator = 17.7223695188662\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (3.29 seconds)' Exiting SAGE (CPU time 0m0.02s, Wall time 0m3.58s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Fri Aug 11 11:20:25 2006 Input: mwrank([11/21,433/19404,2/189,-8/480249,-8/47544651]) Output: Errors: --------------------------------------------------------------------------- exceptions.RuntimeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/mwrank.py in __call__(self, cmd) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in eval(self, code, strip) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in _eval_line(self, line, allow_use_file, wait_for_prompt) RuntimeError: Mwrank crashed executing [11/21, 433/19404, 2/189, -8/480249, -8/47544651] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.10s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Fri Aug 11 11:20:00 2006 Input: mwrank([11/21,433/19404,2/189,-8/480249,-8/47544651]) Output: Errors: --------------------------------------------------------------------------- exceptions.RuntimeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/mwrank.py in __call__(self, cmd) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in eval(self, code, strip) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in _eval_line(self, line, allow_use_file, wait_for_prompt) RuntimeError: Mwrank crashed executing [11/21, 433/19404, 2/189, -8/480249, -8/47544651] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.56s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.178.' ************** SAGE ***************** Host 24.178.115.245 (24.178.115.245) Time: Fri Aug 11 08:38:17 2006 Input: 279-21.63 Output: 257.37000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.18s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '219.79.' ************** SAGE ***************** Host 219.79.177.114 (219.79.177.114) Time: Fri Aug 11 07:47:22 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '209.42.' ************** SAGE ***************** Host 209.42.35.245 (209.42.35.245) Time: Fri Aug 11 05:54:04 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:42:33 2006 Input: factor(2^59-1) Output: 179951 * 3203431780337 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:42:23 2006 Input: factor((2^59-1)/179951) Output: 3203431780337 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:42:09 2006 Input: (2^59-1)/179951 in Primes() Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:17:43 2006 Input: 2^59-1 in Primes() Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:17:08 2006 Input: 2^31-1 in Primes() Output: True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:16:00 2006 Input: 2^32-1 in Primes() Output: False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:15:50 2006 Input: 2 in Primes() Output: True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.103.245 (169.229.103.245) Time: Thu Aug 10 22:15:40 2006 Input: 2 in Primes() Output: True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.224.' ************** SAGE ***************** Host 74.224.21.73 (74.224.21.73) Time: Thu Aug 10 21:15:47 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.13.2' ************** SAGE ***************** Host 68.13.201.86 (68.13.201.86) Time: Thu Aug 10 19:29:59 2006 Input: 3.35 x 10 - 3 + 4.5 x 10 - 4 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('3.35') x ZZ(10) - ZZ(3) + RealField(max(6,RR.precision()))('4.5') x ZZ(10) - ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.13.2' ************** SAGE ***************** Host 68.13.201.86 (68.13.201.86) Time: Thu Aug 10 19:29:24 2006 Input: 3.35x10-3 + 4.5x10-4 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('3.35')x10-ZZ(3) + RealField(max(6,RR.precision()))('4.5')x10-ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:11:55 2006 Input: 2^0 Output: 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:11:17 2006 Input: 4^-4 Output: 1/256 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:11:07 2006 Input: 4^-3 Output: 1/64 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:55 2006 Input: 4^-2 Output: 1/16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:48 2006 Input: 4^-1 Output: 1/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:39 2006 Input: 4^0 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:32 2006 Input: 4^1 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:27 2006 Input: 4^2 Output: 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:20 2006 Input: 4^3 Output: 64 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:14 2006 Input: 4^4 Output: 256 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:10:06 2006 Input: 4^5 Output: 1024 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:09:56 2006 Input: 3^2 Output: 9 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:09:47 2006 Input: 3^1 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:09:41 2006 Input: 3^0 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:09:28 2006 Input: 3^-1 Output: 1/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:09:21 2006 Input: 3^-2 Output: 1/9 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:09:14 2006 Input: 3^-3 Output: 1/27 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:09:06 2006 Input: 3^-4 Output: 1/81 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:08:54 2006 Input: 3^-5 Output: 1/243 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:08:41 2006 Input: 3^0 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:08:32 2006 Input: 3^2 Output: 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:08:22 2006 Input: 3^3 Output: 27 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:07:57 2006 Input: 3^4 Output: 81 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:07:40 2006 Input: 3^5 Output: 243 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:07:27 2006 Input: 2^-2 Output: 1/4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.137.' ************** SAGE ***************** Host 74.137.131.151 (74.137.131.151) Time: Thu Aug 10 18:07:05 2006 Input: 2^-1 Output: 1/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.207.' ************** SAGE ***************** Host 68.207.106.75 (68.207.106.75) Time: Thu Aug 10 16:06:02 2006 Input: 3x5-2x3+5x2-2x+7, if x=-2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x5-ZZ(2)x3+ZZ(5)x2-ZZ(2)x+ZZ(7), if x=-ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.53.5' ************** SAGE ***************** Host 66.53.5.90 (66.53.5.90) Time: Thu Aug 10 15:10:16 2006 Input: 20*600*.02 Output: 240.00000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '60.49.1' ************** SAGE ***************** Host 60.49.128.6 (60.49.128.6) Time: Thu Aug 10 13:07:03 2006 Input: 328310094-10% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(328310094)-ZZ(10)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.132.' ************** SAGE ***************** Host 81.132.161.81 (81.132.161.81) Time: Thu Aug 10 09:57:52 2006 Input: 1994186357767357 Output: 1994186357767357 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.61.4' ************** SAGE ***************** Host 84.61.49.32 (84.61.49.32) Time: Thu Aug 10 09:53:34 2006 Input: L = [[cos(pi*i/100)^3,sin(pi*i/100)] for i in range(200)] p = line(L, rgbcolor=(1/4,1/8,3/4)) t = text("a bulb", (-1.7, 0.5)) x = text("x axis", (2,-0.2)) y = text("y axis", (0.6,1.3)) g = p+t+x+y view(g, xmin=-1.5, xmax=2, ymin=-1, ymax=1.3) Output: Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.18s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.61.4' ************** SAGE ***************** Host 84.61.49.32 (84.61.49.32) Time: Thu Aug 10 09:53:24 2006 Input: L = [[cos(pi*i/100)^3,sin(pi*i/100)] for i in range(200)] p = line(L, rgbcolor=(1/4,1/8,3/4)) t = text("a bulb", (-1.7, 0.5)) x = text("x axis", (2,-0.2)) y = text("y axis", (0.6,1.3)) g = p+t+x+y view(g, xmin=-1.5, xmax=2, ymin=-1, ymax=1.3) Output: Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.25s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.61.4' ************** SAGE ***************** Host 84.61.49.32 (84.61.49.32) Time: Thu Aug 10 09:47:00 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.9.6' ************** SAGE ***************** Host 199.9.64.2 (199.9.64.2) Time: Thu Aug 10 09:26:57 2006 Input: -1/2*-6/7 Output: 3/7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.9.6' ************** SAGE ***************** Host 199.9.64.2 (199.9.64.2) Time: Thu Aug 10 09:26:11 2006 Input: (1/2)(6/7) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'rational.Rational' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.9.6' ************** SAGE ***************** Host 199.9.64.2 (199.9.64.2) Time: Thu Aug 10 09:25:53 2006 Input: (-1/2)(-6/7) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'rational.Rational' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.9.6' ************** SAGE ***************** Host 199.9.64.2 (199.9.64.2) Time: Thu Aug 10 09:24:33 2006 Input: (-1/2)(-6/7) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'rational.Rational' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.9.6' ************** SAGE ***************** Host 199.9.64.2 (199.9.64.2) Time: Thu Aug 10 09:24:19 2006 Input: (- 1/2)(- 6/7) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'rational.Rational' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.9.6' ************** SAGE ***************** Host 199.9.64.2 (199.9.64.2) Time: Thu Aug 10 09:22:13 2006 Input: 50-(-70) Output: 120 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.9.6' ************** SAGE ***************** Host 199.9.64.2 (199.9.64.2) Time: Thu Aug 10 09:19:29 2006 Input: 3/4+1/2 Output: 5/4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 08:02:07 2006 Input: mwrank([0,3,0,-8,4]) Output: "\nCurve [0,3,0,-8,4] :\tWorking with minimal curve [0,0,0,-11,14]\n\t[u,r,s,t] = [1,-1,0,0]\n\n1 points of order 2:\n[2:0:1]\n\nUsing 2-isogenous curve [0,-12,0,32,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 0\nrk(S^{phi}(E'))=\t1\nrk(S^{phi'}(E))=\t1\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\n...skipping since we already know rank=0\nAfter second local descent, rank bound = 0\nrk(phi'(S^{2}(E)))=\t1\nrk(phi(S^{2}(E')))=\t1\nrk(S^{2}(E))=\t1\nrk(S^{2}(E'))=\t2\n\nThird step, determining E(Q)/phi(E'(Q)) and E'(Q)/phi'(E(Q))\n-------------------------------------------------------\n1. E(Q)/phi(E'(Q))\n-------------------------------------------------------\n(c,d) =(6,1)\n(c',d')=(-12,32)\nThis component of the rank is 0\n-------------------------------------------------------\n2. E'(Q)/phi'(E(Q))\n-------------------------------------------------------\nThis component of the rank is 0\n\n-------------------------------------------------------\nSummary of results:\n-------------------------------------------------------\n\trank(E) = 0\n\t#E(Q)/2E(Q) = 2\n\nInformation on III(E/Q):\n\t#III(E/Q)[phi'] = 1\n\t#III(E/Q)[2] = 1\n\nInformation on III(E'/Q):\n\t#phi'(III(E/Q)[2]) = 1\n\t#III(E'/Q)[phi] = 1\n\t#III(E'/Q)[2] = 1\n\nRank = 0\n\nRegulator (before saturation) = 1\nSearching for points (bound = 10)...done\nRegulator (after searching) = 1\nSaturating (bound = 100)...finished saturation (index was 0)\nRegulator (after saturation) = 1\n\n\nRegulator = 1\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.121 seconds)" Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 07:59:16 2006 Input: mwrank([0,-6,0,1,0]) Output: "\nCurve [0,-6,0,1,0] :\tWorking with minimal curve [0,0,0,-11,-14]\n\t[u,r,s,t] = [1,2,0,0]\n\n1 points of order 2:\n[-2:0:1]\n\nUsing 2-isogenous curve [0,12,0,32,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 0\nrk(S^{phi}(E'))=\t0\nrk(S^{phi'}(E))=\t2\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\n...skipping since we already know rank=0\nAfter second local descent, rank bound = 0\nrk(phi'(S^{2}(E)))=\t0\nrk(phi(S^{2}(E')))=\t2\nrk(S^{2}(E))=\t1\nrk(S^{2}(E'))=\t2\n\nThird step, determining E(Q)/phi(E'(Q)) and E'(Q)/phi'(E(Q))\n-------------------------------------------------------\n1. E(Q)/phi(E'(Q))\n-------------------------------------------------------\n(c,d) =(-6,1)\n(c',d')=(12,32)\nThis component of the rank is 0\n-------------------------------------------------------\n2. E'(Q)/phi'(E(Q))\n-------------------------------------------------------\nFirst stage (no second descent yet)...\n(-1,0,12,0,-32): (x:y:z) = (2:0:1)\n\tCurve E' \tPoint [-4:0:1], height = 0\n\tCurve E \tPoint [0:0:1], height = 0\nAfter first global descent, this component of the rank = 2\n\n-------------------------------------------------------\nSummary of results:\n-------------------------------------------------------\n\trank(E) = 0\n\t#E(Q)/2E(Q) = 2\n\nInformation on III(E/Q):\n\t#III(E/Q)[phi'] = 1\n\t#III(E/Q)[2] = 1\n\nInformation on III(E'/Q):\n\t#phi'(III(E/Q)[2]) = 1\n\t#III(E'/Q)[phi] = 1\n\t#III(E'/Q)[2] = 1\n\nRank = 0\n\nRegulator (before saturation) = 1\nSearching for points (bound = 10)...done\nRegulator (after searching) = 1\nSaturating (bound = 100)...finished saturation (index was 0)\nRegulator (after saturation) = 1\n\n\nRegulator = 1\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.138 seconds)" Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.35s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 07:30:03 2006 Input: mwrank([0,0,0,-64435,6314630]) Output: '\nCurve [0,0,0,-64435,6314630] :\tBasic pair: I=193305, J=-170495010\ndisc=-175773535509600\n2-adic index bound = 2\nAfter 2-adic refinement (case 2); 2-adic index = 2\n2-adic index = 2\nTwo (I,J) pairs\nLooking for quartics with I = 193305, J = -170495010\nLooking for Type 3 quartics:\nTrying positive a from 1 up to 148 (square a first...)\nTrying positive a from 1 up to 148 (...then non-square a)\n(2,0,-147,686,7154)\t--nontrivial...not locally soluble (p = 2)\n(2,4,441,780,341)\t--trivial\n(5,0,-165,334,2768)\t--nontrivial...locally soluble...(x:y:z) = (-8 : 5976 : 11)\nPoint = [28233318751704:69376596735223:213418354176]\n\theight = 21.8951204538435\nRank of B=im(eps) increases to 1\n(47,24,-255,20,230)\t--nontrivial...not locally soluble (p = 2)\n(50,-2,-219,24,242)\t--nontrivial...not locally soluble (p = 2)\n(66,34,-195,-16,194)\t--nontrivial...not locally soluble (p = 2)\nTrying negative a from -1 down to -4\nFinished looking for Type 3 quartics.\nLooking for quartics with I = 3092880, J = -10911680640\nLooking for Type 3 quartics:\nTrying positive a from 1 up to 595 (square a first...)\nTrying positive a from 1 up to 595 (...then non-square a)\n(105,-140,-840,728,1652)\t--nontrivial...not locally soluble (p = 7)\n(413,364,-840,-280,420)\t--nontrivial...not locally soluble (p = 7)\nTrying negative a from -1 down to -17\nFinished looking for Type 3 quartics.\nMordell rank contribution from B=im(eps) = 1\nSelmer rank contribution from B=im(eps) = 1\nSha rank contribution from B=im(eps) = 0\nMordell rank contribution from A=ker(eps) = 0\nSelmer rank contribution from A=ker(eps) = 0\nSha rank contribution from A=ker(eps) = 0\nRank = 1\n\nRegulator (before saturation) = 21.8951204538435\nSearching for points (bound = 10)...done\nRegulator (after searching) = 21.8951204538435\nSaturating (bound = 100)...finished saturation (index was 1)\nRegulator (after saturation) = 21.8951204538435\n\nGenerator 1 is [28233318751704:69376596735223:213418354176]; height 21.8951204538435\n\nRegulator = 21.8951204538435\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (1.42 seconds)' Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.47s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 07:29:15 2006 Input: mwrank([0,0,0,1,3]) Output: '\nCurve [0,0,0,1,3] :\tBasic pair: I=-3, J=-81\ndisc=-6669\n2-adic index bound = 2\n2-adic index = 2\nTwo (I,J) pairs\nLooking for quartics with I = -3, J = -81\nLooking for Type 3 quartics:\nTrying positive a from 1 up to 1 (square a first...)\nTrying positive a from 1 up to 1 (...then non-square a)\nFinished looking for Type 3 quartics.\nLooking for quartics with I = -48, J = -5184\nLooking for Type 3 quartics:\nTrying positive a from 1 up to 5 (square a first...)\n(1,0,6,8,-7)\t--nontrivial...(x:y:z) = (1 : 1 : 0)\nPoint = [-1:1:1]\n\theight = 0.487827471310529\nDoubling global 2-adic index to 2\nglobal 2-adic index is equal to local index\nso we abort the search for large quartics\nRank of B=im(eps) increases to 1\nExiting search for large quartics after finding enough globally soluble ones.\nMordell rank contribution from B=im(eps) = 1\nSelmer rank contribution from B=im(eps) = 1\nSha rank contribution from B=im(eps) = 0\nMordell rank contribution from A=ker(eps) = 0\nSelmer rank contribution from A=ker(eps) = 0\nSha rank contribution from A=ker(eps) = 0\nRank = 1\n\nRegulator (before saturation) = 0.487827471310529\nSearching for points (bound = 10)...done\nRegulator (after searching) = 0.487827471310529\nSaturating (bound = 100)...finished saturation (index was 1)\nRegulator (after saturation) = 0.487827471310529\n\nGenerator 1 is [-1:1:1]; height 0.487827471310529\n\nRegulator = 0.487827471310529\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.124 seconds)' Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.90s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 07:28:59 2006 Input: mwrank(0,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: __call__() takes exactly 2 arguments (3 given) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 07:28:41 2006 Input: mwrank(0,0,0,1,3) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: __call__() takes exactly 2 arguments (6 given) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 07:28:20 2006 Input: ?mwrank Output: Type: Mwrank_class Base Class: String Form: Mwrank Namespace: Interactive Docstring: Interface to the Mwrank interpreter. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.61.1' ************** SAGE ***************** Host 80.61.160.239 (80.61.160.239) Time: Thu Aug 10 07:28:10 2006 Input: mwrank Output: Mwrank Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '132.13.' ************** SAGE ***************** Host 132.13.10.30 (132.13.10.30) Time: Thu Aug 10 06:46:16 2006 Input: 257*12 Output: 3084 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '132.13.' ************** SAGE ***************** Host 132.13.10.30 (132.13.10.30) Time: Thu Aug 10 06:46:15 2006 Input: 257*12 Output: 3084 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.66.1' ************** SAGE ***************** Host 70.66.100.220 (70.66.100.220) Time: Wed Aug 9 23:00:07 2006 Input: factorial(10000000000000) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 16629 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '70.66.1' ************** SAGE ***************** Host 70.66.100.220 (70.66.100.220) Time: Wed Aug 9 22:54:54 2006 Input: factorial(100000) Output: 2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.54s, Wall time 0m0.54s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.81.2' ************** SAGE ***************** Host 24.81.241.55 (24.81.241.55) Time: Wed Aug 9 22:52:33 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.66.1' ************** SAGE ***************** Host 70.66.100.220 (70.66.100.220) Time: Wed Aug 9 22:52:16 2006 Input: factorial(10000) Output: 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.66.1' ************** SAGE ***************** Host 70.66.100.220 (70.66.100.220) Time: Wed Aug 9 22:52:02 2006 Input: factorial(15000) Output: 274659903348516826648255815026266753776699833026582418739847875253045210793122532740853073321144465098302570904958223242651688997603351488417071188234715947039096494968520278629124983763642951334817546552420880336946205213323561252923593264503848349732519698233908059735393111177667189525018722186815141889147252250088618366643924510365629085240383086414933535428101038791771944304576742714227650854262308074946692863965851300258731859511920200655441856259006342802457058491335711469938283095956838033428768211676886936383886917781049237447219374767617152191509818825747743812589699521754244065141831150099981307140455833404722069887651682584452078021855288548764791508316246302379003109653184913127744165755186825595853761634802070716339448671079976012478437416896706719083259278390158138548712249684170110111798225206271610929887835895813940105502901588288109491869141749286683674794137496316777923387036488338321958745682319156012692183199919775121143440964406279924806583181745196975127525454797883759813599884124194218770311952320221970920121012168102746626924720211855673788320549452128292181460862230159528236369434982997177338591615142134927344689457555421041254815900581050859784335009276045033648785845681912262831709408567949942628407444184430625350142366383772647192484864759658083114444347868279156261432674131999917118718065805411752844385658032313293725161743795619244541580422007819692624426537417786823931927512633428037531384676130448634012919743255733105907708293722240193268652944296681734286795219617310213887296021095147507918160925938859433893580061960921289886844699499421914853444388918196470290585721319559553188122059016480745395381145336404664717227740957157117297553566197034647103855223345866250370205646955609116294437836001420379565886726987580361115691267020097462656043072096375955514170007107150963476819574221078516008641204155403640766526734180328336840283679702855032930350529437454678966394389766412791068665744879101348059678033270850348204288861770000931589005649659679787714683105135463047970978415281370673202067343688916225404395268362200268825165988927750470954374651955290555175944010553973394608714655964448946379933613628920162919514908809300530599715109086833900795675802799289170516558898667866650080027798220595305497001609573840353078930457649151635642820486594520882379412625814423112748164484824874902360094855513426449352125528793289640367757094191912084967208526742572704933129969945959991118079499707563249314770281753867516142468531057317725790227752479853476063996200080768381290525243037593921710406264044615718310230094878911885667682092228717062132037430697624014536025431815800933965042747855342598077334095991608146441601613598542759930532977395995443080168272208587168697375846869932092685875277929850063210465336133051557672102501928368400836906516245169120107275891211221389027711369217512183895664992456089079368375692855803351213377809192752198992245544065131363689443505729219925216913173091759907425325673299767363516960997987333426141362069010904332051421600854102169625966856957065362964531968324952388549207794642301372265905734289795597080305491729726091621048149720880426011786702807941320889268136529683322865765402852743843374456517761145635255571906564638853586074903728431261289173352539625284749500928605795956592700039432985411387323102100308677377031094421091367500929009869232420636532689306708207663327522948621761044959537382002489126693383905239892962538861566336269806603898324747227145183089476180212398168659705784707107176837102795615366506567638773665851015500525906324144430311757316319305226297574645955967663228481271649514803912488007965888468222588693458536355232091552443498210536258400628260428684940809701261298739430717535977125748031654767818441679283752066193989601362953642378395220871252107153846663611157497707732013952088313623314439080776034849942489672185643455386718001128752685845858618519864509555700235338235583896388752124811022488079745458833917697865909184514283140506458064705880756911253760198867126469249591624105397639002471858816275899466450955157441678430852308526037380151946155765307096640959563156862078594159972574263989211355073453080549133159732888815304330215707201780948450586368744675606376553957854417460695680721731882286453828424011783694381166028414780888644258455522569796279733345280010710552877172128747909817500958905392948801660532528929347626863960297028187042442555562589445845067438613924011132581887499718849671219199417625967456536111755928049287533474277579680087871559940090163078624194538779604952642458639484126313079210922031312263491976746144244754477822025272793005430816305007936182184239128134770258552762701041316124117769250733464772739534770775241152907664977376176785217947399573380142521492831379180486385714871174684698245898665677579698166294587623996174319032368402916567665029840438651323188522934091871426891951704055196149250533698066812840390076706178186712578308001521337787495776699541086740027730724775303286087700040171107669209806095218059166208958731096069826298937195774934466821099508423706315892050888120452070264378056658528733156952819442906957075097956477288678930060912215770062332330692132889444891836304762189354229555729851530218991211433200761478262105273536524887348625490681263037524472420602643941832722193356646866624446161488886635271726100882844528635436170735474578231674784098167697884302556204220072364493406985810000759352820582207541225295697403028851478721626639095279527047892952831684751296107675907788960454779740030875645468930965598573173045765555601971640521948995642334127709419704935947251174782885361147921195844026254092785926340434494774334250519036134469687833353374683302723767348164279797479928624776628926741012588954262838891726369770545779028438821467277356211577845174781600075893970368070732531725233099896134856616726862232422746368953996519303009733968620717010261433379208493637105743983939433368134081862819874182827346583985549595689815103776395633056334185159234985909243511156224526097061121310096405152576711954986837994199523969628660256065603358895210361375617051496341681397238170828234541378616489860106505668053258320307149138208441500364439226148418242761754423450662665348806407105206114948547412334816401717345743979830516231010520569271464179946816050220487591671253634552244749452330518520438254615647658814520867215379087209008476698862548108619157129108449684952146916811946129302996716094417183233666425500531983600232403167386262720681584555126327441742020162486889686261697025388119461375126317793535773170013963879685316478979578452328230062908051723805690946653860029587957985308472678334836690884022101166615407360609454113988977855553817545054890955632503043008803345370012827597548024892015034862677435825613543457002200559107926035175251050453122779971143974275180831823056162382365552495824302011520891558272675339369128462873424945705409315984649824944553331651332716907683654394318736713862722069523438282970246982190840410645617274631387546089291549749737840579972481107757129983246166577005200727742408627377431811721458034669739282006255901632315078516174033894596769659099519876180227397522041847833785020832563276771048636866314984353666683268123500928058114298037136233256663468053192082870713986457867522539308275064145782328273505532851023504173618394061106544506976066249206207522337155859111671576965312059163349070860835735455770432601897773169089823326159740643523808629173632247811052271886576112685303863628860751732296039035937313028291721430531544998084922485811471273040257561459282699210404214789583120738926070115748191900275419367330486456811750292550204712566634642545932346380696464472484577142969330528989752263703038460797734511308490899270525620883694639908577506695378529488852257010688512459567461671429034035966523267166944315351017678219409176949364235739882809685769400044327564861671119453051626932859418144539664857363230502694173772613645280920667921100269431716392639505318863594584163414776900374648230774963732337260002935505349332896981762865489371260070816997483232047743453170810310821517820959052591846084151871889900025252771421090636867132456044991250184689440444063256581444829556661330506981296708539471095116293140636434818266960475491494275325631150962427598041925144921208319623366344143880271987426964671588831575926754322582541678047160200475569398774577300670822831069297446355525743685586571525443793150029565305439599077068002564806614274515099551958946135748248546487205314145425817455156430958848690601107379149228963555672153059764898008625069018359928407377230914374813892735154618169630699927636676759224277628840084072545263027796409455478576256661008842206263058569290838809335903057997402273807953317742762047827303613209575786524592787215788496895670582437971859317400008247043652443707235098484648263846328847361444630064664192972307525090231220861537241456464989112101140270021621014369386053698934844476364592166925836568863968679028999503674928184408487805763544449968015300273928367359820954507203788554130133137248745222414990693193267182250461673109708761211728512857455846227223029892505785782023037496610613167040660878612515982449960963918303249668676206796681558410130785313545337621266192667622512985164109293245811488475659845122202545462355098160257875718100295432578395159857917616749283048798730851079049730436352353552809470813923435945421643551078880255537721991504047515902787166649501772800784451815406037549203308104783909530331640487367706717796491582856851332277343010476628231223523997441093927888532670073095814552771765553934736012985121124345930678733418830127379579637756585037076726428563278812636098629727454190941032136189903055018500239670751242447121647996449132247209455963719038500201023245968775195523202915791077098374343672247122293948189301222287640081199416595888086516834465957672023576402204399624090765505280171971108752287655195751213581047369803449988662066140110347776688157401588177153198895780049974815497832729744488518929553682955509721909359677883961673926050681414029896455342916282593832297071234960395876844388877088695222767285589635155085660622073658504715449405648087778664629991913687991882163685558200892659722561806436038894851226984161531379626776785377466837767291958009851314067979924246946669349061001431497957048683008656296727194933777489686325579914071467875942716351345638682767119201742626950441569023448151400550112740930494893980713427928892147528981326853398829889606209941247816987666921271641914149141787875073630836702702483480341942856187973335342688732573891645165829932502649765097325524550450553113414748999839580760126546453301131652453807228571730455127502605947536473170133538890122600356657055796813427612236709531682612823644667074711988003633886794592073338853688537303715866751083402701039592844363319648707648827111338158357644145396595519221548148191140959756215754762158145716289797667592340578098946721534457115090394825991994423649378900237543881399177583887694867164223121956771990259380082236378503672421392011745653886166425419417388164155154129563976497984168329223758112652267480156518512403617840139970414526079289697980498990958892711211200049034494489951921552048767784656776888197312405877920845726304960953704171585151919901256558393148853132883625858078866244233228053473502482851588525634716934845810873893050426349478927265711300828447508827064096222934794830659833906239037795852229478655539827610173566845678169886512824785028733434044905694218966077323536784347174514199372240996401891950028182247197993006222836150290702510982087905427946264470502831923072669281223923586671574561088609089952782983629538061230171468444563670940356116577185044336232085594599897419641307257102024558059603166347094139774976266463030755583233027396465098756745725267097651147905278107606318620805295281951488988586392875559474737782020449917456536957721454495153578265154634356718731608859358683108868197023253474874332906647444229351883553163744161045363822823593773618545562826729636319754952274670260899768041811485044553279219477534511481432072901870870958072638609419855704881931752408492893804306911577751205991544935196474989579389149236767893910935182468604133246977315503733467145449236873176887896687969949063513037200862172602893190999709383004606381709310521291303891853731668831907901237889422894428899205975992339032996945789833118593882666748122431403556776923719373754323329352460853937255211463535593547344806590446724357209505560768112307879697488564991157526705810597263887185484094219844742001216334832779208531846695440482258455564643092009521544624074169847471141795354894259127949060278242625932281183524676756148808221111694662457937045481066906296443298351732451590348519685792074286255610038208782181012815192962616962374651551797980278098460257022675325927571420352734969341441108659303915723618440162778047158479871675644881514901033248906903825631658270991092480761099585207365519825705677713127354135217401581704726826660697859588040439846016195042721733397359473152446199708650313413409599184002550706791452177577102829704934652094201999369175637465322197249722773626809142266549666789932719510496809204732969834176039564171197909698955817056293117543024376170238906986720346317671647184090975413014888332038846543614109227031494466305525691583038174587141145932399103445878292629186346202659157908584893076556145537326949440291939563794549313696028983024859818918532256100614992514608932666471346135763026191951107452965611617983545091188225531247665848867686858811593728146218130233501160342986753484201158561262460214745591719702358330959765748762803827575249822893410125090462531981656766571399732049481564402099553715915079567618966240809251266323930726299750573574984993908140266138675274280474871256323383890736974154081956680016387504312845975391319957132480675821717908616418137235275485972231572201546791322084760960812071767828541037401126095150917383072938634578072732288702578710180661327523279653350402881832058088943751347700548657300089425228072025328969998996816727108714445588707190272419065364241196855286550525437646623334892393613704457348578889641903091952547994463833589553845896328910320831925248227351499582329027987245258433632367948824479956441459965932333083192012762223795565267889849046717250427160805919100632108716402665330449311656666535556637818645705764521105594953082206347213447214520653396723020882012365685209813784484347641884406783528696167401848442708061427423104085453688235873176794174797966409494335818020483163365092078281637297856714173825964327429056053353667157401852064627536558859609000291951391260461660902856617473204667135365967067775567621120643728685969201089340241075460015821791142456408144479185057652035531349565305595726396413552012766274332530959566333217499560147262877937427711381045756659135695876888652013647573648040250055685048277504031728460050697605232403757936112633979529381072518154896106362153435567973729041995912199633194469870994473154151933658673735910520691340416455171227227306083770797928196069333384335835872655230303049713184058607394482692212199385367208651638830595458803227942029214920165231101555173804297648807574245193515728872999690359590652731843437194451467309500050044565250949636823518508768242908075210376396299095752568450451352643666016961956538234118932428049328800065574453567681260691698441377889451938358984999589350492672358616816866405774774943728180375528476517733080250457102350865294867668890839632861247415115831476107012356335437139850556458558214120876799315121323967460272742676961576973920792779089181639087666186922743882715015749740193259240922619229265177747658587172110361591154773506794275385027573278054950005421999908089050759629294175898999599471133619319682852764570981660463267472503216582902046491058009480114131126755089188265380952898185519972432990567674099104146610551444912531769418038352095940381599722236299021711634261755315581026088992229971045171325013324135946667821515462066136103440680836829302938866901615112509626870924023719576919012298602289480554855820326168036388261802303828287733401821566694499565233532317365482222366602686142491450485220463798202616943101618802636711217190829860815756684679325110461534961601799932446473385046205338897146923525009440095590681288007700794830582698910582890458841766832189685356555063248413212693072213243493671454201470093322921883201642629293951690711352436728652924484995968210971842230560589313738532790549036628963135375279358513945409684745911975260314934479599623906833076369115209684420826083398799347715939608914107296387670936030133792337145893626468461438241228966203105671326150036891357783131698529733085349489956617675173761880981683328374126514108087256932949619987944466495594482552775116636694404085999813485628729122964462008283960201228113949932911226011233888860850952394004796548822271475935526628315275160768728959089697319509401177944990263685345461617737133334386353959139205027128369651352739614800909228988126075568071354285607790485492584572933062337727895705846506389093868378791818273780977725817418365104271961807997381137452228152266179424799933865262546756789122860380818051998568957522921821857966913575545429226476565593478870015297453970094266702292561816711703267616083809898860375141962506810800608595488510280736821939201452689963073299704960712349436395743900980902646483565176030188162939314472034109600979488036405891148867733300275906332687128115592107855628578526481369254589675330344785650244401798654148972928172374315506050135208808332026955352187553435649032651820544217371079077588779520200075094380555800037457994530106272425441500470698309031651296227557700819362760045831339590954022305233177071679788430529852436488568554952277455797674909757560531167025020146578545576638874245729536418551276991199343191636964474121549937522131820302821312891180469084378373450431060399998545702070101404883408472911106707036130629309090630749499491287235089991004879953657831113323322334102387755856522628829217729582115729473862912491695134673121422438415739468460085962435827063695286998655895654904189635510827269138812250087074669636573253602839297563420377103093942724820791195156587164239316358616578654176484106867104468054765079505071967607800155873116359341833658326056471739896334845344864405830683763473436406735146594138419265676242339138138015550020151287651353834041530907873958693549019760081781325493036344550760760412056690467634381785814374908332517859713473091155450847767343212061462713987796821437997384493076101767581426525334899299467652840669128764320143134009068567630791257176461264788432834548700680582086612210218246363757775454976836381760930847668321470942846452508537985682552935090724004188439140766937287169354118489643710084844462780581338863616651317511235927047682613961845539968354902582722613109106446321195707882763019606826931554286622287263501541463309705292590484237937060235594691930264534718519880327249556675657575038491245268403865415932969827910786111035725166821775646118504214018989266751414650277862396517916546468944478988382491952495234517471103788310739512647258658662265198455638390576518443871743840518532182528063604538883346662885215283603051557711944627563524836867464034692194733145337035131734907162623042932757642609743490289978576646681399382703250470764034391878469860449923544741547406111843042334666256392347119597691658569791136413839800793742275415021101890379382192707429293541813678106784819180496056800361086673851772186187756738332403719648872200326124253604061891493673286914661804974333187261633711057177306064607336328183514956656269803217851928994469577416750199862348451774350742959624363683460432179891117734531716274198670877890126201978468552767993735658078887808787170359871223002906392989441681898562784027882569731322643647445887399908943832069561805204184228941056111677714893148516505722085045177135199277066661733590941869091914048636800901954229213923141981659263769823243757571679557368259118764564110406655227213510313537264696058985560499487271851675178374797610758704465014998462355576544395610345454861583736618082743267829549784097681927821461171844444721074865176158633856877072026712500531752394101048416131161408772571274740280465300059598024190779260842306112716622682941144241369692194798548994821493395962571812900541121471676777222445354240463747717324519217136911983776666264207014850128674804082237150071671001538814846883818650398658254363096471552547271170376060419201591095730232456853384650535372751998453010563572116992320642807181581775481820271343014993913163629541322154841657125323354880272612871891279340753975297729945633816979157495002338430508223780867530106535851257546532201420856345059082316967473202710636711051442683097825547858771798575327664539756306221039174236463213747251392859689815074717237747237106260794074324457241800173554841563732138892831162309245059462769156595248674082959592650676302286862344177312399100953098851646518266289183187070153219104209617492840336575371735738037041286874120193540751515434513707318932708891871328617898678473458687407757591819281257776829095645070431456864574154417123312345819625845837028489834798285914690633476988272576181941911142149869090826404008045431952131963322429872996144312561261770196917270130123392410377936999771713746397182748153270143679152735880418484086300916892638692965604745665910625654423413425070651134293948616866485621659729257743489492228546585159853401245360212837147685697318142992963177598297760492046579839777231232596640876580193597298743345958252647975353167084378384255522196168625129452364591982333054714967559626436901358096562490706289038416187539668162264906454067927200180350541679572592724428094608380459939684105939007509767224908944869697168098435863268687278120021142810568345512113371237347256450824825823811940375601838285753226693966057307773313535220086314626437041588306023993946604585317774986188481575777436131154433415210001743435048285179202732362099864846550821462471714700926194957054764548421369220302454681840872547765476288333738280885253316831963490011675371109578533229274841750493069324856623570428043634519824699524345593179810044601314612745320237473011477454042975167213166988492854263816390215606055452337465658088566755086486060757819271880216690405225216396445390570583466266348010683366500202360696685274197019487245183785766663527427881225339554828115188638185456507681168484524688955468718710586943337266536666960067424871300233902576207506326942175534499509404660647723245762724094662867606373440324934584983386070354355491201061942099451391471116204075502141534775928676288082267559901038988794133563086987638757721873893724075536645810840694740988902848432295609407071028763240348982210845667042847109632339530875929456524038050249573993443832925165536750993908698973385856294421268706614467117494670863344980833499956018606745639485037176897538030426680511206957734456935396171135336479031175659280106248908416455550454494183473629759282674624210457917476435977980081868272193208016383423819539563705274061609531462153984506911525905825204040587641683038527125953207938578027147413057955917482181835845228266228645024619637358632325677948722235624798189971222149547185351959840432787557743093487214230487407899238933936969707659401742427984336784720415421774624618577565513160224379171008220183983619622895307090427279777533102661699693774286561850503173814110888500842707889113538773386292673768555701841343218205926164333478821310391307389088107801256364265334392184148352923709130410343750894378002196334020526272416503580886168668864422310287908433988014021572838239104452340068106976899332434456217371867223793106333764573970634772262111354005776800115082275498506989839548020338388548457831234513672882977251122261779976931840248123145529946014059715566278848757955571731957412061886700436578357445543240983988388652198764430035690656328868479254316785307138610345324839313518843589648461292003877934637359541869999957020832053036984804368729471184381817956858619136268574603235068443560420476020797983078359723438894084994566298550781565593933761959625958683853054797604540925298715218081065628796008708920304379858965260686188906327653614514955574598685592403819360101818562208811901636105551915358304033505799185355362373945603187387836023430319542428373801875774780071748342747350149302586559933768501714549822698953691677640681450109434884716102995806030346231553655466846455372499308909115043871432022965841040754418817234777242827804951741026434037880415104009424641110304658321571235819781015038058454504548005475429823148561906481798287953085962574232362547383584620219332738660835139525133844894600399470018135462740054298133553543434571658963461597727930077400839384013224042966056450247317755458141245007720328104621831255163531761382317423825724562944414808532663480653015669931303548188530706833149995641358316506575652243982246889240274078653786679886175937320165772401527685929054679743609273443703817579824770747448387420797564846729874970857749101578493664208621818545519466691923506309853509283964963713395717182492102608893845806110030659432433913205234312137584078831284878521104221863555263374957514864396872900116729792344084684983844762000334964852898918446145911985498789202233045423720590524472895657014182749135316947511063388435317917051823558016792457146196937336377406559157383694450656472009940812749721589778074622588475843442057263744560265668411748435663173307781060888723888271781664349843736606335926018741905322596303425565219249872513364767438094659918302074427983602189785759633365399920113397982809940850194559878697462901142880296837781149348062036608974006645376151311743912098119442840799548759116204007264114797474505203561499807312274286173314593088791132410095077105822645949495416029500558168177901995579405834008051558558153917070740826059902191808887130702350768384432367889757297984223732294578315162217988872893231359805404879407562533873205072983965077298596224567586869392078431850157597081502618847579734178543475258212227426692125718615200129647561902796479843164625810604675275540477796337248171381817019224155791586370943161182037941806462218066111132695964524404384246981531227263360312007373392572283342424461081699546307739638191665942293956562034891696279253970275826711447522286991851480859443676322797276093816812441011605664056572263821872402843033965099902679402166230527055928024354857362796143297717162906245215224855293014984229581260639931706395017369468396725116156564942347094871746108735919209888202735641163040909621211599273094469909569587354640053960702056838508854599992197055732075778727931894227973825771394289804133304769690551346587104130531420260882030420285667035645067180919823139817764182974393136482458659551985483420227148860042185040257050571213499752821078330887438852181903288760657955531131103283925680930334832054316912130271395710481235204450697437868522076651994500534907145844693397850018945822957878210900034805703086983458334113708038821590980431330575216729153649734587324349694053668726848745623404389439216133667418311981457185381725288008866462189213497006807064074479020377848918560753241039867484026802313848807078047475092452405606169040538497986394559560511233147049796412192060271592094998123363612292733111311816484720042557829137332194201304108365159434558006479766533940712342081161203647208714510040015169448866880721802309351648898150655461455641580378989888690131656089622485162367827821354542319452918938282482998327332210210507136381263766131584436026955651169406079405840216068642197867915052182979755606833206730594643326594621830506569958921649447965365469835391520748038023787997678070636178801098624460565274064647184757788024469307847996521989990835560567990793890741688999568464979679165210900332477525282567444845600816328406181510511450028515127172589446460897960447325306317004903406796059978212810026950584569170352676171858218778095834432337499682321346514606231051023117853255725480970935961449767265005366763045622880838442825629531216623070606425343111272263871030444432144451265646090847389349883169557109301624713784660458769699592124999620865832481277341032916841878469364021893785422495488866534536933659265311525598164945598646652482615658609454079575689269956568985541130276644799357060315051521241982290124322650090576149231856077663602658638719607835863581246942933558802738092981319157967995255661253665614842275671121090497945096862579665349537864019477577591930004143196163951696002436018818223989778653101564237273522840309205363355554651750253482673863113258505447062570534797120655789525545587336403152163322435890452942063452402244568273163712557457954397393508191581652354804955705381954792769091846625180524896938762949386776650613556330213094808941107912097235361130991933729321456442963248207263839115466066064673356884611021574937809676912314492507378003561217022737838408807804602284365015332445750932489612028981982061160709217218922110616808500223609291464399271451468465995984754416958271698857419808106141987586249012713332868324109684365955354907163798701050694563789152502731932346402077397178515315790861334260453229928030179588593358248772306408835553794791410681929097400124066037384359546317648898771793441843646788220362838755151281354222052677785065659767288495418678794254825517112648455120752607373945809336292175390087806045294866041854786610285771542462679997322773630496602881586797870046138373336348594373260335907723537117098588864137785487400361041773860525173849524581470922844307786671069886861740309983276122398155258312002814304071526681176076122736414832681568870764535555024716352554994074282361241409862575286205259674849630576343542861996183242854563750554024957117891794830110457236216970039345685560813785209144780682107003848151356257110963631172848625987549609124984727285890346513357447438241927358463862882140784783523441352292450003580861704084312742679313321985785159271201701400573102733237573912586688326935103717461055386016591700959766919521418093503415652661089183065348964371482147792838436154913482310853190700611109768133723419304109282870583328768343543631612822415525297237016176978757339027875669986408955668802954182179468290378428239609704368077687337550449855288755899843398971764124105159555147980515258154377420808874795209185069852183481275107714448350311096691659466893274445268595472437108908108643200506900041831797664820289596605694210159001232981379257396941451118770999680471268135421297109180473536517325918622101891280964731205588578973940085991766088103834805040140239726680681751604987112325863469605045240061821053605559803411922652061519632408427994955870250439878277035524093464989556243480519214657802996462425075162078095676580634958051019889925865591238076536571078514201000050637355916133455572628174827490032079711967124157812516989833313518500838546643621676865173656039330506904519796792820941564529607637109904763916510205314707004653150995171121434848134821350512509790791697290965932213488153990833312102010776103058139351573508622002666274424245980990558438169094012845265187573799228840950070985493694500123331630670378370541913833150215884329578838246987779489925268732993926468695113767084269204564723074004481977778141847991534052124396875313726139876517251321313880442598135921630549475649722027261931541873961527136969165114668494131619993967546213120462008430118878936328869832807016069401838368305600646357358881662882452350114768748976873279940730472617393345513855718181034733658431291208778581767195064290512477253051046241559100103219426888589648545990355228777344874383658190778652177850417597782129682929781894440142865448633718339593843452297938157979620834622198220093972101876832893096382352827193402663403295221530381622567103283425265213836473051286916577985127241110452183529763139882151590654330537714154328849230010238690102387456650718225413677126189923060710340846673283992220197944542998539751097196206299567465113170198888419139721190021923416517152793908284633409243847717217591442374055149336027510851481916302914019170393391586023033452727591780408881679436875696957262781135611406789096247368007762521605152977004456230428459645802983377159164877378577083151676733704720674448643961736890869169606474965504269932822554555839297645020670576653995888229195770604612124976431257800317560021902618226019433719213540328285111653482160127098347909620658365104761440205949945684349561548928450975322756784118025085505287583292588433633626747311728158482849618848472496504864679776003336654549513799792791000990489218212041570588695166681901114198480858887438216044545584638919317764580966269134726403477639984763247447523202652019485255996973908000961156790241646142471285334914960453876780182985664598087506834117244685522507170933184399210808207456514846649832562084014153862763937790136505088114810439858481323483086721348155935078225106342370218032873450603297356744279149892797548278786126430619624142515614339064706774727002420850534277448203002945854538579084595678236251625252136986255031014711656777246972658489487504367652671844106494787320101667318835649367109520824771866100396761613621138630338227846610574187659896700753486402260432183532553722760080963576802935997705958116738249041508715677057405730116967470564639352606411781198725249821684254759954321244804428762897076957899166528515601497117723371541164292607162654545273896867969892471960651059789680441977795667351544648379240681655489727289841127308536551287040055852160198668811119566736245944505308983404161010644998739184075205308868737052557215351728748368156828118350061622147727222310014597965498119696226798883970906928019739181432362596623712241303719337973957614758911538932526999779082833256092857390060650144285701086347077486337770989701402154539907826403699887728399379205289986836158871577223910416370021291342754814976238494439403957723936310921352858004548971490694587331681414188566130944009980816249073642912762119159862512703679899798188200060549522439142636927734885351208864007640798491475372476388733527927413056692408097651585913263098220614907921535300557243384639130606426970119190340112516169916630454419846458412848295971525679344195374384406254162521829929796130645358066732965473828615266288425986800036890893117988368743120782415516014711735613679045506671615561679713664120750230293733657805909296204550968193431914582285670264716048661173638179880288527969462729054304738732807258708616303790771092901983591291210067663072594631226589760956597046451629428309478577379532649259571088587906568169656589312508141192242402867562998576066589229748991411217351594218739907398251985487954938251118069613959897526376757504438245486168833609249987198650028493069063131024157845544109232183474019853023445791828583342974762970116208832042443044943668492491185080557228599498547411153679241343882021582988188149358722737689806215390639090787190149328473347812256014621672274170658721921220244550427634819219362576320521053981206145637212296885748233484428684106528950588033407679858887066127601712837460889352700776933817899741423074208021007121601559346128785260368039437288180619491038277509316469096265974144500370390025598541926268966991273351074192019181766879397933295145912777536707564432338432332685262426166922771366275146866088564122596130828757490597352243454300873040917192433912506366963019807615666882856350183483405312226736871736023471131309911279941053648448418839455793505622718158718054756408916077068520323818150863756504978273790395856094143820468792701945414620580093043753596255946424114180668660737036794093846376332332498589701072881834223283593182735092108405573789471615351156370186824831022674498526776866187684768538874196174210130537767303817116472466368247157052750241053064923246501157866462812690092756461197590325208815488559533967853448923612572000371776122219040874033966869294831228854305061086519094624130838048008037213946621014193405882170240968916610293193599993759524736059233720655063539737714903128310086743742021845552780330342524272272254563847545871651994538612619934385699745121557349800263616537474951245577400534586471217872306034017978337930025353082642379145176413700828861090557893847616229772475845301807186724500491719384073583330400183684399093856965237788747505163830100612841702225900632391263667475064907852411517182187011838317589725024158880780143407055346282197153793040248025352473536538854586286312290400156032250279063187295187149122008328598088731350662957524582573795669640537541044608560939944426567746961932898304614452443370227005333466272887517300640430972754403267427969042819923226128286121623653601834114225264238614615332620687047985295404176420527738401034145401993260173794846353047440652754211543196395816146525982941441133499050259298763931651294364553191249374520272128978621082199723203913610149685688125186218681756193839852117405548140167502048548199565328997581892013900581842921590642006849843378880860865943614036420274740522634386203009549451209982820888815501154263564341227939118496984635349623006105978730942388934438999129281453390603024184122243350034383267958579845658103661448089300411180881882812951179459845260405227079667230959297248721122706178112695037727030538619236945985849794213723950331715803910119124250624547071556845335292267530727533561366266356641650946417810210840488823105309003369801812199314619163786038088569270958700210652145467915452483883406253408072662271470296193871464653312992124099876648911644761255411159944567863019923832237644705456260487729517585895266285037752521845594649921469036158572113930634873777572461925762914762586801502087862290813710669260578188354979957275403556932972318131819229135105240053044143930856736757978056138180338291908898691617558407145024807177804276234230531979172891369270134608365299989954256482471684548314327815998936061268013848168107986563087173295304632754303557933645253294590306966118288883048382984135812373753028269495492548786568376752476467867923630654102218679180870583392032438949265817363698176034008552328197822882224049989083988351517937048641078370384523904228520582435864752397767212720237159916658836106573419124322137516799408844597261707644599010208583329986039064919352067223006287832474425685201669192719201805576431473581568386189561429261713634279837245244545768948720388351839689535399005729471955444272900485849511539475266824409421054667298175547081293921270029537830966058289105789273227401216656524060507428252929053929909572271232367384758896044402569839074813055157523085779552040089220487308192525980892747415961693199100225119093460554166641012187759703525983306023156167723647306563719822043487313546543023569645317753622090233934952135067613595589285646198367784323107030635311768749577108776603611964239722278478642583843670066731025850620233687608602900637237753257243070513382811898841818476225548694968376931240752138498497014743792169558971739279062084654470352913641580137838779068704687993947344043318279260725486765540466043120996159895636154460570951684836927572080733238003928471443569066434097543087956599166655592062850858919284093312821761782899892098689350646729888624318050298173538381224167008030248266928772323365574509911724387246059838082349272040072738359714856885377394029935953298930329649994372926253348103838636688399474585692941146487350883402213293274501093802974013606371558196861298817917539415338055455622554803738050160119316871446092203793844203918967687036448928660724514662445462419355160924898164132960134593245498879537636989399498246197544220858379653378748457663109168110604829124160033178919461072607673665842424387506182571225839500990523625468562278891692110697770805685612894842235939865254209179303498180130074951302396127555037892807259208926831495449670285360662921279147721887873701261630029078251538832868906124523255909422542428194012872211618869010670984772789768067145666524823464399573948820398705801649533371199523111995641946562047736826137857228046690693660791397602635721363045380830052951072372503331009384875238267900410538202010504797680554097805904713748780784206964630934161859588921538599436431841387842671869877961478339774057398765118426423051533184639679008624427436702827379170844283195765276640313715887197347985401110361395471432917770156753885970720787072580400247637031666510518326883246180279632388861430371899128044340794676191145603800787018126871526194033220316232143048406890815622186210496364277540402328481349442204191053017807758001454374563501601489301966854222871393101767616073510550487266390070887455179140112101478442875219990830621757865326205266359862878010659448515781201791094456986579608599603466386428042894882119564582513992138903489891533636794384219448694259846354825665989121893046691983010501362950137609144383102009408840709697454431817662097218777302210338015716280400640742830287100235284620397686153150196016002189976222446404230580219366227505703386166492297046405885554169919227773227477145209984105158892018012623558878804623445529954096605285318950907255800788149212379065229589855311188157447874593377877839686418598802890390151643275510029923931381602751436422637378072888471537072157997061309805822481458340886694034309909951154402193127175305628638020353593046712318779210107100512692878448681856183979271778810337945503242999414307314525756747307140931265315867174259088437846379931359974462188214915382656326497324852732806404294684093763158686936205723424547570391784272628053165037476473360811690934699810282276345681688954465452435553884701010276672176622762215734566780516405098011001941095798306537375460069445337753920999413194268440078771312627122154162843751702144057721467456518543247275052489471984940029985166835286726825548921798029041437865764573276797952198221608526604739576859817677585352510482748273849107304088146148186249577832508723051741282445723855917723995177529874991560396020888916377962670816603718829288568736432522299998701802246699013743432955558552288594811851339073258548900522031953671940483417953467396098897256950993998188543266043356128990266866602511863094302508398365000068520032550907546999382302746560674415072185352394976366449901699106175033971203596926435996144260342888660953144867351222691430023254043018885858484223384134221296767115042789139789192994782681987318469640867254682096987626980893165566219933323083603988026575427469252086513909423093163603488363919420082108459563186361653028823522643459996582482604706408087094846537493189581661998332183604716422965098245651194868652828948087655010197710431574770708723927319976180022054632375183505216973273765581258819083945814193671913990638872742674556506730943845214292942437983305015994311848504588773430015507698849310891418920072739247124263636340872077777311475761312733305281659416908876419003591705220500083035701720512529634387814970927235651214172516857097329239418043044019514960155087693013105445192288377686884454759149677078379158759253110647064399305774908430669722316817532852583878666381071810976278954164475911612513093170193066101830691930388686144057878923651854962388375896210110739335853847550501044980493375682567632990197344384881102278618840647141530134835640422495360469889378183148563630247488686939810156983146586064643162706612864406131316727464494999514961467098322391032415869646446886364951051258140969729884141644526692784194283088764618049224672864082407960554076575479900719572835749273136713887917397894365007791065732730147819558984280030806980367918531668006052618595419422334402362056247254178511124872792382703445611788410751684786887267325061273545506303543332965326635563610782173157940320488628525191286331652163882530092565749691822480064703082681823651215855420416311083833987959366291727710959275756934927618787963293466787452854461409647095098364177457821171799660906309467670773700175972078010383556254827860154193850054938450357406211179004150714309607145615590703030461165334574872433415089891997681708928829053099383944359043594534662668638100373073294717680214327059921139077075396789887414419632488593239693278649548032396635712900457906062052457610027891348220362160447360803169316021459858485200136507854166395402145333616434731163563798285314500812128501004319067076594336421105882144246855161735058014561572946962284076515965563931827749241890401041664217099487591533078527747288618578287653248136151398465598021572431340624489513789444479594850085023306539974442440451650792713777586822815761930709685989767517574420329810122389022641738689663990603800794294126774738277173171227077461400661751699618959145047943393024986575228148954616150242285821758984067374654408451975075253968985199485330132894343156866219761619894160230261226919016662835166663087350601801621602301338285788051168752201731934470945828108003939784796341299185876323345961546701740193701355735222452317452395133221469357095236122445261502168351053010687470499512872821640195074247431127194737273385636015516097321668155209436610420886854620430656810875837957431993770751320311483622675637095957714045329114955207592612249800922145577373566653585788574820853871275606944699611715484597482768176538634068626861300866885761399267699032864407986746602571063717758368124336055620361443092217320850992004555000422425458767231401999126482999097836183014068156463986744649610387603023638022774188018704385035089171736944326558320087349981991802025179277732858777424292974104329761547765999921655264258682679400329419063410702645263935988555553343918683587218928439197804138921151748129764519223350419514713925059447372549755931688155897217393559264672027866437737721129306006443462714051945741050404750347212642293685824332211811342912234150689194984563987176883127985330328237164008911927964101906679762727118784843485486388922841699450494822722520821082027394414214111226241588529484501989555917219817451799413144036650531903856495956570445910854953270980012528783136213659801319113454972711127015558256255809246510658648117196607495778339603865626543565324150479260651855092348264436072801763281094295685293335539368133609943902206681378940420298001737865362113456537946287425419387407488641406144627924176150451736820425474318702406203048102145327726574561244575768808808555093182203273422321742416775831114046146739914861193027786509526456582475538295295902656813285419407561380111523084713277016222719797179328037023102339117110227143280792529363746015040923019969251735593685407628322240158486127246262287057218989982390488009674513807648737983840370480399787384990231412460609495879545464228931041063103116933378125283375432560800705089793233016118447962187399646535010839135303402054328796671790227377212807258399069774256195453044904045062390611751097284616884209459824077020352868942318912602190194878084768214815104921021949724237364825710880903395337314839085385529145733037685291568686688016024187440868455296600464185905349121174818599669884810463317939592555305554180419647465710983760260013603150560371097532956504553740812379334754687882423370017397884203993292813990476158318085615938212850309942113692499888663350557972167810290801786021302446869562070718084536860071511936846408756507832833374499617635251314655254504997081845095888848690831753571831223079271035955677931627211676033580402560315630596769371072028206608112661425489038187490127033330264631630544478361260654125365658051935364188328492433481189852149141110242505188488794063520074580945838519705082540226733056805040526824868481552995948760004116901698376598112936852622452365627435095216171325549374926900771029741597114487855099954896212902185597898525347594530494734361979713537852692590883383668993292414877093475981309389063428367499597027229495462716426834752433298904595561034412176818568147810585206687286071287936360823879894800835447527161660195581324202501529585588106467903749796364122949330820937397979851339659984531624019558949577973050554557273547332129799412599376842171225854786839347803533960935007409138267722794814834677076174103039037095512489015121849201960039409776619090748411493463605313472906846358478569977807749203446343248564413876031325108757944890892076121752418470551695778402783698394070396367366392474408685425513075621103525498290753085834722580665336723480386698085530132269979853530641239294340869039389743696310573784866439900400560409771330082333394524213850622729985161395442382766392940228974997991841067332429196680299131598911480741957929881815535504841575299698721761877478765738028717522469454189325604987311229305044089015207523100172435723883284496603622826334603662651845132341887554294591952257268203768790234542381973716611467865857115807911795043377453969204354558913679788625447526255969307662885907771014633568468404168816476185896763757481688602422443305972840527244908209339799139538472927576909103328979154315619571897023310102789593691220572912681980386154759342327110706053326287732779173776878152235994376461818741152186162121984899426762524792512823717546201044143611233988719663406771547012221777703146605800891833722698742963069644943922903027488028808661268104782057052327296391709879024121832296934432589657170773636817670359133725428679971380400434511797522522109683102487106912789956439227251220451849095724501725816524192755186070804673385521489224590292864373356471604003523178494780601990496157556400791189605944878850968831706675346076719815267883308734166027710040337247657246711090051184989673818218039369804091285445461938688888215541315637472354560385708717337351670236035857448321091067972567989638111540786242277522807720164807398443418720472563951187298395710264562073443365307747730601136967198320672349142501763126449876518934935058871438086427855086336541598250319065639832409051706617123444574448941053353001126352426080899625132048130676157113056691780374599514400138522363190401475910413150589164755552792397209364356527971223153650150860463998332433561889141035657564801354763003832488307995485130025019521710128523497652148480009173896890178223590458134388112355112537557608265261691844161544195315611369854283382088531983010213662403180507653907751169127945479122838094957988064729528720996814184623741106368745909658433842665945915241567140159187499804475604642443747446323903998655139325957352785532354408256364706686281707539713616805614079138215205198882001641350179478394715264247680200829496821489369263647398443898669232225665348865740198124139302648833963944723951014017513805807262122730271474811705392377640412583914182412137202396702333727788886417828062720066052495688563398805158321061960894257858900017891853762547058733831768335700164100113210448879449474868386928427983094376871367662501685463521856821592100681833982584159136473394610047028969184336040933068628342098824804322332226578502353966105554017148856038672715217477793349905659134332188244355045955693454366239221564579513241349048761618401951048410262549286711059928130233402469146739002578885352746591351603190821980452847494225013968521376889232561601205923233075397315337293296530604861964434788909052444855483898536696206109023827287386391586886979046251958034523430848376871738895388631529091362854543361800037293493380196066484660571499040376171647233129937890921279578363166744702699753788095210271387714696479028230790170540104303032139707887426032727104417926954077209488054134928277336409046632826820961035517088460410036223886452176888100070705416461012907392214119800843925040623352437142338957330648680726684509051782895107522065651705130016583127156046236122414469339001559108688561190009512657209783184572160259311034052902659140757834015731104656176857889817321627948271507645775690209485399406555539570204959568531266786261415425422907717001849269596218990985957897187950643396421925775679087891875081415445079628351219633819491015841048688722467235231656995497503526691019715858402625409961272940568804586563356923138808607446374097530572396923626320452413445170666182495949384976865270604406518550028966288342231696033068008701625634521959678600275959924232126325215534912043060341183925857865417098790397881278200088729557059304213547413820611586197048199561147794117694540729654626910749143399983057139970063134753056529985830555702032745924484127014335397048667236929398309816498508536211439025095552099398902369673628632745795288378700512392631507701006448538704995291650064627967214614290698337417328597436420139333075925676364366305694852473882323580068591894603313215798570306247715758385006524385464570669211010476562120895292074772917549037456633769489682395911769910015473576692747985933101788517178219071035133054288987299001437125854237782585403604163624960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.66.1' ************** SAGE ***************** Host 70.66.100.220 (70.66.100.220) Time: Wed Aug 9 22:51:51 2006 Input: factorial(time) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'time' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.66.1' ************** SAGE ***************** Host 70.66.100.220 (70.66.100.220) Time: Wed Aug 9 22:51:40 2006 Input: factorial(fafdsafs) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'fafdsafs' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.66.1' ************** SAGE ***************** Host 70.66.100.220 (70.66.100.220) Time: Wed Aug 9 22:51:12 2006 Input: factorial(4) Output: 24 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.81.2' ************** SAGE ***************** Host 24.81.241.55 (24.81.241.55) Time: Wed Aug 9 22:51:06 2006 Input: factorial (10000) Output: 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.81.2' ************** SAGE ***************** Host 24.81.241.55 (24.81.241.55) Time: Wed Aug 9 22:49:49 2006 Input: factorial (100000) time Output: 2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s Wall time: 0.00 Exiting SAGE (CPU time 0m0.54s, Wall time 0m0.58s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.81.2' ************** SAGE ***************** Host 24.81.241.55 (24.81.241.55) Time: Wed Aug 9 22:49:36 2006 Input: factorial (100) time Output: 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s Wall time: 0.00 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.81.2' ************** SAGE ***************** Host 24.81.241.55 (24.81.241.55) Time: Wed Aug 9 22:49:03 2006 Input: factorial (4) time Output: 24 CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s Wall time: 0.00 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.81.2' ************** SAGE ***************** Host 24.81.241.55 (24.81.241.55) Time: Wed Aug 9 22:48:37 2006 Input: factorial (4) Output: 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.81.2' ************** SAGE ***************** Host 24.81.241.55 (24.81.241.55) Time: Wed Aug 9 22:48:29 2006 Input: factorial: 4 Output: Errors: ------------------------------------------------------------ File "", line 1 factorial: ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.101.' ************** SAGE ***************** Host 71.101.33.140 (71.101.33.140) Time: Wed Aug 9 21:38:36 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.173.' ************** SAGE ***************** Host 67.173.157.126 (67.173.157.126) Time: Wed Aug 9 17:58:00 2006 Input: 17,000,000,000/1,000,000 Output: (17, 0, 0, 0, 0, 0) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.196.' ************** SAGE ***************** Host 24.196.114.198 (24.196.114.198) Time: Wed Aug 9 16:19:33 2006 Input: (x-9) + (x2 - x + 17) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '152.163' ************** SAGE ***************** Host 152.163.100.68 (152.163.100.68) Time: Wed Aug 9 15:26:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.130.' ************** SAGE ***************** Host 69.130.157.157 (69.130.157.157) Time: Wed Aug 9 15:02:32 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.25.' ************** SAGE ***************** Host 192.25.240.225 (192.25.240.225) Time: Wed Aug 9 14:24:15 2006 Input: 10 log 1 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10) log ZZ(1) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.64.1' ************** SAGE ***************** Host 72.64.159.177 (72.64.159.177) Time: Wed Aug 9 14:12:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 14:08:38 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],30) continued_fraction(exp(1)) convergent([2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12, 1, 1, 14, 1, 1, 16, 1, 1, 18, 1, 1, 20], 25) Output: 242113 367296043199/259717522849 [2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12, 1, 1, 11] 28875761731/10622799089 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 14:08:11 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],30) continued_fraction(exp(1)) convergent([2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12, 1, 1, 14, 1, 1, 16, 1, 1, 18, 1, 1, 20], 20) Output: 242113 367296043199/259717522849 [2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12, 1, 1, 11] 410105312/150869313 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 14:07:44 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],30) continued_fraction(exp(1)) convergent([2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12, 1, 1, 14, 1, 1, 16, 1, 1, 18, 1, 1, 20], 30) Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py in convergent(v, n) IndexError: list index out of range 242113 367296043199/259717522849 [2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12, 1, 1, 11] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.2.16' ************** SAGE ***************** Host 75.2.165.226 (75.2.165.226) Time: Wed Aug 9 14:02:35 2006 Input: (4.09*10^6)(5.87*10^-7) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'mpfr.RealNumber' object is not callable Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.242.' ************** SAGE ***************** Host 69.242.231.118 (69.242.231.118) Time: Wed Aug 9 13:51:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:35:12 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],30) continued_fraction(exp(1)) Output: 242113 367296043199/259717522849 [2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12, 1, 1, 11] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:34:38 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],30) exp(1) Output: 242113 367296043199/259717522849 2.7182818284590451 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:33:46 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],30) Output: 242113 367296043199/259717522849 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:32:30 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],20) Output: 242113 54608393/38613965 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:32:15 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergents([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],20) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: convergents() takes exactly 1 argument (2 given) 242113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:31:06 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) continued_fraction(sqrt(2)) Output: 242113 [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.10s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:30:42 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) x=sqrt(2) convergent(x,20) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py in convergent(v, n) TypeError: unindexable object 242113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:30:02 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) convergent(sqrt(2),20) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py in convergent(v, n) TypeError: unindexable object 242113 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:29:35 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) sqrt(2) Output: 242113 1.4142135623730951 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.32s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:28:59 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) convergent(e,20) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py in convergent(v, n) TypeError: unindexable object 242113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:28:38 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) convergent(exp(1),20) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py in convergent(v, n) TypeError: unindexable object 242113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:28:19 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) convergents(exp(1),20) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: convergents() takes exactly 1 argument (2 given) 242113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:24:34 2006 Input: power_mod(3382146105564107708501764341433380779416156,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) Output: 242113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:22:24 2006 Input: power_mod(709826330818679204139098869309712430988610,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) Output: 1023139910992524122014291530219924159916 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:18:35 2006 Input: power_mod(2660999956459044462496559697895207916164979,2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) Output: 1899211831149915242799223499132714102299 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Wed Aug 9 12:17:13 2006 Input: power_mod(2777,65456546,56554) Output: 26677 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.184.' ************** SAGE ***************** Host 72.184.10.191 (72.184.10.191) Time: Wed Aug 9 10:34:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.36.2' ************** SAGE ***************** Host 71.36.202.221 (71.36.202.221) Time: Wed Aug 9 09:31:34 2006 Input: 355.51*4 Output: 1422.0400000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.36.2' ************** SAGE ***************** Host 71.36.202.221 (71.36.202.221) Time: Wed Aug 9 09:31:18 2006 Input: 11.11*32 Output: 355.51999999999998 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.36.2' ************** SAGE ***************** Host 71.36.202.221 (71.36.202.221) Time: Wed Aug 9 09:30:55 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.219' ************** SAGE ***************** Host 134.219.148.42 (134.219.148.42) Time: Wed Aug 9 07:56:46 2006 Input: free group Output: Errors: ------------------------------------------------------------ File "", line 1 free group ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.219' ************** SAGE ***************** Host 134.219.148.42 (134.219.148.42) Time: Wed Aug 9 07:56:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.182.' ************** SAGE ***************** Host 82.182.86.196 (82.182.86.196) Time: Wed Aug 9 04:02:04 2006 Input: factor((10^67-1)/9) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 1257 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '82.182.' ************** SAGE ***************** Host 82.182.86.196 (82.182.86.196) Time: Wed Aug 9 04:00:29 2006 Input: factor((10^43-1)/9) Output: 173 * 1527791 * 1963506722254397 * 2140992015395526641 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.24s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.49.2' ************** SAGE ***************** Host 71.49.2.165 (71.49.2.165) Time: Tue Aug 8 19:20:25 2006 Input: 32.71+33.29+19.08+17.18 Output: 102.25999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.169.' ************** SAGE ***************** Host 66.169.108.181 (66.169.108.181) Time: Tue Aug 8 19:03:35 2006 Input: 3x+2y=3 -y+4x=1 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x+ZZ(2)y=ZZ(3) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 -y+ZZ(4)x=ZZ(1) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.169.' ************** SAGE ***************** Host 66.169.108.181 (66.169.108.181) Time: Tue Aug 8 19:02:17 2006 Input: f(2) if f(x)=-5(x+4) Output: Errors: ------------------------------------------------------------ File "", line 1 f(ZZ(2)) if f(x)=-ZZ(5)(x+ZZ(4)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.169.' ************** SAGE ***************** Host 66.169.108.181 (66.169.108.181) Time: Tue Aug 8 19:01:17 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.45.2' ************** SAGE ***************** Host 82.45.250.169 (82.45.250.169) Time: Tue Aug 8 17:37:45 2006 Input: 19-5+4+3*2+6-5 Output: 25 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.45.2' ************** SAGE ***************** Host 82.45.250.169 (82.45.250.169) Time: Tue Aug 8 17:37:12 2006 Input: Nineteen,Minus,Five+4+3*2+6-5 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Nineteen' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.45.2' ************** SAGE ***************** Host 82.45.250.169 (82.45.250.169) Time: Tue Aug 8 17:36:07 2006 Input: Nineteen,Minus,Five 4+3*2 6-5 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Nineteen' is not defined 10 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.45.2' ************** SAGE ***************** Host 82.45.250.169 (82.45.250.169) Time: Tue Aug 8 17:35:54 2006 Input: Nineteen,Minus,Five= 4+3*2 6-5 Output: Errors: ------------------------------------------------------------ File "", line 1 Nineteen,Minus,Five= ^ SyntaxError: invalid syntax 10 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.45.2' ************** SAGE ***************** Host 82.45.250.169 (82.45.250.169) Time: Tue Aug 8 17:35:26 2006 Input: Nineteen Minus Five= 4+3*2= 6-5= Output: Errors: ------------------------------------------------------------ File "", line 1 Nineteen Minus Five= ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(4)+ZZ(3)*ZZ(2)= ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(6)-ZZ(5)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.45.2' ************** SAGE ***************** Host 82.45.250.169 (82.45.250.169) Time: Tue Aug 8 17:34:54 2006 Input: Add the numbers Nineteen Minus Five= 4+3*2= 6-5= Output: Errors: ------------------------------------------------------------ File "", line 1 Add the numbers ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 Nineteen Minus Five= ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(4)+ZZ(3)*ZZ(2)= ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(6)-ZZ(5)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.229.' ************** SAGE ***************** Host 72.229.120.226 (72.229.120.226) Time: Tue Aug 8 16:52:47 2006 Input: (X^3 + 15*X^2 - 15*X + 15) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'X' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.229.' ************** SAGE ***************** Host 72.229.120.226 (72.229.120.226) Time: Tue Aug 8 16:52:05 2006 Input: 5% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:50:02 2006 Input: is_prime(2^1279 - 1) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 12937 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:49:25 2006 Input: is_prime(2^607 - 1) Output: True Exiting SAGE (CPU time 0m2.06s, Wall time 0m2.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:49:07 2006 Input: is_prime(2^127 - 3) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:48:57 2006 Input: is_prime(2^127 - 1) Output: True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:48:40 2006 Input: is_prime(2^107 - 1) Output: True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:48:25 2006 Input: is_prime(2^89 - 1) Output: True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.134.' ************** SAGE ***************** Host 74.134.68.174 (74.134.68.174) Time: Tue Aug 8 14:46:53 2006 Input: 25,000 Output: (25, 0) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:46:17 2006 Input: is_prime(2^61 - 1) Output: True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:43:51 2006 Input: a = 7; b = a*a; b Output: 49 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:59 2006 Input: is_prime(51393294296858202700181130123301321) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:56 2006 Input: is_prime(5139329429685820270018113012330131) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:53 2006 Input: is_prime(5139329429685820270018113012330111) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:49 2006 Input: is_prime(5139329429685820270018113012330191) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:45 2006 Input: is_prime(5139329429685820270018113012330197) Output: False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:41 2006 Input: is_prime(5139329429685820370018113012330197) Output: False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:35 2006 Input: is_prime(5139329429685820370018113012370197) Output: False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:07 2006 Input: is_prime(513932942968582037001823012370197) Output: False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:41:01 2006 Input: is_prime(51393294296858203700182301237017) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:40:54 2006 Input: is_prime(513932942968582037001823012370171) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:40:50 2006 Input: is_prime(51393294296858203700182301237017) Output: False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:40:36 2006 Input: is_prime(51393294296858203) Output: True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:40:02 2006 Input: factor(1319871945719992919797979) Output: 43 * 61 * 9791 * 51393294296858203 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:38:19 2006 Input: 131237010123820^124 Output: 43549645515253188659474839301609728598496431954224863818662013390052944380654112764089764568295312473716533774650456408976393849229040935298906450599321467059850667714688141637754420079349109494913575257285450700282634927753879711567998380396461907908650314752959317030820436028557107935500585017173651151111840307856964118410476541845666624109563661446822281886526764067779576619399912060848586391274170810599493532072062830431188713264208823234879334562767105860254647117960878170551657159562855048125144093030971221691333685654978166522533671407341708726868077547838897663996726144395721507063455271882187530167282297529438609844221728148498592019335932430307313879324542526577427874527905357009305178042227054202477969883165179916694857611914421358626333251358538330137335428978326556608141195162114677726256900164908448345323739320450814261036674736461452308729145688348572089808421131884042664552300394052701523901745320793324973207345053732970881706558774727490298329966709534992255291659202899922871483721428613560378413850650368974748722260412623640489861118995632822975250688371050067326076344111757364163795926579816195419735899759498454271036809409073643336846454796613315783180388648285474099022563582527840662998070141378497162134607042909312581599031385068109016224310171888636557245337782415945457391100021117054955186643292663089873779298347025721206106762013514077150344286999599947630152133068753218780151910173089108400322653267255875854816206697155433164102207664872491160166045980334289551887211956541751820030954165255745803894740102361352195196525896313174380928586684225847035529019149971535959959797760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:37:31 2006 Input: factor(131237010123820) Output: 2^2 * 5 * 1429 * 2203 * 2084393 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:36:38 2006 Input: is_prime(130127412371) Output: False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 14:35:48 2006 Input: is_prime(7) Output: True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.185' ************** SAGE ***************** Host 200.185.104.245 (200.185.104.245) Time: Tue Aug 8 13:36:03 2006 Input: factor(19631212) Output: 2^2 * 251 * 19553 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:37:54 2006 Input: factor(1234321156719) Output: 3^6 * 7 * 241881473 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:37:44 2006 Input: is_prime(1234321156719) Output: False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:35:36 2006 Input: is_prime(12343211567119) Output: True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:32:42 2006 Input: factor(12343211567119) Output: 12343211567119 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:32:36 2006 Input: factor(123411567119) Output: 401 * 307759519 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:32:29 2006 Input: factor(1234115679) Output: 3 * 67 * 179 * 34301 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:32:21 2006 Input: factor(12345679) Output: 37 * 333667 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:32:13 2006 Input: factor(12345678) Output: 2 * 3^2 * 47 * 14593 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Tue Aug 8 12:31:54 2006 Input: factor(1234567) Output: 127 * 9721 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.18s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:31:37 2006 Input: 4/5 Output: 4/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:31:21 2006 Input: 320/5 Output: 64 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:31:09 2006 Input: 45+86+70+63+56 Output: 320 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:30:54 2006 Input: 395-350 Output: 45 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:30:42 2006 Input: 436-350 Output: 86 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:30:17 2006 Input: 420-350 Output: 70 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:30:07 2006 Input: 413-350 Output: 63 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:29:53 2006 Input: 406-350 Output: 56 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 10:20:03 2006 Input: 1250x4 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1250)x4 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 09:59:37 2006 Input: 80/3.015 Output: 26.533996683250415 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.193.' ************** SAGE ***************** Host 63.193.144.46 (63.193.144.46) Time: Tue Aug 8 09:57:53 2006 Input: 80/6.03 Output: 13.266998341625207 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.10s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.2.14' ************** SAGE ***************** Host 12.2.142.7 (12.2.142.7) Time: Tue Aug 8 09:36:02 2006 Input: 8500/350 Output: 170/7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.2.14' ************** SAGE ***************** Host 12.2.142.7 (12.2.142.7) Time: Tue Aug 8 09:35:45 2006 Input: 350*8 2800-8500 Output: 2800 -5700 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.2.14' ************** SAGE ***************** Host 12.2.142.7 (12.2.142.7) Time: Tue Aug 8 09:35:23 2006 Input: 350*8 Output: 2800 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.53' ************** SAGE ***************** Host 61.5.53.61 (61.5.53.61) Time: Tue Aug 8 07:56:07 2006 Input: R = Integers(47) a = R(2) a**32 Output: 42 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.53' ************** SAGE ***************** Host 61.5.53.61 (61.5.53.61) Time: Tue Aug 8 07:55:49 2006 Input: R = Integers(47) a = R(2) a**33 Output: 37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.53' ************** SAGE ***************** Host 61.5.53.61 (61.5.53.61) Time: Tue Aug 8 07:55:38 2006 Input: R = Integers(47) a = R(2) a**36 Output: 14 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.53' ************** SAGE ***************** Host 61.5.53.61 (61.5.53.61) Time: Tue Aug 8 07:55:19 2006 Input: R = Integers(47) a = R(2) a*32 Output: 17 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.53' ************** SAGE ***************** Host 61.5.53.61 (61.5.53.61) Time: Tue Aug 8 07:55:05 2006 Input: R = Integers(47) a = R(2) a**200 Output: 18 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.53' ************** SAGE ***************** Host 61.5.53.61 (61.5.53.61) Time: Tue Aug 8 07:54:49 2006 Input: R = Integers(47) a = R(2) a**47 Output: 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.53' ************** SAGE ***************** Host 61.5.53.61 (61.5.53.61) Time: Tue Aug 8 07:54:21 2006 Input: R = Integers(47) a = R(2) a**32 Output: 42 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.4.' ************** SAGE ***************** Host 61.5.4.42 (61.5.4.42) Time: Tue Aug 8 05:55:49 2006 Input: R = Integers(47) a = R(32) a**200 Output: 27 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.4.' ************** SAGE ***************** Host 61.5.4.42 (61.5.4.42) Time: Tue Aug 8 05:55:32 2006 Input: R = Integers(47) a = R(2) a**200 Output: 18 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.4.' ************** SAGE ***************** Host 61.5.4.42 (61.5.4.42) Time: Tue Aug 8 05:54:55 2006 Input: R = Integers(47) a = R(2) a**47 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:54:49 2006 Input: 2956+50+200+400+100+200+200+30-1889-2167 Output: 80 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:54:23 2006 Input: 2956+50+200+400+100+200+200+30 Output: 4136 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:53:54 2006 Input: 1889+2176 Output: 4065 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:53:35 2006 Input: 2956+50+200+400+100+200+200 Output: 4106 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:52:31 2006 Input: 27+30+28+36+50+46+30+30+266+629+31+70+83+10+50+35+174+210+10+14+17+32+5+23+71+20+4+19+30+51+16+11+20+31+23+35+85+36+28+22+444+17+20+37 Output: 2956 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:52:22 2006 Input: 27+30+28+36+50+46+0,3+30+30+266+629+31+70+83+10+50+35+174+210+10+14+17+32+5+23+71+20+4+19+30+51+16+11+20+31+23+35+85+36+28+22+444+17+20+37 Output: (217, 2742) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:52:12 2006 Input: 27+30+28+36+50+46+0,3+30+30+266+629+31,15+70+83+10+50+35+174+210+10+14+17+32+5+23+71+20+4+19+30+51+16+11+20+31+23+35+85+36+28+22+444+17+20+37 Output: (217, 989, 1768) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:51:04 2006 Input: 27+30+28,79+36,41+50+46,41+0,3+30+30+266,51+629,14+31,15+70,79+83,81+10,15+50+35+174+210+10,70+14,47+17+32,17+5+23,01+71,28+20+4,4+19,92+30+51,8+16,7+11,97+20,9+31,41+23,6+35+85,19+36,75+28,79+22,36+444+17+20+37,95 Output: (85, 115, 137, 41, 329, 680, 45, 85, 162, 91, 494, 84, 96, 45, 72, 52, 23, 173, 24, 18, 117, 40, 64, 126, 55, 103, 101, 554, 95) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.4.' ************** SAGE ***************** Host 61.5.4.42 (61.5.4.42) Time: Tue Aug 8 05:50:30 2006 Input: factor(72) Output: 2^3 * 3^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.216' ************** SAGE ***************** Host 195.216.40.111 (195.216.40.111) Time: Tue Aug 8 05:48:10 2006 Input: 20+20 Output: 40 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.59.1' ************** SAGE ***************** Host 24.59.161.234 (24.59.161.234) Time: Mon Aug 7 23:07:38 2006 Input: 22500+34000+6000+3600+2400+1000+500+50+700+4000+3000+100+1600+4000+260+460+280+250+150+220+250+250+200+2500+150+250+1250+100+75+5000+8500+450+250+600+1000+450+750+450+180+50+1000+1100+950+700+700+300+300+300+800+1100+850+600+1200 Output: 117675 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.59.1' ************** SAGE ***************** Host 24.59.161.234 (24.59.161.234) Time: Mon Aug 7 22:59:00 2006 Input: 761855+19875 Output: 781730 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.59.1' ************** SAGE ***************** Host 24.59.161.234 (24.59.161.234) Time: Mon Aug 7 22:58:21 2006 Input: 3+3 Output: 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.59.1' ************** SAGE ***************** Host 24.59.161.234 (24.59.161.234) Time: Mon Aug 7 22:57:56 2006 Input: 3+3=? Output: Object `ZZ(3)+ZZ(3)=` not found. Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.16.1' ************** SAGE ***************** Host 75.16.138.161 (75.16.138.161) Time: Mon Aug 7 22:23:20 2006 Input: x+6/x^2+2x-15+x+6/x^2+6x+5 Output: Errors: ------------------------------------------------------------ File "", line 1 x+ZZ(6)/x**ZZ(2)+ZZ(2)x-ZZ(15)+x+ZZ(6)/x**ZZ(2)+ZZ(6)x+ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:55:36 2006 Input: 662+50+50+120 Output: 882 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:51:58 2006 Input: 589-544 Output: 45 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:51:37 2006 Input: 42+90+47+43+47+38+95+28+34+30+24+25+22+24 Output: 589 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:46:51 2006 Input: 612+50+50+20+100 Output: 832 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:43:42 2006 Input: 8/9 Output: 8/9 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:43:28 2006 Input: 544/612 Output: 8/9 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:42:30 2006 Input: 42+45+45+47+43+47+38+95+28+34+30+49+46 Output: 589 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.151' ************** SAGE ***************** Host 146.151.49.239 (146.151.49.239) Time: Mon Aug 7 18:40:35 2006 Input: 42+45 Output: 87 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.121.' ************** SAGE ***************** Host 68.121.22.156 (68.121.22.156) Time: Mon Aug 7 16:45:11 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.195.' ************** SAGE ***************** Host 69.195.28.119 (69.195.28.119) Time: Mon Aug 7 15:20:48 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.85s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.40.2' ************** SAGE ***************** Host 72.40.25.145 (72.40.25.145) Time: Mon Aug 7 14:16:22 2006 Input: 187416 187416 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(187416) ZZ(187416) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.40.2' ************** SAGE ***************** Host 72.40.25.145 (72.40.25.145) Time: Mon Aug 7 14:15:34 2006 Input: 187416 x 187416 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(187416) x ZZ(187416) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.40.2' ************** SAGE ***************** Host 72.40.25.145 (72.40.25.145) Time: Mon Aug 7 14:13:38 2006 Input: 187416 Times 187416 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(187416) Times ZZ(187416) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.75.2' ************** SAGE ***************** Host 72.75.2.9 (72.75.2.9) Time: Mon Aug 7 14:02:54 2006 Input: ? Output: Errors: sh: less: command not found Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.56.2' ************** SAGE ***************** Host 70.56.227.138 (70.56.227.138) Time: Mon Aug 7 09:53:50 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.4.15' ************** SAGE ***************** Host 68.4.151.88 (68.4.151.88) Time: Mon Aug 7 09:13:38 2006 Input: 55.68+129.49= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('55.68')+RealField(max(16,RR.precision()))('129.49')= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:09:14 2006 Input: k=GF(3) k A=PolynomialRing(k,'t') A F=FractionField(A) F D=QuaternionAlgebra(F,-1,-1) D Output: Finite Field of size 3 Univariate Polynomial Ring in t over Finite Field of size 3 Fraction Field of Univariate Polynomial Ring in t over Finite Field of size 3 Quaternion algebra with generators (x0, x1, x2) over Fraction Field of Univariate Polynomial Ring in t over Finite Field of size 3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:08:02 2006 Input: k=GF(3) k A=PolynomialRing(k,'t') A F=FractionField(A) F D=QuaternionAlgebra(F,-1,t) D Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 't' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'D' is not defined Finite Field of size 3 Univariate Polynomial Ring in t over Finite Field of size 3 Fraction Field of Univariate Polynomial Ring in t over Finite Field of size 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:07:11 2006 Input: k=GF(3) k A=PolynomialRing(k,'t') A F=FractionField(A) F Output: Finite Field of size 3 Univariate Polynomial Ring in t over Finite Field of size 3 Fraction Field of Univariate Polynomial Ring in t over Finite Field of size 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:07:05 2006 Input: k=GF(3) k A=PolynomialRing(k,'t') A F=FractionField(A) Output: Finite Field of size 3 Univariate Polynomial Ring in t over Finite Field of size 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:06:51 2006 Input: k=GF(3) k A=PolynomialRing(k,'t') A FractionField(A) Output: Finite Field of size 3 Univariate Polynomial Ring in t over Finite Field of size 3 Fraction Field of Univariate Polynomial Ring in t over Finite Field of size 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:06:02 2006 Input: k=GF(3) k A=PolynomialRing(k,'t') A IsField(A) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'IsField' is not defined Finite Field of size 3 Univariate Polynomial Ring in t over Finite Field of size 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:05:53 2006 Input: k=GF(3) k A=PolynomialRing(k,'t') A Output: Finite Field of size 3 Univariate Polynomial Ring in t over Finite Field of size 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:05:20 2006 Input: k=GF(3) k Output: Finite Field of size 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.73.1' ************** SAGE ***************** Host 82.73.120.89 (82.73.120.89) Time: Mon Aug 7 08:04:26 2006 Input: k=GF(3); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:21:51 2006 Input: gap ('PositiveRoots(RootSystem( SimpleLieAlgebra( "E", 8, Rationals )))') Output: [ [ 2, 0, -1, 0, 0, 0, 0, 0 ], [ 0, 2, 0, -1, 0, 0, 0, 0 ], [ -1, 0, 2, -1, 0, 0, 0, 0 ], [ 0, -1, -1, 2, -1, 0, 0, 0 ], [ 0, 0, 0, -1, 2, -1, 0, 0 ], [ 0, 0, 0, 0, -1, 2, -1, 0 ], [ 0, 0, 0, 0, 0, -1, 2, -1 ], [ 0, 0, 0, 0, 0, 0, -1, 2 ], [ 1, 0, 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 1, -1, 0, 0, 0 ], [ -1, -1, 1, 1, -1, 0, 0, 0 ], [ 0, -1, -1, 1, 1, -1, 0, 0 ], [ 0, 0, 0, -1, 1, 1, -1, 0 ], [ 0, 0, 0, 0, -1, 1, 1, -1 ], [ 0, 0, 0, 0, 0, -1, 1, 1 ], [ 1, -1, 0, 1, -1, 0, 0, 0 ], [ -1, 1, 1, 0, -1, 0, 0, 0 ], [ 0, 1, -1, 0, 1, -1, 0, 0 ], [ -1, -1, 1, 0, 1, -1, 0, 0 ], [ 0, -1, -1, 1, 0, 1, -1, 0 ], [ 0, 0, 0, -1, 1, 0, 1, -1 ], [ 0, 0, 0, 0, -1, 1, 0, 1 ], [ 1, 1, 0, 0, -1, 0, 0, 0 ], [ 1, -1, 0, 0, 1, -1, 0, 0 ], [ -1, 1, 1, -1, 1, -1, 0, 0 ], [ 0, 1, -1, 0, 0, 1, -1, 0 ], [ -1, -1, 1, 0, 0, 1, -1, 0 ], [ 0, -1, -1, 1, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 1, 0, 0, 1 ], [ 1, 1, 0, -1, 1, -1, 0, 0 ], [ 1, -1, 0, 0, 0, 1, -1, 0 ], [ -1, 0, 0, 1, 0, -1, 0, 0 ], [ -1, 1, 1, -1, 0, 1, -1, 0 ], [ 0, 1, -1, 0, 0, 0, 1, -1 ], [ -1, -1, 1, 0, 0, 0, 1, -1 ], [ 0, -1, -1, 1, 0, 0, 0, 1 ], [ 1, 0, -1, 1, 0, -1, 0, 0 ], [ 1, 1, 0, -1, 0, 1, -1, 0 ], [ 1, -1, 0, 0, 0, 0, 1, -1 ], [ -1, 0, 0, 1, -1, 1, -1, 0 ], [ -1, 1, 1, -1, 0, 0, 1, -1 ], [ 0, 1, -1, 0, 0, 0, 0, 1 ], [ -1, -1, 1, 0, 0, 0, 0, 1 ], [ 0, 0, 1, 0, 0, -1, 0, 0 ], [ 1, 0, -1, 1, -1, 1, -1, 0 ], [ 1, 1, 0, -1, 0, 0, 1, -1 ], [ 1, -1, 0, 0, 0, 0, 0, 1 ], [ -1, 0, 0, 0, 1, 0, -1, 0 ], [ -1, 0, 0, 1, -1, 0, 1, -1 ], [ -1, 1, 1, -1, 0, 0, 0, 1 ], [ 0, 0, 1, 0, -1, 1, -1, 0 ], [ 1, 0, -1, 0, 1, 0, -1, 0 ], [ 1, 0, -1, 1, -1, 0, 1, -1 ], [ 1, 1, 0, -1, 0, 0, 0, 1 ], [ -1, 0, 0, 0, 1, -1, 1, -1 ], [ -1, 0, 0, 1, -1, 0, 0, 1 ], [ 0, 0, 1, -1, 1, 0, -1, 0 ], [ 0, 0, 1, 0, -1, 0, 1, -1 ], [ 1, 0, -1, 0, 1, -1, 1, -1 ], [ 1, 0, -1, 1, -1, 0, 0, 1 ], [ -1, 0, 0, 0, 0, 1, 0, -1 ], [ -1, 0, 0, 0, 1, -1, 0, 1 ], [ 0, -1, 0, 1, 0, 0, -1, 0 ], [ 0, 0, 1, -1, 1, -1, 1, -1 ], [ 0, 0, 1, 0, -1, 0, 0, 1 ], [ 1, 0, -1, 0, 0, 1, 0, -1 ], [ 1, 0, -1, 0, 1, -1, 0, 1 ], [ -1, 0, 0, 0, 0, 1, -1, 1 ], [ 0, 1, 0, 0, 0, 0, -1, 0 ], [ 0, -1, 0, 1, 0, -1, 1, -1 ], [ 0, 0, 1, -1, 0, 1, 0, -1 ], [ 0, 0, 1, -1, 1, -1, 0, 1 ], [ 1, 0, -1, 0, 0, 1, -1, 1 ], [ -1, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 1, 0, 0, 0, -1, 1, -1 ], [ 0, -1, 0, 1, -1, 1, 0, -1 ], [ 0, -1, 0, 1, 0, -1, 0, 1 ], [ 0, 0, 1, -1, 0, 1, -1, 1 ], [ 1, 0, -1, 0, 0, 0, 1, 0 ], [ 0, 1, 0, 0, -1, 1, 0, -1 ], [ 0, 1, 0, 0, 0, -1, 0, 1 ], [ 0, -1, 0, 0, 1, 0, 0, -1 ], [ 0, -1, 0, 1, -1, 1, -1, 1 ], [ 0, 0, 1, -1, 0, 0, 1, 0 ], [ 0, 1, 0, -1, 1, 0, 0, -1 ], [ 0, 1, 0, 0, -1, 1, -1, 1 ], [ 0, -1, 0, 0, 1, 0, -1, 1 ], [ 0, -1, 0, 1, -1, 0, 1, 0 ], [ 0, 0, -1, 1, 0, 0, 0, -1 ], [ 0, 1, 0, -1, 1, 0, -1, 1 ], [ 0, 1, 0, 0, -1, 0, 1, 0 ], [ 0, -1, 0, 0, 1, -1, 1, 0 ], [ -1, 0, 1, 0, 0, 0, 0, -1 ], [ 0, 0, -1, 1, 0, 0, -1, 1 ], [ 0, 1, 0, -1, 1, -1, 1, 0 ], [ 0, -1, 0, 0, 0, 1, 0, 0 ], [ 1, 0, 0, 0, 0, 0, 0, -1 ], [ -1, 0, 1, 0, 0, 0, -1, 1 ], [ 0, 0, -1, 1, 0, -1, 1, 0 ], [ 0, 1, 0, -1, 0, 1, 0, 0 ], [ 1, 0, 0, 0, 0, 0, -1, 1 ], [ -1, 0, 1, 0, 0, -1, 1, 0 ], [ 0, 0, -1, 1, -1, 1, 0, 0 ], [ 1, 0, 0, 0, 0, -1, 1, 0 ], [ -1, 0, 1, 0, -1, 1, 0, 0 ], [ 0, 0, -1, 0, 1, 0, 0, 0 ], [ 1, 0, 0, 0, -1, 1, 0, 0 ], [ -1, 0, 1, -1, 1, 0, 0, 0 ], [ 1, 0, 0, -1, 1, 0, 0, 0 ], [ -1, -1, 0, 1, 0, 0, 0, 0 ], [ 1, -1, -1, 1, 0, 0, 0, 0 ], [ -1, 1, 0, 0, 0, 0, 0, 0 ], [ 1, 1, -1, 0, 0, 0, 0, 0 ], [ 0, -1, 1, 0, 0, 0, 0, 0 ], [ 0, 1, 1, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, -1, 0, 0 ], [ 0, 0, 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.87s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:21:08 2006 Input: gap ('L:= SimpleLieAlgebra( "E", 8, Rationals )') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'L' must have a value Syntax error: ; expected $sage1:=L:= SimpleLieAlgebra( "E", 8, Rationals );; ^ executing $sage1:=L:= SimpleLieAlgebra( "E", 8, Rationals );; Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.82s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:20:48 2006 Input: gap ('L:=SimpleLieAlgebra( "E", 8, Rationals )') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'L' must have a value Syntax error: ; expected $sage1:=L:=SimpleLieAlgebra( "E", 8, Rationals );; ^ executing $sage1:=L:=SimpleLieAlgebra( "E", 8, Rationals );; Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.87s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:20:32 2006 Input: gap ('SimpleLieAlgebra( "E", 8, Rationals )') Output: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.84s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:20:03 2006 Input: gap (SimpleLieAlgebra( "E", 8, Rationals )) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'SimpleLieAlgebra' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:19:19 2006 Input: gap(SimpleLieAlgebra( "E", 8, Rationals )) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'SimpleLieAlgebra' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:19:11 2006 Input: gap(SimpleLieAlgebra( "E", 8, Rationals );) Output: Errors: ------------------------------------------------------------ File "", line 1 gap(SimpleLieAlgebra( "E", ZZ(8), Rationals );) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:18:57 2006 Input: SimpleLieAlgebra( "E", 8, Rationals ); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'SimpleLieAlgebra' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:18:51 2006 Input: SimpleLieAlgebra( "E", 8, Rationals); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'SimpleLieAlgebra' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Mon Aug 7 03:18:31 2006 Input: SimpleLieAlgebra("E", 8, Rationals); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'SimpleLieAlgebra' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.23.3' ************** SAGE ***************** Host 24.23.33.48 (24.23.33.48) Time: Mon Aug 7 03:08:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.7.68' ************** SAGE ***************** Host 24.7.68.111 (24.7.68.111) Time: Sun Aug 6 23:42:44 2006 Input: x = PolynomialRing(GF(2)).gen() f = (x^6 + x^5 + x^4 + x^3 + x^2 + x + 1) f.factor() Output: (x^3 + x + 1) * (x^3 + x^2 + 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.20s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.7.68' ************** SAGE ***************** Host 24.7.68.111 (24.7.68.111) Time: Sun Aug 6 23:41:40 2006 Input: x = PolynomialRing(RationalField()).gen() f = (x^6 + x^5 + x^4 + x^3 + x^2 + x + 1) f.factor() Output: (x^6 + x^5 + x^4 + x^3 + x^2 + x + 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.7.68' ************** SAGE ***************** Host 24.7.68.111 (24.7.68.111) Time: Sun Aug 6 23:40:57 2006 Input: x = PolynomialRing(RationalField()).gen() f = (x^3 - 1)^2-(x^2-1)^2 f.factor() Output: (x - 1)^2 * x^2 * (x^2 + 2*x + 2) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.42s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.7.68' ************** SAGE ***************** Host 24.7.68.111 (24.7.68.111) Time: Sun Aug 6 23:40:17 2006 Input: f = (x^3 - 1)^2-(x^2-1)^2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.7.68' ************** SAGE ***************** Host 24.7.68.111 (24.7.68.111) Time: Sun Aug 6 23:40:03 2006 Input: x = PolynomialRing(RationalField()).gen() Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:55:29 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.86s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:55:04 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.07s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:54:35 2006 Input: Expand[(x-1)^2]; Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Expand' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:54:26 2006 Input: Mathematica("1+1 ;") Output: Errors: ------------------------------------------------------------ File "", line 1 Mathematica("1+1 ^ SyntaxError: EOL while scanning single-quoted string ------------------------------------------------------------ File "", line 1 ;") ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:54:11 2006 Input: Mathematica("Expand[(x-1)^2];") Output: Mathematica Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:54:02 2006 Input: Mathematica("Expand[(x-1)^2]") Output: Mathematica Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:53:19 2006 Input: Mathematica("Plot[x^2, {x,-1,1}]") Output: Mathematica Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:52:34 2006 Input: 1+1 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:41:33 2006 Input: gap('PositiveRoots(RootSystem(SimpleLieAlgebra("E", 8, Rationals)));') Output: [ [ 2, 0, -1, 0, 0, 0, 0, 0 ], [ 0, 2, 0, -1, 0, 0, 0, 0 ], [ -1, 0, 2, -1, 0, 0, 0, 0 ], [ 0, -1, -1, 2, -1, 0, 0, 0 ], [ 0, 0, 0, -1, 2, -1, 0, 0 ], [ 0, 0, 0, 0, -1, 2, -1, 0 ], [ 0, 0, 0, 0, 0, -1, 2, -1 ], [ 0, 0, 0, 0, 0, 0, -1, 2 ], [ 1, 0, 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 1, -1, 0, 0, 0 ], [ -1, -1, 1, 1, -1, 0, 0, 0 ], [ 0, -1, -1, 1, 1, -1, 0, 0 ], [ 0, 0, 0, -1, 1, 1, -1, 0 ], [ 0, 0, 0, 0, -1, 1, 1, -1 ], [ 0, 0, 0, 0, 0, -1, 1, 1 ], [ 1, -1, 0, 1, -1, 0, 0, 0 ], [ -1, 1, 1, 0, -1, 0, 0, 0 ], [ 0, 1, -1, 0, 1, -1, 0, 0 ], [ -1, -1, 1, 0, 1, -1, 0, 0 ], [ 0, -1, -1, 1, 0, 1, -1, 0 ], [ 0, 0, 0, -1, 1, 0, 1, -1 ], [ 0, 0, 0, 0, -1, 1, 0, 1 ], [ 1, 1, 0, 0, -1, 0, 0, 0 ], [ 1, -1, 0, 0, 1, -1, 0, 0 ], [ -1, 1, 1, -1, 1, -1, 0, 0 ], [ 0, 1, -1, 0, 0, 1, -1, 0 ], [ -1, -1, 1, 0, 0, 1, -1, 0 ], [ 0, -1, -1, 1, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 1, 0, 0, 1 ], [ 1, 1, 0, -1, 1, -1, 0, 0 ], [ 1, -1, 0, 0, 0, 1, -1, 0 ], [ -1, 0, 0, 1, 0, -1, 0, 0 ], [ -1, 1, 1, -1, 0, 1, -1, 0 ], [ 0, 1, -1, 0, 0, 0, 1, -1 ], [ -1, -1, 1, 0, 0, 0, 1, -1 ], [ 0, -1, -1, 1, 0, 0, 0, 1 ], [ 1, 0, -1, 1, 0, -1, 0, 0 ], [ 1, 1, 0, -1, 0, 1, -1, 0 ], [ 1, -1, 0, 0, 0, 0, 1, -1 ], [ -1, 0, 0, 1, -1, 1, -1, 0 ], [ -1, 1, 1, -1, 0, 0, 1, -1 ], [ 0, 1, -1, 0, 0, 0, 0, 1 ], [ -1, -1, 1, 0, 0, 0, 0, 1 ], [ 0, 0, 1, 0, 0, -1, 0, 0 ], [ 1, 0, -1, 1, -1, 1, -1, 0 ], [ 1, 1, 0, -1, 0, 0, 1, -1 ], [ 1, -1, 0, 0, 0, 0, 0, 1 ], [ -1, 0, 0, 0, 1, 0, -1, 0 ], [ -1, 0, 0, 1, -1, 0, 1, -1 ], [ -1, 1, 1, -1, 0, 0, 0, 1 ], [ 0, 0, 1, 0, -1, 1, -1, 0 ], [ 1, 0, -1, 0, 1, 0, -1, 0 ], [ 1, 0, -1, 1, -1, 0, 1, -1 ], [ 1, 1, 0, -1, 0, 0, 0, 1 ], [ -1, 0, 0, 0, 1, -1, 1, -1 ], [ -1, 0, 0, 1, -1, 0, 0, 1 ], [ 0, 0, 1, -1, 1, 0, -1, 0 ], [ 0, 0, 1, 0, -1, 0, 1, -1 ], [ 1, 0, -1, 0, 1, -1, 1, -1 ], [ 1, 0, -1, 1, -1, 0, 0, 1 ], [ -1, 0, 0, 0, 0, 1, 0, -1 ], [ -1, 0, 0, 0, 1, -1, 0, 1 ], [ 0, -1, 0, 1, 0, 0, -1, 0 ], [ 0, 0, 1, -1, 1, -1, 1, -1 ], [ 0, 0, 1, 0, -1, 0, 0, 1 ], [ 1, 0, -1, 0, 0, 1, 0, -1 ], [ 1, 0, -1, 0, 1, -1, 0, 1 ], [ -1, 0, 0, 0, 0, 1, -1, 1 ], [ 0, 1, 0, 0, 0, 0, -1, 0 ], [ 0, -1, 0, 1, 0, -1, 1, -1 ], [ 0, 0, 1, -1, 0, 1, 0, -1 ], [ 0, 0, 1, -1, 1, -1, 0, 1 ], [ 1, 0, -1, 0, 0, 1, -1, 1 ], [ -1, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 1, 0, 0, 0, -1, 1, -1 ], [ 0, -1, 0, 1, -1, 1, 0, -1 ], [ 0, -1, 0, 1, 0, -1, 0, 1 ], [ 0, 0, 1, -1, 0, 1, -1, 1 ], [ 1, 0, -1, 0, 0, 0, 1, 0 ], [ 0, 1, 0, 0, -1, 1, 0, -1 ], [ 0, 1, 0, 0, 0, -1, 0, 1 ], [ 0, -1, 0, 0, 1, 0, 0, -1 ], [ 0, -1, 0, 1, -1, 1, -1, 1 ], [ 0, 0, 1, -1, 0, 0, 1, 0 ], [ 0, 1, 0, -1, 1, 0, 0, -1 ], [ 0, 1, 0, 0, -1, 1, -1, 1 ], [ 0, -1, 0, 0, 1, 0, -1, 1 ], [ 0, -1, 0, 1, -1, 0, 1, 0 ], [ 0, 0, -1, 1, 0, 0, 0, -1 ], [ 0, 1, 0, -1, 1, 0, -1, 1 ], [ 0, 1, 0, 0, -1, 0, 1, 0 ], [ 0, -1, 0, 0, 1, -1, 1, 0 ], [ -1, 0, 1, 0, 0, 0, 0, -1 ], [ 0, 0, -1, 1, 0, 0, -1, 1 ], [ 0, 1, 0, -1, 1, -1, 1, 0 ], [ 0, -1, 0, 0, 0, 1, 0, 0 ], [ 1, 0, 0, 0, 0, 0, 0, -1 ], [ -1, 0, 1, 0, 0, 0, -1, 1 ], [ 0, 0, -1, 1, 0, -1, 1, 0 ], [ 0, 1, 0, -1, 0, 1, 0, 0 ], [ 1, 0, 0, 0, 0, 0, -1, 1 ], [ -1, 0, 1, 0, 0, -1, 1, 0 ], [ 0, 0, -1, 1, -1, 1, 0, 0 ], [ 1, 0, 0, 0, 0, -1, 1, 0 ], [ -1, 0, 1, 0, -1, 1, 0, 0 ], [ 0, 0, -1, 0, 1, 0, 0, 0 ], [ 1, 0, 0, 0, -1, 1, 0, 0 ], [ -1, 0, 1, -1, 1, 0, 0, 0 ], [ 1, 0, 0, -1, 1, 0, 0, 0 ], [ -1, -1, 0, 1, 0, 0, 0, 0 ], [ 1, -1, -1, 1, 0, 0, 0, 0 ], [ -1, 1, 0, 0, 0, 0, 0, 0 ], [ 1, 1, -1, 0, 0, 0, 0, 0 ], [ 0, -1, 1, 0, 0, 0, 0, 0 ], [ 0, 1, 1, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, -1, 0, 0 ], [ 0, 0, 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.84s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:41:13 2006 Input: gap('RootSystem(SimpleLieAlgebra("E", 8, Rationals));') Output: Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.82s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:40:52 2006 Input: gap('RootSystem(SimpleLieAlgebra("E", 8, Rationals););') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Syntax error: ) expected $sage1:=RootSystem(SimpleLieAlgebra("E", 8, Rationals););;; ^ executing $sage1:=RootSystem(SimpleLieAlgebra("E", 8, Rationals););;; Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.85s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:40:23 2006 Input: L:=gap('SimpleLieAlgebra("E", 8, Rationals);') Output: Errors: ------------------------------------------------------------ File "", line 1 L:=gap('SimpleLieAlgebra("E", 8, Rationals);') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:40:10 2006 Input: gap('SimpleLieAlgebra("E", 8, Rationals);') Output: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.82s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:39:53 2006 Input: print gap('SimpleLieAlgebra("E", 8, Rationals);') Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.80s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:39:35 2006 Input: print gap('L=SimpleLieAlgebra("E", 8, Rationals);') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'L' must have a value executing $sage1:=L=SimpleLieAlgebra("E", 8, Rationals);;; Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:39:07 2006 Input: print gap('L:=SimpleLieAlgebra("E", 8, Rationals);') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'L' must have a value Syntax error: ; expected $sage1:=L:=SimpleLieAlgebra("E", 8, Rationals);;; ^ executing $sage1:=L:=SimpleLieAlgebra("E", 8, Rationals);;; Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.95s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:38:44 2006 Input: print gap('L:=SimpleLteAlgebra("E", 8, Rationals);') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'L' must have a value Syntax error: ; expected $sage1:=L:=SimpleLteAlgebra("E", 8, Rationals);;; ^ Variable: 'SimpleLteAlgebra' must have a value executing $sage1:=L:=SimpleLteAlgebra("E", 8, Rationals);;; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.18s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:38:04 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.94s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:37:15 2006 Input: L=SimpleLieAlgebra("E", 8, Rationals); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'SimpleLieAlgebra' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '133.5.1' ************** SAGE ***************** Host 133.5.165.4 (133.5.165.4) Time: Sun Aug 6 22:37:00 2006 Input: L:=SimpleLieAlgebra("E", 8, Rationals); Output: Errors: ------------------------------------------------------------ File "", line 1 L:=SimpleLieAlgebra("E", ZZ(8), Rationals); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.247.' ************** SAGE ***************** Host 24.247.144.233 (24.247.144.233) Time: Sun Aug 6 21:02:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.230.' ************** SAGE ***************** Host 69.230.18.219 (69.230.18.219) Time: Sun Aug 6 16:12:18 2006 Input: 1700 = 8000c - 77800/6 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1700) = ZZ(8000)c - ZZ(77800)/ZZ(6) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.255.' ************** SAGE ***************** Host 24.255.160.206 (24.255.160.206) Time: Sun Aug 6 09:36:17 2006 Input: v-4(4-v)=-2(2v-1) Output: Errors: ------------------------------------------------------------ File "", line 1 v-ZZ(4)(ZZ(4)-v)=-ZZ(2)(ZZ(2)v-ZZ(1)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.4.' ************** SAGE ***************** Host 61.5.4.144 (61.5.4.144) Time: Sun Aug 6 05:23:56 2006 Input: mod(100,3) Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.5.4.' ************** SAGE ***************** Host 61.5.4.144 (61.5.4.144) Time: Sun Aug 6 05:23:55 2006 Input: mod(100,3) Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.191' ************** SAGE ***************** Host 208.191.162.223 (208.191.162.223) Time: Sat Aug 5 20:42:24 2006 Input: what is 20% of 1250.00 Output: Errors: ------------------------------------------------------------ File "", line 1 what is ZZ(20)% of RealField(max(19,RR.precision()))('1250.00') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.191' ************** SAGE ***************** Host 208.191.162.223 (208.191.162.223) Time: Sat Aug 5 20:42:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.247.' ************** SAGE ***************** Host 24.247.238.196 (24.247.238.196) Time: Sat Aug 5 19:32:10 2006 Input: 9.95+9.95+7.95+7.95 Output: 35.799999999999997 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.247.' ************** SAGE ***************** Host 24.247.238.196 (24.247.238.196) Time: Sat Aug 5 19:31:40 2006 Input: 9.95+9.95+7.95+7.95 Output: 35.799999999999997 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:34:20 2006 Input: time a = 1965^12345678 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 12940 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:34:11 2006 Input: time a = 1965^1234567 Output: CPU times: user 0.60 s, sys: 0.02 s, total: 0.62 s Wall time: 0.62 Exiting SAGE (CPU time 0m0.62s, Wall time 0m0.63s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:33:56 2006 Input: time a = 1965^123456789 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 12886 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:33:38 2006 Input: time a = 1965^1234567 Output: CPU times: user 0.60 s, sys: 0.01 s, total: 0.61 s Wall time: 0.62 Exiting SAGE (CPU time 0m0.61s, Wall time 0m0.63s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:29:10 2006 Input: 7^1235 Output: 496683139505196078680732165990492503492942024402556784054181701571213430717671751751729973265287432883728843000421181600058162410730292993390679694184656718843049094780543506692771793336934423919809631683794442410684825328617794647298813618381427554574867816108097883206405478529007633754491285164922420099758747836498271088583110958437512521614576791495380728461411294000574751640570627563085844795763636551512573179209002131150739764351961352843083113054619520269870792732829201893525968678021089803119769829049964177298750237071094957487683289324376355743590039992043110986060718900392401867488771733402232051217260480963458405966410025386319029838363798181051346432171269812197594378567793781033536574858978789030461484712887152251828926829473803143290196420729546638083969375634282090584721285196650976326634671071458889485828610884973853501810028064250537035458442967044415963171239629303083838320800704705341902327922435389191686771214468301994669240576191156650628595890628678048625222883583376174588867574592379578464487121587444585943 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:29:02 2006 Input: 7^123 Output: 88523570369346801684435811372718127585670061114702144933569245260093253728999880981421881473709365496343 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.15s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:28:34 2006 Input: a = factorial(7); a Output: 5040 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:28:26 2006 Input: a = factorial(11); a Output: 39916800 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.107.' ************** SAGE ***************** Host 68.107.92.137 (68.107.92.137) Time: Sat Aug 5 17:28:05 2006 Input: a = factorial(25); a Output: 15511210043330985984000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.93.1' ************** SAGE ***************** Host 68.93.143.153 (68.93.143.153) Time: Sat Aug 5 15:37:50 2006 Input: what is grams Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'what' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.27.6' ************** SAGE ***************** Host 69.27.68.214 (69.27.68.214) Time: Sat Aug 5 14:06:40 2006 Input: for(n=1,500,if(isprime(2^n-1),print1(n","))) Output: Errors: ------------------------------------------------------------ File "", line 1 for(n=ZZ(1),ZZ(500),if(isprime(ZZ(2)**n-ZZ(1)),print1(n","))) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.27.6' ************** SAGE ***************** Host 69.27.68.214 (69.27.68.214) Time: Sat Aug 5 13:21:43 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.131.' ************** SAGE ***************** Host 24.131.127.122 (24.131.127.122) Time: Sat Aug 5 10:34:59 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.84s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.105' ************** SAGE ***************** Host 207.105.138.226 (207.105.138.226) Time: Fri Aug 4 22:03:05 2006 Input: 5-2 Output: 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.6.14' ************** SAGE ***************** Host 75.6.149.232 (75.6.149.232) Time: Fri Aug 4 20:54:21 2006 Input: -7+8 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.6.14' ************** SAGE ***************** Host 75.6.149.232 (75.6.149.232) Time: Fri Aug 4 20:53:54 2006 Input: 5+5 Output: 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.161.' ************** SAGE ***************** Host 24.161.97.99 (24.161.97.99) Time: Fri Aug 4 18:35:18 2006 Input: 2700 divided by 27 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2700) divided by ZZ(27) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.161.' ************** SAGE ***************** Host 24.161.97.99 (24.161.97.99) Time: Fri Aug 4 18:34:52 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.245.' ************** SAGE ***************** Host 71.245.179.7 (71.245.179.7) Time: Fri Aug 4 18:05:05 2006 Input: 1/3+1/3 Output: 2/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.62.4' ************** SAGE ***************** Host 80.62.49.43 (80.62.49.43) Time: Fri Aug 4 15:28:55 2006 Input: print maxima('(2*x + 3*x)*-3*x -13') Output: -15*x^2 - 13 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.62.4' ************** SAGE ***************** Host 80.62.49.43 (80.62.49.43) Time: Fri Aug 4 15:28:21 2006 Input: print maxima('2*x + 3*x -13') Output: 5*x - 13 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.62.4' ************** SAGE ***************** Host 80.62.49.43 (80.62.49.43) Time: Fri Aug 4 15:27:56 2006 Input: print maxima(2*x + 3*x -13); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.62.4' ************** SAGE ***************** Host 80.62.49.43 (80.62.49.43) Time: Fri Aug 4 15:27:16 2006 Input: 2*x + 3*x -13 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '198.129' ************** SAGE ***************** Host 198.129.67.73 (198.129.67.73) Time: Fri Aug 4 15:03:10 2006 Input: print 1+1 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '198.129' ************** SAGE ***************** Host 198.129.67.73 (198.129.67.73) Time: Fri Aug 4 15:02:30 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.14s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.120' ************** SAGE ***************** Host 208.120.50.199 (208.120.50.199) Time: Fri Aug 4 14:24:54 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.120' ************** SAGE ***************** Host 208.120.50.199 (208.120.50.199) Time: Fri Aug 4 14:24:48 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.177.219 (130.126.177.219) Time: Fri Aug 4 13:37:55 2006 Input: 10/sqrt(37) Output: 1.6439898730535729 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.177.219 (130.126.177.219) Time: Fri Aug 4 13:36:26 2006 Input: sqrt(37)0*10 Output: Errors: ------------------------------------------------------------ File "", line 1 sqrt(ZZ(37))0*ZZ(10) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.177.219 (130.126.177.219) Time: Fri Aug 4 13:36:16 2006 Input: sqrt(37) Output: 6.0827625302982193 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.177.219 (130.126.177.219) Time: Fri Aug 4 13:35:40 2006 Input: 1.4056*180/pi Output: 80.534947683588513 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.177.219 (130.126.177.219) Time: Fri Aug 4 13:35:06 2006 Input: atan(6) Output: 1.4056476493802699 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.208' ************** SAGE ***************** Host 128.208.47.43 (128.208.47.43) Time: Fri Aug 4 10:40:35 2006 Input: 2^15 Output: 32768 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '212.158' ************** SAGE ***************** Host 212.158.224.83 (212.158.224.83) Time: Fri Aug 4 06:58:37 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:16:12 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:15:53 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.24s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.166.' ************** SAGE ***************** Host 63.166.60.2 (63.166.60.2) Time: Thu Aug 3 17:07:11 2006 Input: 73-32 Output: 41 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.166.' ************** SAGE ***************** Host 63.166.60.2 (63.166.60.2) Time: Thu Aug 3 17:06:59 2006 Input: 143-70 Output: 73 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.166.' ************** SAGE ***************** Host 63.166.60.2 (63.166.60.2) Time: Thu Aug 3 17:06:38 2006 Input: 284-141 Output: 143 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:06:03 2006 Input: E = EllipticCurve([10,20,30,49,50]); E E.anlist(10) Output: Elliptic Curve defined by y^2 + 10*x*y + 30*y = x^3 + 20*x^2 + 49*x + 50 over Rational Field [0, 1, 0, 0, 0, -2, 0, -4, 0, -3, 0] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:05:25 2006 Input: E = EllipticCurve([10,2,3,4,5]); E E.anlist(10) Output: Elliptic Curve defined by y^2 + 10*x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field [0, 1, 0, 0, -2, 2, 0, -4, 0, -3, 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:04:45 2006 Input: E = EllipticCurve([1,2,3,4,5]); E E.anlist(10) Output: Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field [0, 1, 1, 0, -1, -3, 0, -1, -3, -3, -3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:04:19 2006 Input: E = EllipticCurve([1,2,3,4,5]); E Output: Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:04:11 2006 Input: E = EllipticCurve([1,2,3,4,5]); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:03:43 2006 Input: A = MatrixSpace(QQ, 4)(range(16)); A Output: [ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 17:00:46 2006 Input: def h1(x): return sqrt(x) def h2(x): return -sqrt(x) plot([h1, h2], 0,4).show(dpi=70) Output: Errors: ------------------------------------------------------------ File "", line 2 def h2(x): return -sqrt(x) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'h1' is not defined ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 16:53:35 2006 Input: def h1(x): return sqrt(x) def h2(x): return -sqrt(x) plot([h1, h2], 0,4).show(dpi=70) Output: Errors: ------------------------------------------------------------ File "", line 2 def h2(x): return -sqrt(x) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'h1' is not defined ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 16:52:53 2006 Input: sage: def h1(x): return sqrt(x) sage: def h2(x): return -sqrt(x) sage: plot([h1, h2], 0,4).show(dpi=70) Output: Errors: ------------------------------------------------------------ File "", line 2 sage: def h2(x): return -sqrt(x) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'h1' is not defined ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 16:52:32 2006 Input: version() M=ModularSymbols(1,24,sign=1).cuspidal_ subspace() M.T(7).charpoly() Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'ModularSymbolsAmbient_wtk_g0_Q' object has no attribute 'cuspidal_' --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'subspace' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined 'SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140' Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.18s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 16:51:36 2006 Input: print "SAGE's hello world: ", 2+2 print version() factor(2345123) Output: SAGE's hello world: 4 SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 11 * 213193 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.190.' ************** SAGE ***************** Host 81.190.2.171 (81.190.2.171) Time: Thu Aug 3 16:31:10 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:25:24 2006 Input: power(12606649960886915616,37) 2660999956459044462496559697895207916164979^2484967380701451508112337181106320041688653 3391644668254683815130414077708852650402483 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'power' is not defined /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11319 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:22:22 2006 Input: mod(12606649960886915616^37,31889876377070096663) 2660999956459044462496559697895207916164979^2484967380701451508112337181106320041688653 3391644668254683815130414077708852650402483 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11290 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" 281217 '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:19:42 2006 Input: 2660999956459044462496559697895207916164979^2484967380701451508112337181106320041688653 3391644668254683815130414077708852650402483 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11259 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:19:22 2006 Input: 2660999956459044462496559697895207916164979^3 (2484967380701451508112337181106320041688653) 3391644668254683815130414077708852650402483 Output: 18842329856069815857566344627942729786217171203610532798333094772723398538819698683103289981517453777649595103234048842911285739 2484967380701451508112337181106320041688653 3391644668254683815130414077708852650402483 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:19:03 2006 Input: 2660999956459044462496559697895207916164979^(2484967380701451508112337181106320041688653) 3391644668254683815130414077708852650402483 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11209 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:18:42 2006 Input: 2660999956459044462496559697895207916164979^2484967380701451508112337181106320041688653 3391644668254683815130414077708852650402483 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11184 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:17:57 2006 Input: mod(2660999956459044462496559697895207916164979^2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11159 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:17:36 2006 Input: mod(2660999956459044462496559697895207916164979^2484967380701451508112337181106320041688653,3391644668254683815130414077708852650402483) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 11133 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:15:30 2006 Input: mod(2527241110^37,31889876377070096663) Output: 5115093983793511706 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 16:13:38 2006 Input: mod(3217102999^73,5999994546252772493) Output: 1985190205979808539 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:19:24 2006 Input: mod(7,4) Output: 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:18:20 2006 Input: inverse_mod(73,5999994540144999360) Output: 5342460891909930937 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:17:56 2006 Input: euler_phi(5999994546252772493) Output: 5999994540144999360 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:17:07 2006 Input: inverse_mod(37,31889876365514372568) Output: 23270990861321298901 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:16:23 2006 Input: euler_phi(31889876377070096663) Output: 31889876365514372568 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:15:26 2006 Input: inverse_mod(101,3391644668254683815126298044482950327169648) Output: 2484967380701451508112337181106320041688653 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:14:08 2006 Input: euler_phi(3391644668254683815130414077708852650402483) Output: 3391644668254683815126298044482950327169648 Exiting SAGE (CPU time 0m0.57s, Wall time 0m0.59s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:13:58 2006 Input: eulerphi(3391644668254683815130414077708852650402483) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'eulerphi' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:12:20 2006 Input: inverse_mod(5,12) Output: 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:10:43 2006 Input: b=81 b.modulus(5) Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'integer.Integer' object has no attribute 'modulus' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:10:30 2006 Input: b=81 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:10:13 2006 Input: 81.modulus(5) Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('81.')modulus(ZZ(5)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:10:02 2006 Input: 3^4.modulus(5) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)**RealField(max(3,RR.precision()))('4.')modulus(ZZ(5)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:09:40 2006 Input: b=3^4 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:06:01 2006 Input: powermod(3,5,4) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'powermod' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:03:57 2006 Input: factor(5999994546252772493) Output: 1230091453 * 4877681681 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.12s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Thu Aug 3 15:02:43 2006 Input: factor(31889876377070096663) Output: 4555645427 * 7000078669 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.12s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.80.1' ************** SAGE ***************** Host 87.80.126.153 (87.80.126.153) Time: Thu Aug 3 14:13:19 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.76s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.80.1' ************** SAGE ***************** Host 87.80.126.153 (87.80.126.153) Time: Thu Aug 3 14:12:06 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.71s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.80.1' ************** SAGE ***************** Host 87.80.126.153 (87.80.126.153) Time: Thu Aug 3 14:11:34 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.06s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.80.1' ************** SAGE ***************** Host 87.80.126.153 (87.80.126.153) Time: Thu Aug 3 14:11:00 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.23s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.80.1' ************** SAGE ***************** Host 87.80.126.153 (87.80.126.153) Time: Thu Aug 3 14:10:28 2006 Input: print singular.ring(0, '(x,y,z)', 'dp') Output: // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.65s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.80.1' ************** SAGE ***************** Host 87.80.126.153 (87.80.126.153) Time: Thu Aug 3 14:09:54 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.83s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.80.1' ************** SAGE ***************** Host 87.80.126.153 (87.80.126.153) Time: Thu Aug 3 14:09:24 2006 Input: print 'egg' Output: egg Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.31.3' ************** SAGE ***************** Host 65.31.34.63 (65.31.34.63) Time: Thu Aug 3 13:03:50 2006 Input: 19.99+7.99= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('19.99')+RealField(max(9,RR.precision()))('7.99')= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.31.3' ************** SAGE ***************** Host 65.31.34.63 (65.31.34.63) Time: Thu Aug 3 13:02:54 2006 Input: 19.99+7.99+6.75%= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('19.99')+RealField(max(9,RR.precision()))('7.99')+RealField(max(9,RR.precision()))('6.75')%= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.169.' ************** SAGE ***************** Host 84.169.90.208 (84.169.90.208) Time: Thu Aug 3 12:27:04 2006 Input: factor(2^32+1) Output: 641 * 6700417 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.169.' ************** SAGE ***************** Host 84.169.90.208 (84.169.90.208) Time: Thu Aug 3 12:26:51 2006 Input: factor(2^16+1) Output: 65537 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.16s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.108.' ************** SAGE ***************** Host 67.108.84.162 (67.108.84.162) Time: Thu Aug 3 12:12:27 2006 Input: 2*4 Output: 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.244' ************** SAGE ***************** Host 128.244.70.112 (128.244.70.112) Time: Thu Aug 3 08:55:16 2006 Input: 2^312413 Output: 48309814663645802623193390498185629685587610281062729231265149185382238973453599363164463187202311825509358150057723150739965552505856932985408933938699658930927714270239733243982782482181756803598274443935093131746845257356784636633381257569645511154373427983142899765051483154668282792161357866018459240615193749886367788121381663014828692936198423978990836443915585376259753193464045449295159961700441512275297864165233933681402406920575589601368869779694593608536711393032060533069557231524305993032158510728155570076739666458783858236326462183561558738466067395073210925854403963516215119278507982058269237980174161539272063878911245676277926846875101797741803132712241111609274397021468908264126355622106514430651587528675539520365557442959881403569167667927334927112507856404788973063339209298417640658326223507478779465518234821873141159028143919381180450618932432570303607364402723877027462571519585621941106093916500300042362711611989174781494079726017910803404162895222178318421492798355387960341457417053732603843649036480659490118815128043220372890469500990116145227081942734686848594068018741570915298321482223282992883130832280936531702689049424496653237838188379313365478164859892155165956434367039601254728044219507292276437754249956653902260980884884201001301032025453440239747013705793606681321454560115232397221239726849991663441575978655572070373349735102080631815720445068661278261665799370407998369800910220052271784637097050674964105058829002342945400709052461201724538720757955107419261319874946708769175719986880533277303860047534696055463940176996204342531243192452359518101275319198015258740341792115149388052787809879442028200448268361098554307590654248137536518614698417042581879199705289280146758793512767203405595790879724766232958222232563470832994016601053376886914489792890752696371647103308971119130410375865358602716035820206397309412344720753882663683027324813908733102719310832196524480994459466045080988578639809578669783775962035706505937661394298477245751950758384523421882461802455132260582157618862361173804430431231886631925578544031526139490440316229096782136818578456106009548049602359131010799022227951344807366529829823067666325039570948627578220862755273900212678968044274839844206876212918704733849941401127700423783190844031562856989927461365551190978753627181253997752603466892529023218869980540193455885953608820485340314398366865970386532685103727786343631566087769542406971489644940427093103749693278864343682524142719129296088159032782701303295233837277335747410701977225488720179442052736855059865334243646278480138883960341741953791686951804922270533120636789321722228083418058576273584595789997465961790201964404294628419709448637166076536379772386219470361969995347215181038030890553386427156225448326698933140688249530862295679916877736031899171593363971380911794153736381172142826552956954672160716109621260823359928626270831199893143866609456002123611192498055468885493576806409837434354758943672630525383914319353362859442580228468776545137002146331200162444412492518261235824450402578402150409692993967866195486041922484153120616245385902831393637920897598124034131234846837946385709136397131202169389008978087783382527865645809376748475230769663081737918528128596967693564049845810390258618689333689813953973129674081719846668426275217663400522876790158176449599277106213012349902242552639463357080042147977862690122808042695666951948499149062789290847337802258913838253520611662476936117969582363708294463867433399329800645289021825714071420931605379170142185936559969308752751658681577668615749216543086574166509563485108190646596975779528395523154031612635799793209346488367071130300004950388559278360903788717753889533251393628012332571798371688017667126786543773709283032803887893094654260581602463455521345958767428429012472574713555735074327523040038487771077344631173347137721062839425469544141823019393729663867658993632328009096698974424955011716589065878820251994652721508009149500601775277642903519347724359997728745553996529720890832892694364887593479030394692125694906303031441221360432841376149520556844832900493453003519285529447746995029549053509835413311283050357316544987823019352393996893944737645451386508259298077024533712726236921217180181299707256452280846016971971387889084087082019140917636088914033999141787740701884988832635759912803097575466849371016326684380143618958030838582486979539323602285739107658756759312814988318212242397776777829923058877943328992340485172129965126510605456289615520788868473701566901569439122894831159393548191521099066297143842985376369912233470628715760356426605369236062347283766759791545447416589105828518675427235629857830037976411186524759858971805904310261762015630104712283323865514893766418031534066617956939028284973009289310056459594161286718134245267725089879635662363124787803284717528451242883316908116773322715112480162483924705701891750858559774542347133453545819001682440404364992464409174432121393295203428277992445167643568488518019579757193604947924751061893785916815564901732225977159980234601217554396035286614686169482965651225065441958260348857400092288038730401328439234262556962045457560112368611401795025376225312534597312595150235191197589605668383620811321432663074396971304723462342193891240257996287452379198936744141730277731339244211214022875545152306949115495981348430265369761796910796472500665749221905407950834880027485968830144316332363896811157216125531424207265445411597295676530524853470985734939878755909220719247826262931087861632432452817285740029508467596598562148565398563370693594503507673305631939838298501064917167530001873512041292849598803860736290676776180366114930293553647661103934372441821791885637903072489591103836415265933163130719996446886682575140787176624203032990598315968295805378977057890630649771216253448273908588678053257514216404148733454502662185515046091248676601993152011840214847786738478001153071510973932338528681224272767278093356781462729648599460216163556975942052090956387206274381085188399972584014713370821674798344963355996807476045349946115000442570389670450759585772091149153757487173673248379865879753103446628330116146092946527409440582872132130554702914195638345883081160737031627568619690346046232447122749537950361050213514594859180196298642879240431409195480264542927424031278961242182552239851492229916223610899053308938795028517827972447110219978791575015192159510268072006737135297802244712992849470442921678663222178201256409766395883513338914871789201076724259441893760684461573930823684877007968621121085471644929542042854145781917556084215335289954379416634033066674120241660520191464689569583648928841136955497020340705929871001155206682019228725055305347025755816271762880232915309713211855936828182586776315140897100401806798507515294427441188500387891081418376550959742027286522657015465523654386461587063121451826045901267032236348490207140196546796141905479676870895513554797337266116779571192692424518847622553426707237013698355044719540407811646725181768582726315265803220194896970667451113568261009878301795263161100712579590710914696081905395876507072444153648896169037585449953407286186803964447539776215971791085949550996821761201114908246582595421138259872005381271467750993365709546350929994545673363635939340326632691209911375476889934712082544473090877955436484144665875375596545438961419622547468396702006669440910001973711925956686144159894368438659947613611362356386842509269838500627632969573121499376609912669272273966655645824544130338782406528852876019846296963747767617540719825091683564151528267046238615922135814238625194822743835276936950316633356421893594451977310219241421946939065553165171275785421785465029701486011926550130439323218325089629724736664835145719505738259588009336109332701570881642465196154627063996435810337814733475197963582557149408231646408008742695440368161577032488088127043208638411226385742582018078690536429241209511295362452137782074581535714584207820474714068777676981205168285593846325423055712030896451008981216612750412269236060197906047212437381073510741739816321175758872808910415347037237358811252632155617176331945809164551550417382151698266556656304662731862118826321496810107920102226484265519158220737838487173317488299175408103403642284537507126821587654316903407125084142374445457277933275020432872569308533347115923999022616467777763367019189294038113059082061324047889861767095960245416246096617819358957099347612878534831481825980598235876041618296488157201865835372021707996235203470808137538479192982848896910489597500586686110013774793741882878035650838350243873500161207561509943117891384902357329139562378448753957225071016372526999272426912327651159567653707494896763416086686983138927623002633506155573288771077720340961622075890273772814564674520072199213173667406973763896858555641249044541896819154865876874409644101766256436097536216710466135912182865480454981338451754533941709280332643944099694959809674402537405266460561636295543407267257683363382150813622674289155592440106571955888391891403908800934187825935584542617331947856634809852600072940532527384817465094393122675570723234655880011101424031377059771512814065033206492904201849330330882102646995296565473453663982543962431473222011804976694310112849418791116050241839323747502264434579415607447077839649880477700582548109765083030610097548562366417971278306913922732356744558092325763960617613320036689918158337156811032233494966709988370606484856075695530070947101315500336693970030524155348598870956641121406861570786028183270500835787521509489109902565181287040709064912458093266015756191333341356066118104669836870038279289902181941415861160350869780069770539805589468070780081771730166348524417913350593465147160654137969161491988663594461696417300509219469955879152746581618387924990728940206370826661777582719104990139398783560399209880959579706170538991666306278505929707715883186365095436818102398441249633928755568594096805109023658988383997537427585549176489900809182914921345354109351259602076214119635653107895014199442342908242826982595153431685214872511436331239313844449150387450604263171351665162117405057814312898421393105283347588505877572209996318394271369967472381478873343643786944151310823325452809003282845006168231091034845423913318378690550733843295335672289961633169567854121421238652582388431689667968168993296244614970802162195745727560038567664354305755032983161624852013576533690382797494845779836371201250162143767080691378724874051449514072380166712058671278101468747091398213807296804271636347254014081290598872195054729937802712628885839630039344432414526593550114434510546285675071070987080114649446647298680095650169110002979021970594294689997119412292076721491446644236639797019117619041971864490535798972645213681282644379369363164581470345653768319556793156629536130342957515582489651124198907094069509585371392235222211330461277669990240176371247139852195857344920356118691101777689483227881675901896826164888116987583456016514478056823881735942353311621725811236250385747553152860642704390466568609068877978340505026083664546287538044303031245796018545926291380487524109175536865675309950049242908611567165473677369865754557336138515832635459308905662135976279439734635206052613431182840030657200218009969866233274070295229308662015875288941824584223806820928618788809486091581328736243827226117797489289471333455806791298212276978204769924653433759399865701742075649843472729311645896367707173377489261100072019179949666659136539325683064292516530265596039457860293444204906219785260630525534694117059167047644718651687459139334067537657702766165840602123628738452053591323372564819457354000399998886764985519840250791370451729072822186084626064029619147941732608961436449938192562160918217241825043949139984138390786955685375603432425774090280042888898853129733494431541766184128365608434064670522298134604726879258624773929775930685329205681451961685993733225178101693625103043954221700743234606177495876870758449550201755845417341737307072081040280701685024075511066455617123266826312981714022392597916199673920776064544791897033363905611811753667229136538884310821414936203913724030821049080745611727030168458649391049231285478923274208918397795081728160983657197827004364364694403283205425484268523473018287423084502673248566514336411663774507111320736537573612683099799880820640227996752203621547989823809782590201407458172581550653364163444749428759173169971891020949338380593233220214131549397017480861130836000719417380144809703620835077374703986252889957988612043729160593187695241600838276126980208171350617580831419186115367220380120984571335886989877073651932414187160280203498206789393398009963778688654086725185855438592282452712710997698398208314518726467281434069117156984056159588384868781930694938438904127202200975957726211492106194904784472911634680049987933122045223783847338047306268180012770605018812347815122649836328410772059924388796652047175373300269243248439662205493194564026566036705707298064942409277683477102191113543381223261620217930565982904483311015852275192885771891352548351690344486323153133428018585501465873282448731806128778381718363035652522711189078916031243558105158440600091385629247276959755282697029806057552177952783457292068657481807032889456081627853618574829620279617125422457275111642987969840817078778767948611053073914603800737790848288405681334622920880672401779423106070556335048557591245480883355798652120824874739421311886359859190944267123097649461130842838016830408181926745274969059420038361579164956042551967856491841103071007303909358066060224242227749290886958930254053999488346111518871389877827925231210116036302214621477642294146117786193233295652574453318171058622239369943379190962557825040602236261536188686742285976787371384127159972690800348414749979630729299761637335971266939835159280192154537704659546535081855241128158033519638807663262806954446683942310430314938640105340162470874294910099452799400579966259931729782443484899766497209410037889795352360545376419236970885440873165545029684545552996311554097542455721659455856156004331891748717809342862532113977703732465618498753922656287006398765830377732760072312353418788396270392044082342205150501908528845077437177712431997633049110241199320473500274782848358909539991688082737226645716140478994299558606009299423537907498143126473037661791881890307769981955890709639188426199570293548734602817192388344825602486695975880560275924754335336000734408433002377267257763068022675122419822154760979037777772888532838038077773587021488375757906865765356514285447138642684592256052370571166564031971843438892696188760862964696107869318635686388313959973254398234891837746230761443109700312082669173721845482458146667055061053801072740938778941510181498637800445916888928753846257635448256886517316773544517305897453508250214487118781502048882312334938149380286586280699178421780650708461140120272627743907326177757492006361039561676042733480337037390973532035570463723133098702242126833466531623842130705535125851069542020438797266446407294978399367711637659118687591603080268959959761095207062244923550532145414798262188057274467550922866156198665668499836966980093906929284624765339594575140971761061220888520746925626757110657744657828943105317105626887847273072219251589775249283251728355233998845821606714685643163051822481111448825534388294403392152306863147900587644530535539794233922931535911165449309144019714630259898394006987975147999302835946269633238628734349884606158194533895746028233379645653545214157983676158452938367100906766896534944478527066376217015314837058428299914554297138374762820843460192033118262444566356064161032439383950372973765387799527964343116985555811297087436084373817486542504235847270755588880134387221304782451350143677921818708175504541434970931100188896775202114414044173778233724342729074819617453316519894903062677386682605116653404400516971001189441879435416217206838800656766722481657115287279935188086772544282910755296526339444508288761957597862903407737720375116111039301857398812577708338131554543719767824975321452845756679889040891385704703564996693537581333398771971281068631148985910258359388627415359296488513035115445890938560822626336553714219251767875156326334027467429684406759563206498965393879888207959626592669988695458736909315553409298472041052614519203715175529681151980269353923961737680904557332892175191110182403664688822198107198142855029682433865750886047586920586317684079972549468170131976795799576763675740867335842625301195420648976542540850083261808213634876933274018728258661870336637247068615681443005733215525130646912032017377984959013450135285034535771955624885170200978320909708288863911481039193879764846119080161571529380042655270638503606019061219130453381734257740043590351181122577819127675758541387428832271856352436372557028929622241007777197395019538284823128609097877622530838055413986035726674239992227171051938997773012837749405625562225553581144536945141786706952048957438142439098968816676294367305909554935675323990196381725740517854885040150249697660447673972036970159505126475605626821417083716425581567799877557093911181069533154122370810737882426476091026630215839491922738162215421206097606363007442625237738556353886429598061330132873022374815949872484572282295134115832249492930102079793691125753863553390715425034597168597715793376790450087197035890681598874937595740059859651315794042725534024143783839702887879700521928394667248658493550362068587793182623919016643668724848297407998032111558701013086461369367509547040114087203852048181839663289719842280616381772138537290566060705469051998084543788280630371934526021843987618395235167124142459053728716476497413602117930272544352659814057397944871082239008796019893825746984274240500649030417738325860479208334333874918722622352912665485540716884189149122426576983997641219727125621025594501027708566339992657448011830275806439466353950143823150134880953991237924697584278910553844199438004749917266868784358667360606087528283231940425844008294577497201355976609920172467117812647053834920101763399814781975166229373411560948957919029123250112709121971181922740498808278211700635125648559947713523905856119911041737465963630423002833114263285722046344430776280888209733701009424731786699978831284598265235444229977896066989841349204514693923940234239358711744827710331868902312833049025477979240996958289153985808356770942136032064940860491914014534027799982857663160292845370296564370108539578228745708995737506053795009379155379636186948995169923463860114892363986695528839173893428625300114186708536072922090239376129876717053434174477229861889321838414954495296412209904917196778267034683788925237374952471749129849468444909636030584375876625622453210853477437257536034688515405731711692698094888732314416898653847122731154150756985398083265171193096947436008034023042561624750187390405366246791837976929830262370297000222132141388423315530533565303538567960298130381225473880863346825073277244535345292121285037192225935807511478983773655663408558097077616651061851229105517073460599226541585815237050203806126266447750088490395681187446821278382896755519328546113888335401529170610674070160727583557842631409265824908377087307306485584827653909762798762414804305556732432424060241061163838162144536374995993395202271010508873925048731862125915339563417953312607084811485430405455272220844762509334147127651426549720959476215449615352517961814093316102084653017735610669620398914524631782777676936062293879467533705503045135435999949042437218858818719469071820942759613051414641980557693182576622058671573482413815937684154754662296131836605146011800229649456663422772916995476821542127370516589745891141711701392924870038777189643379630080812497667475147997898794302398218884787615982575974510199622504494314825169205284147229642322595222861047446987981095174827107068752559755255916534830949075994637686464367092598426105527858064582489297601582882247566286643007033282748191781383037824714435224186780457596821881063835594699860119376276796936485798870495066208948106800523218663745493938536190624169890258377355161086931012148586019090123915285255853394282399419074464467034692270113444604574487520611940086130324733267652728085926060907425023803743966754938934066672864088979324436617966488867867161838237132121784825433554381377755893540687051661936503181380872954504189378565653944683378216675581703720920838357513198852713987810273894862526949835466597142639673658626899290880035323127734965380667471411990466250095616533446111273358464867101988165018349115346658837321517996467579701876562196816005214914211974726813901540107959990329179041579169202409699436298296741912871161909572908618038091331826261358954526195791537253687446798530137895425489312033423768298618767749789769183716791307305207414944181495876486104005240803311282131824970766092342907810091061638180210671012003915991841538785470531936498030020214987195743534257086240584298017860809181640477454165644805851186951840006262438312443756498778336773946135481940414190161456430578301146327324917472220220688905382023922216593350024172931681527861353357595668025464274441262766532454078891438672256949989797518122927398074591129280611431905208209480409347067427597968546603120476863357173697389739261173309479817523684509716511225250433154420058472432925405683065411375114363863844005899690314563721473304767156311905234731291315562556759613166317029911743827396643554601690900072332918968245580156208275798637233929988601093020724640714825934999903586305942102275976181524155412193915400284193471697976295775631366292937339309564364590758959113059372365950358392369989390328558853939179200445655192718752161449738607197444528328016148147760584505560386524417964261299292576612568400123758691174786363008630450940856871842804528970011148961260063584951875888649416031269458448085929598182084807903081541413383131181596045385441557951816549478314842114798223577585532438859914092152846398279726988508277555528860052920410889316394302909866151706984791212821073097688371087816729537526462931612844413865472407284862341651854663916249279927795569042981772433857687212911753257975038482626656572936324343925713353753520609279947812820773102449987317112456406615918445577894943569684905099760014056130740189526692112137968174889551001029127334251568010307631768333927695036321353315739789803639098637903912797426425546008369753917606326428819435016424376824708861194067569570625468066307063254307424378069331921242097964533746734970269977617091254134550813322415325214883254202690454954744054970370337556562855957479633180911371102561837121034824778073672215331925115641691342861124610524236784301464122758702221554341128179900751646570012111171998826058388167791414899355025257121853097424776512547989421549398679252197174238679700710983153482269542561547604376586664176067858712469544803388292488734034459716081360598635453015107422417454219215255482662226767727979656617618610229227124858633845631771591906884435313081598894118968313629357067390209548462812313491558739867186094997822536327112341216142897713619348372761480961819215719601138756769594040729791422309099347259299148081242862291841839838902006195867928182371279360990422900629468528016301075338374948665981777821754529395770730328376862553661808271440852867587009155524386083093413454853516812107607620526866671856239365232690935820544583583855039882022880962120946082272793002540847734849383280802675296258190522995269319974829987843265847026304134959683383924323555928585469199202421461092065467845260614443922431040789756311235883895509450966369711989096394327297061258660625223368657923869360965967668973026386321749609640940239804954152540682074868576420621723449158976230225985026468874879956719203120152965190923525305329758454478223697979224523924598107177733557189760365219650892745773431616604398866208999510721855592203690798162273390756688385272725007181580533068030298420328080456103113568743291780829169905199615703763295175656085735296322863686866578260759874886515176299106141238550181525123611923848165075158912062054702132727066827013653250571227232163743682014222015787409590376229355701115878144457604978047243709088614409736872438775370714625218429127661271280853334298109121054063076735768758960993574491348388767157109043410613001886464908816379278837264413190520429662753061231243900237702052619964979230648390767010294896622662025596761281510014533958984329893605047563797582527226097202837006204481329942409737381312220536046180056333468943020138381316109173154999736143932293898909563143787176358843880072484944022082395039587380013971670689332602751629731923405858487706646510010373807656824307170754358579284199692689810732547722559797170878663505795225020141138033531156910200865569784261179331219720644644545124890841886425516809464845764232989753323606564457335517142123565620464163054387470023456602171920181411490008177396232933691993743890703911131229373103696763750700522608020715585096913639543555936171872671693226745645902676973413297491312267912277620407123613627076828685343587956941919247210641429440882050267967191236402773381706759465583938736295714898684292432052431529827669108766949148691570161121743388090411821645395924858004217036337035700196986347788791340773711211230352633755269793278805259465584420716452801150480579529043837741013552084913461546639210108045667891071327207057068811064519514119434710763156029283113552536117402456334325732863018224159806805313410862531484170142053855941868617125598824631546284458671739855513210441041504567320027899706912732972754167782559025589765033270495923705260394344397934093538034984910356820670162042744184700704679473428323947315816973819203584428860569826862876155042121340705527226953329400741867418864894245023487713991183082452423573791371724406306027513885467037900755010601698245151244112225472677417499549959384294273945311417772583172637030039293360324475367125062409353290864624720936039398164394598213599356419500105991109494621131193162976883074029200641075407495067186960698482800117385176368263217106675500284548256697436678268684518900873459145625816534006159486704806416369740672313196062992381134040151559269365790539808220826015864410137938958144550506101685510747471652479243071269344864080581932649296619072757505440973256569608754531331874107828561922013873571830802508173624570999469318274656816943279946300741971719645420545577162305257523154382625905536021733503026391479353735821328867181543668003949258056573091014925645302713615483612173731696017109398388555833579069983042863411562665357641048661229398946865354701335431168252785520302884970174429117463537026966493817060444346113900559522422754214641215665303603103552134822974296542730921806729001220700011339598646182263199498365689890057141022263262262998525187932470576986873863219121826884071927526752047084520481282510842916968209092958362206856673341080262702887795139746000124498276334230619320621858479886979588927591745103022763846203706370433967138205037084796955904582285199705203888545415363234629721991716457599544224155922430128494960234319085058772577966738435988145538483067694091929599222485447279386394641523252345645981821180129975877173592747307546546104976335633921815202649196485647632108689343711257612652222060693140077067725387139030800460864239704583245113266089701007630168923362807278288841560886936550612588000176093771122187678576221896236961597068222023081300358534601808108456464372616925060671268345658807420114472073527852568520376497199140414117082940858683058308022122651621205773696417402165684899120091792834420345662515093295507392223463012523901612015576921481642294268987590784476685215011216117998871114064695446067686560510663792099443793223433729200329410718114346376917448023828741081725074782059619044413366458791491595388849937098904052546191400406211488744875524511616790769523871144261769319065673207658245171104830560125802276628983488261165511203318151727990226668983859276602681843771133196609884078297781718788448838425600021755394287746239958390779148606432918176570168127741633866335863910548456129561794264165154112555394858947503940212928007321695197932414478283206345881679973884047035568260281915877912674711966230653827008110649469132051891659386236572169129274094599023661300789016806796504867275514234613287147794040354850880393273822931557929217049586921690055288706213328552849699643013688892377788948895920994776545665604429577614945295041412281063601130653503781693632353267032949054235149031251510803442862809027697001781174144361581442443363964537162246693777944208274989267219222540899486249648613813724618814690777270480555862786266779372091103022343482125689409785547772466903976481940411932085155741764385305711022296940193613208227280501532060090562933824770096716176095110099775172614920182454717301087146647008419663170972695107485336891231026539017450519513374715235408183924124337281059836834109141527978881970689369167989896808561453687167260522614470753295652562887223583377744588860744505631106470526708832956059384778376266928610047790518799184931756982633115803604725544569586965234163047528452749217835951580251311845672722026916484989344468217175123099327248557949943736765327516230915942806750537925995437460158484913169911096475865518832940022568262501507024032736422299728247501842782340823564838517710769665970408734771082969879283222244734430962441227499961980139721460788696060647235357137979129690850277670069292575322405883716443602087374871661096607833299987406769224056624352929859217351548880200641986737522385068354284456701311327734871073034453783155240872008813474903588214702960000809900082079545037431308774386385356167666956808306116967460352306258437390352473312382620504601007992427105198715516292345154278692294494660144804397932737930475603922118256476395838303340505157050572064606173278902852132807764496755510561839911890860826696524713235538370297596707779580435589860650373347219860035179859150418371840046593308829804436445328126154293364339806930994192077248056971813781389987039390555200353496689876451429593039850687189551648809397763589743526918887183287550834821057503877556736803253693749573698939764500760047828097630021947656484617438911083236237849820747359600218866950795042232717132674718825501647183035969343130833139934747564101834421049757216428150034871127648676554363937094845150397759490251145471321567771586006219379060863049688848817089878195144103317722645262381510399297020574130175402079111109774005320079629908248676891920522638757311155183254021619107039502557117594951962823334940278638975251011490397462066098843187647225721877744972758486708817113987805537294703940448256880563177443185100509403502496297302111563059237908522880728185268822768904898956387416224405514830044985205081583247796818163053519642043727935017623086588997833056898168528294016940797603324387364294547269249540294185502236883816284584408359592207824402062341075353229191102278627672441145468489666686381894906892131402244622607601440652827945189409177237128571617842360847979079972073404698902038848924264289602354611066741681032930173095288886991465171962196102253580176522402617306401164657111193394854376208962348449127029983406040189924657439697372196205912969839788604801589545328134947348282666278541784250790404857259254245366484071201389348268317067611231501952375116773293167473806821628150680366247523645946702350387282266536650492858561021012857799104995778502249606519045348666878395949800184232831576185150761799194113729924488991896751223986147926204120835584677195228251151011603068716343001446829183019578669311653898569987328680239673966855786034417800636013325145521805194827702090548371348282465716994760055896044349075201012211339740467610250830228544497520731502943913518594143463717990394794612763495062564176195904897934370017428809591708720589694354335965055887824620609127997110161235626810542363235548595336645029136435473707583331777391256026194260292086083053472570498906952649078873539211585363956980968521009698125695398066204259287684710200615570298867054115460634254604770641801008762672092121956397899473180030284598744436872857400568902712388459187974911182464827822437000108576774127980559109614848993140986126726127153644128918411703091658895120027071752318772148936826763024889113427978677315163423535622517999981346441447511541867495391642425453889957602781377616573489539769126792243599483360228970846003827042275998838560739890979131790976260771682612416888823882623966564757410119038698839568228084852791642157165694371007872670335561726322264675458562676684692020919299192370640868389734082531052009998821358635148803036374478556787219796679027130270329711349642621765720834253077346605784279390674229202420471154165875561623092529390550704430341521795199867082808521575077144870049176409900559814699142616367496776585423731115591875742980466869493259073736943253489729387303191412932192905906994514056963494118619675874667432912882069102030354925810264744831801120354765683312963521028346993213789417329007571786053855634124977729927937186170351385714993587264309617391528377785846953610726915731366958379112715716693009619146077972962317823440615390701729836432075388744027739331226757153605790972328481342792615004091258841860166249764043948833522884340177000940646531182252115415517647580566844496207095394322253086607332319719079241874392438494693563429301281131346757731333639772656140169310058178571513933245017393772753522275239461291372760945920822860905993036064733651004317009138931482640350648075327327703282251242831158728454125130166741921951722523173256320663762884859057647312629984649860378523317594672445589376211262736879552881243372390440110149721341771806718051980162247299015917174101908889599991740668618115735383659455095885799978511550473715226317226710848249307306938207004677421691280700341132124962079588647953872279120108825909270993590256180936458171337774499972041514928964556658737496929198073864981940117245301497310939747858062397497103973876711081936687951699067707218535875873506423652626961592993080745854044252927523757552688197307103923960958154340539873472677300063360308476573167588376113705349265650261711336279100313231276342489705439702154137854426211237201707116467320381256501276083365542198994721001733000359506294454193789959011498123635431255274905309032325380481619232713187926356990615700910956941944191299252945531994325011150412296624382980715617927866592157991137721628773582282575893461060225244885006771608537289728736632354844154717803037496777273517705798331192319549096689597461612164151992389159355981469895768478743094466038631960571474354911211078326999298049253166680534875189090772470536065537495237150884633647450218787135457079323641688228502679431401209876546037782301763262723264932021094894864172990264930812115538529558473758657802537009349259827638392159135577493541089096139129305282810896040385089592812581994955106547050093538867620325615120342297492277615571878940736362415680129453009436902343362452823820012684720149615032033682145655536477801741441466068276316141866987781105289627125491017180851155964010125195370103725937937368616068969517090093201799689340570509853710919149107506094948457811334689148048483123780950567602254613190260745388798631781334932839392852232048183885294366434208628334141845826371403495797019408550982650244033704470580955460852913260870818526972471395164026133826733794572505323426781690739080716575368729225154845157437697510280532155563163011400617031275421435325654207164166789419619443191983058768146969343641194787371450399109598640137185474670689467882879915150101721228814184087766468547267726128516741172410509054097991476833986859077139079495943047526277632672685267696839552556254430434996168044886251787751996425389917098273181119977613726941837276174399413591368081646293450660767334478102217624457145193560644513692898987387382420362487301508461220374667080069954751278437053844561405190354979469563060309038762645775886538371248582830695150033490400777156565754684819458432266531634289280276497465141230018308738608540696972337374597754851137533283022428774193034231195575322905188315821276488726288207471403040602060655852808835219151071844098591575260449319259453482239160126709233543087253147146733221757426287993226255465349051156033069131354513559415676361293361644907050809923057059191597430769021103622878667261108540305528755556033538699267402962190506610374657880130983633077329110187845565212757762067662782450499649558846029703783761623108285460092952888395077695898384795890229831493878307124012933843480233837528417004859502559726514431867351128716309548171532901111407759252187452527362723360574905135963181373730380195854162275736102838520956445091395554998848412914365111197447903544034787795767646700985651998486841170901471002158296806155478984491189012931375581702818258832148300511351334052403918120175064705020043045385224176393164768858274233848968963381633500650343481620725775399902450371176356078890831557356327232275994338337729814796140626442301086669742227291551214946399345579682289051052364541570837681800802211232389291761915259306445128318651403284786667563641032650607454485175937853604024768352421744721115866836823259506546058426023331109883634874443621149690963914189710519682947255278018340396797775385474302224214165690321027258529404036347881425570204589506651749511362077456112415577463442709374366576124855983900970279424556719640678420583824623649466384855797359732746785419323674316140959179091234031410983304565293911147298108239206467595848784807916046683317985438431144560775759188432560565750181426380187820601080798467087858973192195339022626018143055797467653652710265716872675614415730845614299375614430927224392759219774785001227306422385612621775156066425967973337022094127891851695466701764759793630398176803156861977726076873337336016605320098657764903631024060872385815704091701532182777161050763225347211657556467542858392581689417686965167416318182278732736191444837021320765081347754402937129211138828610669375034407057427270509923842158819310495334761109258091826502233937726971054346780421253594980848908891316641893300574823945040575915659126116425291896801320420755361719936958500899698283934576408202417323699651869968839086884291200524505876408063048678687467173337148095608812169554856891149993039448498053031622231241467628861779458781916660201062140244783171075286565286691925554795122220137120108076028195019837033544534772902756240687867690969499879559602621518865281805391867660955379879225558202323832109215104052999529195104671240711684535796933265858308529959795138262458290144499084237547451293034863192884417960424712890894671898017931693002462304417320587880210790696337384916180712352393740792314752097798243578641578419075330293266083001076859947164284555869492572688749926104423365427065380851637631396931255283014971659639085090751204622838365882364400946953458097428948157291336791167459502224326290693630021472323888858451459834742205470185050866420888908810577003241426756668133293754461662977464242716054128958856726754796185831339300035928452003422313832637470248750768890834646311718729902856285333509801971844595228395348386746270975114392540830233534815083557430133432178909662800294291096805146595484335851089419024772999360779011874174085449985197593320958790666455589903280623731715716506339238019507092695713028398299357641552281954533698675599729988166754803917173997459031682037290091366245535720010280412346424225721665639733256453384229533154586978316516087906598049174490821385535665382759783516919664516335579159659414630260723729982390738565981361456127338992103096901119878236294750446128729444214247693555979787845773962261912618042344213699067763110871049197438784626480598916780812356784035956886762886379625083384443068414871879062175693746991930356650244222163677643443004865451482878899472685312450590484630886635802720946837023547748181518975198916302851790565432354327420721835352407914728313009751504984056332840050831818499489207541219705182277002579131352547323009251928287662598101976172550001333365193913935599678224013552755554172300487700925102505670211731858510277501300787639362727097142565411895930542757155233257417675492439227486721111293247010459849837191527186549922989124699652085721149507682984690349339951510172859082310788511419422085063976719888321072792818370796535053007126278501756897966751077108310879378721484121276426331212968863047292335416801885979875318512023523334282390215071282923895141050929368777759421497499915611338643023373902490666197560750450186868414975208864323856411565747167586818163284609468241468458921818936282553330467982424203844483623321169012554650449509517293836192292343358334222711100168285802825061619898895406181852414120217818590156450398613236359133370411293725239067525636334579632152675468102204476347964967019390458901746576352700281307013865399460711713158328343716098834141281450702274242957559537926191261874406473062825580080275031863526191293670008957669015414577019863640443514543859197698585402684138241172034568832225207061542485773848617791270608032400331274594613436342946499864521987670053642052449689204364326324546347427124357762980025426903870683255551066145538905899448865838244538040853952530831543181766421345461256878402015665758215537982374508214376142523705126860559894534426768221796674009345190180481603349670836836554467668483550568061715777768847185610195360808835665277193885302904902658584131174084387215234837595811754853121011015045961867534727857198354854930129782960326437086862157684800656247575735457716716574600097390799861530659984965123702339167612405992488045175666353372947364525604185174594618011725597686128866209127360999908206322950381732840952775235850678515868159615246707869162676730698549812847502409886338450087757900143227044911843906025863495038120718329830660617747535235584123344881317771813863214684461338229535688474404123636558852563008411356307365987842336202830703907129123414098661275252340329872633445413507365084503695557186687252640648971430092816382086891327859600984665350464265479529413846132703110367744507378456245331021143998626376189175320063430015990107259169035051795715859046017978838608004336558203245946998850823280669409552814574087429863049257115514094283634781994621779173882165526570758468652535959056375625156724109965641504909715754283725546320266399744429849623722854533085937070217168605065646853421004085982920534459100123459549613631268424071377932596848672089714538893043346493191904045148786411673560190602361035202786795452587248035970094068116637608875831228348162886575696790306413201883800054984124572688035937165236628363871466794530573244090382343081533107233755912940035306925916962584700218839092685973617902140806933574695952425184412216398123088680457424461679604467409554159778069747997654754982353349051255123193154575445292124782428290063523384854442261418262160765057031335760505713681651848607848612224704328899309111486416330777632512258049765770505736640693631565088547078523541636387304152766994161140325293918634874635072729774319100159902014162972942495009126079348625547328028984715539418974046715424344997219827424125309109100747189120033159383466916919563825320010668550319973748014475337712751238193210629944376014102656139105757485304428776963878625017432365025253716690519292894136565271547029385677286888870230862046461615737265916546082779854402381251576045827886220631879522310047745006180172274187632871516925023174663350873277259102094737529336084604757832442545123114001869919574398679456983277377127478678338602191519416658486303171117781496300740158452014608224933668311328518777319654763600814937085672690303311836898991074344431632011077279500344982509451808674839083799126359303297133564419128946579862593345162208382279929572171699839806734366774218920566564392206212541652804834020123497655634897896326700439345920296299058085892528595185468566995263003217016657735862330441280449823630436480791591633556710612449635196048372813478254271140642775312319364646727319145687902475050491979209389750578516462328278814926031014972388234713730655780597198049545660543745193602515277820615263275954359692333356591744426805751435208870068453992470783270610647230156938456888902969765922118338156392185225575255696667529874956808006333598942894016444439964680159719226847501922387198335508914517498561029337861569768849555588125422809739083462940058913835144709058658485947062554974254110125670705791109000475922998896592302933344737814934808184115038571262415962184367668676880754429503888177104735119467516644390265430592299634383013477359946592419520483278942253421478085834403063661950671148956199334531571474528863041829344958160358805949414441697101337196559600540940962974077620962590243926569056947177265217981839525970893450546756246720894981459047013795725188176106317952772806204772009878803849771534349618533738741443663400491382093501930064186632340822894143753676941324028170895494401198625418673765663545974859574419425972670201788636643050985020684142770543726299498408209477495930716873369973420342535747430811315069914357368720492850864453253822896766073414373943118439763632148406072921365927407833012753240005107116402555959528938984915254531754122687916476399890136568155744176868059125424515535046329991872391618372986856072705635273894086056991906931511863717198866359413117999609333275786764061432049011781476026488178724661013717202111762373914234039069180951217013657716484614523608448432605492854017092017991407651477162848172589709003302588599157831130805303408824952422467996102899374479884950781210197155386741056808656981661349872235322838855511619885146812533790365484933172835751631375210366792290502522249679527843103482235384170393211795480703538754543542153399421960676177292231046967832181713165897965247379853945169624331962606699948208658760076414352329949652848918041091706041336328164610923059129704292781662122047548604729193361442803999865791100181405404940837027102968969727942625979039954366098048680968129400073086897115021855308368786010640906419850575659098478560024128865798194666413525269134505365808697849416481130703362018268533280447405254239525443989556946487555548624762425994867787145729698090469266565548295991135119670186333931478706000235353327775373405348755885596479106342016890653114732259425884360101237042171691576869910698632951898509674309734789701599351797171117406158966905495611114482575238506652409008570782053185310615227216826658023373859917189693229844359940702154695262786811721855121229033757195974730111908083267369361699999491415721683983531492197839338658058746664310890661269518504961114151924305609436690524978927251103759773606983826117718757759790681970454734151078657248450591379450522893134644216525322184849089541021486780932630733224438718374767822937540400506829460228844545044142171778470842005841930629844146610983636363493229775378030582059716699135336579237624778198691501656990215385053976662883872826511679178135264047273807461226607157383042892641820823904954644174188472133708943357228495571358116081283798905892376914250599274298182476086463835181516750708826260797264420061235850418786432727706628542923555873741793608362559143258113890066972795648774270505786733539783536748214170355509443115605894153652868743034451735325903110464600846975003441933972429152056595265910692818041287889772000822808707051826749192280258134773977731839244180052536554157987938064622758386890855373696552296886865450412284888188320916313206779457650824634422187094004425555907662830805821365784238458606766516725054503615654052925616121285145384026545772356833015886094163621441588262732197339045410898104826231002038645245758250563305812900719583221119052163882824854486143698567822971186548404216379540248532413300154196517436613220794863724360814064224444948915908055610145343943224893650408880754382570324307043686807924374529336712734494315128083320252964645053090626841173188172209638562170003549038364666446510665266845495558256244927886757396119191121554810651409492072001758378644621089412722669908820661894948050421863938563528952438119105460211604068221847287695503229287749925745246915214973114490055697435443344565231912516773585640799671006176193242992598575649710750375760261538481337116646971466642851275754298497694885692029877111305972777289744968622848638839972827288952459130176639265891942479703413643830881745136904620831471855777681622222070882669815256320938342486619351855443099247616722427753190761256479439871273553207934081231842232705715905835064185189679528181375728899268997008267317075211215170929167763375046596547093512391658594248975603480943644813005977284107970713052110300350331907052774948769566128599587316070856176262596669676737951593490182230954045593015036169250800739820981731634953305923377308614404452447257341890278702150212723880958589665001602193420401883434542047004305061792283913278987235577352665081209167439155930964726352501516729922601492260809061791190843446579743009176070556988963179284250126014396545091172792997914497917764465607514288136734231172448636976248935714515805590757570101533377326497139036806246336349272244358761443385905675070010331605137358051640175444442551934909137985513778202475289666031681082820531882574513498517368031652712177243237796754955301578471216790361211740955998382689882455944260741774392023719354137187604682474982402110621559037664540309651227558525742090554712497425611209991724648308530324257869854140033416253275166308276260253238163747646700008354698435573202959649287782742274013834603039488432695987639087750545505924129913990057169693757119722451253700924987855127079740559200746015412111646846159586798177811354723421952633819812330532778630631940443978514296905855241155192944623588198904781861270083681731739295772398434430904396932834195162716470964259729464841751606159478854825271142828871140906685271547432880645642565854811506329925173751283098317366707087164850526269895877366874903892803482370478499559293040814813471268360475114026278826504086648884842643334812421828145025453396645571386159491528752548775237768241877014398158571949251163539746981141860433247667641600793553539019636024094302254074061910053032111271724261425221313666428160581189750848996007791438937006474699567209295030586257254731585495341908390345753775040391648993605792556395358774120595749744657951676417648969960633522142313569863779031311658694670354511291217269120548798453026214992370135700013456395514169033038050897139106881315163131073727928825919657445315965566515142283840095558761445195650279074655743852569848909431055536354711362744019697053924026877000812917590781807133869320618444158288134405745384149363365922383841016797550422601193180251461322974851094734223587555775398611559106012686836500497487051858050608970263285300631596154842114740096897117315651931291137585667484491936539486907661260751597287165290634346406718925840158996323664435938078289511047434307143374319448503494193442583630767000916980237975353527850953650218968199896902701164359669238071100956228774515714463287354833145681624184236659570412925516687985311756591882760012583513725440536188270167766264658239894997920753424699107823286866293064640828883112233396461135042733510968031601173969159952864223273754368095277689125811019496124476688134043282908311424748590997180970713702069047338502542598619568139926722578656018125722468639516009653774593696972686017657929298574902560041513981025373488222673065014957800299525435162640744433612936639742732088647477831923563755824946067527791416417627451303422000449689336888778101811509501672491007344838052913939857012167238041318616520352616839455228844679723194362145511096614343134630067300763176615816044802453544046931122970566748665595552498377105891827495152085915858346469250544108693439688695138921038282202482318879541837980737646382216412186991292757695154832090514976164447887930255292767230853712408359902275619939662608543598836891747925377719172076748562888298630207717653977406772218667637549144499037976548543697729918442354420387383745098252786538335561177373868943035284134948441783547314343311605781663076368043608244831679791756472303473740569414452655373715932184896334918585637692670516657499270142420654238415115059530820339605813721434408457571570760230026490861382318627503107344253038199309002671564800115699613792372301256471438887892141534025171592149793285200375137623508652894405727488475962910821401387377321537463338808048827127333706031809088688678388093984951746642630857765129216400762098522783240598243187425822763697307812078070620532036742688526963514639116117356703491093303129621758914228329721051846490467290380982798420043888206910738068738689877797429864843028319073782081369942371000404933096778972627122939449443640987162634980109985492706042592714355549753327569717721916363391250860731243459942880181470520798454312829668455729212980511011766471118736035128599851431460471638222804152641946106380524493659053345282744031230070007624373754686141274166445836108561424100230093434227097899514754147535254000908052408484641204122610481948019437655861360341102355886969363193510510000374136165003472675371686015431143527344628103642902825762657752224737358366066109750348670375090950182288894276878937127534764296304734551943359244813627581779377007048392730661282435357038976712013880481213474053367504766904957415359242106367213935905744038200443672083512653734530032469100260843777365372440896578733100476817004091523686891954681303146442786844429960420453389877200260860568842060957949304865805800853209423364441454260155037045936519011924078948651914865635051727843542595766754429266678690715129758589276899376668821324551246795272126267283264301245113228423138399754295866104845600093028194853233896760893424394306921489043309065798728410800567979482183975697062698354787759608993149776603598986818673250878935243002768574268219605568043898787607722512691514749529039960255921474508319918422006411560588224252951059653749416054015512787377476538482245617576632955944655868270528386844052028192308199005742537532027090589569617331243405790084163116316155658689427591987415949857423826125713224988246372760752621279251882617887977834507595746072380943902003131797033610040315582495712091576916853853087085462953440842746397342283858101851022722256607148121499114756361508624713985198269361563723144333352945136818233704780714459113653223986554746329399842549474856705085582390252434935043829269890943141138797293958530003607259774577593485146570808651300337492824339746780169297731576868662311559094537989291987336215245781055849965833404804239842222078141817419123203481840680462102968671195678816098694040692618716636916257706597934265683402848238909391142990873929882144705973544371998811575869854159313992037373411764966234556291142198778757584930642406800814299035871898549535821063998253884653578583829482594212761811928172412117731804473970362297150923793236067942800042160253699398910234474879889119718655710200750075114815660850562652014573006863378105154849086963174717024253294079353388058514690815806177689376865497742429047509239345957584142926824017050342800942596164196125537154917087935141654895405895968623397680864413671862699468255109303763623882509775879443040254954227002957694211296223105522271061206820741565297468999352227196805721508572527163318888183361970078291295039333195841376317750906053328565938774262932005458601805716755503739049212051952041903243943507977391137174621669735779383719693771525355780580370604040741776028755572125093950573485763644308411550480608210124386616116773938842195570752293101366722973979159323743677350675086673506478568714977107857282092651059442437532763278400018631959221045666252507196915864903092689815615467359872430084511985436770701936771226091992193774465548750976983487856175409065267608670311256275573333609076186892009755627571989955283950774979163323530673353501952054055029764758311832996588896165368774661188662944012774685108189376283763975531163819583878263186984800604604973317352103065451468166947884770018416319507144884954838525578774909139996469259653084897858030757210681114294714179291835147885368520214527598413686127158842734051934535499439095085909864210051754266779966586751018827776443393154070115489911507885288871169106863580370474297446758666442172105534734535842556406231981779324757522497770938406342029867137310101610886859570369073883796799195532948700291523102387972343421861101391857199898657004456183226049746604333199432884018025388541600256230255442330187674997549476964964575897123126400410090061260728530047072918267556750618653210866942960555005340004079264361770691628559702927171041394441604812258160772792196864814852631946861351621571386159553093702713144129139090398207030613441330430368668840855482699228569741863832753854786642231055922455689437368673469277451092780098767722848203086617277960939490492022397395644118353527755647956777318916246836190736512858904129753229997065039837280081804223794624585818529635229006149448797527885936523787180672511848243968612774711144457800817313846268930618216704107084556062174751783054424046126892370738464074183470540316083982990596269727022790862162967014684627157976330375742323880101880106652921635630440099004296315380135317654503270751333834652927513056766687288697334812628744175310062973812859302647625275835847223449067976659267999057743417574690646636448566439008484655726010723148463894414508443217241836332765336480928072180572942464892254989873910604038073263022508472473611249327697387547167085453047296482773543880667844020266485671260824852501393654232545919390354567439973650541265759133996031251368142426238355503620387462101557685358988944093815975481744196454567641200524641931764224318924170510202104412110040848644263067164559417441926163419350343673910943477486444121241001301160493886195495510635796460646603638767763737624875144253285826722969108001698000484569656014041787417375274060638168217577959360007348328537728469998108523961758825599294279500002861363835717628702007041762369591576417146836382293934174459250223326366707619455688166671518600314747824412270139471551116836446700982066637611576714184040587585990311695020440687291613685722575631967123958527489051986353684277878794503064370710154122942515106233505902567681709215324583558674613920285876620245530062266439515442867651965478764986577125829722025794402863737384182353170950841346759001846961645491089407593606118028301170277493420456994146761388877845279275863402968659924082645352261041157024116734197311574914801000877298044851226085155613262159273987887305345998095079684086256352506475009139321832044015555187542661392212577962161161834919553358560627421283206942453397835840327968207188275496704339122859409142611509529405593086502036953703598944151425944099752731051266958286933435857279455651873703843400975155831451225430289894519378837707125632789007768114044930420095585676132993416324659558722593237049893190733619576226413021744733414690487940456046842214333437280461096010922347013304299561860745706381170676706643874509706863053632894124539507661712358108341427552634878510818726797090366784490705074433161726038207950546376821185194851327864045262772018902066676393430218058073876810408791915920722465208711883729010876767557490816072590201276458096640657718395626515206085130204374053822759101926441880995749751391504449401078319532456206802740603640017595180020181831289771296491182046076070292285167830214354930047996411884895395168107381797726474698073259042567358599358066941836904656593978947754920310388522577612891295378604824269804977352574773527935241208636770733806731846648039518231725122759898716555326114097696359442735190055340743403348990122339296998452727116724133173932644675067444124903531909493476941459557342440457528490643273668458754494616624259631427065240368803621390157101844362474892565502843225472793303505409652101039203159606563253370333845390627949503097381657047480082065937357956069190270711725262281280958707544962793347713770712223679530746404313196159715665479203063814838839517095455661665818799422990377578326188114520643950419930600736310726480554722324933998410930881168501937576942328138151680634815920124906079591819707291391028563360559818256856066619848615665083764043636743821912433433236330463774121896282499692065991438383252950684054026212854643845072622989127114041582305381139387354203896065622928860726246956664421429609340455721420946270205799864711345116304132521874905629610318342592907656690192552929348813256342624197758133637724773424650018253745498549827437147609260870630480102894603025482010457395202778764642346734481286253522124815504975617169910507609021438215224804355588037860720834890192967286334889764111764347913700552073919519915618162091375100942378376318154795818716322393516630104903293524331596173212166962449675067667432137172712095626616183232063760587451888189198523044935083294113376999710526260197779944641314967618346839550805921045119629760547233572119585367528116848372741007454623132008191981234308283610376425157201994362560192456049846368130791509740299724602828184500573117954010750564801799720984857543451308810706782416896547435613260194306877719537509563195294362805974888752128994846988545020035336929114194695108688650106585339602928534782023599127372230030169405330240522157831432757344276800445876340346359252271677134097599452276681991149376611184754832749769228802966685101076281112766491309397157728172186392480491304370049795215321875578630325210726368048644884078519689585094389058371852162980641103024980312170650143013289462548944656527761496961663469546209126853050784072998444818730741632768477360064264599821956633228265239025243978946436175922523035035951338865015140556094971363800464869401922452623794720335460437568482442375741699649645720796397590267326823909675450855738758862652324977304246992658203486633982050335264283307224875015213302487681215525139255146024438827912403442825585930761976199031044515918817281693977556376935754274218435728633940269071355442115013557103797954717087869806003193725816788475546821512411136162093162912420692377390006895353242613528101128864582670308243341031514724406577101900638860580530040028592269624796265947928586009478970021675438413666182218878437480390434105092080933634992903762496118083330008397187571939871699972847357927797041650755165001554648222730034125383388120997155838251107405783806920556868761897590576980259470928001080378946374090001141549055194583715537476653037586771623808113721921925803795458006197438936879293710690796403545217561250797834540519642856694808422391138358054520876934704568865228697864819991318310772380271826303056509085860850091627765691162742061797365238878725970654399124478387382625823604103761422333654514589257052055387350678702830596469970025960400345706076692172772209639707453267371146761425844556963221336089304361664625391170676507511384233640571884157438040573452827952276421084409638660594965332775412377474408214278360044480207500295397173168410468468706837799555505587159991716453025083558261854042148292560669411394452140668275819474814635846228570004585385479699407728120539877632385732817213946913744578730207367419968277300350861788868655645470173080521231601015261288726086736570123888528572690853143887642821090993370321253916628995681418441786409524694593878079884766002675140768141908517992932973194654308888387195707895162103572714516839061665485753145004006111452980304643883117798249445922506051191807925806234424072139042755860616414217093916952609823255586689122729808037523693511482631832590617243123918034899198198988486072565141851547580572231040107915274195161838974267246374419445780785748637070937668937009072728046731772768793810352179034674072059109259639701301005718268276270871566092147552107085140905379714988519294059810913948210272322390847208545119516740397580149289114011302145173002548380122712393562115392626884642930808968152663148988044819088677345898449712259287453761639429007411242985176021220247401592812862597455912821370209375043758141888806487382993500252535450090615655997588954769890340807482123849514994210471295126778627745790870251733854680169539670459417075904293637616391195907672943506709824585308066045266507348595177200203501603660659335348063703287330234788138447188569561708882690312071364232954218227580457667252651633750652860555611754798211426064684865486918430331057080678482070446761851635280235428802309391028224056919303374284718950622252930775472038691587110487944472060841500014878860789559741840720354226486671907788098957430112920659843856367626701016354960709204554571636076356760673990010431606690365627966458591632278637905944173188241215282203696629078509961014441331505044126854317202278845504414869214304711081966349350784384517085980736120864787002258944686990077251456297411977312448822930444487980631942275596923405352113372620061549953095712843661442392047235834839846073565629175544064346947069450493504742324183242714765120119158510714508780654351068037258312787727508216912560961707525181068566553190860724641338391597560226332511862133999741108888975735659700013167047238254172993936827059884074204031271126442022454025037469531217857440298355954496323419419714184629108050048670379153830437309013227139494217834932832208651638374438778309666088546815029621212849058317738841735227682287581229610110928214004576123919110868936238241953687436693651620196229110781054940528118238144521252343658551849248148315160162035194529238987993861072918658562083681713536130072675896684087193614753756079887972797054134708877425057059750619612566038548987617441671436007492086476393586301619444856574027807693364432524257749438168373938463933405569105371581541134381269092552351140478551794703680698015957988307435742989249832939791646290629998180632469526394010079044011442043333639732025855841409312380920311732300493792761563843223087927830299549988783805108249733140692873473590433072874607127025725510467654010957936983573441508710101528985332860650293452658935589701946185924220775620499325858707658458398712854075079951501193165726622931541209763914396362027611120574625265525824803972872528890655702965529041040540019851276724042520911024287195843591526476757543228807973847986878644560794891917552855582377648334635738684005304763061959029668949822353077056963321747199650032419804658689294229127220629620187282681674999191339731131520590651322335572830429171619145594642764369462736285354913276989464511958160786852910556231695346478187453012324595804956901083078967082388755155406164236159292652067398772982822779395343743586443747849829030930381273032858736659120615272642007414133267261275256029191932678631158397248523939806626959233330379636858077511068990255012926952873171759979467890662476852406879982732328073087677931948099615660688963714142227099014542142384448451344539127139812168785264146317970992599208620223198636356459188646154275389070434371667631744089032893584003852031036651681339780287701799388812103604499643650060264692755409488026696403345891409085385189124502366010452560375361885531403130334630763765414822593533756423861331474494106022433750314063644080216094587515677852820295748411821641308131086280984129069001946787825077438163640303806103366435681115213990148232692279150881559953647805573562587342059153585016004499154369160607862945312937714569167864523121278261573728876166251915492673845188673526382825375827921779791729969531679348529090645256309636116301893588858679895357534773452971992884139112475008281476165545292834647757370108151397914301429780436791318388458480369917395264796332840195058971304651390192476873214705223760633324688239229022899569055911313243841839578253668695571573751669466506372772593308001450783175318635700257087915379393117633417143546041619700177668743510732864156917164845143820958318593560866372519479657403453416643079993452090628540575148590970628029845979120812122706137681047545207049194566568776754644500317908703247141635909427182863902273810207056788804655348659391677833780441362599025326302735036037775969896249938858499744390787917225119515688498391884283829440963414794061778858038882975439096711949496743898898992297984182973233751026132906728986417779201878517869354026524067060706461377957409215494197911433998067980641561561317242300366552274087029246436822442942982826188465962130095154018588773267304574946269859780976671199511158317595589552645201838577663166988191941083506012028922177154438567556762259733709847340212606753064501373707095127170112803368553335412095488802273949448778730118996889718933012168992432436941299236694745450023541500274131576051203275137975646816069444305935189807997683073702290583526649707187815612228273434312714800332641257431012218197579000674729853711090562450023324996692811983913989209178520740877763209610644384033519348058776792796979750860091684978166877894828065167727209399735487383287220543668416846823933510914873016071807005040604210756601374818477614983411827480612939681374974089327214061118324137903802066379155945448982930692568227032300820855542014469460670342300811034247947696562277826615850035321666659522680424524714042079182486238637925756634438045727231427892614938506878339074133226742646814451619464010555589533050580471928511402771344330210017449838860973551630240285512315217708088824459852878726125266000781290963589651425455113626381978661577772319868723952345979014631476665626362867470693944406989283251288862006133835774374679702926792519155804636624436367531940789242960088889525658006307959456386053499745274228896085461545914415071235235880618022498227250035144853833994251303716884413388815574961971026452540586654039831690158209614002521820769179603969506082347885051375630908246851341467972867371225388316312592281810507543925805006195348120441276073058273339343045683229768656364084958546736123239045026881285918690610110027079945648414383757393872506633566937454018593128855840706871646361684524820376860412205676743144042873862052073734380258364181389116028436390502865609746499333581398350630417993771573308896995686235605329628872861125562047288340912021767811837149083019475233205699436065098183377413762918717653682256822702482165956473752350950352254559941765710400051221850872992336089022027215961567699008174039907407292383869581750050458935552252014093110363602513391082811484266692975103377436806509712177976902482911413670179230020097000562112456324427667061488161741615601820127216424284632550478783922245491692967514309137137617485339075317948347088440917052371145564816456794087106359822141330087120505546904094605532503995191126411094101184853699479103588987328018120436564910361607412359500182192147396187897815362318164615986122648327718330496249383803842394041915857605824062778817470299448206394990035635986191234778604982290772321867056466729267531270888199391071823827786501363097203491899315043169090707531798366815653017055855759176662314811128417467897254879954697571662673865761324155017883751741869060162986856879503043021891819514900571340882620080514971472907019107747587712227100722025379001550274694272077554705944819106956505954751909602178229899465844336640402356669088099255262103134421964889886915719513236105024183352901796033148491839619369690335167184370444737906029407905241259774870963834312001933868599204504669323195995698790619364601765285581636392919454684580968432906684092730122095472026806725282839821459008171794784341718688266422370892407465663393758901804984433718800165650694211447229513976594675287251604969235434077030924128028077136075157890234996630069252738781085232729916257590687459803005434357406205171345817652387567690390988735825746587430689159364190251633928429949311417748855718214833169116543530010114646388926602113536749909544162339589469317284813563578032781515184889079569451730924873961411150874562926235473633286456123289567582738211973540037583988806541473231040532120027750590629236997555465647672135287543026496222160371419621073852328446423920761603639672202488434825859413032350540483004903961877634382669400039919204370452023862065613300590915866731398995138445881870086639137055493650539789584913685698581298216839855043327085698954788073585906668907816811904887499304463970612799829184137302235890160088733616926090675109363620311782047354750124636568943337851838533309672348506398134215306582513969463471220701026240832839931909605259463922161988253247256332576708077513567297256285733406668892395529274172504422819863865167633037911486851048690945351362146728071291918216128551256878297779135022104539996277811707641051083161151125278783703236390915129534197330784373428472184795112199709628916646490805598120774299564005302363399212281546783204243365689703729369263024669540610293599919758049113861164123730164777910834187796780288693267366278380618193299583572003119885267879221844311002447034743464703404544447246585646236084221954863413266725887522051734524832416804152793087244143283583645337111336264311833953798876995916597959419540599290281151337187538598952191614293560004621170880886769159107641375950018471170987453022303425003047181474330297767067273192399909882792489338416981646238828596199856660022260634715342776636823074929414454136555400188517632441616383510633331077749297610202307905958666834456655993108078996475783718341476436145281312736561265112303730117749155486033312088997611053114687905227890866268219793811546556154325551356605706961909643807913123950481013856057524758074298482453674535093783862368416650837145104090482207584057700598588170516772132315062398759710614302446507396970507905648297411840327158231485445189562909969699540364465431449116167531359710696065731476464480237871466694999871588165249627000045946624467952508728890626662885599872928750464668265688862140655733312464574093777625549526354808939140567117525967976109500009693592086093679606643594897754986089138071282418634267965715363734499705994197010667273477630404945406849789612545125257623362937328995369943465408892817134185197937688672822982097540028420818962822395936536445782471846365628080310889463315990804367603840988807726142673745455134522385352324378107875086979477501761268618499085804305290347987775375098098883015189879119155986187023588490212229960500475463236267672260373149201784522273303218935265572233868647117204655199321277802482807251593805925755876440054511409291299868222830002006401020463798897205200011697687313958481930332764036283854022215649094128256680262363030247362585707425473131833904893183015785519760599472867057678809997540103538101224434110368354219579600794364437363088214537926525320300324282686944777722355776908300731400666403099092392807324487868110598210761744919507904658460192151166634535760399779635624952824181309587502323328659289494804353117113261402684547382472630092465300085779404676803424673901150734387336822740099473927494933894311737979462389112674186809553862524724700064850201623808908101664722950651758488400631748235399993115156155075176792901392662876073188116383628468530011052777931732018573426070455811304458799645612613202962152059055755827678073314281908743973273026598907802697766743669349587736918508367326730579338837270122677600123599416942085682139387354727695340386369367906612113781769553533800677060440802998927290343017314171544550750355943884655246624402563292401137939323238704583259129795237456488027262690326333044767461840954489205756300032005396245144681541602407620500033135485667102580749731277599198523462316945331022654904999897879373332366316101089161570259032008736192258868888580293420608698934200036364343461227986611944560809353095054014431670396197032957850442225614403037222846367331933944465070603757355216418125965245562790666307668829491951738237799924015296274848265179890072698394236208848693975815495822961106476297915703615446848183168771434586233337411609393590125558559881711101673427577137200744548644527062682751675872283067242015971246375168667122979532192924155751632328922513559302678739971217766311136128212971697224989835892143932232823261587704971468693043463203028025184712206021221876815919720783018749299971462465699594229251484707534092021946753971873616083685515876128975152202836977934134752416131266177807355672285335834887108606025887933384019684833574089123730901009650713714947178761785608613908877272793429878073526402221307057642456027435794527168830515317056542452064759932471126587408194744183164923153707474265926182667679015610386417833621910769768188598117697587929822794478805298620080429991900587355284928101729652270189968694019644751344761908902746574730598054606850873502900245494003104350944670631285795117694830815068454598947411281102513211684123509328441207119231161858260968767004278927826013732180002513646587731490470979064505992321739170950047064950294100345011195902812468131844547636737847815494170937198883827621869732743607135652359963852480240784136816645500697213305256319776961274455521323665268978609125001858562562454458383235002274736688487894679475897690184063308390823783749427031209495136504781552091175790631806806232370283345783056893627311185951260206835882625491472182528675595093924907589844265855477690945978036230492099137225565551385101723266185611497756356398663047983273301652356635499113768067463347774919893131562687647384409811138657131559066108960965250534890470251717529970692556612321296113574491745677230236293763284698487650529873094660370477121636721120305825800314712385869275423744457779096418659192610872072638473439827818425453670995411579444751467661559377513109307694084649655335915120717676453228918862527744153954377415532748245378956915474266219277378121750401240949218835220808864021688880284529966096619759434644089732233110126319836810274457128584930350137384197714969217453350363155738450689238314508111388937052305622334493691414374712510173760939880655070178790924096595146533546543290575046759065565172671917175705040310989532081839313638120038678416094774142801977100094005760116552671014530438445465699439188729144271078748526744612705918217881617174651280696113579326560782703547672856578131249092339693777156394049709850350448641110690837582311325376610820715725360258127145258326106285782746363266779367263158957321878956006222442062706601338502672015867706273285666437831722952448468755052498412320205821541379967336156018327541930439214711408656268517079609669186633873618070821499057508272392923210096837213417577454504869791948334751522034513999768202135170163242133059163309767282365245365667848785068218907947376559132454457869603728914949824351181587085473051691385693368294937496347989990819234445659755684629124906407642654820335499547799757971616874564373790815129437521152449091508555492367662630356064099456826913441154072722075806064066355838941207097596185565445803257673834495357371781417122472377042010408244925757646377926080151681911585328942840961868888050338995158280333433610860724513769584985963714621483921299044912286446210184229396867059111973383167453106944396142123096136792622600232982267410922930860365856954616926989143864183170240288301520532987142287143270402234271847446327360689643842799939649197588953900041615716587873921922811912292873379944090636364541947575665352519537276387057381054946550827311680936437497369767789565614140376687307554956995116017151101479564308751072255452204206515970963102992800489118850702439844271596505491713733094026932009779721196063255536997846963553183125899812753777339382656451670163617769143681456073430116624759115677754359759965360323133693970914792751422142803534933196138580713416215071189963878316814002876969568005424629172154220739962691684337983489537044714730079730477484602075587934128876198615976025284084046665670173016747916444258359567093383579142637153261884759398678626690364950137747156640789850059160549409751562872213463105432100907053013139666750360217675932032963248588138276198220501177033785841803212121805055496007631405357998407891656310833350626140684733532199944346852751246417601576772136096821207735153903628800952850809874470616260689005352193045402416455829553236076563952508390186310974362181361633656302707040855635264460444656161626059782287029576036240087455109646414497013799502782282423433467164187438142601393725376938073590922454084537113007882693229837164063400010807178859971732277288100793226995122265692443537423883828055146594871803523187430125541463976233717342640550995828620857443568606511617912571013410947477042306839409278443680376472469639312847889183091955467847274004665636848061142616083673006247124159411631536980221156525283068313354089625764792023499436855479014861491421936445799926588788684601703548032370506682487775775579721235306373036081340998117259335790265292237390630615586249408686881128488330499590377362913384792846316365083468790972883051491014734101799540557478144809294312374736680529159514620070576380103437351720064139029740853746322337267070783794307715092658538229411512924871899960382888227567455968667246697275123014065723494104395468843954001486449050168369876613118865551182398701823691321753474270676083659361715350586682065236103516271219268278842285823781343059986296261746423067511403065167331702238557151340379458437036933180977864009514220660290473744776063023064310193855596282486904409492598834683382990106575218956132905125963867522450822776081798641673102347976085650080817884686003059367535770387519191599958508254049350275449141792943119119567424949280354661026946846497386218753431133333624599552294923790662712737348581252482804875834726931426586227772123754824184280738271671786942038301349037076442285010421558394491032383297191406897448498510131709192791813436684930515535845140659590732480901310084995908102934975692640592906129044643627629181853949229242057582299223084142828323296678687651324206675228028192526932083819632261002436687861819593863248598980605115901838486609733096732574527640777123765348448733098372798799943544185925472795641421102650345836690747929000931773731059498463362657048399075508144688297962588895780539485134381915857816758875557304885259223627422727632049419789944546675075357879860969459097757696730574334109910938793834162487538035057125915498371116320241933348206650838098280120776902679142409106122952234927820109294192628881212089984524696778191784066530880642124043574851478081226868323902929123275566504465393070212386232669188886308877513518499927927082608464777033980068666754393763374008338698141990590681953894178873573780688359672889031575181445539313337266965852875615447417325951880671513457710448307273526998854077198547292105814549950781625882957150211532920202377164029737276438906682594005224684469968984058694918222334349951748600677076937590420641954926439860307502683162574992236384572428229111686158285045852007688493060864032707041757891945321277140590095139472145493930215836433157394499583690137722916435313349134812190042726502320635302081838419055531568243622059745346684886306459696681522949600390015205200827286541197773459058689437089112500332332667688504397883399334230228646613638145027270741509677553227723684548300979898585294472214677678814823830876222682911159849499407187936925229453671229250296977884528855066227025937013112784440193342756444994718411621403429725603771329103698270354202898360883714917967361727518707512585671631255550545679196126740834289203658856233375785784536192378425755015287779085861782607494482478160849105816385580491535447824852507833680742306438518098099981695356336326061196204393194412453846918733453446852573450577464265529866972156265281598968883281442380781969785477750718365907452558646987806765280015144313441452061795581690510862575823031581965409629757747172584068825640988386401254671607260408560936238079094638305293502914770977690715653441464512563609850633769781993368870031831943514525950569104584197167449563096799626109917561868800994330970059964792322752763367808555687347293025448936147300101218374688174707966531380871312068196572596137908766718803816102720348549782915653103056173596114461105694283906500695201775292867389316589437731588136408722714178048492030399140415364242258130456959728415191213816220005819066803788337226444372523940066283560832355186004243845230886669246945529503837218953093354940731064251171647643283792895701926506351292792990038424027467123836037445768853802347608765445691882734508702540716830454233615194533785864801350924128237585239641911952538712166550243433534009572919268482533039278865172835498832912125940714403829568467506248554839093943184988198824661047508096686140133470062768096088676986928147972003563792144812789659885719238465294774896262541680877463151899927735302827807351898482542234207890190461771973173795512776813055815929329950595888708379124962878967991145179829557342142782596321024063157755371960621495526715059991671474136279307365975484016973135791597809080334713045166963330375383887820434030017138678533514935467468226060048872607112698486973211109260091148511255084633171083570514849970244197877085428541618170352407530063280204046598110564717784885067716368286655042826107988769363862000236843210185673335241860017076364884300775216414934117173825002421847211967889969611794852203513090686611027129077409723443717874131027642725395081234817686390870132112900894426575959500086631706338763463417996309186789225316540509922478381974652658521701301217027116152603563174625601158644743549684809852591807877122664169714111179951868731929998950307076637969841341379025844137093692150677655103937367834076696923574457476404809830650976447643562688184235189853472115833819321426806452753599190879074902400186502248917740248985746836695718424550776293682209967318847257982138175110650008995164643462677492919279388788633190190053641303019607708198486810595463086002438463488555377709580897137790638728392621572907337065213376239226960470401376731579266177451071776547368134996168436420023537355161484787685768774769448556787027859727508249085506227744529341497387189385069200392038273096251425340528379218408866755086374195834827148787931546951926390336232378493200490494980176153486582502043688886231549403604916187120601570452777012362639187912274604646866878378313242378792436175323661737520863634621145310605688671568520811579717344121641336699042123196833445550633214072941887892123242808439040865593138323727172867825031792922664700656433297821473309003604936706211499001870483441388398746941884458215591074765154777778245108775613315004187283210899871033456308579636998899828439376191318900186998364570662906512748241409436207659598973078452332442134561855444687989056973969301265985051747302139182477070165520334949128346252291383840153899053015487418477425481877237996002365821151407993862721149886289476864122978988665409103841086742755189529472236018066678568645250185136054207716539678616307290485697524833137917458218522611760602145661272031525139027291225253556123017765485537484483644873306026192923679522842226868863082429087857692641152120111879760868875581848317112491341978105610569157163239898109635236143405481425715000726504840049792830564396052506684767280223083115181843707276488715326787747124310519587805538721156905632310332237999961777138818188108105961398102957697299050244818725959274920552444763531427190507949266095454534408336309182632663199627531298515453204300904895100944258492576077966438455942502611855306350245482340624028827380449374234090417787640249471474100382773462518272698874880527449000798464846179405581234971296973462456902298916199246846733217442012320170381567754450002640633712325773564776246181033302952879168332472306367370423823422017087910233608710485451839281195025938274428230034657320183427874523115805134415085689537474353530202432413433542900588828119391580725438236948719487736638034531578120723674833849848895402125666064008430412064126433727815682950227723329456703850428587965942700999302212928316781944937753918718065190205132717726595722717872204887907172378764379402349843510181779136770322184818926129467464464298109795024692890793185339635026388427658704752260064790610283186260365121241242915844157219386191016387980373282820172099364262679884960422587600902960062200172606976912431072756867906006082514600286506474435313080665316577165160152422003560417793626866328473688560744275762400268218621691171207035499801678224035014797615636212815445813462489487835907045979426183024250503398225878511979935878093853203797981102429136192229692039894022525609905337945205190606428343346637988287297870786637352518216526727507900722242994705915673796358896394435430754389915391466807892311007612196726633930300971415192811647821626048542476309596243200537798638054189240209659307699542415005928305512617444332143907861278775887094670958463138823176298573241592384194700136129601738809797131187169250386624751415486599182115090375706400411446513841741214383490941694431101129147412149208440817309022901597240644381626744494477509610927612159540087088280333102621323457806799374181240999343280310161387019064689473160952466409916870934856512114427387596843326897756805828573280085141303562071446331371125106533510849114347853568343323103263916723939139570696417358168563712744799508973755192725339944921304211815452629338859613490863366430710622621025781981473675235532076295728833844087009127741101585479207889964910455550603426217783809957645349813207880327983237948786647079579744694456295981842364701148809177023286154899805990879141916463972462786079011303807449937819306468474674703938713959364186931308959207463561256220435524647015926477670304086923402415228714124794916497023836622912886433034046710702333872012073825345911544856166701388263418260543528928178800842550594469888534125759815051331111667260260727253341838265542600796174168938023699113156243893064289536798269491746755991553395256445038677806035001637833279941944306529778891596805135267582161255725512211055416637992253665050280247888755610666838539561438735843927091924084869335260777735251213096820210966393019935941565470561445759842303675332126574876478943021815412271720670693575965896160600524203973916996033018383385712133046285099335609143689464336677610526181470195751215572006241312823972086754244403308062861584883257317825102978204770393942397022776974909517487684745668235257308163010194734727391625495249260205116183479748196077292400855850532799919778810193281484326290637346096239053756893168740785949200291565074620360830343908878347176003867664309937813244537651955330565210379300033872806356924689111463495141794660577382415619219663052991468694101616208816127646925600807883230644541736175792281901060504362504870586180594121576059997227253923578541915459949312769625899078573959977781982959608665447599296784307265574474193983825489174779665233461749140749566492510660407370981476811545671993461617886670566947877927700775079665913399955872071230653875467322022491600612726057188104505151697983553715202396820808473836567133475179545503555214946348185558105813646476004925699221597183040466685449718326739717121217635907155658010842683608295956512398756052100299268333951274829529625373946620979299421365587968994634775274801591814611924140305757144312513733166665996941044016619969423075201023649681945748388317435714483416612610035778903773220324687359717544500185681731086549068227923222832349111539216166094495315332098857488153700717621888328658017235581341220469534053458055095635785721532901314186869794840426369237788021655732149779368750700422335657748181838610974817760794879618634648651695077880930124343050547529882052710513939265172299351339211574795354460094743098337965108771102460090504935796618354352485415598544702157533234700556573831261663294981800047080237494338323459182209893134799153164865678082530454598064126791416564332273498173457499925121620119254321917557659908993815395340044259818845338860597407414928763357318101626733819288336178503612644363339280814739727261054793211559330901194951637921728991013515524771705789273494083887995282536092732861487469308443972715327407777804510091653704359606282981104648023162164204043888905917831721827424106788560300673205423358492868197288828334428836622360860453651383939727844215368931822379720035971361384910655513627323159375344035467915336098830922948449689016882239312537780467496415052656568428491348912041754880021807708123254367151572352247678693774207218982931722825015913888021953725896662001731267819680985026185122829853276399899607389649414784311522377966797978145536031519431229375258875265937672462986891050748488493697829401966812590854270309403735932081160639030531536314270896221848539327579469216005983178594403513218622350570165381185240229307018285243916464633189767800862822639740688064583622287888177723363886352836785075383797250129970569442150089587949421364786942970997623220560376027187042679026505469820952735079174389858035561517041939488861099120618282571713415434870984893142985725828136211189774117593233703772736865296862256186362969912018194360498388495454992110581023369852900257858817694136482107649854699275058196674784379827085170681843292139873420693119008866199569552317529818384099011420139044555926850185742341864510955733834844031334666542515638126481283806584430098921454671019338933322101306062219563530674023438587045985006018368494434639813198390413018744529620520568113274080404558208334058190533870387299758266513723546853893334182709276964072616441812491517488971362955971007785722741050479288306358300704358970914300150654501916468429337677209675448950806047203280038394029140154343812820365572192062347484989016512717685870727913830255254378047828174612164609284540032663747389087957485788911716411990157859954246502422525351763146082138632381699429599706503868269787788237382223153941541927274453444028018819547624386425679308519316119895480421634756992261176500686496030161943543437887904401266782521546858502175845004733114993241718030345837360410919791185171881460736236910232217976647434972180302182159417296393660705937715546591284425266468673360807667923596864511134047382283516465806254301638758677279335190320797687000388083456579090914276142056697353572133099727296927942186583948363217670070513942582679023385696737075521222804619738459131779405559838315019981292951715421869213237545778511495730172484562453000192885734616265950680787910372320161743535364471060572985098747209301125657502913756945368560372964706714519809095033491397714503069297874188834215815774531539240441867063844308803275150211808506208106020784811010333313910572640142663569079778721656762525607736630361322989481563331505436921626378684663602274413576192 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.163.' ************** SAGE ***************** Host 84.163.68.223 (84.163.68.223) Time: Thu Aug 3 08:30:33 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.22s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.163.' ************** SAGE ***************** Host 84.163.68.223 (84.163.68.223) Time: Thu Aug 3 08:29:37 2006 Input: integrate(3^x,x); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.163.' ************** SAGE ***************** Host 84.163.68.223 (84.163.68.223) Time: Thu Aug 3 08:29:19 2006 Input: integrate(3^x;x) Output: Errors: ------------------------------------------------------------ File "", line 1 integrate(ZZ(3)**x;x) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '62.104.' ************** SAGE ***************** Host 62.104.129.89 (62.104.129.89) Time: Wed Aug 2 22:03:28 2006 Input: 2+2; Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.69.2' ************** SAGE ***************** Host 66.69.229.35 (66.69.229.35) Time: Wed Aug 2 20:13:04 2006 Input: 35.10 X 7 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('35.10') X ZZ(7) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.69.2' ************** SAGE ***************** Host 66.69.229.35 (66.69.229.35) Time: Wed Aug 2 20:12:52 2006 Input: 35.10 X 7 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('35.10') X ZZ(7) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.142.' ************** SAGE ***************** Host 67.142.130.15 (67.142.130.15) Time: Wed Aug 2 15:51:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.111.29 (130.126.111.29) Time: Wed Aug 2 15:34:44 2006 Input: inverse_ellj Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'inverse_ellj' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.111.29 (130.126.111.29) Time: Wed Aug 2 15:34:32 2006 Input: inverse_j Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'inverse_j' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.126' ************** SAGE ***************** Host 130.126.111.29 (130.126.111.29) Time: Wed Aug 2 14:42:59 2006 Input: ? Output: Errors: sh: less: command not found Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.248.' ************** SAGE ***************** Host 71.248.148.27 (71.248.148.27) Time: Wed Aug 2 13:07:57 2006 Input: 4050.*5% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('4050.')*ZZ(5)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.14.1' ************** SAGE ***************** Host 69.14.136.229 (69.14.136.229) Time: Wed Aug 2 11:44:43 2006 Input: 20*52 Output: 1040 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.14.1' ************** SAGE ***************** Host 69.14.136.229 (69.14.136.229) Time: Wed Aug 2 11:28:32 2006 Input: 7.5*30*52 Output: 11700.000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.14.1' ************** SAGE ***************** Host 69.14.136.229 (69.14.136.229) Time: Wed Aug 2 11:28:24 2006 Input: 7.5*30*52= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('7.5')*ZZ(30)*ZZ(52)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.156' ************** SAGE ***************** Host 131.156.220.9 (131.156.220.9) Time: Wed Aug 2 11:04:44 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '146.186' ************** SAGE ***************** Host 146.186.134.174 (146.186.134.174) Time: Wed Aug 2 10:43:08 2006 Input: sum(n*q^n/(1-q^n), n=1..20); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'n' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.112.' ************** SAGE ***************** Host 71.112.57.165 (71.112.57.165) Time: Wed Aug 2 08:35:09 2006 Input: 3/4 + 1/6 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)/ZZ(4) + ZZ(1)/ZZ(6) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.111.' ************** SAGE ***************** Host 71.111.254.139 (71.111.254.139) Time: Wed Aug 2 07:36:59 2006 Input: 1057.33-3448.41 Output: -2391.0799999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.10s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.105' ************** SAGE ***************** Host 140.105.63.31 (140.105.63.31) Time: Wed Aug 2 04:25:27 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.149' ************** SAGE ***************** Host 130.149.254.225 (130.149.254.225) Time: Wed Aug 2 02:52:23 2006 Input: sloane_find([2,3,5,7,9], 10); Output: Searching Sloane's online database... Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.53s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.149' ************** SAGE ***************** Host 130.149.254.225 (130.149.254.225) Time: Wed Aug 2 02:52:14 2006 Input: sloane_find([2,3,5,7,11], 10); Output: Searching Sloane's online database... Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.68s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.149' ************** SAGE ***************** Host 130.149.254.225 (130.149.254.225) Time: Wed Aug 2 02:52:00 2006 Input: sloane_find([73, 241, 1009, 2641], 10); Output: Searching Sloane's online database... Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.45s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.149' ************** SAGE ***************** Host 130.149.254.225 (130.149.254.225) Time: Wed Aug 2 02:51:18 2006 Input: sloane_find([73, 241, 1009, 2641], 2); Output: Searching Sloane's online database... Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.45s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.149' ************** SAGE ***************** Host 130.149.254.225 (130.149.254.225) Time: Wed Aug 2 02:51:04 2006 Input: sloane_find([73, 241, 1009, 2641]); Output: Searching Sloane's online database... Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.62s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.126.' ************** SAGE ***************** Host 68.126.176.117 (68.126.176.117) Time: Tue Aug 1 21:30:13 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.149.' ************** SAGE ***************** Host 64.149.228.24 (64.149.228.24) Time: Tue Aug 1 20:01:53 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.242.' ************** SAGE ***************** Host 24.242.203.122 (24.242.203.122) Time: Tue Aug 1 17:01:51 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.108' ************** SAGE ***************** Host 204.108.72.10 (204.108.72.10) Time: Tue Aug 1 15:37:24 2006 Input: 2x*4x Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)x*ZZ(4)x ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.108' ************** SAGE ***************** Host 204.108.72.10 (204.108.72.10) Time: Tue Aug 1 15:37:06 2006 Input: 12*12 Output: 144 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.108' ************** SAGE ***************** Host 204.108.72.10 (204.108.72.10) Time: Tue Aug 1 15:36:53 2006 Input: 2X + 10X Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)X + ZZ(10)X ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.1.25' ************** SAGE ***************** Host 75.1.251.128 (75.1.251.128) Time: Tue Aug 1 15:15:10 2006 Input: 58 and 22 Output: 22 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.104.' ************** SAGE ***************** Host 71.104.88.154 (71.104.88.154) Time: Tue Aug 1 15:06:39 2006 Input: 5 1/8 - 2 3/4 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5) ZZ(1)/ZZ(8) - ZZ(2) ZZ(3)/ZZ(4) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.140.' ************** SAGE ***************** Host 71.140.201.237 (71.140.201.237) Time: Tue Aug 1 14:43:47 2006 Input: 22/35 Output: 22/35 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.41.4' ************** SAGE ***************** Host 65.41.46.140 (65.41.46.140) Time: Tue Aug 1 13:54:51 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.34.2' ************** SAGE ***************** Host 12.34.246.37 (12.34.246.37) Time: Tue Aug 1 13:25:05 2006 Input: 200.00 x 8.25% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(16,RR.precision()))('200.00') x RealField(max(9,RR.precision()))('8.25')% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.34.2' ************** SAGE ***************** Host 12.34.246.5 (12.34.246.5) Time: Tue Aug 1 13:24:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.199.' ************** SAGE ***************** Host 71.199.74.203 (71.199.74.203) Time: Tue Aug 1 12:21:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.32.1' ************** SAGE ***************** Host 67.32.195.14 (67.32.195.14) Time: Tue Aug 1 12:01:53 2006 Input: 260-8.62 Output: 251.38000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.82.8' ************** SAGE ***************** Host 63.82.87.198 (63.82.87.198) Time: Tue Aug 1 11:17:38 2006 Input: d^2y / dx^2 + x^2y = 0 Output: Errors: ------------------------------------------------------------ File "", line 1 d**ZZ(2)y / dx**ZZ(2) + x**ZZ(2)y = ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.121.' ************** SAGE ***************** Host 71.121.101.100 (71.121.101.100) Time: Tue Aug 1 09:38:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.76.' ************** SAGE ***************** Host 134.76.82.189 (134.76.82.189) Time: Tue Aug 1 09:19:32 2006 Input: solve(x*x+x=2) Output: Errors: ------------------------------------------------------------ SyntaxError: keyword can't be an expression Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.106.' ************** SAGE ***************** Host 24.106.48.82 (24.106.48.82) Time: Tue Aug 1 08:21:23 2006 Input: 13,500 Output: (13, 500) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Aug 1 06:00:59 2006 Input: xgcd(3080,7956) -979*3080+ 379*7956 Output: (4, -979, 379) 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Aug 1 06:00:21 2006 Input: xgcd(3080,7956) Output: (4, -979, 379) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.211.' ************** SAGE ***************** Host 71.211.1.40 (71.211.1.40) Time: Tue Aug 1 00:22:04 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.42.1' ************** SAGE ***************** Host 67.42.147.15 (67.42.147.15) Time: Mon Jul 31 22:58:48 2006 Input: 4(-2)² + 8(-2) + 3(-2) + 6 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)(-ZZ(2))² + ZZ(8)(-ZZ(2)) + ZZ(3)(-ZZ(2)) + ZZ(6) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.42.1' ************** SAGE ***************** Host 67.42.147.15 (67.42.147.15) Time: Mon Jul 31 22:58:10 2006 Input: 4(-2)² + 8(-2) + 3(-2) + 6 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)(-ZZ(2))² + ZZ(8)(-ZZ(2)) + ZZ(3)(-ZZ(2)) + ZZ(6) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.77.1' ************** SAGE ***************** Host 68.77.141.78 (68.77.141.78) Time: Mon Jul 31 20:02:13 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.39.8' ************** SAGE ***************** Host 68.39.84.231 (68.39.84.231) Time: Mon Jul 31 18:59:10 2006 Input: (x/2)=(3x/4)+5 Output: Errors: ------------------------------------------------------------ File "", line 1 (x/ZZ(2))=(ZZ(3)x/ZZ(4))+ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.39.8' ************** SAGE ***************** Host 68.39.84.231 (68.39.84.231) Time: Mon Jul 31 18:58:15 2006 Input: x/2=3x/4+5 Output: Errors: ------------------------------------------------------------ File "", line 1 x/ZZ(2)=ZZ(3)x/ZZ(4)+ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.39.8' ************** SAGE ***************** Host 68.39.84.231 (68.39.84.231) Time: Mon Jul 31 18:57:08 2006 Input: 1-5 Output: -4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.101.176 (65.64.101.176) Time: Mon Jul 31 18:43:29 2006 Input: 2310.00 - 1001.00 Output: 1309.0000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.101.176 (65.64.101.176) Time: Mon Jul 31 18:42:53 2006 Input: 2310.00 - 1,001.00 Output: (2309.0000000000000, 1.0000000000000000) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.101.176 (65.64.101.176) Time: Mon Jul 31 18:09:24 2006 Input: 2310.00-1,001 Output: (2309.0000000000000, 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.52s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.101.176 (65.64.101.176) Time: Mon Jul 31 18:04:42 2006 Input: 163 divided by 7 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(163) divided by ZZ(7) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.101.176 (65.64.101.176) Time: Mon Jul 31 18:04:16 2006 Input: 163 / 7 Output: 163/7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.101.176 (65.64.101.176) Time: Mon Jul 31 18:03:46 2006 Input: 163/7 Output: 163/7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.101.176 (65.64.101.176) Time: Mon Jul 31 18:02:29 2006 Input: 31+30+31+30+31+10 Output: 163 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.4.17' ************** SAGE ***************** Host 75.4.17.93 (75.4.17.93) Time: Mon Jul 31 14:57:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.139.' ************** SAGE ***************** Host 69.139.146.57 (69.139.146.57) Time: Mon Jul 31 14:18:48 2006 Input: 81/12 Output: 27/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.23s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:57:57 2006 Input: c100 = 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139; factor(c100); Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 5639 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:57:36 2006 Input: c100 = 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139; factor(c100); Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 5613 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:57:16 2006 Input: c100 = 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139; factor(c100); Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 5536 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:56:59 2006 Input: c100 = 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139; factor(c100); Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 5584 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:56:57 2006 Input: c100 = 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139; factor(c100); Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 5560 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:56:29 2006 Input: c100 = 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139; factor(c100); Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 5513 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:53:19 2006 Input: print("***",factor(129)); Output: ('***', 3 * 43) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:52:51 2006 Input: print("***",factor(129)); Output: ('***', 3 * 43) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 13:49:25 2006 Input: factor(129^20+1) /ra ?0 r=123456; factor(r); Output: Errors: ------------------------------------------------------------ File "", line 1 /ra ^ SyntaxError: invalid syntax 2 * 41 * 281 * 5486561 * 138461441 * 93034702779013170299681 Object `ZZ(0)` not found. Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.241' ************** SAGE ***************** Host 207.241.136.228 (207.241.136.228) Time: Mon Jul 31 11:55:35 2006 Input: 180 * 300 Output: 54000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.130.' ************** SAGE ***************** Host 83.130.58.173 (83.130.58.173) Time: Mon Jul 31 11:53:00 2006 Input: factor(129^20+1) Output: 2 * 41 * 281 * 5486561 * 138461441 * 93034702779013170299681 Exiting SAGE (CPU time 0m0.04s, Wall time 0m2.80s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.241' ************** SAGE ***************** Host 207.241.136.228 (207.241.136.228) Time: Mon Jul 31 11:52:25 2006 Input: 150 * 300 Output: 45000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.241' ************** SAGE ***************** Host 207.241.136.228 (207.241.136.228) Time: Mon Jul 31 11:52:05 2006 Input: 2 * 2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.241' ************** SAGE ***************** Host 207.241.136.228 (207.241.136.228) Time: Mon Jul 31 11:51:31 2006 Input: 3 + 1 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.253' ************** SAGE ***************** Host 128.253.213.42 (128.253.213.42) Time: Mon Jul 31 05:04:03 2006 Input: 2000x=1(mod1722629) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2000)x=ZZ(1)(mod1722629) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.95.1' ************** SAGE ***************** Host 65.95.164.7 (65.95.164.7) Time: Sun Jul 30 20:55:16 2006 Input: x^2+2*x+4 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.95.1' ************** SAGE ***************** Host 65.95.164.7 (65.95.164.7) Time: Sun Jul 30 20:54:56 2006 Input: x^2+2*x+4=0 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.144' ************** SAGE ***************** Host 207.144.6.133 (207.144.6.133) Time: Sun Jul 30 19:36:57 2006 Input: 29*3 Output: 87 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.118.' ************** SAGE ***************** Host 74.118.17.224 (74.118.17.224) Time: Sun Jul 30 17:51:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.155.' ************** SAGE ***************** Host 24.155.217.187 (24.155.217.187) Time: Sun Jul 30 15:21:58 2006 Input: what is 39.59 + 16.75% of tax Output: Errors: ------------------------------------------------------------ File "", line 1 what is RealField(max(13,RR.precision()))('39.59') + RealField(max(13,RR.precision()))('16.75')% of tax ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.155.' ************** SAGE ***************** Host 24.155.217.187 (24.155.217.187) Time: Sun Jul 30 15:21:57 2006 Input: what is 39.59 + 16.75% of tax Output: Errors: ------------------------------------------------------------ File "", line 1 what is RealField(max(13,RR.precision()))('39.59') + RealField(max(13,RR.precision()))('16.75')% of tax ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.122.' ************** SAGE ***************** Host 68.122.219.57 (68.122.219.57) Time: Sat Jul 29 22:18:12 2006 Input: 15200*.05 Output: 760.00000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.41s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Sat Jul 29 20:17:08 2006 Input: contfrac(3/5+2*sqrt(39)/15) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'contfrac' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Sat Jul 29 20:01:37 2006 Input: factor(8432) factor(527) Output: 2^4 * 17 * 31 17 * 31 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Sat Jul 29 19:59:45 2006 Input: factor(8432) Output: 2^4 * 17 * 31 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Sat Jul 29 19:59:27 2006 Input: Factor(8432) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Factor' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Sat Jul 29 19:58:58 2006 Input: E=EllipticCurve([5,1]) E.conductor() Output: 8432 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sat Jul 29 19:56:50 2006 Input: 1+2 1+3 Output: 3 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sat Jul 29 19:56:25 2006 Input: 1+1 1+3 Output: 2 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sat Jul 29 19:55:50 2006 Input: 1+1 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sat Jul 29 19:55:11 2006 Input: dlfjlsdjf sjdlkfjlasd 1+2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'dlfjlsdjf' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'sjdlkfjlasd' is not defined 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Sat Jul 29 19:31:40 2006 Input: E=EllipticCurve([0,-2]) E.rank() E.torsion_subgroup() E.conductor() Output: 1 Trivial Abelian Group 1728 Exiting SAGE (CPU time 0m0.01s, Wall time 0m10.44s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.130.' ************** SAGE ***************** Host 74.130.241.4 (74.130.241.4) Time: Sat Jul 29 15:06:27 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.130.' ************** SAGE ***************** Host 74.130.241.4 (74.130.241.4) Time: Sat Jul 29 15:06:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.182.' ************** SAGE ***************** Host 67.182.66.86 (67.182.66.86) Time: Sat Jul 29 10:35:41 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.158.' ************** SAGE ***************** Host 82.158.73.236 (82.158.73.236) Time: Sat Jul 29 02:38:37 2006 Input: 2^2+20 Output: 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.142.' ************** SAGE ***************** Host 66.142.153.233 (66.142.153.233) Time: Fri Jul 28 21:36:55 2006 Input: 500000000*0.016 Output: 8000000.0000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Fri Jul 28 20:23:29 2006 Input: contfrac(7/5) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'contfrac' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Fri Jul 28 20:23:24 2006 Input: contfrac(7/5 Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Fri Jul 28 20:22:42 2006 Input: contfrac(2^{1/3}) Output: Errors: ------------------------------------------------------------ File "", line 1 contfrac(ZZ(2)**{ZZ(1)/ZZ(3)}) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.58.2' ************** SAGE ***************** Host 70.58.218.247 (70.58.218.247) Time: Fri Jul 28 16:26:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.118.' ************** SAGE ***************** Host 69.118.114.229 (69.118.114.229) Time: Fri Jul 28 15:34:24 2006 Input: 25x20 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(25)x20 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.152.' ************** SAGE ***************** Host 69.152.202.120 (69.152.202.120) Time: Fri Jul 28 15:09:57 2006 Input: 1.8643 x 12 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(16,RR.precision()))('1.8643') x ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.79.1' ************** SAGE ***************** Host 72.79.128.135 (72.79.128.135) Time: Fri Jul 28 14:07:43 2006 Input: 2 * (AX + 2) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'AX' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.79.1' ************** SAGE ***************** Host 72.79.128.135 (72.79.128.135) Time: Fri Jul 28 14:07:16 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.200' ************** SAGE ***************** Host 207.200.116.135 (207.200.116.135) Time: Fri Jul 28 13:56:18 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.190.' ************** SAGE ***************** Host 24.190.24.149 (24.190.24.149) Time: Fri Jul 28 13:49:27 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.192.' ************** SAGE ***************** Host 72.192.131.173 (72.192.131.173) Time: Fri Jul 28 11:12:50 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.11.1' ************** SAGE ***************** Host 66.11.173.45 (66.11.173.45) Time: Fri Jul 28 10:09:35 2006 Input: sum(300*16) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: iteration over non-sequence Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.17s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.164.' ************** SAGE ***************** Host 69.164.120.18 (69.164.120.18) Time: Fri Jul 28 05:08:54 2006 Input: (x-y)^4 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.64.' ************** SAGE ***************** Host 195.64.216.254 (195.64.216.254) Time: Fri Jul 28 03:53:27 2006 Input: 1+2 Output: 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.190' ************** SAGE ***************** Host 203.190.146.50 (203.190.146.50) Time: Fri Jul 28 00:11:39 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.130.' ************** SAGE ***************** Host 24.130.90.212 (24.130.90.212) Time: Thu Jul 27 19:40:57 2006 Input: 5X5 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)X5 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.46s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 18:30:18 2006 Input: E=EllipticCurve([-1,0]) E.torsion_subgroup() E.conductor() E.rank() Output: Multiplicative Abelian Group isomorphic to C2 x C2 32 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m2.50s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 18:29:38 2006 Input: E=EllipticCurve([0,1]) E.torsion_subgroup() Output: Multiplicative Abelian Group isomorphic to C2 x C3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m2.53s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 18:29:03 2006 Input: E=EllipticCurve([0,1]) torsion_subgroup(E) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'torsion_subgroup' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 18:28:08 2006 Input: E=EllipticCurve([0,1]) E.torsion_subgroup Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 18:26:30 2006 Input: E=EllipticCurve([0,1]) E.torsion() Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'EllipticCurve_rational_field' object has no attribute 'torsion' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 18:25:31 2006 Input: E=EllipticCurve([0,1]) E.conductor() E.rank() Output: 36 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m15.50s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.140.' ************** SAGE ***************** Host 72.140.3.27 (72.140.3.27) Time: Thu Jul 27 17:23:06 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.26.9' ************** SAGE ***************** Host 72.26.94.79 (72.26.94.79) Time: Thu Jul 27 16:47:32 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.209' ************** SAGE ***************** Host 141.209.171.175 (141.209.171.175) Time: Thu Jul 27 12:26:56 2006 Input: 200! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(200)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.209' ************** SAGE ***************** Host 141.209.171.240 (141.209.171.240) Time: Thu Jul 27 12:16:35 2006 Input: print maxima('sin(x)').integrate('x') Output: -cos(x) Exiting SAGE (CPU time 0m0.08s, Wall time 0m14.81s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.209' ************** SAGE ***************** Host 141.209.171.240 (141.209.171.240) Time: Thu Jul 27 12:15:33 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m24.79s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 11:45:38 2006 Input: E= EllipticCurve([-1, 1/4]) E.discriminant() Output: 37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.98s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 11:44:26 2006 Input: E= EllipticCurve([0,0,1,-1,0]) E.discriminant() Output: 37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 11:43:47 2006 Input: E= EllipticCurve([0,0,1,-1,0]) E.conductor() Output: 37 Exiting SAGE (CPU time 0m0.02s, Wall time 0m16.33s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '164.107' ************** SAGE ***************** Host 164.107.205.56 (164.107.205.56) Time: Thu Jul 27 11:42:16 2006 Input: E= EllipticCurve([0,0,1,-1,0]) P=E([0,0]) P+P 7*P Output: (1 : 0 : 1) (-5/9 : 8/27 : 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m3.59s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.218.' ************** SAGE ***************** Host 69.218.229.112 (69.218.229.112) Time: Thu Jul 27 10:58:00 2006 Input: y=n+6/3(n+6) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'n' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.19.1' ************** SAGE ***************** Host 70.19.142.249 (70.19.142.249) Time: Thu Jul 27 10:44:51 2006 Input: 23-20% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(23)-ZZ(20)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '209.151' ************** SAGE ***************** Host 209.151.106.53 (209.151.106.53) Time: Thu Jul 27 10:28:30 2006 Input: 175 * .60 Output: 105.00000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.62s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.158' ************** SAGE ***************** Host 141.158.63.163 (141.158.63.163) Time: Thu Jul 27 09:02:09 2006 Input: 66% of 480$ Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(66)% of ZZ(480)$ ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.93.' ************** SAGE ***************** Host 195.93.21.40 (195.93.21.40) Time: Thu Jul 27 08:22:13 2006 Input: bank 47300 Cash 300 Output: Errors: ------------------------------------------------------------ File "", line 1 bank ZZ(47300) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 Cash ZZ(300) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.106' ************** SAGE ***************** Host 200.106.164.234 (200.106.164.234) Time: Thu Jul 27 08:19:14 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m24.87s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.106' ************** SAGE ***************** Host 200.106.164.234 (200.106.164.234) Time: Thu Jul 27 08:19:12 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m22.63s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.0.53' ************** SAGE ***************** Host 24.0.53.19 (24.0.53.19) Time: Wed Jul 26 23:17:26 2006 Input: HOW MANY INCHES ARE IN 15.7 CENTEMITER Output: Errors: ------------------------------------------------------------ File "", line 1 HOW MANY INCHES ARE IN RealField(max(9,RR.precision()))('15.7') CENTEMITER ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.52s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '170.215' ************** SAGE ***************** Host 170.215.88.176 (170.215.88.176) Time: Wed Jul 26 22:17:29 2006 Input: The product of 7/16, 4/3 and 1/2 Output: Errors: ------------------------------------------------------------ File "", line 1 The product of ZZ(7)/ZZ(16), ZZ(4)/ZZ(3) and ZZ(1)/ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '170.215' ************** SAGE ***************** Host 170.215.88.176 (170.215.88.176) Time: Wed Jul 26 22:16:44 2006 Input: The product of 7/16, 4/3 and 1/2 is Output: Errors: ------------------------------------------------------------ File "", line 1 The product of ZZ(7)/ZZ(16), ZZ(4)/ZZ(3) and ZZ(1)/ZZ(2) is ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.223.' ************** SAGE ***************** Host 69.223.177.211 (69.223.177.211) Time: Wed Jul 26 21:15:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '4.131.1' ************** SAGE ***************** Host 4.131.157.160 (4.131.157.160) Time: Wed Jul 26 18:58:25 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.17.1' ************** SAGE ***************** Host 75.17.180.14 (75.17.180.14) Time: Wed Jul 26 16:58:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.45s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.201.' ************** SAGE ***************** Host 71.201.183.202 (71.201.183.202) Time: Wed Jul 26 15:47:54 2006 Input: 257152-191002 Output: 66150 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.16s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '168.28.' ************** SAGE ***************** Host 168.28.200.191 (168.28.200.191) Time: Wed Jul 26 15:28:45 2006 Input: (10.5+0)*100-115.805 Output: 934.19499999999994 Exiting SAGE (CPU time 0m0.00s, Wall time 0m1.97s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.1' ************** SAGE ***************** Host 24.51.178.155 (24.51.178.155) Time: Wed Jul 26 14:04:57 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.52s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.118.62 (82.38.118.62) Time: Wed Jul 26 07:14:10 2006 Input: 17.5% of 12000 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('17.5')% of ZZ(12000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.118.62 (82.38.118.62) Time: Wed Jul 26 07:13:44 2006 Input: 17.5% of total toatal = 12000 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('17.5')% of total ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.118.62 (82.38.118.62) Time: Wed Jul 26 07:12:50 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.46s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.177.' ************** SAGE ***************** Host 66.177.205.4 (66.177.205.4) Time: Wed Jul 26 06:34:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.57 (71.231.42.57) Time: Tue Jul 25 23:36:47 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f Output: 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.57 (71.231.42.57) Time: Tue Jul 25 23:35:32 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.59s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '219.70.' ************** SAGE ***************** Host 219.70.71.47 (219.70.71.47) Time: Tue Jul 25 23:15:25 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Errors: Exception pexpect.ExceptionPexpect: in > ignored --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: You must install the optional Kash package to use Kash from SAGE. Timeout exceeded in read_nonblocking(). version: 2.0 ($Revision: 1.151 $) command: /usr/local/sage/sage-0.9/local/bin/kash3 args: ['/usr/local/sage/sage-0.9/local/bin/kash3', '-b', '-c', '-d'] patterns: kash% buffer (last 100 chars): before (last 100 chars): after: pexpect.TIMEOUT match: None match_index: None exitstatus: None flag_eof: 0 pid: 25841 child_fd: 3 timeout: 30 delimiter: pexpect.EOF logfile: None maxread: 100000 searchwindowsize: None delaybeforesend: 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m34.12s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.42.0' ************** SAGE ***************** Host 68.42.0.194 (68.42.0.194) Time: Tue Jul 25 19:06:13 2006 Input: 163.205 x log10(36.5 + 46.5 – 15.5) – 97.684 x log10(60) – 78.387 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(19,RR.precision()))('163.205') x log10(RealField(max(9,RR.precision()))('36.5') + RealField(max(9,RR.precision()))('46.5') – RealField(max(9,RR.precision()))('15.5')) – RealField(max(16,RR.precision()))('97.684') x log10(ZZ(60)) – RealField(max(16,RR.precision()))('78.387') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.238.' ************** SAGE ***************** Host 68.238.95.250 (68.238.95.250) Time: Tue Jul 25 18:57:13 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.242.' ************** SAGE ***************** Host 71.242.163.136 (71.242.163.136) Time: Tue Jul 25 18:11:56 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.113.' ************** SAGE ***************** Host 71.113.56.254 (71.113.56.254) Time: Tue Jul 25 17:12:26 2006 Input: 60.75 divided by $7.50 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('60.75') divided by $RealField(max(9,RR.precision()))('7.50') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.63.1' ************** SAGE ***************** Host 66.63.143.248 (66.63.143.248) Time: Tue Jul 25 14:16:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:18:49 2006 Input: factor(10333147966386144929666651337523200000001) Output: 137 * 379 * 17839 * 340825649 * 32731815563800396289317 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:18:40 2006 Input: factor(10333147966386144929666651337523200000000) Output: 2^32 * 3^15 * 5^8 * 7^5 * 11^3 * 13^2 * 17^2 * 19 * 23 * 29 * 31 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:18:20 2006 Input: factorial(35) Output: 10333147966386144929666651337523200000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:18:00 2006 Input: factorial(53) Output: 4274883284060025564298013753389399649690343788366813724672000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:17:33 2006 Input: factor(11111111111111111111111111) Output: 11 * 53 * 79 * 859 * 265371653 * 1058313049 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:17:24 2006 Input: factor(11111111111111111111111) Output: 11111111111111111111111 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:17:17 2006 Input: factor(11111111111111111111) Output: 11 * 41 * 101 * 271 * 3541 * 9091 * 27961 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:17:02 2006 Input: factor(11111111111111111) Output: 2071723 * 5363222357 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:16:49 2006 Input: factor(111111111111) Output: 3 * 7 * 11 * 13 * 37 * 101 * 9901 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.13s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.38.1' ************** SAGE ***************** Host 82.38.197.11 (82.38.197.11) Time: Tue Jul 25 13:16:29 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.17' ************** SAGE ***************** Host 75.3.171.139 (75.3.171.139) Time: Tue Jul 25 11:40:01 2006 Input: 64/8 Output: 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.107.' ************** SAGE ***************** Host 71.107.11.162 (71.107.11.162) Time: Tue Jul 25 11:39:40 2006 Input: 13divided by 211 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(13)divided by ZZ(211) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.17' ************** SAGE ***************** Host 75.3.171.139 (75.3.171.139) Time: Tue Jul 25 11:36:42 2006 Input: 16/-4 Output: -4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.17' ************** SAGE ***************** Host 75.3.171.139 (75.3.171.139) Time: Tue Jul 25 11:29:25 2006 Input: 7/10+-3/10 Output: 2/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.17' ************** SAGE ***************** Host 75.3.171.139 (75.3.171.139) Time: Tue Jul 25 11:28:54 2006 Input: 15/10-8/10 Output: 7/10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.17' ************** SAGE ***************** Host 75.3.171.139 (75.3.171.139) Time: Tue Jul 25 11:24:43 2006 Input: 15/10+3/10 Output: 9/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.17' ************** SAGE ***************** Host 75.3.171.139 (75.3.171.139) Time: Tue Jul 25 11:23:14 2006 Input: -3/10+3/10 Output: 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.3.25' ************** SAGE ***************** Host 68.3.255.90 (68.3.255.90) Time: Tue Jul 25 09:37:39 2006 Input: 355/40 Output: 71/8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.253.' ************** SAGE ***************** Host 70.253.87.109 (70.253.87.109) Time: Tue Jul 25 09:11:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.230' ************** SAGE ***************** Host 216.230.87.170 (216.230.87.170) Time: Tue Jul 25 08:21:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.98.1' ************** SAGE ***************** Host 80.98.107.157 (80.98.107.157) Time: Tue Jul 25 07:00:42 2006 Input: factor 457 Output: Errors: ------------------------------------------------------------ File "", line 1 factor ZZ(457) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.193' ************** SAGE ***************** Host 137.193.61.27 (137.193.61.27) Time: Tue Jul 25 03:10:23 2006 Input: 8+5 Output: 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '145.18.' ************** SAGE ***************** Host 145.18.21.19 (145.18.21.19) Time: Tue Jul 25 01:41:34 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.34s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '139.168' ************** SAGE ***************** Host 139.168.144.22 (139.168.144.22) Time: Tue Jul 25 01:00:32 2006 Input: -2 m _ 4 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm' is not defined -2 -2 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '139.168' ************** SAGE ***************** Host 139.168.144.22 (139.168.144.22) Time: Tue Jul 25 00:59:37 2006 Input: 6-5 Output: 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '139.168' ************** SAGE ***************** Host 139.168.144.22 (139.168.144.22) Time: Tue Jul 25 00:58:47 2006 Input: ff Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'ff' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.185.' ************** SAGE ***************** Host 24.185.41.90 (24.185.41.90) Time: Mon Jul 24 19:41:59 2006 Input: 918 Output: 918 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 19:12:04 2006 Input: 7 3/4+17.85+6 1/2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7) ZZ(3)/ZZ(4)+RealField(max(13,RR.precision()))('17.85')+ZZ(6) ZZ(1)/ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:55:18 2006 Input: 17-8 17/12-8/12 Output: 9 3/4 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:55:06 2006 Input: 17-8 17/12-8/12 Output: 9 3/4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:54:36 2006 Input: 17/12-8/12 17/12-8/12 Output: 3/4 3/4 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:54:21 2006 Input: ........................................ ..................................... 17/12-8/12 Output: Errors: ------------------------------------------------------------ File "", line 1 ........................................ ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ..................................... ^ SyntaxError: invalid syntax 3/4 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:51:53 2006 Input: 17/12+6/12 Output: 23/12 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:50:23 2006 Input: (2/3+3/4)-(4/5*5/6) Output: 3/4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:48:53 2006 Input: 1/2+(2/3+3/4)-(4/5*5/6) Output: 5/4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:48:42 2006 Input: 1/2(2/3+3/4)-(4/5*5/6) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:47:39 2006 Input: 17/12-2/3+1/2 Output: 5/4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:47:05 2006 Input: 17/12-2/3 Output: 3/4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:46:46 2006 Input: 4/5*5/6 Output: 2/3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:45:44 2006 Input: 4/2 Output: 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:44:52 2006 Input: 8/12+9/12 Output: 17/12 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.153.' ************** SAGE ***************** Host 69.153.68.164 (69.153.68.164) Time: Mon Jul 24 18:40:08 2006 Input: -3 Output: -3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:39:41 2006 Input: 12+6 Output: 18 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:39:22 2006 Input: 1/2+1/3 Output: 5/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:38:53 2006 Input: 3/4-2/3 Output: 1/12 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:38:34 2006 Input: -3+6+54 Output: 57 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:38:12 2006 Input: -3+6 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:37:04 2006 Input: 54-6/2+6 Output: 57 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:35:42 2006 Input: 1/2+1/3 Output: 5/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:33:51 2006 Input: -1/6+5/6 Output: 2/3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:33:18 2006 Input: -1/6+5/6 Output: 2/3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:32:42 2006 Input: 3/6+2/6 Output: 5/6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:31:55 2006 Input: 6/12-8/12 Output: -1/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:30:47 2006 Input: (3/4-2/3)+(1/2+1/3) Output: 11/12 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.3.15' ************** SAGE ***************** Host 75.3.153.31 (75.3.153.31) Time: Mon Jul 24 18:29:48 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:44:42 2006 Input: c3u= PolynomialRing(RationalField()).gen() ub= PolynomialRing(RationalField()).gen() c2u=PolynomialRing(RationalField()).gen() m3u=c3u-3*ub*c2u m3u Output: -3*x^2 + x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:44:32 2006 Input: c3u= PolynomialRing(RationalField()).gen() ub= PolynomialRing(RationalField()).gen() c2u= QQ['c2u'].0 m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 3*x (parent: Univariate Polynomial Ring in x over Rational Field) and c2u (parent: Univariate Polynomial Ring in c2u over Rational Field) --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:44:23 2006 Input: c3u= PolynomialRing(RationalField()).gen() ub= QQ['ub'].0 c2u= QQ['c2u'].0 m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 3*ub (parent: Univariate Polynomial Ring in ub over Rational Field) and c2u (parent: Univariate Polynomial Ring in c2u over Rational Field) --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:10:41 2006 Input: c3u= QQ['c3u'].0 ub= QQ['ub'].0 c2u= QQ['c2u'].0 m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 3*ub (parent: Univariate Polynomial Ring in ub over Rational Field) and c2u (parent: Univariate Polynomial Ring in c2u over Rational Field) --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:10:25 2006 Input: c3u= QQ['x'].0 ub= QQ['x'].0 c2u= QQ['x'].0 m3u=c3u-3*ub*c2u m3u Output: -3*x^2 + x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:10:14 2006 Input: c3u= QQ['x'].0 ub= QQ['x'].objgen() c2u= QQ['x'].objgen() m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/integer.pyx in integer.Integer.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 3 (parent: Integer Ring) and (Univariate Polynomial Ring in x over Rational Field, x) (parent: ) --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:08:52 2006 Input: c3u= QQ['x'].objgen() ub= QQ['x'].objgen() c2u= QQ['x'].objgen() m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/integer.pyx in integer.Integer.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 3 (parent: Integer Ring) and (Univariate Polynomial Ring in x over Rational Field, x) (parent: ) --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:08:37 2006 Input: c3u= QQ['x'].objgen() m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'ub' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:08:02 2006 Input: c3u,ub,c2u = QQ['x'].objgen() m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.ValueError Traceback (most recent call last) /home/sage/ ValueError: need more than 2 values to unpack --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'c3u' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 17:04:25 2006 Input: m3u=c3u-3*ub*c2u m3u Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'c3u' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm3u' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 16:56:05 2006 Input: a=2 b=2*a b Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 16:55:37 2006 Input: a=2 type(a) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 16:55:10 2006 Input: a=2 b=2*a Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.190' ************** SAGE ***************** Host 208.190.252.50 (208.190.252.50) Time: Mon Jul 24 16:55:03 2006 Input: a=2 b=2a Output: Errors: ------------------------------------------------------------ File "", line 1 b=ZZ(2)a ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.157.' ************** SAGE ***************** Host 83.157.165.165 (83.157.165.165) Time: Mon Jul 24 16:00:11 2006 Input: devlop(sin(x),x,6) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'devlop' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.157.' ************** SAGE ***************** Host 83.157.165.165 (83.157.165.165) Time: Mon Jul 24 15:59:49 2006 Input: taylor(sin(x),x,6) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'taylor' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.157.' ************** SAGE ***************** Host 83.157.165.165 (83.157.165.165) Time: Mon Jul 24 15:59:26 2006 Input: 3+1 Output: 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.157.' ************** SAGE ***************** Host 83.157.165.165 (83.157.165.165) Time: Mon Jul 24 15:58:58 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.186.' ************** SAGE ***************** Host 67.186.11.181 (67.186.11.181) Time: Mon Jul 24 15:05:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.91.' ************** SAGE ***************** Host 199.91.33.254 (199.91.33.254) Time: Mon Jul 24 14:28:34 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 13:49:45 2006 Input: f1 = 'x=sqrt(9)' eqn=maxima([f1]) s = eqn.solve('[x]');s Output: [x = 3] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.45s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 13:49:22 2006 Input: f1 = 'x=sqrt(9)' eqn.maxima([f1]) s = eqn.solve('[x]');s Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'eqn' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'eqn' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '143.53.' ************** SAGE ***************** Host 143.53.158.219 (143.53.158.219) Time: Mon Jul 24 12:55:29 2006 Input: erfc(0.2345) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'erfc' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 12:02:10 2006 Input: f1 = 'z=atan(cos(t)/sin(t)/cos(p))' eqn=maxima([f1]) s = eqn.solve('[p]'); s Output: [p = acos(cos(t)/(sin(t)*tan(z)))] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.43s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 11:55:41 2006 Input: f1 = 'z=atan(cos(t)/sin(t)/sin(p))' eqn=maxima([f1]) s = eqn.solve('[p]'); s Output: [p = asin(cos(t)/(sin(t)*tan(z)))] Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.46s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 11:54:56 2006 Input: f1 = 'z=atan(cos(t)/sin(t)/sin(p))' eqn=maxima([f1]) s = eqn.solve('[t]'); s Output: [sin(t) = cos(t)/(sin(p)*tan(z))] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.43s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 11:54:33 2006 Input: f1 = 'z=atan(cos(t)/sin(t)/sin(p))' eqn=maxima([f1]) s = eqn.solve('[p]'); s Output: [p = asin(cos(t)/(sin(t)*tan(z)))] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.46s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 11:53:18 2006 Input: f1 = 'l=asin(sin(t)*sin(p))' eqn=maxima([f1]) s = eqn.solve('[p]'); s Output: [p = asin(sin(l)/sin(t))] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.41s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 11:45:54 2006 Input: f1 = 'l=sin(t)' f2 = 'z=sin(t)*cos(p)' eqn=maxima([f1,f2]) s = eqn.solve('[p,t]'); s Output: [] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 11:45:39 2006 Input: f1 = 'alt=sin(t)' f2 = 'azm=sin(t)*cos(p)' eqn=maxima([f1,f2]) s = eqn.solve('[p,t]'); s Output: [] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.47s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Mon Jul 24 11:34:16 2006 Input: f1 = 'alt=sin(t)' f2 = 'azm=sin(t)*cos(p)' eqn=maxima([f1,f2]) s = eqn.solve('[p,t]'); s Output: [] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.47s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '161.72.' ************** SAGE ***************** Host 161.72.16.117 (161.72.16.117) Time: Mon Jul 24 11:32:09 2006 Input: x Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '161.72.' ************** SAGE ***************** Host 161.72.16.117 (161.72.16.117) Time: Mon Jul 24 11:31:58 2006 Input: x=3 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '161.72.' ************** SAGE ***************** Host 161.72.16.117 (161.72.16.117) Time: Mon Jul 24 11:31:50 2006 Input: f=x+2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '161.72.' ************** SAGE ***************** Host 161.72.16.117 (161.72.16.117) Time: Mon Jul 24 11:31:35 2006 Input: 3+4 Output: 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.11.2' ************** SAGE ***************** Host 67.11.212.178 (67.11.212.178) Time: Mon Jul 24 09:26:25 2006 Input: 20 * .30 Output: 6.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.11.2' ************** SAGE ***************** Host 67.11.212.178 (67.11.212.178) Time: Mon Jul 24 09:26:08 2006 Input: 20 x .30 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(20) x RealField(max(6,RR.precision()))('.30') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.77.' ************** SAGE ***************** Host 192.77.113.55 (192.77.113.55) Time: Mon Jul 24 08:16:43 2006 Input: x^2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.77.' ************** SAGE ***************** Host 192.77.113.55 (192.77.113.55) Time: Mon Jul 24 08:16:08 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.184' ************** SAGE ***************** Host 134.184.2.25 (134.184.2.25) Time: Mon Jul 24 07:31:27 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.13s, Wall time 0m1.49s). Exiting spawned Gap process. Exiting spawned GP/PARI interpreter process. Exiting spawned Kash process. Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.184' ************** SAGE ***************** Host 134.184.2.25 (134.184.2.25) Time: Mon Jul 24 07:30:59 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.13s, Wall time 0m3.08s). Exiting spawned Gap process. Exiting spawned GP/PARI interpreter process. Exiting spawned Kash process. Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.31.1' ************** SAGE ***************** Host 70.31.199.89 (70.31.199.89) Time: Mon Jul 24 06:37:29 2006 Input: (4m + 5)2 Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(4)m + ZZ(5))2 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.246' ************** SAGE ***************** Host 210.246.21.36 (210.246.21.36) Time: Mon Jul 24 03:07:57 2006 Input: 1/x+1/x^2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.137.' ************** SAGE ***************** Host 72.137.178.136 (72.137.178.136) Time: Sun Jul 23 22:22:23 2006 Input: 3^149 Output: 123329495011708990974900260817232214728824366796574324605061468433916083 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sun Jul 23 20:09:50 2006 Input: 1+1 +1 55 55+45/9 (24^2)+1 Output: 2 1 55 60 577 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sun Jul 23 20:09:40 2006 Input: 1+1 +1 55 55+45 (24^2)+1 Output: 2 1 55 100 577 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sun Jul 23 20:09:31 2006 Input: 1+1 +1 55 55+45 (24^2) Output: 2 1 55 100 576 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sun Jul 23 20:09:16 2006 Input: 1+1 +1 55 55+45 Output: 2 1 55 100 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.218.' ************** SAGE ***************** Host 24.218.176.135 (24.218.176.135) Time: Sun Jul 23 20:08:48 2006 Input: 1+1 +1 Output: 2 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.199.' ************** SAGE ***************** Host 69.199.89.124 (69.199.89.124) Time: Sun Jul 23 18:55:21 2006 Input: log(0.7, 0.028)= Output: Errors: ------------------------------------------------------------ File "", line 1 log(RealField(max(6,RR.precision()))('0.7'), RealField(max(13,RR.precision()))('0.028'))= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.197.' ************** SAGE ***************** Host 72.197.181.156 (72.197.181.156) Time: Sun Jul 23 17:19:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.65.1' ************** SAGE ***************** Host 68.65.144.232 (68.65.144.232) Time: Sun Jul 23 17:18:44 2006 Input: 2052/160 Output: 513/40 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.65.1' ************** SAGE ***************** Host 68.65.144.232 (68.65.144.232) Time: Sun Jul 23 17:17:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.233.' ************** SAGE ***************** Host 71.233.14.95 (71.233.14.95) Time: Sun Jul 23 15:27:55 2006 Input: 5+3 a= 2 b = 3 a+b a^2 Output: 8 5 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.233.' ************** SAGE ***************** Host 71.233.14.95 (71.233.14.95) Time: Sun Jul 23 15:27:33 2006 Input: 5+3 a= 2 b = 3 a+b Output: 8 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.233.' ************** SAGE ***************** Host 71.233.14.95 (71.233.14.95) Time: Sun Jul 23 15:27:11 2006 Input: 5+3 Output: 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.233.' ************** SAGE ***************** Host 71.233.14.95 (71.233.14.95) Time: Sun Jul 23 15:25:55 2006 Input: 3+5 Output: 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.13.' ************** SAGE ***************** Host 130.13.101.118 (130.13.101.118) Time: Sun Jul 23 12:19:11 2006 Input: p=282174488599599500573849980909 q=671998030559713968361666935769 phi=p*q p1=sqrt(phi) r=phi-p1*p1 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.13.' ************** SAGE ***************** Host 130.13.101.118 (130.13.101.118) Time: Sun Jul 23 12:17:38 2006 Input: p=282174488599599500573849980909 q=671998030559713968361666935769 phi=p*q p1=sqrt(phi) r=phi-p1*p1 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.129.' ************** SAGE ***************** Host 74.129.80.7 (74.129.80.7) Time: Sun Jul 23 10:32:24 2006 Input: 251 - 121 + 441 - 340 + 130 - 113 + 409 - 253 + 130 - 181 + 297 - 149 + 081 - 088 + 467 - 059 + 306 - 229 + 345 - 351 + 117 - 047 + 353 - 216 + 401 - 147 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(251) - ZZ(121) + ZZ(441) - ZZ(340) + ZZ(130) - ZZ(113) + ZZ(409) - ZZ(253) + ZZ(130) - ZZ(181) + ZZ(297) - ZZ(149) + ZZ(081) - ZZ(088) + ZZ(467) - ZZ(059) + ZZ(306) - ZZ(229) + ZZ(345) - ZZ(351) + ZZ(117) - ZZ(047) + ZZ(353) - ZZ(216) + ZZ(401) - ZZ(147) ^ SyntaxError: invalid token Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.56.' ************** SAGE ***************** Host 210.56.15.19 (210.56.15.19) Time: Sun Jul 23 09:42:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.33.2' ************** SAGE ***************** Host 67.33.205.137 (67.33.205.137) Time: Sun Jul 23 09:14:40 2006 Input: 8.92+3.74 Output: 12.660000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.33.2' ************** SAGE ***************** Host 67.33.205.137 (67.33.205.137) Time: Sun Jul 23 09:12:01 2006 Input: 39.54+10.00+3.74+1.69+1.29+3.36+8.51+5.31+39.88+20.00+6.72+4.49+4.12+6.40+3.18+1.67+10.00+7.89+5.00+3.45+10.03+3.74+8.92-5.55 Output: 203.37999999999997 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.33.2' ************** SAGE ***************** Host 67.33.205.137 (67.33.205.137) Time: Sun Jul 23 09:11:27 2006 Input: 39.54+10.00+3.74+1.69+1.29+3.36+8.51+5.31+39.88+20.00+6.72+4.49+4.12+6.40+3.18+1.67+10.00+7.89+5.00+3.45+10.03+3.74+8.92 Output: 208.92999999999998 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.33.2' ************** SAGE ***************** Host 67.33.205.137 (67.33.205.137) Time: Sun Jul 23 09:09:10 2006 Input: 39.54+10.00+3.74+1.69+1.29+3.36+8.51+5.31+39.88+20.00+6.72+4.49+4.12+6.40+3.18+1.67+10.00+7.89+5.00+3.45+10.03+3.74+8.92-5.55 Output: 203.37999999999997 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.33.2' ************** SAGE ***************** Host 67.33.205.137 (67.33.205.137) Time: Sun Jul 23 09:08:53 2006 Input: 39.54+10.00+3.74+1.69+1.29+3.36+8.51+5.31+39.88+20.00+6.72+4.49+4.12+6.40+3.18+1.67+10.00+7.89+5.00+3.45+10.03+3.74+8.92 Output: 208.92999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '211.31.' ************** SAGE ***************** Host 211.31.30.122 (211.31.30.122) Time: Sun Jul 23 06:20:35 2006 Input: print singular.ring(0, '(x,y,z)', 'dp') Output: // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.43s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '211.31.' ************** SAGE ***************** Host 211.31.30.122 (211.31.30.122) Time: Sun Jul 23 06:19:56 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.84s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '211.31.' ************** SAGE ***************** Host 211.31.30.122 (211.31.30.122) Time: Sun Jul 23 06:19:15 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.09s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '211.31.' ************** SAGE ***************** Host 211.31.30.122 (211.31.30.122) Time: Sun Jul 23 06:18:42 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.39s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '211.31.' ************** SAGE ***************** Host 211.31.30.122 (211.31.30.122) Time: Sun Jul 23 06:18:07 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.24s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '211.31.' ************** SAGE ***************** Host 211.31.30.122 (211.31.30.122) Time: Sun Jul 23 06:17:27 2006 Input: 2*3 Output: 6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.169.' ************** SAGE ***************** Host 67.169.187.45 (67.169.187.45) Time: Sun Jul 23 03:17:57 2006 Input: gap.eval("LogMod(127,2,128)") gap.eval("LogMod(127,3,128)") gap.eval("LogMod(127,4,128)") gap.eval("LogMod(127,5,128)") Output: 'fail' 'fail' 'fail' 'fail' Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.20s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.169.' ************** SAGE ***************** Host 67.169.187.45 (67.169.187.45) Time: Sun Jul 23 03:17:43 2006 Input: gap.eval("LogMod(127,2,128)") Output: 'fail' Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.169.' ************** SAGE ***************** Host 67.169.187.45 (67.169.187.45) Time: Sun Jul 23 03:17:26 2006 Input: gap.eval("LogMod(12,51,97)") Output: '54' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.24s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.169.' ************** SAGE ***************** Host 67.169.187.45 (67.169.187.45) Time: Sun Jul 23 03:16:49 2006 Input: sage: gap.eval(LogMod(12,51,97)) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'LogMod' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.169.' ************** SAGE ***************** Host 67.169.187.45 (67.169.187.45) Time: Sun Jul 23 03:15:34 2006 Input: sage: gap.eval("51^54 mod 97") Output: '12' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.18s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.169.' ************** SAGE ***************** Host 67.169.187.45 (67.169.187.45) Time: Sun Jul 23 03:15:04 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.50.3' ************** SAGE ***************** Host 87.50.30.91 (87.50.30.91) Time: Sat Jul 22 13:05:53 2006 Input: x2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x2' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.82.9' ************** SAGE ***************** Host 66.82.9.91 (66.82.9.91) Time: Sat Jul 22 12:47:11 2006 Input: 4x^2+8x+1=0 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)x**ZZ(2)+ZZ(8)x+ZZ(1)=ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.125.' ************** SAGE ***************** Host 71.125.251.131 (71.125.251.131) Time: Sat Jul 22 12:46:00 2006 Input: 9+3 Output: 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.196.' ************** SAGE ***************** Host 82.196.163.62 (82.196.163.62) Time: Sat Jul 22 10:19:49 2006 Input: solve(-20=exp(-b)-exp(b)) Output: Errors: ------------------------------------------------------------ SyntaxError: keyword can't be an expression Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.196.' ************** SAGE ***************** Host 82.196.163.62 (82.196.163.62) Time: Sat Jul 22 10:19:19 2006 Input: -20=exp(-b)-exp(b) Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.155.' ************** SAGE ***************** Host 24.155.69.244 (24.155.69.244) Time: Sat Jul 22 02:11:06 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.158.' ************** SAGE ***************** Host 68.158.3.110 (68.158.3.110) Time: Fri Jul 21 22:13:54 2006 Input: 40/.55 Output: 72.727272727272720 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Fri Jul 21 18:29:55 2006 Input: sin(20) Output: sin(20) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Fri Jul 21 18:29:19 2006 Input: atan2(10,1) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'atan2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.250.' ************** SAGE ***************** Host 24.250.16.34 (24.250.16.34) Time: Fri Jul 21 17:39:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.74.6' ************** SAGE ***************** Host 87.74.66.104 (87.74.66.104) Time: Fri Jul 21 16:54:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:45:10 2006 Input: f1 = 'x=2*y+c' f2 = 'y=3*b' eqn=maxima([f1,f2]) s = eqn.solve('[c,b]');s Output: [[c = x - 2*y,b = y/3]] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:44:38 2006 Input: f1 = 'x=2*y+c' f2 = 'y=3*b' eqn=maxima([f1,f2]) s = eqn.solve('[x,y]');s Output: [[x = c + 6*b,y = 3*b]] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:43:53 2006 Input: f1 = 'x=2*y' f2 = 'y=3*b' eqn=maxima([f1,f2]) s = eqn.solve('[x,y]');s Output: [[x = 6*b,y = 3*b]] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.53s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:43:44 2006 Input: f1 = 'x=2*y' f2 = 'y=3*b' eqn=maxima([f1,f2]) s = eqn.solve('[x]');s Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, *args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in function_call(self, function, args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in new(self, code) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage4 : solve(sage2,sage3); Maxima ERROR: Inconsistent equations: (2) -- an error. Quitting. To debug this try debugmode(true); (%o24) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:43:29 2006 Input: f1 = 'x=2*y' f2 = 'y=3*b' eqn=maxima([f1,f2]) s = eqn.solve('x');s Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, *args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in function_call(self, function, args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in new(self, code) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage4 : solve(sage2,sage3); Maxima ERROR: Inconsistent equations: (2) -- an error. Quitting. To debug this try debugmode(true); (%o24) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.51s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:43:10 2006 Input: f1 = 'x=2*y' f2 = 'y=3*b' eqn=maxima([f1,f2]) s = eqn.solve('b');s Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, *args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in function_call(self, function, args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in new(self, code) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage4 : solve(sage2,sage3); Maxima ERROR: Inconsistent equations: (1) -- an error. Quitting. To debug this try debugmode(true); (%o24) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:42:23 2006 Input: f1 = 'x=sin(t)' f2 = 'y=cos(t)' eqn=maxima([f1,f2]) s = eqn.solve('t');s Output: [] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:42:14 2006 Input: f1 = 'x=sin(t)' f2 = 'y=cos(t)' eqn=maxima([f1,f2]) s eqn.solve('t');s Output: Errors: ------------------------------------------------------------ File "", line 1 s eqn.solve('t');s ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.36s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:37:22 2006 Input: f1 = 'alt=cos(t)' f2 = 'azm=sin(t)' eqn=maxima([f1,f2]) s = eqn.solve('[alt,azm]'); s Output: [[alt = cos(t),azm = sin(t)]] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.36s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:37:09 2006 Input: f1 = 'alt=cos(t)' f2 = 'azm=sin(t)' eqn=maxima([f1,f2]) s = eqn.solve('[x,y]'); s Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, *args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in function_call(self, function, args) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in new(self, code) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage4 : solve(sage2,sage3); Maxima ERROR: Inconsistent equations: (1 2) -- an error. Quitting. To debug this try debugmode(true); (%o24) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:36:43 2006 Input: f1 = 'x=cos(t)' f2 = 'y=sin(t)' eqn=maxima([f1,f2]) s = eqn.solve('[x,y]'); s Output: [[x = cos(t),y = sin(t)]] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:34:50 2006 Input: f1 = 'x=y+2' f2 = 'y=2' eqn=maxima([f1,f2]) s = eqn.solve('[x,y]'); s Output: [[x = 4,y = 2]] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:34:37 2006 Input: f1 = 'x=y+2' f2 = 'y=2' eqn=maxima([f1,f2]) s = eqn.solve('[x,y]']; s Output: Errors: ------------------------------------------------------------ File "", line 1 s = eqn.solve('[x,y]']; s ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.48s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Fri Jul 21 16:32:46 2006 Input: M = MatrixSpace(RationalField(),8,8) A = M([27,12,1,0,0,0,0,0, 27,12,3,0,0,0,0,0, 9,6,3,0,0,0,0,0, 1,1,1,1,0,0,0,0, 0,0,0,0,1,0,0,0, 0,0,0,0,0,1,0,0, 0,0,0,0,0,0,1,0, 0,0,0,0,0,0,0,1]);A V = VectorSpace(RationalField(),8) X = V([1,-3,3,-1,1,0,0,1]) B = A^-1; B B*X x=5 (-5/3)*(x+3)^3 + 4*(x+2)^3 - 2*(x+1)^3 - (4/3)*(x)^3 + (x-1)^3 + (x-4)^3 Output: [27 12 1 0 0 0 0 0] [27 12 3 0 0 0 0 0] [ 9 6 3 0 0 0 0 0] [ 1 1 1 1 0 0 0 0] [ 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 1] [ -1/6 5/18 -2/9 0 0 0 0 0] [ 1/2 -2/3 1/2 0 0 0 0 0] [ -1/2 1/2 0 0 0 0 0 0] [ 1/6 -1/9 -5/18 1 0 0 0 0] [ 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 1] (-5/3, 4, -2, -4/3, 1, 0, 0, 1) -15 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Fri Jul 21 16:30:15 2006 Input: M = MatrixSpace(RationalField(),8,8) A = M([27,12,1,0,0,0,0,0, 27,12,3,0,0,0,0,0, 9,6,3,0,0,0,0,0, 1,1,1,1,0,0,0,0, 0,0,0,0,1,0,0,0, 0,0,0,0,0,1,0,0, 0,0,0,0,0,0,1,0, 0,0,0,0,0,0,0,1]);A V = VectorSpace(RationalField(),8) X = V([1,-3,3,-1,1,0,0,1]) B = A^-1; B B*X Output: [27 12 1 0 0 0 0 0] [27 12 3 0 0 0 0 0] [ 9 6 3 0 0 0 0 0] [ 1 1 1 1 0 0 0 0] [ 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 1] [ -1/6 5/18 -2/9 0 0 0 0 0] [ 1/2 -2/3 1/2 0 0 0 0 0] [ -1/2 1/2 0 0 0 0 0 0] [ 1/6 -1/9 -5/18 1 0 0 0 0] [ 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 1] (-5/3, 4, -2, -4/3, 1, 0, 0, 1) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Fri Jul 21 16:27:41 2006 Input: M = MatrixSpace(RationalField(),8,8) A = M([27,12,1,0,0,0,0,0, 27,12,3,0,0,0,0,0, 9,6,3,0,0,0,0,0, 1,1,1,1,0,0,0,0, 0,0,0,0,1,0,0,0, 0,0,0,0,0,1,0,0, 0,0,0,0,0,0,1,0, 0,0,0,0,0,0,0,1]);A A^-1 Output: [27 12 1 0 0 0 0 0] [27 12 3 0 0 0 0 0] [ 9 6 3 0 0 0 0 0] [ 1 1 1 1 0 0 0 0] [ 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 1] [ -1/6 5/18 -2/9 0 0 0 0 0] [ 1/2 -2/3 1/2 0 0 0 0 0] [ -1/2 1/2 0 0 0 0 0 0] [ 1/6 -1/9 -5/18 1 0 0 0 0] [ 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Fri Jul 21 16:27:25 2006 Input: M = MatrixSpace(RationalField(),8,8) A = M([27,12,1,0,0,0,0,0, 27,12,3,0,0,0,0,0, 9,6,3,0,0,0,0,0, 1,1,1,1,0,0,0,0, 0,0,0,0,1,0,0,0, 0,0,0,0,0,1,0,0, 0,0,0,0,0,0,1,0, 0,0,0,0,0,0,0,1]);A Output: [27 12 1 0 0 0 0 0] [27 12 3 0 0 0 0 0] [ 9 6 3 0 0 0 0 0] [ 1 1 1 1 0 0 0 0] [ 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.229' ************** SAGE ***************** Host 169.229.137.154 (169.229.137.154) Time: Fri Jul 21 16:13:11 2006 Input: x=y+2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.34.1' ************** SAGE ***************** Host 70.34.176.199 (70.34.176.199) Time: Fri Jul 21 15:29:35 2006 Input: 6892 ÷ 5 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(6892) ÷ ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.160.' ************** SAGE ***************** Host 71.160.36.41 (71.160.36.41) Time: Fri Jul 21 14:56:20 2006 Input: e^(248.74) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/functions/functions.py in __pow__(self, right) TypeError: computation of e^248.74000000000001 not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 14:44:31 2006 Input: f1 = 'A*(0)^2 + B*(0)*(1) + C*(1)^2 + D*(0) + E*(1) = -1' f2 = 'A*(-1)^2 + B*(-1)*(1) + C*(1)^2 + D*(-1) + E*(1) = -1' f3 = 'A*(0)^2 + B*(0)*(2) + C*(2)^2 + D*(0) + E*(2) = -1' f4 = 'A*(3)^2 + B*(3)*(1) + C*(1)^2 + D*(3) + E*(1) = -1' f5 = 'A*(2)^2 + B*(2)*(0) + C*(0)^2 + D*(2) + E*(0) = -1' eqn = maxima([f1,f2,f3,f4,f5]) s = eqn.solve('[A,B,C,D,E]'); s t = 5 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 - (11/19)*(t-4)^3 Output: [[A = 0,B = 1/2,C = 1/2,D = - 1/2,E = - 3/2]] 1 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.43s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jul 21 13:43:00 2006 Input: print "hi" Output: hi Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:18:41 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 5 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 - (11/19)*(t-4)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] 1 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.55s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:18:36 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 4 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 - (11/19)*(t-4)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] 0 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.40s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:18:03 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 4 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 + (11/19)*(t-4)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] 0 Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.55s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:17:54 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 0 1-(24/19)*(t) + (5/19)*(t)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] 1 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.49s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:17:46 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 0 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 + (11/19)*(t-4)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] -884/19 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.51s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:17:34 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 4 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 + (11/19)*(t-4)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] 0 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.57s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:17:11 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 5 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 + (11/19)*(t-4)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] 41/19 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.45s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:15:59 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s t = 5 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 + (11/10)*(t-4)^3 Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] 509/190 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.45s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:15:17 2006 Input: f1 = 'a0 = 1' f2 = '2*a2 = 0' f3 = 'a0 + a1 + a2 + a3 = 0' f4 = 'a0 + 2*a1 + 4*a2 + 8*a3 + a4 = 0' f5 = 'a0 + 3*a1 + 9*a2 + 27*a3 + 8*a4 + a5 = 0' f6 = 'a0 + 4*a1 + 16*a2 + 64*a3 + 27*a4 + 8*a5 + a6 = 0' f7 = 'a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1' f8 = '2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0' eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.44s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:00:38 2006 Input: t = 1.1 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 Output: -0.039789473684210527 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:00:29 2006 Input: t = 1.1 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1)-(ZZ(24)/ZZ(19))*(t) + (ZZ(5)/ZZ(19))*(t)**ZZ(3) - (ZZ(11)/ZZ(19))*(t-ZZ(1))**ZZ(3) + ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:00:13 2006 Input: t = 0 1-(24/19)*(t) + (5/19)*(t)^3 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 13:00:03 2006 Input: t = 1 1-(24/19)*(t) + (5/19)*(t)^3 Output: 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 12:59:39 2006 Input: t = 1 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 + (11/10)*(t-4)^3 Output: -6183/190 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Fri Jul 21 12:59:32 2006 Input: t = 5 1-(24/19)*(t) + (5/19)*(t)^3 - (11/19)*(t-1)^3 + (6/19)*(t-2)^3 + (6/19)*(t-3)^3 + (11/10)*(t-4)^3 Output: 509/190 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.64.1' ************** SAGE ***************** Host 65.64.103.23 (65.64.103.23) Time: Fri Jul 21 12:55:44 2006 Input: 6+2+1+9+7= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(6)+ZZ(2)+ZZ(1)+ZZ(9)+ZZ(7)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.108.' ************** SAGE ***************** Host 12.108.61.66 (12.108.61.66) Time: Fri Jul 21 11:00:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.179.' ************** SAGE ***************** Host 24.179.14.186 (24.179.14.186) Time: Fri Jul 21 09:13:01 2006 Input: 21,478,350*33,780 Output: (21, 478, 11550, 780) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '139.179' ************** SAGE ***************** Host 139.179.137.109 (139.179.137.109) Time: Fri Jul 21 05:22:54 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.79.' ************** SAGE ***************** Host 130.79.85.33 (130.79.85.33) Time: Fri Jul 21 03:39:44 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.31s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.79.' ************** SAGE ***************** Host 130.79.85.33 (130.79.85.33) Time: Fri Jul 21 03:38:58 2006 Input: with(quaternions) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'with' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '206.127' ************** SAGE ***************** Host 206.127.2.114 (206.127.2.114) Time: Fri Jul 21 01:41:07 2006 Input: (3x^3)-(x^2)-(15x)+5 Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(3)x**ZZ(3))-(x**ZZ(2))-(ZZ(15)x)+ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '206.127' ************** SAGE ***************** Host 206.127.2.114 (206.127.2.114) Time: Fri Jul 21 01:40:43 2006 Input: (3x^3)-(x^2)-(15x)+5=0 Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(3)x**ZZ(3))-(x**ZZ(2))-(ZZ(15)x)+ZZ(5)=ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:36:02 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/t)^2 - (225*y*(y+1))/(4*t) + (225/8)*y^2 - (15/2)*(y+1)/t - (45/2)*y - 195/2 maxima('(225/2 - 30*t - 390*t^2 + 225*y - 255*y*t - 90*y*t^2 + 225/2*y^2 - 225*y^2*t + 225/2*y^2*t^2)/4*t^2') maxima('(225/2 - 30*t - 390*t^2 + 225*y - 255*y*t - 90*y*t^2 + 225/2*y^2 - 225*y^2*t + 225/2*y^2*t^2)/4*t^2').solve('y') Output: t^2*(225*t^2*y^2/2 - 225*t*y^2 + 225*y^2/2 - 90*t^2*y - 255*t*y + 225*y - 390*t^2 - 30*t + 225/2)/4 [y = - (4*t*sqrt(51*t^2 - 81*t + 34) - 6*t^2 - 17*t + 15)/(15*t^2 - 30*t + 15),y = (4*t*sqrt(51*t^2 - 81*t + 34) + 6*t^2 + 17*t - 15)/(15*t^2 - 30*t + 15)] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.59s). Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:33:36 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/t)^2 - (225*y*(y+1))/(4*t) + (225/8)*y^2 - (15/2)*(y+1)/t - (45/2)*y - 195/2 maxima('(225/2 - 30*t - 390*t^2 + 225*y - 255*y*t - 90*y*t^2 + 225/2*y^2 - 225*y^2*t + 225/2*y^2*t^2)/4*t^2') Output: t^2*(225*t^2*y^2/2 - 225*t*y^2 + 225*y^2/2 - 90*t^2*y - 255*t*y + 225*y - 390*t^2 - 30*t + 225/2)/4 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.58s). Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:33:26 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/t)^2 - (225*y*(y+1))/(4*t) + (225/8)*y^2 - (15/2)*(y+1)/t - (45/2)*y - 195/2 maxima('(225/2 - 30*t - 390*t^2 + 225*y - 255*y*t - 90*y*t^2 + 225/2*y^2 - 225*y^2*t + 225/2*y^2*t^2)/4*t^2') print f Output: t^2*(225*t^2*y^2/2 - 225*t*y^2 + 225*y^2/2 - 90*t^2*y - 255*t*y + 225*y - 390*t^2 - 30*t + 225/2)/4 (225/2 - 30*t - 390*t^2 + 225*y - 255*y*t - 90*y*t^2 + 225/2*y^2 - 225*y^2*t + 225/2*y^2*t^2)/4*t^2 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.57s). Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:33:08 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/t)^2 - (225*y*(y+1))/(4*t) + (225/8)*y^2 - (15/2)*(y+1)/t - (45/2)*y - 195/2 print f Output: (225/2 - 30*t - 390*t^2 + 225*y - 255*y*t - 90*y*t^2 + 225/2*y^2 - 225*y^2*t + 225/2*y^2*t^2)/4*t^2 Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.11s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:32:28 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/t)^2 - (225*y*(y+1))/(4*t) + (225/8)*y^2 - (15/2)*(y+1)/t - (45/2)*y - 195/2 f(x,y,1) Output: -615/8 - 30*y Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.13s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:32:11 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/t)^2 - (225*y*(y+1))/(4*t) + (225/8)*y^2 - (15/2)*(y+1)/t - (45/2)*y - 195/2 Output: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.11s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:30:51 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/t)^2 Output: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.07s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:30:45 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/8)*((y+1)/2)^2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:30:39 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) #f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #f((y*t)/t,y,1) f = (225/)*((y+1)/2)^2 Output: Errors: ------------------------------------------------------------ File "", line 1 f = (ZZ(225)/)*((y+ZZ(1))/ZZ(2))**ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:30:28 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y*t)/t,y,1) f = (225/)*((y+1)/2)^2 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and y^2 (parent: Polynomial Ring in x, y, t over Rational Field) ------------------------------------------------------------ File "", line 1 f = (ZZ(225)/)*((y+ZZ(1))/ZZ(2))**ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.12s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:30:23 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y*t)/t,y,1) f = (225/)*((y+1)/t)^2 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and y^2 (parent: Polynomial Ring in x, y, t over Rational Field) ------------------------------------------------------------ File "", line 1 f = (ZZ(225)/)*((y+ZZ(1))/t)**ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.09s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:28:26 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y*t)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and y^2 (parent: Polynomial Ring in x, y, t over Rational Field) Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.12s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:28:18 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f(y*t,y,1) Output: 6 + 3*y + y*t - 3*y^2 + 3*y^2*t - 2*y^2*t^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:28:12 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f(y,y,1) Output: 6 + 4*y - 2*y^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:28:07 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y+1)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and y^2 (parent: Polynomial Ring in x, y, t over Rational Field) Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:27:43 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f(x,x*t-1,1) Output: -2*x + 9*x*t - 2*x^2 + 3*x^2*t - 3*x^2*t^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:27:12 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y+1)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and y^2 (parent: Polynomial Ring in x, y, t over Rational Field) Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.11s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:27:04 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y+1)/2,y,1) Output: 6 + 4*y - 2*y^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:26:54 2006 Input: x, y, t = QQ['x,y,t'].gens() #f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 #f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y+1)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and y^2 (parent: Polynomial Ring in x, y, t over Rational Field) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:26:45 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((x,x*t-1,1) f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 f((y+1)/t,y,1) Output: Errors: ------------------------------------------------------------ File "", line 3 f = ZZ(6) + ZZ(3)*y - ZZ(3)*y**ZZ(2) + x + ZZ(3)*x*y - ZZ(2)*x**ZZ(2) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and 1 (parent: Polynomial Ring in x, y, t over Rational Field) ...: ...: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.10s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:24:45 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((x,x*t-1,1) Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:24:34 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((1,y,1) print f Output: Errors: ------------------------------------------------------------ File "", line 3 print f ^ SyntaxError: invalid syntax ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:24:27 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((1,y,1) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:24:23 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y*t,y,1) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:24:18 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y*t-1,y,1) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:24:04 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y+1)/t,y,1) maxima(' -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2') maxima(' -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2').solve('x') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and 1 (parent: Polynomial Ring in x, y, t over Rational Field) 225*t^2*x^2/8 - 225*t*x^2/4 + 45*x^2 - 315*t*x/4 + 195*x/4 - 375/8 [x = - (sqrt(816*t^2 - 1296*t + 769) - 21*t + 13)/(15*t^2 - 30*t + 24),x = (sqrt(816*t^2 - 1296*t + 769) + 21*t - 13)/(15*t^2 - 30*t + 24)] Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.58s). Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:21:04 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) maxima(' -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2') maxima(' -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2').solve('x') Output: -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 225*t^2*x^2/8 - 225*t*x^2/4 + 45*x^2 - 315*t*x/4 + 195*x/4 - 375/8 [x = - (sqrt(816*t^2 - 1296*t + 769) - 21*t + 13)/(15*t^2 - 30*t + 24),x = (sqrt(816*t^2 - 1296*t + 769) + 21*t - 13)/(15*t^2 - 30*t + 24)] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.37s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:20:51 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) maxima(' -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2') Output: -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 225*t^2*x^2/8 - 225*t*x^2/4 + 45*x^2 - 315*t*x/4 + 195*x/4 - 375/8 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:20:47 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) maxima(' -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2') Output: Errors: ------------------------------------------------------------ File "", line 1 maxima(' ^ SyntaxError: EOL while scanning single-quoted string ------------------------------------------------------------ File "", line 1 -ZZ(375)/ZZ(8) + ZZ(195)/ZZ(4)*x - ZZ(315)/ZZ(4)*x*t + ZZ(45)*x**ZZ(2) - ZZ(225)/ZZ(4)*x**ZZ(2)*t + ZZ(225)/ZZ(8)*x**ZZ(2)*t**ZZ(2)') ^ SyntaxError: EOL while scanning single-quoted string -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:20:24 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 225/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) Output: -375/8 + 195/4*x - 315/4*x*t + 45*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:19:37 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y+1)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and 1 (parent: Polynomial Ring in x, y, t over Rational Field) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.10s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:19:34 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y+1)/2,y,1) Output: -2003/20 - 2087/40*y + 11/10*y^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:19:19 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(t/2,y,1) Output: -195/2 - 15/4*t + 11/10*t^2 - 45/2*y - 225/8*y*t + 225/8*y^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:19:13 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(t,y,1) Output: -195/2 - 15/2*t + 22/5*t^2 - 45/2*y - 225/4*y*t + 225/8*y^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:18:57 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y+1)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and 1 (parent: Polynomial Ring in x, y, t over Rational Field) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.10s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:18:48 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y+1)/2,y,1) Output: -2003/20 - 2087/40*y + 11/10*y^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:18:39 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,y,1) Output: -195/2 - 45/2*y + 225/8*y^2 - 15/2*x - 225/4*x*y + 22/5*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:18:28 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((y-1)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/misc.py in prod(x, z) /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find an unambiguous parent for 1 (parent: Fraction Field of Polynomial Ring in x, y, t over Rational Field) and 1 (parent: Polynomial Ring in x, y, t over Rational Field) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.52s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:18:23 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f((Y-1)/t,y,1) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Y' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 01:00:12 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) maxima('-375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2') maxima('-375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2').solve('x') Output: -375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 225*t^2*x^2/8 - 225*t*x^2/4 + 22*x^2/5 - 315*t*x/4 + 195*x/4 - 375/8 [x = - (25*sqrt(3)*sqrt(2448*t^2 - 3888*t + 683) - 1575*t + 975)/(1125*t^2 - 2250*t + 176),x = (25*sqrt(3)*sqrt(2448*t^2 - 3888*t + 683) + 1575*t - 975)/(1125*t^2 - 2250*t + 176)] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.46s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:59:10 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) maxima('-375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2') Output: -375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 225*t^2*x^2/8 - 225*t*x^2/4 + 22*x^2/5 - 315*t*x/4 + 195*x/4 - 375/8 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:59:01 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) maxima('f(x,x*t-1,1)') Output: -375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 f(x,t*x - 1,1) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.43s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:57:30 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,1) Output: -375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:57:25 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,0) Output: -375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:57:18 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1,11115) Output: -375/8 + 195/4*x - 315/4*x*t + 22/5*x^2 - 225/4*x^2*t + 225/8*x^2*t^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:57:12 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,y,11115) Output: -195/2 - 45/2*y + 225/8*y^2 - 15/2*x - 225/4*x*y + 22/5*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:57:05 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,y,5) Output: -195/2 - 45/2*y + 225/8*y^2 - 15/2*x - 225/4*x*y + 22/5*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:56:53 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,y) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) TypeError: x (=(x, y)) must be of length 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:56:46 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:56:43 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1)) Output: Errors: ------------------------------------------------------------ File "", line 1 f(x,x*t-ZZ(1))) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:56:39 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1)) Output: Errors: ------------------------------------------------------------ File "", line 1 f(x,x*t-ZZ(1))) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:56:34 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 f(x,x*t-1),t) Output: Errors: ------------------------------------------------------------ File "", line 1 f(x,x*t-ZZ(1)),t) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:56:23 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 g = f(x,x*t-1),t) print g Output: Errors: ------------------------------------------------------------ File "", line 1 g = f(x,x*t-ZZ(1)),t) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:56:07 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 print f(x,x*t-1),t) Output: Errors: ------------------------------------------------------------ File "", line 1 print f(x,x*t-ZZ(1)),t) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:55:46 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 print f(x,x*t-1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) TypeError: x (=(x, -1 + x*t)) must be of length 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:55:31 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 22/5*x^2 - 225/4*x*y + 225/8*y^2 - 15/2*x - 45/2*y - 195/2 print f Output: -195/2 - 45/2*y + 225/8*y^2 - 15/2*x - 225/4*x*y + 22/5*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:40:57 2006 Input: maxima('-2*x + 9*x*t - 2*x^2 + 3*x^2*t - 3*x^2*t^2').solve('x') Output: [x = (9*t - 2)/(3*t^2 - 3*t + 2),x = 0] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:40:53 2006 Input: print maxima('-2*x + 9*x*t - 2*x^2 + 3*x^2*t - 3*x^2*t^2').solve('x') Output: [x = (9*t - 2)/(3*t^2 - 3*t + 2),x = 0] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.32s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Fri Jul 21 00:40:13 2006 Input: x, y, t = QQ['x,y,t'].gens() f = 6 + 3*y - 3*y^2 + x + 3*x*y - 2*x^2 #print maxima('-2*x + 9*x*t - 2*x^2 + 3*x^2*t - 3*x^2*t^2').solve('x') #print "n" #print maxima('6 + 3*y - 3*y^2 + ((y + 1)/t) + 3*((y + 1)/t)*y - 2*((y + 1)/t)^2').solve('y') print "x(t) = (9*t - 2)/(3*t^2 - 3*t + 2)" print "y(t) = (6*t^2 + t - 2)/(3*t^2 - 3*t + 2)" p = [ ] def rangef(start,finish,step): ret = [] i = start while i", line 1 def Curve2(x,y) ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined ...: ...: 18 -8 0 48 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 22:09:03 2006 Input: def Curve(x,y): return 2*x*x + 15*x*y + 3*y*y - 5*x - 9*y +6 def Curve2(x,y) return -2*x*x + 3*x*y - 3*y*y + 3*y + 6 print Curve(0,-1) print Curve(-1,1) print Curve(0,2) print Curve(3,1) print Curve2(0,-1) print Curve2(-1,1) print Curve2(0,2) print Curve2(3,1) Output: Errors: ------------------------------------------------------------ File "", line 1 def Curve2(x,y) ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Curve2' is not defined ...: ...: 18 -8 0 48 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 22:07:47 2006 Input: def Curve(x,y): return 2*x*x + 15*x*y + 3*y*y - 5*x - 9*y +6 print Curve(0,-1) print Curve(-1,1) print Curve(0,2) print Curve(3,1) Output: ...: ...: 18 -8 0 48 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 22:07:42 2006 Input: def Curve(x,y): return 2*x*x + 15*x*y + 3*y*y - 5*x - 9*y -6 print Curve(0,-1) print Curve(-1,1) print Curve(0,2) print Curve(3,1) Output: ...: ...: 6 -20 -12 36 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 22:07:34 2006 Input: def Curve(x,y): return 2*x*x + 15*x*y + 3*y*y - 5*x - 9*y =6 print Curve(0,-1) print Curve(-1,1) print Curve(0,2) print Curve(3,1) Output: Errors: ------------------------------------------------------------ File "", line 2 return ZZ(2)*x*x + ZZ(15)*x*y + ZZ(3)*y*y - ZZ(5)*x - ZZ(9)*y =ZZ(6) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: Curve() takes exactly 1 argument (2 given) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: Curve() takes exactly 1 argument (2 given) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: Curve() takes exactly 1 argument (2 given) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: Curve() takes exactly 1 argument (2 given) ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:40:44 2006 Input: M = Matrix(QQ,8,9,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 0, 1, 5, 25, 125, 64, 27, 8, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -3, 0, 1, 10, 75, 48, 27, 12, 3, 3]) print M.echelon_form() Output: ...: ...: ...: ...: ...: ...: ...: ...: [ 1 0 0 0 0 0 0 0 1] [ 0 1 0 0 0 0 0 0 -3] [ 0 0 1 0 0 0 0 0 3] [ 0 0 0 1 0 0 0 0 -1] [ 0 0 0 0 1 0 0 0 1] [ 0 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 0 1 1] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:40:32 2006 Input: M = Matrix(QQ,8,9,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 0, 1, 5, 25, 125, 64, 27, 8, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -3, 0, 1, 10, 75, 48, 27, 12, 3, 3]) print M.echelon_form() Output: ...: ...: ...: ...: ...: ...: ...: ...: [ 1 0 0 0 0 0 0 0 1] [ 0 1 0 0 0 0 0 0 -3] [ 0 0 1 0 0 0 0 0 2013/865] [ 0 0 0 1 0 0 0 0 -492/865] [ 0 0 0 0 1 0 0 0 209/865] [ 0 0 0 0 0 1 0 0 83/173] [ 0 0 0 0 0 0 1 0 -168/865] [ 0 0 0 0 0 0 0 1 913/865] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:40:24 2006 Input: M = Matrix(QQ,9,8,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 0, 1, 5, 25, 125, 64, 27, 8, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -3, 0, 1, 10, 75, 48, 27, 12, 3, 3]) print M.echelon_form() Output: ...: ...: ...: ...: ...: ...: ...: ...: [1 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0] [0 0 1 0 0 0 0 0] [0 0 0 1 0 0 0 0] [0 0 0 0 1 0 0 0] [0 0 0 0 0 1 0 0] [0 0 0 0 0 0 1 0] [0 0 0 0 0 0 0 1] [0 0 0 0 0 0 0 0] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:39:28 2006 Input: M = Matrix(QQ,8,9,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 0, 1, 5, 25, 125, 64, 27, 8, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -3, 0, 1, 10, 75, 48, 27, 12, 3, 3]) print M.echelon_form() Output: ...: ...: ...: ...: ...: ...: ...: ...: [ 1 0 0 0 0 0 0 0 1] [ 0 1 0 0 0 0 0 0 -3] [ 0 0 1 0 0 0 0 0 2013/865] [ 0 0 0 1 0 0 0 0 -492/865] [ 0 0 0 0 1 0 0 0 209/865] [ 0 0 0 0 0 1 0 0 83/173] [ 0 0 0 0 0 0 1 0 -168/865] [ 0 0 0 0 0 0 0 1 913/865] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:39:20 2006 Input: M = Matrix(QQ,8,8,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 0, 1, 5, 25, 125, 64, 27, 8, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -3, 0, 1, 10, 75, 48, 27, 12, 3, 3]) print M Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py in Matrix(R, nrows, ncols, entries, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in __call__(self, entries, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in matrix(self, x, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __init__(self, parent, entries, coerce_entries, copy) TypeError: entries has wrong length --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:39:13 2006 Input: M = Matrix(QQ,8,8,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 0, 1, 5, 25, 125, 64, 27, 8, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -3, 0, 1, 10, 75, 48, 27, 12, 3, 3]) print M.echelon_form() Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py in Matrix(R, nrows, ncols, entries, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in __call__(self, entries, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in matrix(self, x, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __init__(self, parent, entries, coerce_entries, copy) TypeError: entries has wrong length --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:38:16 2006 Input: M = Matrix(QQ,8,8,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 1, 5, 25, 125, 64, 27, 8, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 10, 75, 48, 27, 12, 3]) print m.echelon_form() Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'm' is not defined ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:25:43 2006 Input: M = Matrix(QQ,8,8,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 1, 5, 25, 125, 64, 27, 8, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 10, 75, 48, 27, 12, 3]) Rhs = Matrix(QQ,8,1,[1,0,0,0,0,1,-3,3]) Ans = ~M*Rhs Ans print M Output: ...: ...: ...: ...: ...: ...: ...: ...: [ 1] [ -3] [2013/865] [-492/865] [ 209/865] [ 83/173] [-168/865] [ 913/865] [ 1 0 0 0 0 0 0 0] [ 1 1 1 1 1 0 0 0] [ 1 2 4 8 1 0 0 0] [ 1 3 9 27 8 1 0 0] [ 1 4 16 64 27 8 1 0] [ 1 5 25 125 64 27 8 1] [ 0 1 0 0 0 0 0 0] [ 0 1 10 75 48 27 12 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:24:59 2006 Input: M = Matrix(QQ,8,8,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 1, 5, 25, 125, 64, 27, 8, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 10, 75, 48, 27, 12, 3]) Rhs = Matrix(QQ,8,1,[1,0,0,0,0,1,-3,3]) Ans = ~M*Rhs Output Ans print M Output: Errors: ------------------------------------------------------------ File "", line 1 Output Ans ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: [ 1 0 0 0 0 0 0 0] [ 1 1 1 1 1 0 0 0] [ 1 2 4 8 1 0 0 0] [ 1 3 9 27 8 1 0 0] [ 1 4 16 64 27 8 1 0] [ 1 5 25 125 64 27 8 1] [ 0 1 0 0 0 0 0 0] [ 0 1 10 75 48 27 12 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:24:51 2006 Input: a0=0 a1=1 a2=2 a3=3 a4=4 a5=5 a6=6 a7=7 M = Matrix(QQ,8,8,[ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 2, 4, 8, 1, 0, 0, 0, 1, 3, 9, 27, 8, 1, 0, 0, 1, 4, 16, 64, 27, 8, 1, 0, 1, 5, 25, 125, 64, 27, 8, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 10, 75, 48, 27, 12, 3]) Rhs = Matrix(QQ,8,1,[1,0,0,0,0,1,-3,3]) Ans = ~M*Rhs Output Ans print M Output: Errors: ------------------------------------------------------------ File "", line 1 Output Ans ^ SyntaxError: invalid syntax ....: ....: ....: ....: ....: ....: ....: ....: [ 1 0 0 0 0 0 0 0] [ 1 1 1 1 1 0 0 0] [ 1 2 4 8 1 0 0 0] [ 1 3 9 27 8 1 0 0] [ 1 4 16 64 27 8 1 0] [ 1 5 25 125 64 27 8 1] [ 0 1 0 0 0 0 0 0] [ 0 1 10 75 48 27 12 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.112' ************** SAGE ***************** Host 128.112.85.40 (128.112.85.40) Time: Thu Jul 20 21:18:11 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:16:42 2006 Input: a0=0 a1=1 a2=2 a3=3 a4=4 a5=5 a6=6 a7=7 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: ....: ....: ....: ....: ....: ....: ....: ....: [ 0 0 0 0 0 0 0 0 1] [ 0 1 2 3 4 0 0 0 1] [ 0 2 8 24 4 0 0 0 0] [ 0 3 18 81 32 5 0 0 0] [ 0 4 32 192 108 40 6 0 0] [ 0 5 50 375 256 135 48 7 1] [ 0 1 0 0 0 0 0 0 -3] [ 0 1 20 225 192 135 72 21 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:16:28 2006 Input: a0=0 a1=1 a2=2 a3=3 a4=4 a5=5 a6=6 a7=7 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: ....: ....: ....: ....: ....: ....: ....: ....: [ 0 0 0 0 0 0 0 0 1] [ 0 1 2 3 4 0 0 0 1] [ 0 2 8 24 4 0 0 0 0] [ 0 3 18 81 32 5 0 0 0] [ 0 4 32 192 108 40 6 0 0] [ 0 5 50 375 256 135 48 7 1] [ 0 1 0 0 0 0 0 0 -3] [ 0 1 20 225 192 135 72 21 3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:16:07 2006 Input: a0=0 a1=0 a2=0 a3=0 a4=0 a5=0 a6=0 a7=0 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: ....: ....: ....: ....: ....: ....: ....: ....: [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 -3] [ 0 0 0 0 0 0 0 0 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:14:48 2006 Input: a0=a0 a1=0 a2=0 a3=0 a4=0 a5=0 a6=0 a7=0 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ....: ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:14:38 2006 Input: a0 =0 a1=0 a2=0 a3=0 a4=0 a5=0 a6=0 a7=0 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: ....: ....: ....: ....: ....: ....: ....: ....: [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 -3] [ 0 0 0 0 0 0 0 0 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:14:15 2006 Input: a0 = QQ['a0'].gens() a1=0 a2=0 a3=0 a4=0 a5=0 a6=0 a7=0 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py in Matrix(R, nrows, ncols, entries, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in __call__(self, entries, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in matrix(self, x, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __init__(self, parent, entries, coerce_entries, copy) /home/sage/dense_matrix_pyx.pyx in dense_matrix_pyx.Matrix_rational.__init__() TypeError: Invalid rational number a0 --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ....: ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:13:25 2006 Input: a0 = QQ a1=0 a2=0 a3=0 a4=0 a5=0 a6=0 a7=0 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py in Matrix(R, nrows, ncols, entries, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in __call__(self, entries, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in matrix(self, x, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __init__(self, parent, entries, coerce_entries, copy) /home/sage/dense_matrix_pyx.pyx in dense_matrix_pyx.Matrix_rational.__init__() TypeError: Invalid rational number Rational Field --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ....: ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:12:38 2006 Input: a0 = 0 a1=0 a2=0 a3=0 a4=0 a5=0 a6=0 a7=0 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1, 0, a1, 0, 0, 0, 0, 0, 0, -3, 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: ....: ....: ....: ....: ....: ....: ....: ....: [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 1] [ 0 0 0 0 0 0 0 0 -3] [ 0 0 0 0 0 0 0 0 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:11:36 2006 Input: a0 = 0 a1=0 a2=0 a3=0 a4=0 a5=0 a6=0 a7=0 M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1 0, a1, 0, 0, 0, 0, 0, 0, =3 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: Errors: ------------------------------------------------------------ File "", line 8 ZZ(0), a1, ZZ(0), ZZ(0), ZZ(0), ZZ(0), ZZ(0), ZZ(0), =ZZ(3) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(0), a1, ZZ(10)*a2, ZZ(75)*a3, ZZ(48)*a4, ZZ(27)*a5, ZZ(12)*a6, ZZ(3)*a7, ZZ(3)]) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 21:11:06 2006 Input: M = Matrix(QQ,8,9,[ a0, 0, 0, 0, 0, 0, 0, 0, 1, a0, a1, a2, a3, a4, 0, 0, 0, 1, a0, 2*a1, 4*a2, 8*a3, a4, 0, 0, 0, 0, a0, 3*a1, 9*a2, 27*a3, 8*a4, a5, 0, 0, 0, a0, 4*a1, 16*a2, 64*a3, 27*a4, 8*a5, a6, 0, 0, a0, 5*a1, 25*a2, 125*a3, 64*a4, 27*a5, 8*a6, a7, 1 0, a1, 0, 0, 0, 0, 0, 0, =3 0, a1, 10*a2, 75*a3, 48*a4, 27*a5, 12*a6, 3*a7, 3]) print M Output: Errors: ------------------------------------------------------------ File "", line 8 ZZ(0), a1, ZZ(0), ZZ(0), ZZ(0), ZZ(0), ZZ(0), ZZ(0), =ZZ(3) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(0), a1, ZZ(10)*a2, ZZ(75)*a3, ZZ(48)*a4, ZZ(27)*a5, ZZ(12)*a6, ZZ(3)*a7, ZZ(3)]) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 20:40:50 2006 Input: x=x fo = 1 f1 = x f2 = x^2 f3 = x^3 f4 = (x-1)^3 f5 = (x-2)^3 f6 = (x-3)^3 f7 = (x-4)^3 M = Matrix(QQ,8,0,[ f0, 0, 0, 0, 0, 0, 0, 0, 1 f0, f1, f2, f3, 0, 0, 0, 0, 0 f0, f1, f2, f3, f4, 0, 0, 0, 0 f0, f1, f2, f3, f4, f5, 0, 0, 0 f0, f1, f2, f3, f4, f5, f6, 0, 0 f0, f1, f2, f3, f4, f5, f6, f7, 1 a1, 2*x, 3*x^3, 0, 0, 0, 0, 0, -3, a1, 2*x, 3*x^3, 3*(x-1)^2, 3*(x-2)^2, 3*(x-3)^2, 3*(x-4)^2, 0, -3]) print M Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined ------------------------------------------------------------ File "", line 3 f0, f1, f2, f3, ZZ(0), ZZ(0), ZZ(0), ZZ(0), ZZ(0) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a1' is not defined ------------------------------------------------------------ File "", line 1 a1, ZZ(2)*x, ZZ(3)*x**ZZ(3), ZZ(3)*(x-ZZ(1))**ZZ(2), ZZ(3)*(x-ZZ(2))**ZZ(2), ZZ(3)*(x-ZZ(3))**ZZ(2), ZZ(3)*(x-ZZ(4))**ZZ(2), ZZ(0), -ZZ(3)]) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 20:40:27 2006 Input: fo = 1 f1 = x f2 = x^2 f3 = x^3 f4 = (x-1)^3 f5 = (x-2)^3 f6 = (x-3)^3 f7 = (x-4)^3 M = Matrix(QQ,8,0,[ f0, 0, 0, 0, 0, 0, 0, 0, 1 f0, f1, f2, f3, 0, 0, 0, 0, 0 f0, f1, f2, f3, f4, 0, 0, 0, 0 f0, f1, f2, f3, f4, f5, 0, 0, 0 f0, f1, f2, f3, f4, f5, f6, 0, 0 f0, f1, f2, f3, f4, f5, f6, f7, 1 a1, 2*x, 3*x^3, 0, 0, 0, 0, 0, -3, a1, 2*x, 3*x^3, 3*(x-1)^2, 3*(x-2)^2, 3*(x-3)^2, 3*(x-4)^2, 0, -3]) print M Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined ------------------------------------------------------------ File "", line 3 f0, f1, f2, f3, ZZ(0), ZZ(0), ZZ(0), ZZ(0), ZZ(0) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a1' is not defined ------------------------------------------------------------ File "", line 1 a1, ZZ(2)*x, ZZ(3)*x**ZZ(3), ZZ(3)*(x-ZZ(1))**ZZ(2), ZZ(3)*(x-ZZ(2))**ZZ(2), ZZ(3)*(x-ZZ(3))**ZZ(2), ZZ(3)*(x-ZZ(4))**ZZ(2), ZZ(0), -ZZ(3)]) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.231.' ************** SAGE ***************** Host 71.231.42.35 (71.231.42.35) Time: Thu Jul 20 20:39:08 2006 Input: fo = 1 f1 = x f2 = x^2 f3 = x^3 f4 = (x-1)^3 f5 = (x-2)^3 f6 = (x-3)^3 f7 = (x-4)^3 M = Matrix(QQ,8,0,[ a0*f0, 0, 0, 0, 0, 0, 0, 0, 1 a0*f0, a1*f1, a2*f2, a3*f3, 0, 0, 0, 0, 0 a0*f0, a1*f1, a2*f2, a3*f3, a4*f4, 0, 0, 0, 0 a0*f0, a1*f1, a2*f2, a3*f3, a4*f4, a5*f5, 0, 0, 0 a0*f0, a1*f1, a2*f2, a3*f3, a4*f4, a5*f5, a6*f6, 0, 0 a0*f0, a1*f1, a2*f2, a3*f3, a4*f4, a5*f5, a6*f6, a7*f7, 1 a1, 2*a2*x, 3*a3*x^3, 0, 0, 0, 0, 0, -3, a1, 2*a2*x, 3*a3*x^3, 3*(x-1)^2, 3*(x-2)^2, 3*(x-3)^2, 3*(x-4)^2, 0, -3]) print M Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined ------------------------------------------------------------ File "", line 3 a0*f0, a1*f1, a2*f2, a3*f3, ZZ(0), ZZ(0), ZZ(0), ZZ(0), ZZ(0) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a0' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a1' is not defined ------------------------------------------------------------ File "", line 1 a1, ZZ(2)*a2*x, ZZ(3)*a3*x**ZZ(3), ZZ(3)*(x-ZZ(1))**ZZ(2), ZZ(3)*(x-ZZ(2))**ZZ(2), ZZ(3)*(x-ZZ(3))**ZZ(2), ZZ(3)*(x-ZZ(4))**ZZ(2), ZZ(0), -ZZ(3)]) ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'M' is not defined ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.231.' ************** SAGE ***************** Host 69.231.67.105 (69.231.67.105) Time: Thu Jul 20 20:26:34 2006 Input: 79 Output: 79 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.231.' ************** SAGE ***************** Host 69.231.67.105 (69.231.67.105) Time: Thu Jul 20 20:26:18 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.15.2' ************** SAGE ***************** Host 75.15.234.2 (75.15.234.2) Time: Thu Jul 20 19:39:21 2006 Input: 64/95 Output: 64/95 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.226.' ************** SAGE ***************** Host 63.226.241.8 (63.226.241.8) Time: Thu Jul 20 18:53:54 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.09s, Wall time 0m1.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.226.' ************** SAGE ***************** Host 63.226.241.8 (63.226.241.8) Time: Thu Jul 20 18:53:26 2006 Input: show((x-3)^8) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.207.' ************** SAGE ***************** Host 69.207.153.207 (69.207.153.207) Time: Thu Jul 20 18:48:56 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.179.' ************** SAGE ***************** Host 24.179.74.133 (24.179.74.133) Time: Thu Jul 20 18:13:50 2006 Input: 19.5*20% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('19.5')*ZZ(20)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.199.' ************** SAGE ***************** Host 63.199.242.110 (63.199.242.110) Time: Thu Jul 20 17:39:50 2006 Input: 1.91293^3 Output: 6.9999870156307571 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.199.' ************** SAGE ***************** Host 63.199.242.110 (63.199.242.110) Time: Thu Jul 20 17:39:22 2006 Input: 7^(1/3) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/integer.pyx in integer.Integer.__pow__() TypeError: exponent (=1/3) must be an integer. Coerce your numbers to real or complex numbers first. Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.73.1' ************** SAGE ***************** Host 68.73.123.250 (68.73.123.250) Time: Thu Jul 20 15:13:17 2006 Input: 31 * 31 Output: 961 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.73.1' ************** SAGE ***************** Host 68.73.123.250 (68.73.123.250) Time: Thu Jul 20 15:12:45 2006 Input: 4 * 4 Output: 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.73.1' ************** SAGE ***************** Host 68.73.123.250 (68.73.123.250) Time: Thu Jul 20 15:11:08 2006 Input: 2x + 12 = 16 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)x + ZZ(12) = ZZ(16) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.73.1' ************** SAGE ***************** Host 68.73.123.250 (68.73.123.250) Time: Thu Jul 20 15:03:53 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.154.' ************** SAGE ***************** Host 24.154.36.56 (24.154.36.56) Time: Thu Jul 20 13:55:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.135.91 (67.160.135.91) Time: Thu Jul 20 13:21:51 2006 Input: square root of 9425 Output: Errors: ------------------------------------------------------------ File "", line 1 square root of ZZ(9425) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.112' ************** SAGE ***************** Host 195.112.44.172 (195.112.44.172) Time: Thu Jul 20 13:08:03 2006 Input: DirichletGroup(20) Output: Group of Dirichlet characters of modulus 20 over Cyclotomic Field of order 4 and degree 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.112' ************** SAGE ***************** Host 195.112.44.172 (195.112.44.172) Time: Thu Jul 20 13:07:47 2006 Input: DirichletGroup(20) Output: Group of Dirichlet characters of modulus 20 over Cyclotomic Field of order 4 and degree 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.37s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.130.' ************** SAGE ***************** Host 71.130.198.169 (71.130.198.169) Time: Thu Jul 20 12:44:22 2006 Input: -1*-1 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.42.1' ************** SAGE ***************** Host 66.42.1.203 (66.42.1.203) Time: Thu Jul 20 12:30:49 2006 Input: 10.00/2.50 Output: 4.0000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.12s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.232.' ************** SAGE ***************** Host 69.232.230.163 (69.232.230.163) Time: Thu Jul 20 11:32:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '217.229' ************** SAGE ***************** Host 217.229.126.110 (217.229.126.110) Time: Thu Jul 20 11:20:53 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.159.' ************** SAGE ***************** Host 66.159.238.137 (66.159.238.137) Time: Thu Jul 20 10:35:44 2006 Input: 700/56 Output: 25/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.131.' ************** SAGE ***************** Host 24.131.63.100 (24.131.63.100) Time: Thu Jul 20 09:29:15 2006 Input: 9x50 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(9)x50 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.54.' ************** SAGE ***************** Host 208.54.94.73 (208.54.94.73) Time: Thu Jul 20 08:12:59 2006 Input: for(x=1,50,print1("d(",x,")=",numdiv(x),", ")) Output: Errors: ------------------------------------------------------------ File "", line 1 for(x=ZZ(1),ZZ(50),print1("d(",x,")=",numdiv(x),", ")) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.225.' ************** SAGE ***************** Host 71.225.56.77 (71.225.56.77) Time: Thu Jul 20 01:08:02 2006 Input: 90/7 Output: 90/7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.15.9' ************** SAGE ***************** Host 71.15.97.5 (71.15.97.5) Time: Wed Jul 19 22:17:58 2006 Input: 28.35/16 Output: 1.7718750000000001 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.180.' ************** SAGE ***************** Host 69.180.5.21 (69.180.5.21) Time: Wed Jul 19 20:20:00 2006 Input: 251 - 121 + 441 - 340 + 130 - 113 + 409 - 253 + 130 - 181 + 297 - 149 + 081 - 088 + 467 - 059 + 306 - 229 + 345 - 351 + 117 - 047 + 353 - 216 + 401 - 147 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(251) - ZZ(121) + ZZ(441) - ZZ(340) + ZZ(130) - ZZ(113) + ZZ(409) - ZZ(253) + ZZ(130) - ZZ(181) + ZZ(297) - ZZ(149) + ZZ(081) - ZZ(088) + ZZ(467) - ZZ(059) + ZZ(306) - ZZ(229) + ZZ(345) - ZZ(351) + ZZ(117) - ZZ(047) + ZZ(353) - ZZ(216) + ZZ(401) - ZZ(147) ^ SyntaxError: invalid token Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.63.' ************** SAGE ***************** Host 130.63.176.180 (130.63.176.180) Time: Wed Jul 19 15:20:28 2006 Input: 6*4 Output: 24 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '130.63.' ************** SAGE ***************** Host 130.63.176.180 (130.63.176.180) Time: Wed Jul 19 15:20:09 2006 Input: 23.5*102 Output: 2397.0000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.209.' ************** SAGE ***************** Host 82.209.46.142 (82.209.46.142) Time: Wed Jul 19 14:56:03 2006 Input: log(0.000001) Output: -13.815510557964274 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.209.' ************** SAGE ***************** Host 82.209.46.142 (82.209.46.142) Time: Wed Jul 19 14:55:51 2006 Input: log(-0.99) Output: NaN Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.209.' ************** SAGE ***************** Host 82.209.46.142 (82.209.46.142) Time: Wed Jul 19 14:55:39 2006 Input: log(-1) Output: NaN Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.209.' ************** SAGE ***************** Host 82.209.46.142 (82.209.46.142) Time: Wed Jul 19 14:55:04 2006 Input: 1+1 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.239.' ************** SAGE ***************** Host 70.239.249.198 (70.239.249.198) Time: Wed Jul 19 14:50:23 2006 Input: October,2 , 2000- august 1. 2006= Output: Errors: ------------------------------------------------------------ File "", line 1 October,ZZ(2) , ZZ(2000)- august RealField(max(3,RR.precision()))('1.') ZZ(2006)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 13:21:19 2006 Input: f1 = "A*(0)^2 + B*(0)*(-1) + C*(-1)^2 + D*(0) + E*(-1) + 1 = 0" f2 = "A*(-1)^2 + B*(-1)*(1) + C*(1)^2 + D*(-1) + E*(1) + 1 = 0" f3 = "A*(0)^2 + B*(0)*(2) + C*(2)^2 + D*(0) + E*(2) + 1 = 0" f4 = "A*(3)^2 + B*(3)*(1) + C*(1)^2 + D*(3) + E*(1) + 1 = 0" f5 = "A*(2)^2 + B*(2)*(0) + C*(0)^2 + D*(2) + E*(0) + 1 = 0" eqn = maxima([f1,f2,f3,f4,f5]) s = eqn.solve('[A,B,C,D,E]'); s Output: [[A = - 1/3,B = 1/2,C = - 1/2,D = 1/6,E = 1/2]] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.52s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '201.34.' ************** SAGE ***************** Host 201.34.91.89 (201.34.91.89) Time: Wed Jul 19 13:08:20 2006 Input: b=1 c=2 a^2=b^2+c^2 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '201.34.' ************** SAGE ***************** Host 201.34.91.89 (201.34.91.89) Time: Wed Jul 19 13:08:02 2006 Input: a^2=b^2+c^2 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 12:56:00 2006 Input: f1 = "a0 = 1" f2 = "2*a2 = 0" f3 = "a0 + a1 + a2 + a3 = 0" f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0" f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*8 + a5 = 0" f6 = "a0 + a1*4 + a2*16 + a3*64 + a4*27 + 8*a5 + a6 = 0" f7 = "a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1" f8 = "2*a2 + 6*a3*5 + 6*a4*4 + 6*a5*3 + 6*a6*2 + 6*a7 = 0" eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s Output: [[a0 = 1,a1 = - 24/19,a2 = 0,a3 = 5/19,a4 = - 11/19,a5 = 6/19,a6 = 6/19,a7 = - 11/19]] Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.48s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.127.' ************** SAGE ***************** Host 24.127.128.17 (24.127.128.17) Time: Wed Jul 19 11:48:29 2006 Input: 836 x12 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(836) x12 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.127.' ************** SAGE ***************** Host 24.127.128.17 (24.127.128.17) Time: Wed Jul 19 11:48:21 2006 Input: 836 Output: 836 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 11:47:32 2006 Input: f1 = "a0 = 1" f2 = "a1 = -3" f3 = "a0 + a1 + a2 + a3 = 0" f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0" f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*8 + a5 = 0" f6 = "a0 + a1*4 + a2*16 + a3*64 + a4*27 + 8*a5 + a6 = 0" f7 = "a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1" f8 = "a1 + 10*a2 + 75*a3 + 48*a4 + 27*a5 + 12*a6 + 3*a7 = 3" eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s Output: [[a0 = 1,a1 = - 3,a2 = 3,a3 = - 1,a4 = 1,a5 = 0,a6 = 0,a7 = 1]] Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.42s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 11:46:10 2006 Input: f1 = "a0 = 1" f2 = "a1 = -3" f3 = "a0 + a1 + a2 + a3 = 0" f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0" f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*4 + a5 = 0" f6 = "a0 + a1*4 + a2*16 + a3*64 + a4*7 + 8*a5 + a6 = 0" f7 = "a0 + 5*a1 + 25*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1" f8 = "a1 + 10*a2 + 75*a3 + 48*a4 + 27*a5 + 12*a6 + 3*a7 = 3" eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s Output: [[a0 = 1,a1 = - 3,a2 = 1419/497,a3 = - 425/497,a4 = 209/497,a5 = 1844/497,a6 = - 6252/497,a7 = 11957/497]] Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.42s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 11:39:41 2006 Input: f1 = "a0 = 1" f2 = "a1 = -3" f3 = "a0 + a1 + a2 + a3 = 0" f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0" f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*4 + a5 = 0" f6 = "a0 + a1*4 + a2*16 + a3*64 + a4*7 + 8*a5 + a6 = 0" f7 = "a0 + 5*a1 + 15*a2 + 125*a3 + 64*a4 + 27*a5 + 8*a6 + a7 = 1" f8 = "a1 + 10*a2 + 75*a3 + 48*a4 + 27*a5 + 12*a6 + 3*a7 = 3" eqn = maxima([f1,f2,f3,f4,f5,f6,f7,f8]) s = eqn.solve('[a0,a1,a2,a3,a4,a5,a6,a7]'); s Output: [[a0 = 1,a1 = - 3,a2 = 1419/467,a3 = - 485/467,a4 = 539/467,a5 = 1904/467,a6 = - 5532/467,a7 = 4697/467]] Exiting SAGE (CPU time 0m0.13s, Wall time 0m1.20s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '201.144' ************** SAGE ***************** Host 201.144.123.172 (201.144.123.172) Time: Wed Jul 19 11:35:25 2006 Input: expand(sin(x+y)) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'expand' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 11:33:58 2006 Input: f1 = "a0 = 0"; f2 = "a1 = -3"; f3 = "a0 + a1 + a2 + a3 = 0"; f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0"; f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*4 + a5 = 0"; f6 = "a0 + a1*4 + a2*4^2 + a3*4^3 + a4*4"; Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 11:31:47 2006 Input: f1 = "a0 = 0"; f2 = "a1 = -3"; f3 = "a0 + a1 + a2 + a3 = 0"; f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0"; f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*4 + a5 = 0"; f6 = "a0 + a1*4 + a2*4^2 + a3*4^3 + a4*4"; t = 5; 3*x*(t-1)^2 + 3*y*(t-2)^2 + 3*z*(t-3)^2 + 3*n*(t-4)^2 + 3*d*(t-5)^2; Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 11:31:21 2006 Input: f1 = "a0 = 0"; f2 = "a1 = -3"; f3 = "a0 + a1 + a2 + a3 = 0"; f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0"; f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*4 + a5 = 0"; f6 = "a0 + a1*4 + a2*4^2 + a3*4^3 + a4*4"; t = 5; 3*a4*(t-1)^2 + 3*a5*(t-2)^2 + 3*a6*(t-3)^2 + 3*a7*(t-4)^2 + 3*a8*(t-5)^2; Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a4' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.160.' ************** SAGE ***************** Host 67.160.9.96 (67.160.9.96) Time: Wed Jul 19 11:31:03 2006 Input: f1 = "a0 = 0" f2 = "a1 = -3" f3 = "a0 + a1 + a2 + a3 = 0" f4 = "a0 + a1*2 + a2*4 + a3*8 + a4 = 0" f5 = "a0 + a1*3 + a2*9 + a3*27 + a4*4 + a5 = 0" f6 = "a0 + a1*4 + a2*4^2 + a3*4^3 + a4*4 t = 5 3*a4*(t-1)^2 + 3*a5*(t-2)^2 + 3*a6*(t-3)^2 + 3*a7*(t-4)^2 + 3*a8*(t-5)^2 Output: Errors: ------------------------------------------------------------ File "", line 1 f6 = "a0 + a1*4 + a2*4^2 + a3*4^3 + a4*4 ^ SyntaxError: EOL while scanning single-quoted string --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a4' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.160' ************** SAGE ***************** Host 203.160.1.47 (203.160.1.47) Time: Wed Jul 19 06:58:25 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '212.117' ************** SAGE ***************** Host 212.117.127.210 (212.117.127.210) Time: Wed Jul 19 06:52:59 2006 Input: 9*(3/2) Output: 27/2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.201' ************** SAGE ***************** Host 216.201.151.26 (216.201.151.26) Time: Wed Jul 19 06:47:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.106.' ************** SAGE ***************** Host 70.106.164.209 (70.106.164.209) Time: Wed Jul 19 05:41:24 2006 Input: 6542 Output: 6542 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.106.' ************** SAGE ***************** Host 70.106.164.209 (70.106.164.209) Time: Wed Jul 19 05:41:03 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.221.' ************** SAGE ***************** Host 68.221.192.120 (68.221.192.120) Time: Tue Jul 18 22:20:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.221.' ************** SAGE ***************** Host 68.221.192.120 (68.221.192.120) Time: Tue Jul 18 22:20:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.132.' ************** SAGE ***************** Host 70.132.11.112 (70.132.11.112) Time: Tue Jul 18 19:22:45 2006 Input: (x-1)2=9 Output: Errors: ------------------------------------------------------------ File "", line 1 (x-ZZ(1))2=ZZ(9) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.91' ************** SAGE ***************** Host 68.9.91.53 (68.9.91.53) Time: Tue Jul 18 18:47:59 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.124.' ************** SAGE ***************** Host 68.124.160.207 (68.124.160.207) Time: Tue Jul 18 17:57:05 2006 Input: negative nine minus negative forty eight Output: Errors: ------------------------------------------------------------ File "", line 1 negative nine minus negative forty eight ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.30.' ************** SAGE ***************** Host 137.30.109.12 (137.30.109.12) Time: Tue Jul 18 16:01:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.51.1' ************** SAGE ***************** Host 67.51.134.174 (67.51.134.174) Time: Tue Jul 18 14:31:28 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '155.229' ************** SAGE ***************** Host 155.229.77.1 (155.229.77.1) Time: Tue Jul 18 13:55:35 2006 Input: x+5 ____ x+2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name '____' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.235.' ************** SAGE ***************** Host 63.235.88.165 (63.235.88.165) Time: Tue Jul 18 13:01:48 2006 Input: 1092353 Output: 1092353 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.235.' ************** SAGE ***************** Host 63.235.88.165 (63.235.88.165) Time: Tue Jul 18 13:01:32 2006 Input: 1092/353 Output: 1092/353 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.235.' ************** SAGE ***************** Host 63.235.88.165 (63.235.88.165) Time: Tue Jul 18 13:01:20 2006 Input: 1092/354 Output: 182/59 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.235.' ************** SAGE ***************** Host 63.235.88.165 (63.235.88.165) Time: Tue Jul 18 13:00:58 2006 Input: 1092/356 Output: 273/89 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.235.' ************** SAGE ***************** Host 63.235.88.165 (63.235.88.165) Time: Tue Jul 18 13:00:24 2006 Input: 420/21 Output: 20 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.189.' ************** SAGE ***************** Host 68.189.248.100 (68.189.248.100) Time: Tue Jul 18 12:33:42 2006 Input: edsgdrgyyftrgtf Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'edsgdrgyyftrgtf' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.189.' ************** SAGE ***************** Host 68.189.248.100 (68.189.248.100) Time: Tue Jul 18 12:33:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.189.' ************** SAGE ***************** Host 68.189.248.100 (68.189.248.100) Time: Tue Jul 18 12:33:29 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.165' ************** SAGE ***************** Host 216.165.209.34 (216.165.209.34) Time: Tue Jul 18 12:16:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.215' ************** SAGE ***************** Host 131.215.62.42 (131.215.62.42) Time: Tue Jul 18 11:19:09 2006 Input: 2^12412 Output: 24227364947908277673545473310355388491924592889207513487370285496246826763677742646615204637383414953491082700628352346683503041552098263057702067008868252401508857423171445800151804325606651974452305802364552082327754854189694086271595441832535303740564385770086832271565061369840944659528184662954219202449510683119604117868182886862713547489495464691867209570171828074623712120726627138912358807944402038267708214404615096512974224745140693129607643568831488264869668820655988838054449963939556186968895401509270293470416010219937569713977906856688042777902835958368676595908233692848054048933645745165587620132897156602612461209388376202677442544601956917350060083502680014340783757372400126880009905763600519626668339832755016915269817778029603900204471683146849881158252957374354980682692762793109135807024836532294056181494104471972304413190354894308739132698960609702668156942890246669079547090049417879948696377673625655685437045198273586988757395544488005405709128033807346107626294384072346605911452520298781358681756841756564218136728764508439749165670003794320966168130477241390682906832715406605079451558726355915043809670078148789231159949055963482410921835943478364840243431236297285652444546276166009291422393782218764914980137549747631363221574514610282498631296384649676064572448903424109370379926651642942473279027965362415206966615808217682369211538851047379063747409018319781466087593594108959364526071308929461565134021906634506461361953497823553160449233173023817799891389301877474502477943856302290257987767022700372122584670469235886617066880446274377538556886865692837420402415001485121306252590602678010593698054351448809600163600860916543263649041426275546243450359614858913260049241248873140633017678478134162032571055557013789831939510084457057533406307516701537249516539013555409917749676743363319371528684242074580008634967707083513571305140426885755527121512101139680372684298984095201808175828897827068244910410032464023270453030001361322725158263023005700473103750657675197958605907609660965295096258817805346654110862000191583459045281496463054331237800075277286248249023293878599701383572603832387582513871073276581850529080653620634558300849532671610952387636729350660435023530222889347853680465003962885364119841737579396999242674295616165642065450975937273814973106707736150404409551739436783165758411663535284450321256231931848206241404662683938635948703007307993137189955870513045089751343151505433452803733007860515524760258418809496612192747498208246298364469549027158031748301114248834251377986147652918999249545631726814726969388327202772844779716295290462121475648664056036322286746954820003004396554619542003442042685878404612556935995592135989016201423755713926612700238783533298350848062126058050206121934782567991209338002966207105572835385777232627405561816178758217911705417303330381559772722283936494396308670094855218009571791724428375791589781466659593989173277084137424428743972069060995948599339372204274267620939188698756094196101046189495471391731332902380689996223304679942404031661061360861258487178695294785163931935291190043412405287565352643741233074070696021738911180706279348585865131228024656480687309735651525791384797623218311687065103881537544292906914595433304265906347792616657149815165680374586911506975464139130844236540942906397672610476633799557970877409306628935271124485997446055020286553443345749168510236287124761696614397565647433877333668115235646027789206552046728706137446964274802191069911885389355917172361189802136294715659037484133650726965396986503858793705808380663481718480309799673368780467079790872762041308968866776415371776298753693774165553729658529646919823556655160784313199229167642513497659865238398406733499265558833254189461558788096 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.215' ************** SAGE ***************** Host 131.215.62.42 (131.215.62.42) Time: Tue Jul 18 11:19:01 2006 Input: x^3 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.174.' ************** SAGE ***************** Host 67.174.31.214 (67.174.31.214) Time: Tue Jul 18 10:36:54 2006 Input: 155*20 Output: 3100 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.106.' ************** SAGE ***************** Host 65.106.182.67 (65.106.182.67) Time: Tue Jul 18 09:37:07 2006 Input: 3+4 Output: 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:58:43 2006 Input: pi Output: pi Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:58:23 2006 Input: maxima('cf(tan(1))') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage0 : cf(tan(1)); Maxima ERROR: Not a continued fraction: tan(1) -- an error. Quitting. To debug this try debugmode(true); (%o12) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.45s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:58:02 2006 Input: maxima('cf(Exp(1))') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage0 : cf(Exp(1)); Maxima ERROR: Not a continued fraction: Exp(1) -- an error. Quitting. To debug this try debugmode(true); (%o12) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.49s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:57:45 2006 Input: maxima('cf(exp(1))') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage0 : cf(exp(1)); Maxima ERROR: %e - not a continued fraction -- an error. Quitting. To debug this try debugmode(true); (%o12) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.50s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:57:19 2006 Input: maxima('cf(sqrt(2))') Output: [1,2] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.31s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:56:39 2006 Input: maxima("sqrt(2)") Output: sqrt(2) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.31s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:56:20 2006 Input: maxima("cf(Pi)") Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Maxima CODE: sage0 : cf(Pi); Maxima ERROR: Pi - not a continued fraction -- an error. Quitting. To debug this try debugmode(true); (%o12) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.10s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '159.242' ************** SAGE ***************** Host 159.242.10.178 (159.242.10.178) Time: Tue Jul 18 08:46:14 2006 Input: factor(202039842982701280348798234) Output: 2 * 1030543 * 98025915940771651619 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.29s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.65.2' ************** SAGE ***************** Host 71.65.229.34 (71.65.229.34) Time: Tue Jul 18 05:47:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '217.205' ************** SAGE ***************** Host 217.205.232.140 (217.205.232.140) Time: Tue Jul 18 03:35:07 2006 Input: a.x^2 + b.x + c = 0 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:39:36 2006 Input: 505%17 Output: 12 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:37:53 2006 Input: 2**67839%10 Output: 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:37:43 2006 Input: 7**67839%10 Output: 3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:36:28 2006 Input: 3**100%16 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:36:15 2006 Input: (3**(3**100%16))%17 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:35:40 2006 Input: (3**(3**100%17))%17 Output: 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:35:17 2006 Input: (3**(3**100))%16 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 19553 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:34:50 2006 Input: (3**100)%16 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:34:33 2006 Input: (3**13)%17 Output: 12 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:34:22 2006 Input: (3**100)%17 Output: 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:34:14 2006 Input: 3**(3**100)%17 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 19453 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:33:59 2006 Input: 3**(3**100)%17 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 19428 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jul 18 02:05:54 2006 Input: factor(X**4-8*X**3+14*X**2+8*X-15) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'X' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.132.' ************** SAGE ***************** Host 71.132.130.250 (71.132.130.250) Time: Tue Jul 18 01:03:52 2006 Input: print gap('SymmetricGroup(5)') Output: Sym( [ 1 .. 5 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.132.' ************** SAGE ***************** Host 71.132.130.250 (71.132.130.250) Time: Tue Jul 18 01:03:24 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.32s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:39:44 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17-62.-40.99-269.40-52.94+40.-61.06 Output: 19.560000000000002 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:39:26 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17-62.-40.99-269.40-52.94+40. Output: 80.620000000000005 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:38:53 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17-62.-40.99-269.40-52.94 Output: 40.620000000000005 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:38:31 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17-62.-40.99-269.40 Output: 93.560000000000002 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:38:15 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17-62.-40.99 Output: 362.95999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:38:02 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17-62. Output: 403.94999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:37:50 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17 Output: 465.94999999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:37:38 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25 Output: 555.12000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:37:25 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83 Output: 594.37000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:37:15 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60.-40. Output: 608.20000000000005 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:36:23 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60.-60. Output: 648.20000000000005 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:36:13 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40.-60. Output: 708.20000000000005 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:36:02 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67-40. Output: 768.20000000000005 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:35:49 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62+389.67 Output: 808.20000000000005 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:35:35 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538.-126.62 Output: 418.52999999999997 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:35:24 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28+538. Output: 545.14999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:35:12 2006 Input: 223.21-15.87-149.36-9.55-30.-11.28 Output: 7.1499999999999932 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:34:59 2006 Input: 223.21-15.87-149.36-9.55-30. Output: 18.429999999999993 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:34:44 2006 Input: 223.21-15.87-149.36-9.55 Output: 48.429999999999993 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:34:31 2006 Input: 223.21-15.87-149.36 Output: 57.979999999999990 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:34:15 2006 Input: 223.21-15.87 Output: 207.34000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.8' ************** SAGE ***************** Host 24.51.8.38 (24.51.8.38) Time: Tue Jul 18 00:33:35 2006 Input: 223.21-15.87-149.36-9.55-30-11.28+538.-126.62+389.67-40.-60.-60.-40.-13.83-39.25-89.17-62.-40.99-269.40-52.94+40.-61.06 Output: 19.560000000000002 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.132' ************** SAGE ***************** Host 137.132.3.6 (137.132.3.6) Time: Mon Jul 17 23:11:49 2006 Input: L = [[cos(pi*i/100),sin(pi*i/100)] for i in range(200)] Output: Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.10s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.132' ************** SAGE ***************** Host 137.132.3.6 (137.132.3.6) Time: Mon Jul 17 23:10:25 2006 Input: sin(X) + y Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'X' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.131.' ************** SAGE ***************** Host 71.131.60.92 (71.131.60.92) Time: Mon Jul 17 21:49:39 2006 Input: 436/3 Output: 436/3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '152.163' ************** SAGE ***************** Host 152.163.100.68 (152.163.100.68) Time: Mon Jul 17 19:05:29 2006 Input: y=x+3 3x+y=11 solve for x and y Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined ------------------------------------------------------------ File "", line 1 ZZ(3)x+y=ZZ(11) solve for x and y ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '152.163' ************** SAGE ***************** Host 152.163.100.68 (152.163.100.68) Time: Mon Jul 17 19:04:54 2006 Input: y=x+3 3x+y=11 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined ------------------------------------------------------------ File "", line 1 ZZ(3)x+y=ZZ(11) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '152.163' ************** SAGE ***************** Host 152.163.100.68 (152.163.100.68) Time: Mon Jul 17 19:03:58 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.216.' ************** SAGE ***************** Host 12.216.247.12 (12.216.247.12) Time: Mon Jul 17 18:39:37 2006 Input: 200+100 Output: 300 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.1.13' ************** SAGE ***************** Host 65.1.131.136 (65.1.131.136) Time: Mon Jul 17 18:32:37 2006 Input: 21x^2 + 33x + 12 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(21)x**ZZ(2) + ZZ(33)x + ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.1.13' ************** SAGE ***************** Host 65.1.131.136 (65.1.131.136) Time: Mon Jul 17 18:32:15 2006 Input: 21x2 + 33x + 12 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(21)x2 + ZZ(33)x + ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.188.' ************** SAGE ***************** Host 70.188.244.194 (70.188.244.194) Time: Mon Jul 17 18:07:02 2006 Input: 7.95*6 Output: 47.700000000000003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.1.13' ************** SAGE ***************** Host 65.1.131.136 (65.1.131.136) Time: Mon Jul 17 17:46:00 2006 Input: 5-(a/b)/(15/b) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.1.13' ************** SAGE ***************** Host 65.1.131.136 (65.1.131.136) Time: Mon Jul 17 17:45:52 2006 Input: 5-(a/b)/(15/b)=x Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.254' ************** SAGE ***************** Host 140.254.94.94 (140.254.94.94) Time: Mon Jul 17 17:45:12 2006 Input: factor(2006) Output: 2 * 17 * 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.51.0' ************** SAGE ***************** Host 24.51.0.147 (24.51.0.147) Time: Mon Jul 17 16:26:36 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.5.93' ************** SAGE ***************** Host 68.5.93.7 (68.5.93.7) Time: Mon Jul 17 16:05:39 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.86s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.61.4' ************** SAGE ***************** Host 82.61.4.40 (82.61.4.40) Time: Mon Jul 17 15:04:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.93.' ************** SAGE ***************** Host 195.93.21.40 (195.93.21.40) Time: Mon Jul 17 14:20:18 2006 Input: 8! + (112 + 1)2 + 53 + 72 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(8)! + (ZZ(112) + ZZ(1))2 + ZZ(53) + ZZ(72) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.0.14' ************** SAGE ***************** Host 24.0.145.85 (24.0.145.85) Time: Mon Jul 17 14:20:01 2006 Input: 59 x 24 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(59) x ZZ(24) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.34.1' ************** SAGE ***************** Host 74.34.117.233 (74.34.117.233) Time: Mon Jul 17 13:37:48 2006 Input: hhio Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'hhio' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.6.5' ************** SAGE ***************** Host 129.6.54.202 (129.6.54.202) Time: Mon Jul 17 13:28:55 2006 Input: 5**5 Output: 3125 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.11.2' ************** SAGE ***************** Host 67.11.212.178 (67.11.212.178) Time: Mon Jul 17 13:10:49 2006 Input: 24.50 - 7.30 Output: 17.199999999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.11.2' ************** SAGE ***************** Host 67.11.212.178 (67.11.212.178) Time: Mon Jul 17 13:10:37 2006 Input: 24.50 - 7.30 Output: 17.199999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.11.2' ************** SAGE ***************** Host 67.11.212.178 (67.11.212.178) Time: Mon Jul 17 13:10:14 2006 Input: 24.50 * .30 Output: 7.3499999999999996 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.241.' ************** SAGE ***************** Host 69.241.180.200 (69.241.180.200) Time: Mon Jul 17 12:38:45 2006 Input: 35/4 Output: 35/4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.70.' ************** SAGE ***************** Host 129.70.6.104 (129.70.6.104) Time: Mon Jul 17 10:04:00 2006 Input: 9.9*10 + 15*10 + 15*10 + 15*5 + 15*5 Output: 549.00000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.70.' ************** SAGE ***************** Host 129.70.6.104 (129.70.6.104) Time: Mon Jul 17 10:03:53 2006 Input: 9.9*10 + 15*10 + 15*10 + 15*5 + 15*5 + Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('9.9')*ZZ(10) + ZZ(15)*ZZ(10) + ZZ(15)*ZZ(10) + ZZ(15)*ZZ(5) + ZZ(15)*ZZ(5) + ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.70.' ************** SAGE ***************** Host 129.70.6.104 (129.70.6.104) Time: Mon Jul 17 09:56:54 2006 Input: 2+2*3-8 Output: 0 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.70.' ************** SAGE ***************** Host 129.70.6.104 (129.70.6.104) Time: Mon Jul 17 09:56:43 2006 Input: 2+2*3 Output: 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.70.' ************** SAGE ***************** Host 129.70.6.104 (129.70.6.104) Time: Mon Jul 17 09:56:16 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '195.93.' ************** SAGE ***************** Host 195.93.60.40 (195.93.60.40) Time: Mon Jul 17 09:51:17 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.217.' ************** SAGE ***************** Host 68.217.188.196 (68.217.188.196) Time: Mon Jul 17 09:02:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.217.' ************** SAGE ***************** Host 68.217.188.196 (68.217.188.196) Time: Mon Jul 17 09:02:38 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.116.' ************** SAGE ***************** Host 24.116.20.242 (24.116.20.242) Time: Mon Jul 17 08:47:46 2006 Input: 919.82-171. Output: 748.82000000000005 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '160.127' ************** SAGE ***************** Host 160.127.130.244 (160.127.130.244) Time: Mon Jul 17 08:32:52 2006 Input: {ss(n)=sum(x=1,n,n/gcd(n,x))} ss(60) Output: Errors: ------------------------------------------------------------ File "", line 1 {ss(n)=sum(x=ZZ(1),n,n/gcd(n,x))} ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'ss' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:26:20 2006 Input: var x f=x^2 f.diff('x') Output: Errors: ------------------------------------------------------------ File "", line 1 var x ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:24:57 2006 Input: f=x^2 f.diff('x') Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:24:40 2006 Input: f='x'^2 f.diff('x') Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ /home/sage/integer.pyx in integer.Integer.__pow__() AttributeError: 'str' object has no attribute '__pow__' --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:24:02 2006 Input: f=x*0.5*(1-0.5)^(x-1) f.diff(x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:22:16 2006 Input: f='x*0.5*(1-0.5)^(x-1)' f.diff('x') Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'str' object has no attribute 'diff' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:21:46 2006 Input: f='x*0.5*(1-0.5)^(x-1)' Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:20:00 2006 Input: f=x*0.5*(1-0.5)^(x-1) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.165.' ************** SAGE ***************** Host 84.165.201.248 (84.165.201.248) Time: Mon Jul 17 08:19:45 2006 Input: f(x)=x*0.5*(1-0.5)^(x-1) Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.5.3.' ************** SAGE ***************** Host 24.5.3.178 (24.5.3.178) Time: Mon Jul 17 07:59:32 2006 Input: how fast is 3.7 miles in 10 minutes Output: Errors: ------------------------------------------------------------ File "", line 1 how fast is RealField(max(6,RR.precision()))('3.7') miles in ZZ(10) minutes ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.16 (134.93.142.16) Time: Mon Jul 17 07:25:16 2006 Input: ring A=0,(x,y,z),dp; Output: Errors: ------------------------------------------------------------ File "", line 1 ring A=ZZ(0),(x,y,z),dp; ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.93.' ************** SAGE ***************** Host 134.93.142.16 (134.93.142.16) Time: Mon Jul 17 07:24:42 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.138.' ************** SAGE ***************** Host 80.138.163.238 (80.138.163.238) Time: Mon Jul 17 04:11:35 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.04s, Wall time 0m1.05s). Exiting spawned Gap process. Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.138.' ************** SAGE ***************** Host 80.138.163.238 (80.138.163.238) Time: Mon Jul 17 04:10:58 2006 Input: print kash('NumberField(X^2 + 4*X - 15 + 15)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in Kash CODE: _s_[1]:=NumberField(X^2 + 4*X - 15 + 15);; Kash ERROR: _s_[1]:=NumberField(X^2 + 4*X - 15 + 15);; Argument 1 is not irreducible Error, KANT failure Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.82s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.138.' ************** SAGE ***************** Host 80.138.163.238 (80.138.163.238) Time: Mon Jul 17 04:10:15 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.13s, Wall time 0m1.81s). Exiting spawned Gap process. Exiting spawned GP/PARI interpreter process. Exiting spawned Kash process. Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.141.' ************** SAGE ***************** Host 71.141.7.214 (71.141.7.214) Time: Mon Jul 17 01:07:28 2006 Input: 1+1 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.106.' ************** SAGE ***************** Host 70.106.240.38 (70.106.240.38) Time: Sun Jul 16 20:43:14 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.54.1' ************** SAGE ***************** Host 69.54.115.254 (69.54.115.254) Time: Sun Jul 16 19:21:09 2006 Input: 20%20,000 Output: (0, 0) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.54.1' ************** SAGE ***************** Host 69.54.115.254 (69.54.115.254) Time: Sun Jul 16 19:20:20 2006 Input: 20% of 20,000 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(20)% of ZZ(20),ZZ(000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.254.' ************** SAGE ***************** Host 69.254.237.192 (69.254.237.192) Time: Sun Jul 16 19:19:27 2006 Input: 2x(x+4) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)x(x+ZZ(4)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.136.' ************** SAGE ***************** Host 70.136.153.167 (70.136.153.167) Time: Sun Jul 16 19:10:56 2006 Input: 30/100= /10 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(30)/ZZ(100)= /ZZ(10) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.68.' ************** SAGE ***************** Host 210.68.185.123 (210.68.185.123) Time: Sun Jul 16 18:47:05 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.70s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.68.' ************** SAGE ***************** Host 210.68.185.123 (210.68.185.123) Time: Sun Jul 16 18:46:39 2006 Input: (x+1)^2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.68.' ************** SAGE ***************** Host 210.68.185.123 (210.68.185.123) Time: Sun Jul 16 18:46:15 2006 Input: 1+2 Output: 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '144.136' ************** SAGE ***************** Host 144.136.148.49 (144.136.148.49) Time: Sun Jul 16 17:57:13 2006 Input: 0.14=(2*(1+g))/28.40)+g Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('0.14')=(ZZ(2)*(ZZ(1)+g))/RealField(max(13,RR.precision()))('28.40'))+g ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '144.136' ************** SAGE ***************** Host 144.136.148.49 (144.136.148.49) Time: Sun Jul 16 17:56:49 2006 Input: 0.14=(2*(1+g))/28.40)+g Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('0.14')=(ZZ(2)*(ZZ(1)+g))/RealField(max(13,RR.precision()))('28.40'))+g ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '144.136' ************** SAGE ***************** Host 144.136.148.49 (144.136.148.49) Time: Sun Jul 16 17:56:04 2006 Input: 0.14 = (2 * ( 1 + g )) / 28.40 ) + g Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('0.14') = (ZZ(2) * ( ZZ(1) + g )) / RealField(max(13,RR.precision()))('28.40') ) + g ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.4.78' ************** SAGE ***************** Host 65.4.78.160 (65.4.78.160) Time: Sun Jul 16 16:57:54 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '213.39.' ************** SAGE ***************** Host 213.39.225.238 (213.39.225.238) Time: Sun Jul 16 15:27:10 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.02s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '213.39.' ************** SAGE ***************** Host 213.39.225.238 (213.39.225.238) Time: Sun Jul 16 15:26:16 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.29s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 14:56:53 2006 Input: print gap('DeterminantMat([[1,1,0,0,0,0,0,1],[1,0,0,0,0,0,1,1],[0,0,0,0,0,1,1,1],[0,0,0,0,1,1,1,0],[0,0,0,1,1,1,0,0],[0,0,1,1,1,0,0,0],[0,1,1,1,0,0,0,0],[1,1,1,0,0,0,0,0]])') Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.18s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 14:49:58 2006 Input: print gap('DeterminantMat([[1,1,0,1,1,1,0,0],[1,0,1,1,1,0,0,1],[0,1,1,1,0,0,1,1],[1,1,1,0,0,1,1,0],[1,1,0,0,1,1,0,1],[1,0,0,1,1,0,1,1,],[0,0,1,1,0,1,1,1],[0,1,1,0,1,1,1,0]])') Output: 25 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.49s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.237.' ************** SAGE ***************** Host 68.237.44.80 (68.237.44.80) Time: Sun Jul 16 10:14:14 2006 Input: 2006-1984 Output: 22 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.237.' ************** SAGE ***************** Host 68.237.44.80 (68.237.44.80) Time: Sun Jul 16 10:09:02 2006 Input: 2006-1985 Output: 21 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.237.' ************** SAGE ***************** Host 68.237.44.80 (68.237.44.80) Time: Sun Jul 16 10:08:23 2006 Input: 2006-1986 Output: 20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '58.177.' ************** SAGE ***************** Host 58.177.16.108 (58.177.16.108) Time: Sun Jul 16 10:03:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.158.' ************** SAGE ***************** Host 81.158.191.46 (81.158.191.46) Time: Sun Jul 16 07:58:46 2006 Input: 111111111*111111111 Output: 12345678987654321 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.59.' ************** SAGE ***************** Host 216.59.255.107 (216.59.255.107) Time: Sun Jul 16 06:21:25 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField( X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Errors: ------------------------------------------------------------ File "", line 1 print kash('NumberField( ^ SyntaxError: EOL while scanning single-quoted string ------------------------------------------------------------ File "", line 1 X**ZZ(3) + ZZ(15)*X**ZZ(2) - ZZ(15)*X + ZZ(15))') ^ SyntaxError: invalid syntax Sym( [ 1 .. 7 ] ) log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 0m1.83s). Exiting spawned Gap process. Exiting spawned GP/PARI interpreter process. Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:30:14 2006 Input: k=FiniteField(2**8, 'x') x = k.gen() (x+x^3+x^5+x^6+x^7)^2 Output: x^7 + x^6 + x^5 + x^3 + x^2 + x Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:28:44 2006 Input: print gap('DeterminantMat([[0, 1, 0, 1, 1, 1, 1, 1], [0, 1, 1, 1, 0, 1, 0, 0], [1, 0, 0, 1, 0, 1, 1, 1], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 0, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 0, 0]])') Output: 3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.19s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:26:21 2006 Input: print gap('DeterminantMat([[0 1 0 1 1 1 1 1], [0 1 1 1 0 1 0 0], [1 0 0 1 0 1 1 1], [0 1 1 1 1 1 1 0], [0 1 1 0 0 1 1 1], [1 1 1 1 1 1 1 1], [1 1 1 1 0 0 1 0], [0 0 0 0 0 1 0 0]]);') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Syntax error: ] expected in /home/sage/.sage//tmp/18389//interface//tmp line 1 $sage1:=DeterminantMat([[0 1 0 1 1 1 1 1], [0 1 1 1 0 1 0 0], [1 0 0 1 0 1 1 1\ ], [0 1 1 1 1 1 1 0], [0 1 1 0 0 1 1 1], [1 1 1 1 1 1 1 1], [1 1 1 1 0 0 1 0],\ [0 0 0 0 0 1 0 0]]);;; ^ executing Read("/home/sage/.sage//tmp/18389//interface//tmp"); Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:25:45 2006 Input: print gap('DeterminantMat([[0 1 0 1 1 1 1 1], [0 1 1 1 0 1 0 0], [1 0 0 1 0 1 1 1], [0 1 1 1 1 1 1 0], [0 1 1 0 0 1 1 1], [1 1 1 1 1 1 1 1], [1 1 1 1 0 0 1 0], [0 0 0 0 0 1 0 0]])') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Syntax error: ] expected in /home/sage/.sage//tmp/18362//interface//tmp line 1 $sage1:=DeterminantMat([[0 1 0 1 1 1 1 1], [0 1 1 1 0 1 0 0], [1 0 0 1 0 1 1 1\ ], [0 1 1 1 1 1 1 0], [0 1 1 0 0 1 1 1], [1 1 1 1 1 1 1 1], [1 1 1 1 0 0 1 0],\ [0 0 0 0 0 1 0 0]]);; ^ executing Read("/home/sage/.sage//tmp/18362//interface//tmp"); Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.67s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:15:52 2006 Input: k = FiniteField(2**8, 'x') x=k.gen() x^8 (x+x^4+x^5+x^6+x^7)^2 Output: x^4 + x^3 + x^2 + 1 x^7 + x^5 + x^4 + x + 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:10:13 2006 Input: k = FiniteField(2**8, 'x') x=k.gen() (x+x^4+x^5+x^6+x^7)^2 Output: x^7 + x^5 + x^4 + x + 1 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:08:50 2006 Input: k = FiniteField(2**8, 'x') x=k.gen() (1+x+x^3+x^5)^2 Output: x^5 + x^4 + 1 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:06:44 2006 Input: k = FiniteField(2**8, 'x') k.polynomial() (1+x+x**3+x**5)**2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined x^8 + x^4 + x^3 + x^2 + 1 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:06:14 2006 Input: k = FiniteField(2**8, 'x') k.polynomial() (1+x+x^3+x^5)^2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined x^8 + x^4 + x^3 + x^2 + 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:05:26 2006 Input: k = FiniteField(2**8, 'x') k.polynomial() Output: x^8 + x^4 + x^3 + x^2 + 1 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sun Jul 16 04:04:35 2006 Input: k = FiniteField(8, 'x') k.polynomial() Output: x^3 + x + 1 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.74s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.175.' ************** SAGE ***************** Host 24.175.221.215 (24.175.221.215) Time: Sun Jul 16 00:57:08 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.175.' ************** SAGE ***************** Host 24.175.221.215 (24.175.221.215) Time: Sun Jul 16 00:57:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.153.' ************** SAGE ***************** Host 69.153.130.47 (69.153.130.47) Time: Sun Jul 16 00:24:51 2006 Input: 27*5 Output: 135 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.153.' ************** SAGE ***************** Host 69.153.130.47 (69.153.130.47) Time: Sun Jul 16 00:24:14 2006 Input: 18*8/100 Output: 36/25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.153.' ************** SAGE ***************** Host 69.153.130.47 (69.153.130.47) Time: Sun Jul 16 00:23:34 2006 Input: 25*8/100 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.153.' ************** SAGE ***************** Host 69.153.130.47 (69.153.130.47) Time: Sun Jul 16 00:23:17 2006 Input: 25*8/100 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.153.' ************** SAGE ***************** Host 69.153.130.47 (69.153.130.47) Time: Sun Jul 16 00:22:08 2006 Input: 22+1 Output: 23 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.153.' ************** SAGE ***************** Host 69.153.130.47 (69.153.130.47) Time: Sun Jul 16 00:22:00 2006 Input: 22 Output: 22 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '220.214' ************** SAGE ***************** Host 220.214.10.216 (220.214.10.216) Time: Sat Jul 15 20:47:32 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '220.214' ************** SAGE ***************** Host 220.214.10.216 (220.214.10.216) Time: Sat Jul 15 20:47:27 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.208' ************** SAGE ***************** Host 199.208.201.66 (199.208.201.66) Time: Sat Jul 15 19:05:34 2006 Input: 3+3 Output: 6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.38.2' ************** SAGE ***************** Host 68.38.238.116 (68.38.238.116) Time: Sat Jul 15 16:53:06 2006 Input: 36x+8x^3+4x^2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(36)x+ZZ(8)x**ZZ(3)+ZZ(4)x**ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.38.2' ************** SAGE ***************** Host 68.38.238.116 (68.38.238.116) Time: Sat Jul 15 16:52:52 2006 Input: factor(36x+8x^3+4x^2) Output: Errors: ------------------------------------------------------------ File "", line 1 factor(ZZ(36)x+ZZ(8)x**ZZ(3)+ZZ(4)x**ZZ(2)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.237.' ************** SAGE ***************** Host 74.237.92.222 (74.237.92.222) Time: Sat Jul 15 16:51:35 2006 Input: 2x > -6 and x - 4 < 3 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)x > -ZZ(6) and x - ZZ(4) < ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:21:49 2006 Input: 7*7 Output: 49 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:21:23 2006 Input: (2x + 1)(x - 2) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(2)x + ZZ(1))(x - ZZ(2)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:13:57 2006 Input: 3x^2 (4x^2 - 2x + 3) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x**ZZ(2) (ZZ(4)x**ZZ(2) - ZZ(2)x + ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:11:16 2006 Input: (3x^2 + 6x - 8) + (-5x^2 - 8x + 4) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(3)x**ZZ(2) + ZZ(6)x - ZZ(8)) + (-ZZ(5)x**ZZ(2) - ZZ(8)x + ZZ(4)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:10:48 2006 Input: 2(4s - 3t) + 7s + 5t Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)(ZZ(4)s - ZZ(3)t) + ZZ(7)s + ZZ(5)t ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:10:23 2006 Input: -2(3x - 7) Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(2)(ZZ(3)x - ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:10:18 2006 Input: -2(3x - 7) Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(2)(ZZ(3)x - ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:09:53 2006 Input: -2(3x - 7) Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(2)(ZZ(3)x - ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:09:32 2006 Input: 2(3x + 4) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)(ZZ(3)x + ZZ(4)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:08:55 2006 Input: 3x - 4(x-3) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x - ZZ(4)(x-ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:08:21 2006 Input: 14/3 Output: 14/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:02:59 2006 Input: -2.5-1.4 Output: -3.8999999999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 16:02:13 2006 Input: -1.4-2.5 Output: -3.8999999999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.229.' ************** SAGE ***************** Host 70.229.210.180 (70.229.210.180) Time: Sat Jul 15 16:00:00 2006 Input: 1/4 + 1/16 + 1/64 + 1/256 Output: 85/256 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.229.' ************** SAGE ***************** Host 70.229.210.180 (70.229.210.180) Time: Sat Jul 15 15:59:40 2006 Input: 1+2 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:58:26 2006 Input: -4/7*5/2 Output: -10/7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:57:17 2006 Input: 20/35*14/35 Output: 8/35 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:56:25 2006 Input: (20/35) / (14/35) Output: 10/7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:55:59 2006 Input: 20/35 / 14/35 Output: 2/1715 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:55:45 2006 Input: 20/35/14/35 Output: 2/1715 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:55:01 2006 Input: 2.5 = -1.4 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:54:52 2006 Input: + 2.5 = -1.4 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:53:59 2006 Input: (-4/7)x = 2/5 Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(4)/ZZ(7))x = ZZ(2)/ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:53:27 2006 Input: 23 = x - 10 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:52:35 2006 Input: 98/35*15/35 Output: 6/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:52:02 2006 Input: x: 23 = x - 10 Output: Errors: ------------------------------------------------------------ File "", line 1 x: ZZ(23) = x - ZZ(10) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:50:28 2006 Input: (-2 4/5) * (-3/7) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2) ZZ(4)/ZZ(5)) * (-ZZ(3)/ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:50:08 2006 Input: (-2 4/5) * (-3/7) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2) ZZ(4)/ZZ(5)) * (-ZZ(3)/ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:49:50 2006 Input: (2/5)^2 / (1/5) + (2 - 4) / (8 + 2) * (-3) Output: 7/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:49:26 2006 Input: -2^2 + (6 - 9) / (-3) + 4 * (-2) Output: -11 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:48:59 2006 Input: 3^2 * (6 - 4) + 8 Output: 26 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:48:29 2006 Input: 16/40 Output: 2/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:47:44 2006 Input: 3/4+1/2+-7/10 Output: 11/20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:46:29 2006 Input: 3*-2*5 Output: -30 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:45:19 2006 Input: -3--7+5 Output: 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:44:29 2006 Input: 783+472-322 Output: 933 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 15:43:39 2006 Input: x + y - z when: x = 783, y = 472, z = 322 Output: Errors: ------------------------------------------------------------ File "", line 1 x + y - z when: x = ZZ(783), y = ZZ(472), z = ZZ(322) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sat Jul 15 14:47:42 2006 Input: (5/4(5-8)6)*56(2/5-98) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(5)/ZZ(4)(ZZ(5)-ZZ(8))6)*ZZ(56)(ZZ(2)/ZZ(5)-ZZ(98)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sat Jul 15 14:46:10 2006 Input: 3^2 * (6 - 4) + 8 Output: 26 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 14:46:06 2006 Input: 6-4 Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 14:45:53 2006 Input: 2+8 Output: 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sat Jul 15 14:45:53 2006 Input: Simplify: 3^2 * (6 - 4) + 8 Output: Errors: ------------------------------------------------------------ File "", line 1 Simplify: ZZ(3)**ZZ(2) * (ZZ(6) - ZZ(4)) + ZZ(8) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 14:44:05 2006 Input: 3^2 * (6 - 4) + 8 Output: 26 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Sat Jul 15 14:43:22 2006 Input: 3^2 * (6 - 4) + 8 Output: 26 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.15s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.5.16' ************** SAGE ***************** Host 80.5.160.5 (80.5.160.5) Time: Sat Jul 15 12:05:09 2006 Input: int(tan(x)) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.5.16' ************** SAGE ***************** Host 80.5.160.5 (80.5.160.5) Time: Sat Jul 15 12:04:48 2006 Input: integrate(tan(x)) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.5.16' ************** SAGE ***************** Host 80.5.160.5 (80.5.160.5) Time: Sat Jul 15 12:03:57 2006 Input: maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.00s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.17.2' ************** SAGE ***************** Host 68.17.219.109 (68.17.219.109) Time: Sat Jul 15 09:52:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '206.162' ************** SAGE ***************** Host 206.162.217.11 (206.162.217.11) Time: Sat Jul 15 08:52:42 2006 Input: 5*3 Output: 15 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.119.' ************** SAGE ***************** Host 24.119.61.4 (24.119.61.4) Time: Sat Jul 15 07:27:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '165.123' ************** SAGE ***************** Host 165.123.243.168 (165.123.243.168) Time: Fri Jul 14 18:32:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.105.' ************** SAGE ***************** Host 71.105.206.93 (71.105.206.93) Time: Fri Jul 14 18:01:44 2006 Input: 2z^2-13z-24 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)z**ZZ(2)-ZZ(13)z-ZZ(24) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.177.' ************** SAGE ***************** Host 72.177.47.220 (72.177.47.220) Time: Fri Jul 14 17:54:33 2006 Input: 365 (3) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.231.' ************** SAGE ***************** Host 70.231.174.162 (70.231.174.162) Time: Fri Jul 14 15:14:16 2006 Input: 2406.20+1000+145.47 Output: 3551.6699999999996 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.121.' ************** SAGE ***************** Host 68.121.146.179 (68.121.146.179) Time: Fri Jul 14 14:11:34 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.90s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Fri Jul 14 13:40:01 2006 Input: p=29 q=103 n=p*q a=41 m=mod(a^(n-1), n) que=(a^(q-p), n) mod(m,p) mod(q,p) Output: 28 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.120.' ************** SAGE ***************** Host 69.120.87.24 (69.120.87.24) Time: Fri Jul 14 12:58:06 2006 Input: 20% of 680 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(20)% of ZZ(680) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.242.' ************** SAGE ***************** Host 70.242.126.117 (70.242.126.117) Time: Fri Jul 14 11:16:22 2006 Input: (-5)(-7) + (-16) = Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(5))(-ZZ(7)) + (-ZZ(16)) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.157' ************** SAGE ***************** Host 134.157.51.244 (134.157.51.244) Time: Fri Jul 14 08:40:51 2006 Input: print magma(WeberPolynomial(-23)) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'WeberPolynomial' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '134.157' ************** SAGE ***************** Host 134.157.51.244 (134.157.51.244) Time: Fri Jul 14 08:40:13 2006 Input: WeberPolynomial(-23) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'WeberPolynomial' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.231.' ************** SAGE ***************** Host 69.231.134.232 (69.231.134.232) Time: Fri Jul 14 07:32:26 2006 Input: 1/4% + 1/4% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1)/ZZ(4)% + ZZ(1)/ZZ(4)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.81.7' ************** SAGE ***************** Host 67.81.74.206 (67.81.74.206) Time: Fri Jul 14 07:30:26 2006 Input: 3+5 Output: 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.81.7' ************** SAGE ***************** Host 67.81.74.206 (67.81.74.206) Time: Fri Jul 14 07:30:25 2006 Input: 3+5 Output: 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.83.4' ************** SAGE ***************** Host 64.83.40.98 (64.83.40.98) Time: Fri Jul 14 06:44:45 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m2.48s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.162.' ************** SAGE ***************** Host 63.162.143.21 (63.162.143.21) Time: Fri Jul 14 06:09:08 2006 Input: 25*18 Output: 450 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '217.86.' ************** SAGE ***************** Host 217.86.133.67 (217.86.133.67) Time: Fri Jul 14 06:05:36 2006 Input: dvaebwg ieusmat erstasx suzegty icunmaz ehtoaua Output: Errors: ------------------------------------------------------------ File "", line 1 dvaebwg ieusmat erstasx suzegty icunmaz ehtoaua ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.157' ************** SAGE ***************** Host 141.157.19.104 (141.157.19.104) Time: Fri Jul 14 06:01:37 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '202.7.1' ************** SAGE ***************** Host 202.7.166.169 (202.7.166.169) Time: Fri Jul 14 04:38:21 2006 Input: maxima('x*sin(x^2)') Output: x*sin(x^2) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.53s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '202.7.1' ************** SAGE ***************** Host 202.7.166.169 (202.7.166.169) Time: Fri Jul 14 04:36:26 2006 Input: integral(x,x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '202.7.1' ************** SAGE ***************** Host 202.7.166.169 (202.7.166.169) Time: Fri Jul 14 04:36:15 2006 Input: integrate(x,x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '202.7.1' ************** SAGE ***************** Host 202.7.166.169 (202.7.166.169) Time: Fri Jul 14 04:36:00 2006 Input: "integrate(x,x)" Output: 'integrate(x,x)' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '202.7.1' ************** SAGE ***************** Host 202.7.166.169 (202.7.166.169) Time: Fri Jul 14 04:35:44 2006 Input: "integral(x,x)" Output: 'integral(x,x)' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '202.7.1' ************** SAGE ***************** Host 202.7.166.169 (202.7.166.169) Time: Fri Jul 14 04:35:18 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.156.' ************** SAGE ***************** Host 70.156.112.148 (70.156.112.148) Time: Fri Jul 14 02:29:17 2006 Input: 15 divided by 2000 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(15) divided by ZZ(2000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.214' ************** SAGE ***************** Host 208.214.137.194 (208.214.137.194) Time: Fri Jul 14 00:01:42 2006 Input: 542.12-539.13 Output: 2.9900000000000091 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.214' ************** SAGE ***************** Host 208.214.137.194 (208.214.137.194) Time: Thu Jul 13 23:59:57 2006 Input: 25+100+17.34+5.10+1.94+9.11+2.38+4.48+10.10+5.75+18.63+4.98+4.76+8.35+4.20+40.00+8.77+6.59+25+4.20+18+4.06+5.20+2.50+4.70+4.06+6.14+25+3.42+2.16+2+4.45+25+4.34+4.28+4.17+60+1.73+4.91+3.22+18.55+5.54+12.43+6.59 Output: 539.12999999999988 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.214' ************** SAGE ***************** Host 208.214.137.194 (208.214.137.194) Time: Thu Jul 13 23:48:40 2006 Input: 99+100+25+40+40+25+5+4.06+4.06+10+25+20+20+51+25+50+2 Output: 545.12000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.10s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '208.214' ************** SAGE ***************** Host 208.214.137.194 (208.214.137.194) Time: Thu Jul 13 23:46:32 2006 Input: 500+600 Output: 1100 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.28.' ************** SAGE ***************** Host 203.28.159.170 (203.28.159.170) Time: Thu Jul 13 23:44:05 2006 Input: x+y=3 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.128.' ************** SAGE ***************** Host 24.128.232.126 (24.128.232.126) Time: Thu Jul 13 16:05:31 2006 Input: 251 - 121 + 441 - 340 + 130 - 113 + 409 - 253 + 130 - 181 + 297 - 149 + 081 - 088 + 467 - 059 + 306 - 229 + 345 - 351 + 117 - 047 + 353 - 216 + 401 - 147 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(251) - ZZ(121) + ZZ(441) - ZZ(340) + ZZ(130) - ZZ(113) + ZZ(409) - ZZ(253) + ZZ(130) - ZZ(181) + ZZ(297) - ZZ(149) + ZZ(081) - ZZ(088) + ZZ(467) - ZZ(059) + ZZ(306) - ZZ(229) + ZZ(345) - ZZ(351) + ZZ(117) - ZZ(047) + ZZ(353) - ZZ(216) + ZZ(401) - ZZ(147) ^ SyntaxError: invalid token Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.112.' ************** SAGE ***************** Host 68.112.125.227 (68.112.125.227) Time: Thu Jul 13 15:38:50 2006 Input: Hi and how are you today Output: Errors: ------------------------------------------------------------ File "", line 1 Hi and how are you today ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.112.' ************** SAGE ***************** Host 68.112.125.227 (68.112.125.227) Time: Thu Jul 13 15:38:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '60.228.' ************** SAGE ***************** Host 60.228.127.183 (60.228.127.183) Time: Thu Jul 13 15:34:19 2006 Input: 4 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.137' ************** SAGE ***************** Host 129.137.239.226 (129.137.239.226) Time: Thu Jul 13 14:30:18 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Thu Jul 13 13:39:16 2006 Input: R = PolynomialRing(QQ, 2, 'xy', order='lp') x,y = R.gens() I = (x^3 + y^3 + 1, x^2 + y^4 - 2)*R B = I.groebner_basis(); B Output: [-7 + 2*y^3 + 12*y^4 + y^6 - 6*y^8 + y^12, 14*y - 7*y^2 + 8*y^3 + 2*y^4 - 15*y^5 + 8*y^6 - 4*y^7 - y^8 + 4*y^9 - 2*y^10 + y^11 + 7*x] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.60s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Thu Jul 13 13:38:59 2006 Input: R = PolynomialRing(QQ, 4, 'xy', order='lp'); x,y = R.gens(); I = (x^3 + y^3 + 1, x^2 + y^4 - 2)*R; B = I.groebner_basis(); B Output: Errors: --------------------------------------------------------------------------- exceptions.ValueError Traceback (most recent call last) /home/sage/ ValueError: too many values to unpack --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'ComplexNumber' object has no attribute 'groebner_basis' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Thu Jul 13 13:37:51 2006 Input: R = PolynomialRing(QQ, 4, 'xy', order='lp') x,y = R.gens() I = (x^3 + y^3 + 1, x^2 + y^4 -2)*R B = I.groebner_basis(); B Output: Errors: --------------------------------------------------------------------------- exceptions.ValueError Traceback (most recent call last) /home/sage/ ValueError: too many values to unpack --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'ComplexNumber' object has no attribute 'groebner_basis' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.212' ************** SAGE ***************** Host 131.212.66.246 (131.212.66.246) Time: Thu Jul 13 13:35:36 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.255.' ************** SAGE ***************** Host 70.255.191.218 (70.255.191.218) Time: Thu Jul 13 12:39:38 2006 Input: .99*8.25% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('.99')*RealField(max(9,RR.precision()))('8.25')% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Thu Jul 13 12:34:19 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jul 13 12:06:38 2006 Input: sqrt(9*t^4 + 9 + 4*t^2) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jul 13 12:06:23 2006 Input: sqrt(9t^4 + 9 + 4t^2) Output: Errors: ------------------------------------------------------------ File "", line 1 sqrt(ZZ(9)t**ZZ(4) + ZZ(9) + ZZ(4)t**ZZ(2)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.3.12' ************** SAGE ***************** Host 71.3.123.145 (71.3.123.145) Time: Thu Jul 13 11:41:06 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '58.69.2' ************** SAGE ***************** Host 58.69.213.123 (58.69.213.123) Time: Thu Jul 13 03:41:42 2006 Input: 5000 / 4 Output: 1250 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.100' ************** SAGE ***************** Host 192.100.124.219 (192.100.124.219) Time: Thu Jul 13 03:04:04 2006 Input: 400 * 365 * 24 * 3600 Output: 12614400000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.100' ************** SAGE ***************** Host 192.100.124.219 (192.100.124.219) Time: Thu Jul 13 03:04:03 2006 Input: 400 * 365 * 24 * 3600 Output: 12614400000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '89.57.2' ************** SAGE ***************** Host 89.57.204.89 (89.57.204.89) Time: Wed Jul 12 23:31:24 2006 Input: 2-2 Output: 0 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.82.' ************** SAGE ***************** Host 137.82.188.68 (137.82.188.68) Time: Wed Jul 12 21:51:40 2006 Input: factor (813920471395793875981074098312758937409123871932) Output: 2^2 * 3 * 139 * 439 * 479 * 118269313 * 19620669291651032127963049537783 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.82.' ************** SAGE ***************** Host 137.82.188.68 (137.82.188.68) Time: Wed Jul 12 21:47:01 2006 Input: 2+2 factor (90) Output: 4 2 * 3^2 * 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.82.' ************** SAGE ***************** Host 137.82.188.68 (137.82.188.68) Time: Wed Jul 12 21:46:37 2006 Input: 2+2 factor 90 Output: Errors: ------------------------------------------------------------ File "", line 1 factor ZZ(90) ^ SyntaxError: invalid syntax 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.82.' ************** SAGE ***************** Host 137.82.188.68 (137.82.188.68) Time: Wed Jul 12 21:45:46 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.48.1' ************** SAGE ***************** Host 24.48.127.53 (24.48.127.53) Time: Wed Jul 12 20:19:59 2006 Input: 2^670 Output: 4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.48.1' ************** SAGE ***************** Host 24.48.127.53 (24.48.127.53) Time: Wed Jul 12 20:19:47 2006 Input: 2^70 Output: 1180591620717411303424 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.48.1' ************** SAGE ***************** Host 24.48.127.53 (24.48.127.53) Time: Wed Jul 12 20:15:48 2006 Input: 2^60 Output: 1152921504606846976 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.48.1' ************** SAGE ***************** Host 24.48.127.53 (24.48.127.53) Time: Wed Jul 12 20:14:59 2006 Input: 2^50 Output: 1125899906842624 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.48.1' ************** SAGE ***************** Host 24.48.127.53 (24.48.127.53) Time: Wed Jul 12 20:14:36 2006 Input: 2^40 Output: 1099511627776 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.48.1' ************** SAGE ***************** Host 24.48.127.53 (24.48.127.53) Time: Wed Jul 12 20:06:04 2006 Input: 2^20100 Output: 504560032572894375463941596032336160017171738912864817028544653779013909202241318444687129528013976887479933658361586253071277637317930216066140381843918782166438819034118471727974986376112486958056996757747422199568794123452700721826702865037762735549719759252504935841591472629394289862798586946694787389804301668879930691281548359508350187576910572550131102608744299394453527652433382286739063095351150403523845400590029894687157335480176617950005832027006256802518539041408278173860708271710781094712554298770121009260734753751008696225980269629913023066736264345842437863552813205198326040412703082539625533250696219082524899445899821285049675946733005361012711646528632594314470246618721534417472475203642515668288605066800200018747060641426457708542467058613241798261419552119101980138527562734590895149257415962192563161114515327761664087179834238465797792086513051252298863696094997174378800176909973997114079259746401529497698309549447289593362230216964328673129339956602579822296434460916712873818807821030594392240413563910430667771894789840357243879185024375606141333609747594199500471736837358212345193283628673190660152026297182332370939246745408477456246993440225901185455038377567024098973713396232285209746854705154717757252051289293194953453240453049397016169814668104983481247298460142120015172985860375751785911442699750496832059717802751704978991132953497449198975596048276613637338139563678807769302543825493879027452505987346154606253919922589016311588896521106260472659536639729586033965729307588116345666465743386521886401968708330792381492269069244792180551703743433724252579478331702203817129080126036685825380109756030234203196616223371301375588028701264885434677569320950025296464700728000169849304344754737640383296296793840204160947052168071728363833016703797001794142554187375091726258575639078020844170683259856599657039478260133868166770392469403510167817648742301497303840963631876613425243392821698623400968390352449426603083921021359856752535451348842002281923789241170546225150321091659509349537054123034949603611805334413561237365688002408136188316502551270539602073749597749750607424137041584167499925375223822423263013068663027399793954432923759089345743644904859087420495780395321536687521146231569781390868304660636795034289241589081262957443490625411470429597247141230324328258438631809101955915354570724809896969675450222801271350277776047764777908399222086428149537504029541820539779035359951287838870599954969049378833585537427004147826084118548792191034575128220718405958977867018566862319695276229807322433609713523822812693727930437911255611612643502388483594284901281972732563668222879096959378012776490599056115271818358337772167604695500813029106234966553281497519213407229933857540323003876984078118445452474763888122756370727813826191749837761924442358208247749850023067559078426462530354509886755115533110390829902179190468945813483581073724248265548818214409191591557882710399288043206816393345060354498360632071484493018465550902155423032977397236926113929787213503657765314819620091088405183326875361211942348074785964350292620733835821176460706266823414672479306658763127752319142492035107030826495333933315027424605364288301141275827663906567116881063947276278987231998209282180725358409579911245009621155581170607958818320990070644899247538466481786951640008235271160337636525089278334014133866301196608594779157588745038697750058077049253527187367476153890795759269233887320098143803257528413224176649850761534464095510346651832573179623158173385810506766678554097638330792405629452028802158974109609591714972544655840163092845489531609241042878137835728275791923745816998572435391873459532046532442694917555667820579125537501861726712179425255702694357358503184527054082991425861392128847444973471901601378404194052470395183962741146452303996517847513395369655782580523508813546833814650064457048706912704603464975750489075706408582056363119675064071804580954914368842879343108948496952317492415946321703703230907477122065064755692533018789963651530058385773562220560563090153780856286764728881037486300365506530567718047452433561939929516374654055024270433491358064257649005898378205452249865865075092339497058581052412397881582011969228877584904378848529323849430963578528468680048273145755569627169424695260812022089918983177038899603863630222342822859809610153359027258784704803574254010125075194567277450087956487188515858571379040201637916162854766647244742026182127056675010280942228128339173008994058391104619615918532519310724925080940979420384824791211727725922911055215410441720330007281682637795329373462283934668652736397797842177246960327923957102652351896471005699573473219914345528561202685515778440792841942208015759773642023803522642892349322328122509997367290023985615538788322920369542996134468029282460592199842603692863227440890049720185021033568507512455945580523839021979991578060422930535004709072029786729408848402870666265859544569834132331034952804602986746268651256453906106915792705500520667940910917258510220425892034109924661267568477317674619620208585693567155397951253293126361230692780175170496914604298290112930489819090271353972450021141811950483265508881398158835729275508287833977938697072866989761789024794395522593011182756458764834579487779758257703137227303259011875882681468972898973542786936344896143571425928835603514085297631862762281694853089690058366822161806573621642780926844489234549137636304508299928575502337178321772555196881876674292971429886378857453244792393308356910841643491653083731303065422235159345348627761944838303596081138113499522361709731770229803023381708468563355998600809926540701236102373276209666653184120118893382218875940655293277957600583339656379698679560434088467717030250741940575408209615962878679947656074741331308277475635323123520796476680693353551611957954175085844733463479672273495463553374020058171887200400578313899228239911874939871096958386843469802005920422361464962401277703638409703101577260406844093183883714396384093257753597349531770725598136549609913610906831154289096929521805721522405376 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.48.1' ************** SAGE ***************** Host 24.48.127.53 (24.48.127.53) Time: Wed Jul 12 20:03:23 2006 Input: 2^20100 Output: 504560032572894375463941596032336160017171738912864817028544653779013909202241318444687129528013976887479933658361586253071277637317930216066140381843918782166438819034118471727974986376112486958056996757747422199568794123452700721826702865037762735549719759252504935841591472629394289862798586946694787389804301668879930691281548359508350187576910572550131102608744299394453527652433382286739063095351150403523845400590029894687157335480176617950005832027006256802518539041408278173860708271710781094712554298770121009260734753751008696225980269629913023066736264345842437863552813205198326040412703082539625533250696219082524899445899821285049675946733005361012711646528632594314470246618721534417472475203642515668288605066800200018747060641426457708542467058613241798261419552119101980138527562734590895149257415962192563161114515327761664087179834238465797792086513051252298863696094997174378800176909973997114079259746401529497698309549447289593362230216964328673129339956602579822296434460916712873818807821030594392240413563910430667771894789840357243879185024375606141333609747594199500471736837358212345193283628673190660152026297182332370939246745408477456246993440225901185455038377567024098973713396232285209746854705154717757252051289293194953453240453049397016169814668104983481247298460142120015172985860375751785911442699750496832059717802751704978991132953497449198975596048276613637338139563678807769302543825493879027452505987346154606253919922589016311588896521106260472659536639729586033965729307588116345666465743386521886401968708330792381492269069244792180551703743433724252579478331702203817129080126036685825380109756030234203196616223371301375588028701264885434677569320950025296464700728000169849304344754737640383296296793840204160947052168071728363833016703797001794142554187375091726258575639078020844170683259856599657039478260133868166770392469403510167817648742301497303840963631876613425243392821698623400968390352449426603083921021359856752535451348842002281923789241170546225150321091659509349537054123034949603611805334413561237365688002408136188316502551270539602073749597749750607424137041584167499925375223822423263013068663027399793954432923759089345743644904859087420495780395321536687521146231569781390868304660636795034289241589081262957443490625411470429597247141230324328258438631809101955915354570724809896969675450222801271350277776047764777908399222086428149537504029541820539779035359951287838870599954969049378833585537427004147826084118548792191034575128220718405958977867018566862319695276229807322433609713523822812693727930437911255611612643502388483594284901281972732563668222879096959378012776490599056115271818358337772167604695500813029106234966553281497519213407229933857540323003876984078118445452474763888122756370727813826191749837761924442358208247749850023067559078426462530354509886755115533110390829902179190468945813483581073724248265548818214409191591557882710399288043206816393345060354498360632071484493018465550902155423032977397236926113929787213503657765314819620091088405183326875361211942348074785964350292620733835821176460706266823414672479306658763127752319142492035107030826495333933315027424605364288301141275827663906567116881063947276278987231998209282180725358409579911245009621155581170607958818320990070644899247538466481786951640008235271160337636525089278334014133866301196608594779157588745038697750058077049253527187367476153890795759269233887320098143803257528413224176649850761534464095510346651832573179623158173385810506766678554097638330792405629452028802158974109609591714972544655840163092845489531609241042878137835728275791923745816998572435391873459532046532442694917555667820579125537501861726712179425255702694357358503184527054082991425861392128847444973471901601378404194052470395183962741146452303996517847513395369655782580523508813546833814650064457048706912704603464975750489075706408582056363119675064071804580954914368842879343108948496952317492415946321703703230907477122065064755692533018789963651530058385773562220560563090153780856286764728881037486300365506530567718047452433561939929516374654055024270433491358064257649005898378205452249865865075092339497058581052412397881582011969228877584904378848529323849430963578528468680048273145755569627169424695260812022089918983177038899603863630222342822859809610153359027258784704803574254010125075194567277450087956487188515858571379040201637916162854766647244742026182127056675010280942228128339173008994058391104619615918532519310724925080940979420384824791211727725922911055215410441720330007281682637795329373462283934668652736397797842177246960327923957102652351896471005699573473219914345528561202685515778440792841942208015759773642023803522642892349322328122509997367290023985615538788322920369542996134468029282460592199842603692863227440890049720185021033568507512455945580523839021979991578060422930535004709072029786729408848402870666265859544569834132331034952804602986746268651256453906106915792705500520667940910917258510220425892034109924661267568477317674619620208585693567155397951253293126361230692780175170496914604298290112930489819090271353972450021141811950483265508881398158835729275508287833977938697072866989761789024794395522593011182756458764834579487779758257703137227303259011875882681468972898973542786936344896143571425928835603514085297631862762281694853089690058366822161806573621642780926844489234549137636304508299928575502337178321772555196881876674292971429886378857453244792393308356910841643491653083731303065422235159345348627761944838303596081138113499522361709731770229803023381708468563355998600809926540701236102373276209666653184120118893382218875940655293277957600583339656379698679560434088467717030250741940575408209615962878679947656074741331308277475635323123520796476680693353551611957954175085844733463479672273495463553374020058171887200400578313899228239911874939871096958386843469802005920422361464962401277703638409703101577260406844093183883714396384093257753597349531770725598136549609913610906831154289096929521805721522405376 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.19s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.189' ************** SAGE ***************** Host 128.189.132.230 (128.189.132.230) Time: Wed Jul 12 18:17:42 2006 Input: n=1 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.189' ************** SAGE ***************** Host 128.189.132.230 (128.189.132.230) Time: Wed Jul 12 18:17:30 2006 Input: n.? Output: Object `n.` not found. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.189' ************** SAGE ***************** Host 128.189.132.230 (128.189.132.230) Time: Wed Jul 12 18:17:18 2006 Input: n. Output: Errors: ------------------------------------------------------------ File "", line 1 n. ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.253.' ************** SAGE ***************** Host 24.253.104.194 (24.253.104.194) Time: Wed Jul 12 17:35:53 2006 Input: x^2=x4+5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.253.' ************** SAGE ***************** Host 24.253.104.194 (24.253.104.194) Time: Wed Jul 12 17:35:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.253.' ************** SAGE ***************** Host 24.253.104.194 (24.253.104.194) Time: Wed Jul 12 17:35:15 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.210.' ************** SAGE ***************** Host 24.210.169.118 (24.210.169.118) Time: Wed Jul 12 15:34:06 2006 Input: 167-25= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(167)-ZZ(25)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.230.' ************** SAGE ***************** Host 71.230.81.98 (71.230.81.98) Time: Wed Jul 12 12:32:27 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '198.30.' ************** SAGE ***************** Host 198.30.76.52 (198.30.76.52) Time: Wed Jul 12 11:29:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.36.1' ************** SAGE ***************** Host 68.36.137.236 (68.36.137.236) Time: Wed Jul 12 11:23:45 2006 Input: 16/.04= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(16)/RealField(max(6,RR.precision()))('.04')= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '222.126' ************** SAGE ***************** Host 222.126.74.30 (222.126.74.30) Time: Wed Jul 12 07:08:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.163.' ************** SAGE ***************** Host 80.163.107.250 (80.163.107.250) Time: Wed Jul 12 01:30:41 2006 Input: x^2+5*x+7 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '222.9.1' ************** SAGE ***************** Host 222.9.108.250 (222.9.108.250) Time: Wed Jul 12 01:22:29 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.12s, Wall time 0m3.97s). Exiting spawned Gap process. Exiting spawned GP/PARI interpreter process. Exiting spawned Kash process. Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '12.150.' ************** SAGE ***************** Host 12.150.224.193 (12.150.224.193) Time: Wed Jul 12 01:11:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.79.7' ************** SAGE ***************** Host 67.79.74.113 (67.79.74.113) Time: Tue Jul 11 20:45:03 2006 Input: log 38 Output: Errors: ------------------------------------------------------------ File "", line 1 log ZZ(38) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.230.' ************** SAGE ***************** Host 69.230.116.73 (69.230.116.73) Time: Tue Jul 11 19:49:05 2006 Input: 60~3.50 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(60)~RealField(max(9,RR.precision()))('3.50') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.230.' ************** SAGE ***************** Host 69.230.116.73 (69.230.116.73) Time: Tue Jul 11 19:48:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.53.9' ************** SAGE ***************** Host 71.53.93.81 (71.53.93.81) Time: Tue Jul 11 18:37:12 2006 Input: 5% ot a 1000 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)% ot a ZZ(1000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.41.5' ************** SAGE ***************** Host 66.41.51.64 (66.41.51.64) Time: Tue Jul 11 14:17:43 2006 Input: 2.5 acres=--------------- sq feet Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('2.5') acres=--------------- sq feet ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.155.' ************** SAGE ***************** Host 72.155.5.89 (72.155.5.89) Time: Tue Jul 11 13:31:04 2006 Input: 3052 Output: 3052 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.155.' ************** SAGE ***************** Host 72.155.5.89 (72.155.5.89) Time: Tue Jul 11 13:30:45 2006 Input: 3252 Output: 3252 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.155.' ************** SAGE ***************** Host 72.155.5.89 (72.155.5.89) Time: Tue Jul 11 13:30:18 2006 Input: 30 divided by 52 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(30) divided by ZZ(52) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.155.' ************** SAGE ***************** Host 72.155.5.89 (72.155.5.89) Time: Tue Jul 11 13:29:51 2006 Input: 32_52 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(32)_52 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.155.' ************** SAGE ***************** Host 72.155.5.89 (72.155.5.89) Time: Tue Jul 11 13:29:18 2006 Input: 30/52 Output: 15/26 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.155.' ************** SAGE ***************** Host 72.155.5.89 (72.155.5.89) Time: Tue Jul 11 13:28:30 2006 Input: 113-61 Output: 52 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.250.' ************** SAGE ***************** Host 70.250.79.49 (70.250.79.49) Time: Tue Jul 11 13:22:22 2006 Input: 9000(1.0175)^20 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.41.1' ************** SAGE ***************** Host 68.41.126.191 (68.41.126.191) Time: Tue Jul 11 12:21:18 2006 Input: 2+2= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)+ZZ(2)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.238.' ************** SAGE ***************** Host 24.238.91.60 (24.238.91.60) Time: Tue Jul 11 12:15:11 2006 Input: 4/151 Output: 4/151 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.48s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '201.102' ************** SAGE ***************** Host 201.102.27.93 (201.102.27.93) Time: Tue Jul 11 09:34:27 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.203' ************** SAGE ***************** Host 199.203.96.62 (199.203.96.62) Time: Tue Jul 11 07:18:14 2006 Input: 5! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '194.25.' ************** SAGE ***************** Host 194.25.97.226 (194.25.97.226) Time: Tue Jul 11 02:31:39 2006 Input: 0.8x197 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('0.8')x197 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.119' ************** SAGE ***************** Host 128.119.68.160 (128.119.68.160) Time: Mon Jul 10 22:31:40 2006 Input: factor(2^1024+1) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 4101 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '128.119' ************** SAGE ***************** Host 128.119.68.160 (128.119.68.160) Time: Mon Jul 10 22:30:57 2006 Input: 2^1024+1 Output: 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137217 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.182.' ************** SAGE ***************** Host 67.182.215.139 (67.182.215.139) Time: Mon Jul 10 19:03:20 2006 Input: 20.99+5.00 Output: 25.989999999999998 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.106.' ************** SAGE ***************** Host 68.106.131.65 (68.106.131.65) Time: Mon Jul 10 18:27:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.226.' ************** SAGE ***************** Host 74.226.77.57 (74.226.77.57) Time: Mon Jul 10 15:43:21 2006 Input: 9+2 Output: 11 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.155.' ************** SAGE ***************** Host 81.155.179.202 (81.155.179.202) Time: Mon Jul 10 13:15:56 2006 Input: -2x-11<7 Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(2)x-ZZ(11)", line 1 -ZZ(2)x-ZZ(11)", line 1 integrate(ZZ(1)+x**ZZ(2),x,ZZ(0),%pi) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.36.1' ************** SAGE ***************** Host 83.36.129.228 (83.36.129.228) Time: Mon Jul 10 12:46:45 2006 Input: integrate(1+x^2,x,0,%pi); Output: Errors: ------------------------------------------------------------ File "", line 1 integrate(ZZ(1)+x**ZZ(2),x,ZZ(0),%pi); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.36.1' ************** SAGE ***************** Host 83.36.129.228 (83.36.129.228) Time: Mon Jul 10 12:14:56 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:30:50 2006 Input: factor(55555555555555555555555555555555555555555555555555555555555555555555555) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 2375 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:30:02 2006 Input: factor (55555555555555555555555555555555555555555555555555555555555555555555555) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 2350 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:29:27 2006 Input: factor (5555555555555555555555555555555555555555555555555555555555555555555555) Output: 5 * 11 * 41 * 71 * 239 * 271 * 4649 * 9091 * 123551 * 909091 * 4147571 * 102598800232111471 * 265212793249617641 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.16s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:28:55 2006 Input: factor (455544455554555555555555555555555555555) Output: 5 * 61 * 1493588378867395264116575591985428051 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:28:33 2006 Input: factor (4555444555545555) Output: 3 * 5 * 7 * 383 * 113277248677 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:21:34 2006 Input: factor (8) Output: 2^3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:21:19 2006 Input: factor (8981) Output: 7 * 1283 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:21:07 2006 Input: factor (898) Output: 2 * 449 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:20:52 2006 Input: factor (8) Output: 2^3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:20:35 2006 Input: factor (234555445455455568890998765) Output: 5 * 37 * 73 * 167 * 893797 * 116357817776047 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:16:32 2006 Input: factor (2345) Output: 5 * 7 * 67 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:15:22 2006 Input: factor 607 Output: Errors: ------------------------------------------------------------ File "", line 1 factor ZZ(607) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:13:59 2006 Input: factor 1234 Output: Errors: ------------------------------------------------------------ File "", line 1 factor ZZ(1234) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.153' ************** SAGE ***************** Host 216.153.251.12 (216.153.251.12) Time: Mon Jul 10 11:13:19 2006 Input: factor 18 Output: Errors: ------------------------------------------------------------ File "", line 1 factor ZZ(18) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.30.7' ************** SAGE ***************** Host 66.30.71.250 (66.30.71.250) Time: Mon Jul 10 08:01:13 2006 Input: 35*19 Output: 665 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.3.10' ************** SAGE ***************** Host 84.3.102.13 (84.3.102.13) Time: Mon Jul 10 05:20:07 2006 Input: gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.22s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.3.10' ************** SAGE ***************** Host 84.3.102.13 (84.3.102.13) Time: Mon Jul 10 05:19:33 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.07s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.3.10' ************** SAGE ***************** Host 84.3.102.13 (84.3.102.13) Time: Mon Jul 10 05:18:37 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.71s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 04:12:14 2006 Input: (-24)^98% 29 Output: 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 04:11:55 2006 Input: (-24)% 29 Output: 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 04:11:40 2006 Input: (-24^98)% 29 Output: 28 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 04:07:07 2006 Input: (5^98)% 29 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 03:16:02 2006 Input: (1024)% 29 Output: 9 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 03:10:25 2006 Input: (-1)% 29 Output: 28 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 03:09:37 2006 Input: (-4)% 29 Output: 25 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 02:37:43 2006 Input: (-4^49)% 29 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 02:36:34 2006 Input: (25^49)% 29 Output: 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '203.218' ************** SAGE ***************** Host 203.218.121.240 (203.218.121.240) Time: Mon Jul 10 02:35:56 2006 Input: 25^49 mod 29 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(25)**ZZ(49) mod ZZ(29) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.112.' ************** SAGE ***************** Host 66.112.49.90 (66.112.49.90) Time: Mon Jul 10 00:25:49 2006 Input: 204/60 Output: 17/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.8.21' ************** SAGE ***************** Host 71.8.215.121 (71.8.215.121) Time: Sun Jul 9 19:21:58 2006 Input: Find the deritave of the function: f(x)= e^4x Output: Errors: ------------------------------------------------------------ File "", line 1 Find the deritave of the function: ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 f(x)= e**ZZ(4)x ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.32.1' ************** SAGE ***************** Host 74.32.186.126 (74.32.186.126) Time: Sun Jul 9 17:23:54 2006 Input: (3/x-1)/(x/x^2-1) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.225.' ************** SAGE ***************** Host 68.225.227.194 (68.225.227.194) Time: Sun Jul 9 16:07:27 2006 Input: 200.85/3 Output: 66.950000000000003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.13s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '89.0.84' ************** SAGE ***************** Host 89.0.84.191 (89.0.84.191) Time: Sun Jul 9 15:08:17 2006 Input: integral(16-x^2,x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '89.0.84' ************** SAGE ***************** Host 89.0.84.191 (89.0.84.191) Time: Sun Jul 9 15:08:03 2006 Input: integral(16-x^2) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '89.0.84' ************** SAGE ***************** Host 89.0.84.191 (89.0.84.191) Time: Sun Jul 9 15:07:49 2006 Input: integrate(16-x^2) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '213.36.' ************** SAGE ***************** Host 213.36.148.25 (213.36.148.25) Time: Sun Jul 9 10:02:27 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.166.' ************** SAGE ***************** Host 84.166.55.116 (84.166.55.116) Time: Sun Jul 9 08:34:06 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.249.' ************** SAGE ***************** Host 68.249.240.186 (68.249.240.186) Time: Sun Jul 9 00:31:24 2006 Input: 65*45 Output: 2925 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.246.' ************** SAGE ***************** Host 70.246.77.191 (70.246.77.191) Time: Sat Jul 8 22:00:30 2006 Input: (34 + x)^5 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.39.1' ************** SAGE ***************** Host 70.39.122.192 (70.39.122.192) Time: Sat Jul 8 16:03:28 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.174.' ************** SAGE ***************** Host 67.174.187.200 (67.174.187.200) Time: Sat Jul 8 14:13:09 2006 Input: sin(30)**2 Output: (sin(30)^2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '213.66.' ************** SAGE ***************** Host 213.66.82.141 (213.66.82.141) Time: Sat Jul 8 13:52:05 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.85s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.44.3' ************** SAGE ***************** Host 69.44.30.238 (69.44.30.238) Time: Sat Jul 8 10:38:51 2006 Input: factor(467820) Output: 2^2 * 3^2 * 5 * 23 * 113 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.44.3' ************** SAGE ***************** Host 69.44.30.238 (69.44.30.238) Time: Sat Jul 8 10:38:36 2006 Input: factor(24) Output: 2^3 * 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '83.99.6' ************** SAGE ***************** Host 83.99.63.208 (83.99.63.208) Time: Sat Jul 8 08:48:49 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.36s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.116.' ************** SAGE ***************** Host 80.116.155.42 (80.116.155.42) Time: Sat Jul 8 08:40:50 2006 Input: x+2X Output: Errors: ------------------------------------------------------------ File "", line 1 x+ZZ(2)X ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.20.2' ************** SAGE ***************** Host 67.20.24.148 (67.20.24.148) Time: Sat Jul 8 08:27:00 2006 Input: 3.25+3.25+5.50+5.95+6.5= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('3.25')+RealField(max(9,RR.precision()))('3.25')+RealField(max(9,RR.precision()))('5.50')+RealField(max(9,RR.precision()))('5.95')+RealField(max(6,RR.precision()))('6.5')= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '165.21.' ************** SAGE ***************** Host 165.21.154.9 (165.21.154.9) Time: Sat Jul 8 06:54:15 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.79s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.13.2' ************** SAGE ***************** Host 75.13.203.161 (75.13.203.161) Time: Fri Jul 7 23:43:44 2006 Input: for i in [0,1,2]: print "i = ", i Output: ...: ...: i = 0 i = 1 i = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.13.2' ************** SAGE ***************** Host 75.13.203.161 (75.13.203.161) Time: Fri Jul 7 23:41:32 2006 Input: for i in [0:3]: print "i = ", i Output: Errors: ------------------------------------------------------------ File "", line 1 for i in [0:3]: ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'i' is not defined i = Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.13.2' ************** SAGE ***************** Host 75.13.203.161 (75.13.203.161) Time: Fri Jul 7 23:41:20 2006 Input: for i in [0..3]: print "i = ", i Output: Errors: ------------------------------------------------------------ File "", line 1 for i in [0..3]: ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'i' is not defined i = Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.13.2' ************** SAGE ***************** Host 75.13.203.161 (75.13.203.161) Time: Fri Jul 7 23:40:41 2006 Input: print "hi"; Output: hi Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.27.1' ************** SAGE ***************** Host 66.27.112.147 (66.27.112.147) Time: Fri Jul 7 22:01:13 2006 Input: factor(1234567) Output: 127 * 9721 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.72.' ************** SAGE ***************** Host 129.72.129.81 (129.72.129.81) Time: Fri Jul 7 20:27:38 2006 Input: pari.get_series_precision() pari.set_series_precision(50) pari.get_series_precision() Output: 16L 16L Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.72.' ************** SAGE ***************** Host 129.72.129.81 (129.72.129.81) Time: Fri Jul 7 20:27:05 2006 Input: pari.set_series_precision(50) Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.72.' ************** SAGE ***************** Host 129.72.129.81 (129.72.129.81) Time: Fri Jul 7 20:26:54 2006 Input: pari.get_series_precision() Output: 16L Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:07:20 2006 Input: gp.factor(234234) gp('for(i=1,10,print(2))') factor(234234) Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 0 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:07:06 2006 Input: gp.factor(234234) gp('for(i=1,10,print(i))') factor(234234) Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 0 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:06:58 2006 Input: gp.factor(234234) gp('for(i=1,10, print(i) )') factor(234234) Output: Errors: ------------------------------------------------------------ File "", line 1 gp('for(i=1,10, ^ SyntaxError: EOL while scanning single-quoted string --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'i' is not defined ------------------------------------------------------------ File "", line 1 )') ^ SyntaxError: invalid syntax [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:06:40 2006 Input: gp.factor(234234) for(i=1,10, print(i) ) factor(234234) Output: Errors: ------------------------------------------------------------ File "", line 1 for(i=ZZ(1),ZZ(10), ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'i' is not defined ------------------------------------------------------------ File "", line 1 ) ^ SyntaxError: invalid syntax [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:06:30 2006 Input: gp.factor(234234) gp.for(i=1,10, print(i) ) factor(234234) Output: Errors: ------------------------------------------------------------ File "", line 1 gp.for(i=ZZ(1),ZZ(10), ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'i' is not defined ------------------------------------------------------------ File "", line 1 ) ^ SyntaxError: invalid syntax [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:06:08 2006 Input: gp.factor(234234) factor(234234) Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:06:01 2006 Input: gp.factor(234234) factor(234234) Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:05:53 2006 Input: gp.factor(234234) Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:03:20 2006 Input: gp('factor(234234)' '(3*3*3*3)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in GP/PARI: CODE: sage[1]=factor(234234)(3*3*3*3); GP/PARI ERROR: *** unused characters: sage[1]=factor(234234)(3*3*3*3); ^---------- ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:03:11 2006 Input: gp('factor(234234) (3*3*3*3)') Output: Errors: ------------------------------------------------------------ File "", line 1 gp('factor(234234) ^ SyntaxError: EOL while scanning single-quoted string ------------------------------------------------------------ File "", line 1 (ZZ(3)*ZZ(3)*ZZ(3)*ZZ(3))') ^ SyntaxError: EOL while scanning single-quoted string Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:03:06 2006 Input: gp('factor(234234) (3*3*3*3)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in GP/PARI: CODE: sage[1]=factor(234234) (3*3*3*3); GP/PARI ERROR: *** unused characters: sage[1]=factor(234234)(3*3*3*3); ^---------- Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:03:00 2006 Input: gp('factor(234234);(3*3*3*3)') Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:02:55 2006 Input: gp('factor(234234),(3*3*3*3)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in GP/PARI: CODE: sage[1]=factor(234234),(3*3*3*3); GP/PARI ERROR: *** unused characters: sage[1]=factor(234234),(3*3*3*3); ^----------- Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:02:43 2006 Input: gp('[factor(234234),(3*3*3*3)]') Output: [[2, 1; 3, 2; 7, 1; 11, 1; 13, 2], 81] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:02:37 2006 Input: gp('[factor(234234).(3*3*3*3)]') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Error executing code in GP/PARI: CODE: sage[1]=[factor(234234).(3*3*3*3)]; GP/PARI ERROR: *** ; or ] expected: sage[1]=[factor(234234).(3*3*3*3)]; ^----------- Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:02:20 2006 Input: gp('print(factor(234234));print(3*3*3*3)') Output: 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:02:11 2006 Input: gp('factor(234234);print(3*3*3*3)') Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:01:51 2006 Input: gp('factor(234234);3*3*3*3') Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:01:38 2006 Input: gp('factor(234234)';'3*3*3*3') Output: Errors: ------------------------------------------------------------ File "", line 1 gp('factor(234234)';'3*3*3*3') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:01:25 2006 Input: gp('factor(234234)') gp('3*3*3*3') Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] 81 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:01:03 2006 Input: gp('factor(234234)') Output: [2, 1; 3, 2; 7, 1; 11, 1; 13, 2] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Exiting spawned GP/PARI interpreter process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:00:40 2006 Input: factor(234234) Output: 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:00:24 2006 Input: pari.ifactor(234234) Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'gen.PariInstance' object has no attribute 'ifactor' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 18:00:13 2006 Input: pari.factor(234234) Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ AttributeError: 'gen.PariInstance' object has no attribute 'factor' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.9.50' ************** SAGE ***************** Host 68.9.50.27 (68.9.50.27) Time: Fri Jul 7 17:59:55 2006 Input: factor(234234) Output: 2 * 3^2 * 7 * 11 * 13^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.131.' ************** SAGE ***************** Host 71.131.128.18 (71.131.128.18) Time: Fri Jul 7 16:51:58 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.93.1' ************** SAGE ***************** Host 68.93.195.20 (68.93.195.20) Time: Fri Jul 7 15:52:32 2006 Input: 7-15% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7)-ZZ(15)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.93.1' ************** SAGE ***************** Host 68.93.195.20 (68.93.195.20) Time: Fri Jul 7 15:52:17 2006 Input: 2-1 Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.93.1' ************** SAGE ***************** Host 68.93.195.20 (68.93.195.20) Time: Fri Jul 7 15:52:01 2006 Input: 6.99 -15 Output: 6.9900000000000002 -15 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.93.1' ************** SAGE ***************** Host 68.93.195.20 (68.93.195.20) Time: Fri Jul 7 15:50:43 2006 Input: 12.99 - 15% Output: Errors: ------------------------------------------------------------ File "", line 1 - ZZ(15)% ^ SyntaxError: invalid syntax 12.990000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.93.1' ************** SAGE ***************** Host 68.93.195.20 (68.93.195.20) Time: Fri Jul 7 15:49:19 2006 Input: 12.99-15% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('12.99')-ZZ(15)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.123.' ************** SAGE ***************** Host 70.123.120.151 (70.123.120.151) Time: Fri Jul 7 15:13:12 2006 Input: 56/27 / 1/9 Output: 56/243 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '201.217' ************** SAGE ***************** Host 201.217.180.238 (201.217.180.238) Time: Fri Jul 7 14:11:43 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.11s, Wall time 0m3.64s). Exiting spawned Gap process. Exiting spawned GP/PARI interpreter process. Exiting spawned Kash process. Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.95.' ************** SAGE ***************** Host 128.95.47.142 (128.95.47.142) Time: Fri Jul 7 13:58:47 2006 Input: factor(2006) Output: 2 * 17 * 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.78.' ************** SAGE ***************** Host 200.78.168.111 (200.78.168.111) Time: Fri Jul 7 13:47:52 2006 Input: 274/300 Output: 137/150 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.40.4' ************** SAGE ***************** Host 69.40.43.242 (69.40.43.242) Time: Fri Jul 7 12:42:05 2006 Input: -.90+.84 Output: -0.060000000000000053 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.75.9' ************** SAGE ***************** Host 71.75.98.12 (71.75.98.12) Time: Fri Jul 7 12:09:34 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.137' ************** SAGE ***************** Host 131.137.245.198 (131.137.245.198) Time: Fri Jul 7 10:41:57 2006 Input: sauve Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'sauve' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.137' ************** SAGE ***************** Host 131.137.245.198 (131.137.245.198) Time: Fri Jul 7 10:30:47 2006 Input: 30000*262 Output: 7860000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '131.137' ************** SAGE ***************** Host 131.137.245.198 (131.137.245.198) Time: Fri Jul 7 10:30:46 2006 Input: 30000*262 Output: 7860000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:54:00 2006 Input: 3005-1993 Output: 1012 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:53:42 2006 Input: 1250+1755 Output: 3005 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:53:26 2006 Input: 25*50 Output: 1250 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:53:13 2006 Input: 20+5 Output: 25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:53:00 2006 Input: 10*2 Output: 20 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:53:00 2006 Input: 10*2 Output: 20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:51:57 2006 Input: 2206-1993 Output: 213 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:51:38 2006 Input: 450+1756 Output: 2206 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:51:14 2006 Input: 9*50 Output: 450 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:50:57 2006 Input: 4+5 Output: 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.126.104 (72.145.126.104) Time: Fri Jul 7 09:50:39 2006 Input: 2*2 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.34.1' ************** SAGE ***************** Host 67.34.13.71 (67.34.13.71) Time: Fri Jul 7 09:45:19 2006 Input: (.504^2)/(.64) Output: 0.39690000000000003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.156' ************** SAGE ***************** Host 192.156.14.34 (192.156.14.34) Time: Fri Jul 7 08:56:51 2006 Input: 4075/4076 Output: 4075/4076 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.210' ************** SAGE ***************** Host 204.210.46.89 (204.210.46.89) Time: Fri Jul 7 08:42:17 2006 Input: 20*x = 24 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.210' ************** SAGE ***************** Host 204.210.46.89 (204.210.46.89) Time: Fri Jul 7 08:41:11 2006 Input: 20x = 24 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(20)x = ZZ(24) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.210' ************** SAGE ***************** Host 204.210.46.89 (204.210.46.89) Time: Fri Jul 7 08:40:47 2006 Input: 1/20 = x/24 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '86.138.' ************** SAGE ***************** Host 86.138.164.191 (86.138.164.191) Time: Fri Jul 7 06:50:07 2006 Input: a=3 b=2*a Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '86.138.' ************** SAGE ***************** Host 86.138.164.191 (86.138.164.191) Time: Fri Jul 7 06:49:50 2006 Input: a:=3 Output: Errors: ------------------------------------------------------------ File "", line 1 a:=ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '86.138.' ************** SAGE ***************** Host 86.138.164.191 (86.138.164.191) Time: Fri Jul 7 06:49:41 2006 Input: a=3 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '81.187.' ************** SAGE ***************** Host 81.187.183.21 (81.187.183.21) Time: Fri Jul 7 06:36:30 2006 Input: 29.3/8 Output: 3.6625000000000001 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.51s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.161.' ************** SAGE ***************** Host 67.161.106.93 (67.161.106.93) Time: Thu Jul 6 23:07:20 2006 Input: 45*23 Output: 1035 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.226.' ************** SAGE ***************** Host 69.226.57.89 (69.226.57.89) Time: Thu Jul 6 23:02:28 2006 Input: 10+14+12+5+4+13+1+11+1+8= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10)+ZZ(14)+ZZ(12)+ZZ(5)+ZZ(4)+ZZ(13)+ZZ(1)+ZZ(11)+ZZ(1)+ZZ(8)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.40.' ************** SAGE ***************** Host 200.40.238.169 (200.40.238.169) Time: Thu Jul 6 19:04:48 2006 Input: print span(QQ, [[1,2,3],[4,5,6]]) Output: Vector space of degree 3 and dimension 2 over Rational Field Basis matrix: [ 1 0 -1] [ 0 1 2] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.40.' ************** SAGE ***************** Host 200.40.238.169 (200.40.238.169) Time: Thu Jul 6 19:04:25 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.40.' ************** SAGE ***************** Host 200.40.238.169 (200.40.238.169) Time: Thu Jul 6 19:04:25 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.40.' ************** SAGE ***************** Host 200.40.238.169 (200.40.238.169) Time: Thu Jul 6 19:04:07 2006 Input: f = maxima('sin(x)') Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.43s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.40.' ************** SAGE ***************** Host 200.40.238.169 (200.40.238.169) Time: Thu Jul 6 19:03:39 2006 Input: W = span(QQ, [[1,2,3],[4,5,6]]) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.24s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '136.152' ************** SAGE ***************** Host 136.152.180.19 (136.152.180.19) Time: Thu Jul 6 17:51:58 2006 Input: A=[2, 3, 4; 2 ,4 ,5] matrank(A) matker(A) Output: Errors: ------------------------------------------------------------ File "", line 1 A=[ZZ(2), ZZ(3), ZZ(4); ZZ(2) ,ZZ(4) ,ZZ(5)] ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'matrank' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'matker' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.235.' ************** SAGE ***************** Host 69.235.23.161 (69.235.23.161) Time: Thu Jul 6 17:44:21 2006 Input: 23-4x=27 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(23)-ZZ(4)x=ZZ(27) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.236.' ************** SAGE ***************** Host 70.236.144.154 (70.236.144.154) Time: Thu Jul 6 17:00:41 2006 Input: 2+9 Output: 11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 15:18:54 2006 Input: M=MatrixSpace(GF(2),8,8) A=M([1,1,0,0,0,0,0,0, 1,0,1,0,0,0,0,0, 1,0,0,0,1,0,0,0, 0,0,1,1,1,0,0,0, 1,0,1,1,0,0,1,0, 0,0,1,1,1,0,0,1, 0,0,1,1,1,0,1,0, 0,0,1,0,0,0,0,1]) A.charpoly() Output: x^8 + x^5 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 15:18:16 2006 Input: M=MatrixSpace(GF(2),8,8) A=M([0,1,0,0,0,0,0,0, 0,0,1,0,0,0,0,0, 0,0,0,0,1,0,0,0, 1,0,1,1,1,0,0,0, 0,0,1,1,0,0,1,0, 1,0,1,1,1,0,0,1, 1,0,1,1,1,0,1,0, 1,0,1,0,0,0,0,1]) A.charpoly() Output: x^8 + x^7 + x^5 + x^4 + x^2 + x Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 15:16:57 2006 Input: M=MatrixSpace(GF(2),8,8) A=M([0,1,0,0,0,0,0,0, 0,0,1,0,0,0,0,0, 0,0,0,0,1,0,0,0, 1,0,1,1,1,0,0,0, 0,0,1,1,0,0,1,0, 1,0,1,1,1,0,0,1, 1,0,1,1,1,0,1,0,0, 1,0,1,0,0,0,0,1]) A.charpoly() Output: Errors: --------------------------------------------------------------------------- exceptions.ArithmeticError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in __call__(self, entries, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py in matrix(self, x, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __init__(self, parent, entries, coerce_entries, copy) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __init__(self, parent, entries, coerce_entries, copy) ArithmeticError: entries must be a list of length 64 --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'A' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 14:57:00 2006 Input: k=GF(2**8, 'x') k.polynomial() Output: x^8 + x^4 + x^3 + x^2 + 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 14:54:52 2006 Input: k=GF(2**8, 'x') x=k.gen() print (1+x)*(1+x**2)*(1+x**4)*(1+x**8)*(1+x**16)*(1+x**32)*(1+x**64)*(1+x**128) Output: 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 14:53:40 2006 Input: k=GF(2**8, 'x') print (1+x)*(1+x**2)*(1+x**4)*(1+x**8)*(1+x**16)*(1+x**32)*(1+x**64)*(1+x**128) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 14:53:33 2006 Input: k=GF(2**8, 'x') print (1+x)*(1+x**2)*(1+x**4)*(1+x**8)*(1+x**16)*(1+x**32)*(1+x**64)*(1+x**128) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Thu Jul 6 14:52:16 2006 Input: k=FiniteField(2^8) print (1+x)*(1+x**2)*(1+x**4)*(1+x**8)*(1+x**16)*(1+x**32)*(1+x**64)*(1+x**128) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.87s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:59:14 2006 Input: sage: maxima("ilt( 1/(sqrt(s)-10) ,s,t)") Output: ilt(1/(sqrt(s) - 10),s,t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:59:04 2006 Input: sage: maxima("ilt( 1/(s-10) ,s,t)") Output: %e^(10*t) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:58:56 2006 Input: sage: maxima("ilt( 1/(s+10) ,s,t)") Output: %e^-(10*t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:58:47 2006 Input: sage: maxima("ilt( -1/(s+10) ,s,t)") Output: -%e^-(10*t) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.30s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:58:39 2006 Input: sage: maxima("ilt( -1/(s+1) ,s,t)") Output: -%e^-t Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:58:29 2006 Input: sage: maxima("ilt( -1/s ,s,t)") Output: -1 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:58:16 2006 Input: sage: maxima("ilt( -1/s ,s,t)") Output: -1 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:57:58 2006 Input: sage: maxima("ilt( exp(-s) ,s,t)") Output: ilt(%e^-s,s,t) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.28s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:57:36 2006 Input: sage: maxima("ilt(1/s,s,t)") Output: 1 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:57:26 2006 Input: sage: maxima("ilt(s,s,t)") Output: ilt(s,s,t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:56:32 2006 Input: sage: ilt( exp(-s) , s, t) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'ilt' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:56:16 2006 Input: sage: maxima("ilt( exp(-s) , s, t)") Output: ilt(%e^-s,s,t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:55:56 2006 Input: sage: maxima("ilt( (s^(-1/2)) , s, t)") Output: ilt(1/sqrt(s),s,t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:55:46 2006 Input: sage: maxima("ilt( (s^(1/2)) , s, t)") Output: ilt(sqrt(s),s,t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.26s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:55:32 2006 Input: sage: maxima("ilt( s^(1/2), s, t)") Output: ilt(sqrt(s),s,t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:54:58 2006 Input: sage: maxima("ilt( sqrt(s), s, t)") Output: ilt(sqrt(s),s,t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:54:40 2006 Input: sage: maxima("ilt( (3*s^3 + 9*s)/(s^4 + 5*s^2 + 4), s, t)") Output: cos(2*t) + 2*cos(t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:54:27 2006 Input: sage: maxima("ilt((3*s^3 + 9*s)/(s^4 + 5*s^2 + 4),s,t)") Output: cos(2*t) + 2*cos(t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:50:59 2006 Input: sage: maxima("ilt(sqrt(s),s,t)") Output: ilt(sqrt(s),s,t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m5.28s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:50:30 2006 Input: sage: maxima("ilt((3*s^3 + 9*s)/(s^4 + 5*s^2 + 4),s,t)") Output: cos(2*t) + 2*cos(t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.29s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:49:54 2006 Input: sage: a, b = 4/3, 2/3 sage: a + b Output: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:49:21 2006 Input: sage: 1/2 in QQ Output: True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '82.56.5' ************** SAGE ***************** Host 82.56.59.205 (82.56.59.205) Time: Thu Jul 6 13:48:01 2006 Input: x=1 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '85.100.' ************** SAGE ***************** Host 85.100.86.166 (85.100.86.166) Time: Thu Jul 6 13:25:45 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.12.1' ************** SAGE ***************** Host 71.12.187.190 (71.12.187.190) Time: Thu Jul 6 12:48:55 2006 Input: "200 Output: Errors: ------------------------------------------------------------ File "", line 1 "200 ^ SyntaxError: EOL while scanning single-quoted string Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.12.1' ************** SAGE ***************** Host 71.12.187.190 (71.12.187.190) Time: Thu Jul 6 12:48:37 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '89.55.2' ************** SAGE ***************** Host 89.55.236.245 (89.55.236.245) Time: Thu Jul 6 12:24:03 2006 Input: 2*3 print 2*3 Output: 6 6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.74.1' ************** SAGE ***************** Host 66.74.150.223 (66.74.150.223) Time: Thu Jul 6 11:52:53 2006 Input: -135(10) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.74.1' ************** SAGE ***************** Host 66.74.150.223 (66.74.150.223) Time: Thu Jul 6 11:51:09 2006 Input: Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.74.1' ************** SAGE ***************** Host 66.74.150.223 (66.74.150.223) Time: Thu Jul 6 11:50:34 2006 Input: 3+4 Output: 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.171.' ************** SAGE ***************** Host 80.171.114.152 (80.171.114.152) Time: Thu Jul 6 10:11:44 2006 Input: print gap('List(ConjugacyClasses(SymmetricGroup(6)),i->Elements(i)[1])') Output: [ (), (5,6), (3,4)(5,6), (1,2)(3,4)(5,6), (4,5,6), (2,3)(4,5,6), (1,2,3)(4,5,6), (3,4,5,6), (1,2)(3,4,5,6), (2,3,4,5,6), (1,2,3,4,5,6) ] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.30s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.171.' ************** SAGE ***************** Host 80.171.114.152 (80.171.114.152) Time: Thu Jul 6 10:07:50 2006 Input: print gap('List(Elements(DihedralGroup(12)),Order)') Output: [ 1, 2, 6, 3, 2, 2, 2, 3, 2, 2, 6, 2 ] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.35s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.171.' ************** SAGE ***************** Host 80.171.114.152 (80.171.114.152) Time: Thu Jul 6 10:06:40 2006 Input: print gap('SmallGroupsInformation(8)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'SmallGroupsInformation' must have a value executing $sage1:=SmallGroupsInformation(8);; Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.171.' ************** SAGE ***************** Host 80.171.114.152 (80.171.114.152) Time: Thu Jul 6 10:06:17 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.29s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.171.' ************** SAGE ***************** Host 80.171.114.152 (80.171.114.152) Time: Thu Jul 6 10:05:58 2006 Input: print gap('SmallGroupsInformation(8)'); Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'SmallGroupsInformation' must have a value executing $sage1:=SmallGroupsInformation(8);; Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '80.171.' ************** SAGE ***************** Host 80.171.114.152 (80.171.114.152) Time: Thu Jul 6 10:05:34 2006 Input: print gap('SmallGroupsInformation(8)'); Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'SmallGroupsInformation' must have a value executing $sage1:=SmallGroupsInformation(8);; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.81s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '58.69.7' ************** SAGE ***************** Host 58.69.75.168 (58.69.75.168) Time: Thu Jul 6 01:53:51 2006 Input: 0.00000016(0.00024) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'mpfr.RealNumber' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '58.69.7' ************** SAGE ***************** Host 58.69.75.168 (58.69.75.168) Time: Thu Jul 6 01:53:40 2006 Input: 0.00000016(0.00024 Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.105.' ************** SAGE ***************** Host 70.105.206.122 (70.105.206.122) Time: Wed Jul 5 22:52:52 2006 Input: DasdA Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'DasdA' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.4.18' ************** SAGE ***************** Host 75.4.185.52 (75.4.185.52) Time: Wed Jul 5 20:47:34 2006 Input: 428* 80= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(428)* ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(80)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.22.2' ************** SAGE ***************** Host 75.22.204.62 (75.22.204.62) Time: Wed Jul 5 19:54:43 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.121.' ************** SAGE ***************** Host 69.121.48.133 (69.121.48.133) Time: Wed Jul 5 19:23:29 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '137.151' ************** SAGE ***************** Host 137.151.174.48 (137.151.174.48) Time: Wed Jul 5 18:18:12 2006 Input: 327/425 Output: 327/425 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 15:28:24 2006 Input: Px = PolynomialRing(QQ, 5, 'xyhct'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; t = Px.4; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) a = (h/2*-1/4 - h/2 + h)*(h*-1/4 + h/2 - h) b = h^2/4 c = -a/b print(a) print(c) Tm = (4-2*t)^2 + (4*h - 8*h*t)^2 print(Tm) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c -9/32*h^2 9/8 16 - 16*t + 4*t^2 + 16*h^2 - 64*h^2*t + 64*h^2*t^2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 15:24:42 2006 Input: Px = PolynomialRing(QQ, 5, 'xyhct'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; t = Px.4; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) a = (h/2*-1/4 - h/2 + h)*(h*-1/4 + h/2 - h) b = h^2/4 c = -a/b print(a) print(c) Tm = (4-2*t)^2 + (4*h - 8*h)^2 print(Tm) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c -9/32*h^2 9/8 16 - 16*t + 4*t^2 + 16*h^2 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.10s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 15:24:32 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhct'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; t = Px.4; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) a = (h/2*-1/4 - h/2 + h)*(h*-1/4 + h/2 - h) b = h^2/4 c = -a/b print(a) print(c) Tm = (4-2*t)^2 + (4*h - 8*h)^2 print(Tm) Output: Errors: --------------------------------------------------------------------------- exceptions.ValueError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_ring.py in gen(self, n) ValueError: Generator 4 not defined. --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 't' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Tm' is not defined -1*xyhct2^2 + 2*xyhct1*xyhct2 - xyhct1^2 + xyhct1^2*xyhct3 + 1/2*xyhct0*xyhct2^2 - 1/2*xyhct0*xyhct1*xyhct2 + 1/2*xyhct0^2*xyhct2^2 9/4*xyhct2^2 - 2*xyhct2^2*xyhct3 -9/32*xyhct2^2 9/8 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.77.' ************** SAGE ***************** Host 199.77.203.154 (199.77.203.154) Time: Wed Jul 5 15:17:13 2006 Input: Integers(221) 1/37 Output: Ring of integers modulo 221 1/37 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.77.' ************** SAGE ***************** Host 199.77.203.154 (199.77.203.154) Time: Wed Jul 5 15:16:00 2006 Input: 1/37 mod 221 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1)/ZZ(37) mod ZZ(221) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '199.77.' ************** SAGE ***************** Host 199.77.203.154 (199.77.203.154) Time: Wed Jul 5 15:14:08 2006 Input: GCD(24,36) Output: 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 15:01:29 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) a = (h/2*-1/4 - h/2 + h)*(h*-1/4 + h/2 - h) b = h^2/4 c = -a/b print(a) print(c) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c -9/32*h^2 9/8 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 15:01:03 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) a = (h/2*-1/4 - h/2 + h)*(h*x + h/2 - h) b = h^2/4 c = -a/b print(a) print(c) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c -3/16*h^2 + 3/8*x*h^2 3/4 - 3/2*x Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.08s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 15:00:27 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) a = (h/2*-1/4 - h/2 + h)*(h*x + h/2 - h) b = h^2/4 c = -a/b x = -1/4 y = h/2 print(Fc) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.45s). Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:56:48 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) x = -1/4 y = h/2 print(Fc) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:56:16 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) print(Fc(-1/4, h/2)) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py in __call__(self, *x) TypeError: x (=(-1/4, 1/2*h)) must be of length 4 -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:51:19 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) print(Dch) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 9/4*h^2 - 2*h^2*c Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:51:09 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 Dch = 1/4*h^2 - 2*h^2*(c-1) print(Fc) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:45:33 2006 Input: Px = PolynomialRing(QQ, 4, 'xyhc'); x = Px.0; y = Px.1; h = Px.2; c = Px.3; Pt = PolynomialRing(QQ, 't'); t = Pt.0; Fc = (h/2*x - y + h)*(h*x + y - h) + c*y^2 print(Fc) Output: -1*h^2 + 2*y*h - y^2 + y^2*c + 1/2*x*h^2 - 1/2*x*y*h + 1/2*x^2*h^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:42:50 2006 Input: Px = PolynomialRing(QQ, 2, 'xy'); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; print(x*y+x) Output: x + x*y Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:28:29 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; M33 = MatrixSpace(QQ, 3); M = M33([-1/4, 1/2, -1/4, 1/2, 0, -1/2, -1/4, 1/2, -1/4]) print(M.det()) Output: 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:27:51 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; M33 = MatrixSpace(QQ, 3); M = M33([-1/4, 1/2, -1/4, 1/2, 0, -1/2, -1/4, 1/2, -1/4]) print(M^-1) Output: Errors: --------------------------------------------------------------------------- exceptions.ZeroDivisionError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __pow__(self, n) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py in __invert__(self) ZeroDivisionError: self is not invertible Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:13:42 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f1 = y*x - y; f2 = -1/4*x^2 + 1/2*x*f1 - 1/4*f1^2 + 1/2*x + 1/2*f1 - 1/4 print(f2) Output: -1/4 - 1/2*x1 - 1/4*x1^2 + 1/2*x0 + 1/2*x0*x1^2 - 1/4*x0^2 + 1/2*x0^2*x1 - 1/4*x0^2*x1^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:06:30 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = x; l2 = y; l3 = x+y-1; l4 = l3; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(1/4, 1/4)'); a = l1l2(1/4,1/4); print(a); print('l3l4(/*P3.x*/,/*P3.y*/)'); b = l3l4(1/4,1/4); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(1,0) == 0); print(f(0,1) == 0); print(f(1/4,1/4) == 0); Output: x0*x1 1 - 2*x1 + x1^2 - 2*x0 + 2*x0*x1 + x0^2 l1l2(1/4, 1/4) 1/16 l3l4(/*P3.x*/,/*P3.y*/) 1/4 solve for c -1/4 -1/4 + 1/2*x1 - 1/4*x1^2 + 1/2*x0 + 1/2*x0*x1 - 1/4*x0^2 tests: True True True Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:06:17 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = x; l2 = y; l3 = x+y-1; l4 = l3; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(1/4, 1/4)'); a = l1l2(1/4,1/4); print(a); print('l3l4(/*P3.x*/,/*P3.y*/)'); b = l3l4(1/4,1/4); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(1,0) == 0); print(f(0,1) == 0); print(f(1/4,1/4) == 0); //print('comment') //print(f(/*INSERT P4 COORDS HERE*/) == 0); //print(f(/*INSERT P5 COORDS HERE*/) == 0); Output: Errors: ------------------------------------------------------------ File "", line 1 //print('comment') ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 //print(f(/*INSERT(P4 COORDS HERE*/) == ZZ(0))); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 //print(f(/*INSERT(P5 COORDS HERE*/) == ZZ(0))); ^ SyntaxError: invalid syntax x0*x1 1 - 2*x1 + x1^2 - 2*x0 + 2*x0*x1 + x0^2 l1l2(1/4, 1/4) 1/16 l3l4(/*P3.x*/,/*P3.y*/) 1/4 solve for c -1/4 -1/4 + 1/2*x1 - 1/4*x1^2 + 1/2*x0 + 1/2*x0*x1 - 1/4*x0^2 tests: True True True ----> //print(f(/*INSERT(P4 COORDS HERE*/) == ZZ(0))); ----> //print(f(/*INSERT(P5 COORDS HERE*/) == ZZ(0))); Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:06:03 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = x; l2 = y; l3 = x+y-1; l4 = l3; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(1/4, 1/4)'); a = l1l2(1/4,1/4); print(a); print('l3l4(/*P3.x*/,/*P3.y*/)'); b = l3l4(1/4,1/4); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(1,0) == 0); print(f(0,1) == 0); print(f(1/4,1/4) == 0); print('comment') print(f(/*INSERT P4 COORDS HERE*/) == 0); print(f(/*INSERT P5 COORDS HERE*/) == 0); Output: Errors: ------------------------------------------------------------ File "", line 1 print(f(/*INSERT P4 COORDS HERE*/) == ZZ(0)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print(f(/*INSERT P5 COORDS HERE*/) == ZZ(0)); ^ SyntaxError: invalid syntax x0*x1 1 - 2*x1 + x1^2 - 2*x0 + 2*x0*x1 + x0^2 l1l2(1/4, 1/4) 1/16 l3l4(/*P3.x*/,/*P3.y*/) 1/4 solve for c -1/4 -1/4 + 1/2*x1 - 1/4*x1^2 + 1/2*x0 + 1/2*x0*x1 - 1/4*x0^2 tests: True True True comment Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 14:05:45 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = x; l2 = y; l3 = x+y-1; l4 = l3; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(1/4, 1/4)'); a = l1l2(1/4,1/4); print(a); print('l3l4(/*P3.x*/,/*P3.y*/)'); b = l3l4(1/4,1/4); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(1,0) == 0); print(f(0,1) == 0); print(f(1/4,1/4) == 0); /*QUESTION 3 ENDS HERE*/ print(f(/*INSERT P4 COORDS HERE*/) == 0); print(f(/*INSERT P5 COORDS HERE*/) == 0); Output: Errors: ------------------------------------------------------------ File "", line 1 /*QUESTION(ZZ(3) ENDS HERE*/) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print(f(/*INSERT P4 COORDS HERE*/) == ZZ(0)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print(f(/*INSERT P5 COORDS HERE*/) == ZZ(0)); ^ SyntaxError: invalid syntax x0*x1 1 - 2*x1 + x1^2 - 2*x0 + 2*x0*x1 + x0^2 l1l2(1/4, 1/4) 1/16 l3l4(/*P3.x*/,/*P3.y*/) 1/4 solve for c -1/4 -1/4 + 1/2*x1 - 1/4*x1^2 + 1/2*x0 + 1/2*x0*x1 - 1/4*x0^2 tests: True True True ----> /*QUESTION(ZZ(3) ENDS HERE*/) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:58:37 2006 Input: s1 = '(-2)^2 + b*(-2)*(3) + c*(3)^2 + d*(-2) + e*(3) + f = 0' s2 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s3 = '(1)^2 + b*(1)*(5) + c*(5)^2 + d*(1) + e*(5) + f = 0' s4 = '(4)^2 + b*(4)*(2) + c*(2)^2 + d*(4) + e*(2) + f = 0' s5 = '(3)^2 + b*(3)*(0) + c*(0)^2 + d*(3) + e*(0) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s (4/75)^2 - 4*1*(173/150) x = 1 y = 2/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 4/75,c = 173/150,d = - 2,e = - 251/50,f = - 3]] -25934/5625 16/25 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:56:37 2006 Input: s1 = '(-2)^2 + b*(-2)*(3) + c*(3)^2 + d*(-2) + e*(3) + f = 0' s2 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s3 = '(1)^2 + b*(1)*(5) + c*(5)^2 + d*(1) + e*(5) + f = 0' s4 = '(4)^2 + b*(4)*(2) + c*(2)^2 + d*(4) + e*(2) + f = 0' s5 = '(3)^2 + b*(3)*(0) + c*(0)^2 + d*(3) + e*(0) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s 20^2 - 4*1*(13/3) x = 1 y = 2/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 4/75,c = 173/150,d = - 2,e = - 251/50,f = - 3]] 1148/3 16/25 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:50:15 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s 20^2 - 4*1*(13/3) x = 1 y = 2/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 1148/3 16/25 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:47:04 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 2/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 16/25 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:46:57 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 3/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 209/100 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.36s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:46:31 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 4/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 272/75 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:46:23 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 5/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 21/4 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.36s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:46:16 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 6/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 174/25 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:46:08 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 7/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 2627/300 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:46:00 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 8/10 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 266/25 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:45:49 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 1 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 44/3 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.36s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:45:34 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = -3 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 0 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:45:28 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = -2 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] -28/3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:45:16 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = -1/2 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] -85/12 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:44:58 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = -1/3 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] -152/27 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:44:49 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 1/3 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 70/27 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.37s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:44:36 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = -1 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] -10 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:44:28 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 3 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 74 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:43:31 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 = 0 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:43:19 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 y = 2 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 40 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:42:06 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 1 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:41:47 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s x = 0 y = 2 x^2 + 20*x*y + (13/3)*y^2 - x - (23/3)*y - 2 Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] 0 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 13:39:33 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 -(y*x + y)^2 -1 print(f) xt = (x-2)*(x+2-y) yt = 1-2*x + x^2 - (2-2*x)*(1-x) print(xt) print(yt) Output: -1 - x1^2 - 2*x0*x1^2 + x0^2 - x0^2*x1^2 -4 + 2*x1 - x0*x1 + x0^2 -1 + 2*x0 - x0^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:33:59 2006 Input: s1 = '(-1)^2 + b*(-1)*(0) + c*(0)^2 + d*(-1) + e*(0) + f = 0' s2 = '(2)^2 + b*(2)*(0) + c*(0)^2 + d*(2) + e*(0) + f = 0' s3 = '(1/2)^2 + b*(1/2)*(1/2) + c*(1/2)^2 + d*(1/2) + e*(1/2) + f = 0' s4 = '(0)^2 + b*(0)*(2) + c*(2)^2 + d*(0) + e*(2) + f = 0' s5 = '(1)^2 + b*(1)*(-3) + c*(-3)^2 + d*(1) + e*(-3) + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s Output: [[b = 20,c = 13/3,d = - 1,e = - 23/3,f = - 2]] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.38s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:31:16 2006 Input: x1 = 1 y1 = 2 s1 = 'x1^2 + b*x1*y1 + c*y1^2 + d*x1 + e*y1 + f = 0' x2 = 44 y2 = 11 s2 = 'x2^2 + b*x2*y2 + c*y2^2 + d*x2 + e*y2 + f = 0' x3 = 65 y3 = 2 s3 = 'x3^2 + b*x3*y3 + c*y3^2 + d*x3 + e*y3 + f = 0' x4 = 3 y4 = 2 s4 = 'x4^2 + b*x4*y4 + c*y4^2 + d*x4 + e*y4 + f = 0' x5 = 3 y5 = 2 s5 = 'x5^2 + b*x5*y5 + c*y5^2 + d*x5 + e*y5 + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s Output: [[b = (x1^2*(x2*(y3*(y5^2 - y4^2) - y4*y5^2 + y4^2*y5 + y3^2*(y4 - y5)) + x3*(y4*y5^2 - y4^2*y5) + y2*(x4*y5^2 + x3*(y4^2 - y5^2) - x5*y4^2 + (x5 - x4)*y3^2) + y3*(x5*y4^2 - x4*y5^2) + y2^2*(x3*(y5 - y4) - x4*y5 + x5*y4 + (x4 - x5)*y3) + y3^2*(x4*y5 - x5*y4)) + x1*(y2*(x3^2*(y5^2 - y4^2) - x4^2*y5^2 + x5^2*y4^2 + (x4^2 - x5^2)*y3^2) + x2^2*(y4*y5^2 + y3*(y4^2 - y5^2) + y3^2*(y5 - y4) - y4^2*y5) + x3^2*(y4^2*y5 - y4*y5^2) + y3*(x4^2*y5^2 - x5^2*y4^2) + y2^2*(x4^2*y5 + x3^2*(y4 - y5) - x5^2*y4 + (x5^2 - x4^2)*y3) + y3^2*(x5^2*y4 - x4^2*y5)) + y1*(x2^2*(x3*(y5^2 - y4^2) - x4*y5^2 + x5*y4^2 + (x4 - x5)*y3^2) + x2*(x4^2*y5^2 + x3^2*(y4^2 - y5^2) - x5^2*y4^2 + (x5^2 - x4^2)*y3^2) + x3*(x5^2*y4^2 - x4^2*y5^2) + x3^2*(x4*y5^2 - x5*y4^2) + (x4^2*x5 - x4*x5^2)*y3^2 + (x4*x5^2 + x3*(x4^2 - x5^2) + x3^2*(x5 - x4) - x4^2*x5)*y2^2) + x2*(x3^2*(y4*y5^2 - y4^2*y5) + y3*(x5^2*y4^2 - x4^2*y5^2) + y3^2*(x4^2*y5 - x5^2*y4)) + x2^2*(x3*(y4^2*y5 - y4*y5^2) + y3*(x4*y5^2 - x5*y4^2) + y3^2*(x5*y4 - x4*y5)) + y2*(x3*(x4^2*y5^2 - x5^2*y4^2) + x3^2*(x5*y4^2 - x4*y5^2) + (x4*x5^2 - x4^2*x5)*y3^2) + y1^2*(x2*(x3^2*(y5 - y4) - x4^2*y5 + x5^2*y4 + (x4^2 - x5^2)*y3) + x3*(x4^2*y5 - x5^2*y4) + x2^2*(x4*y5 + x3*(y4 - y5) - x5*y4 + (x5 - x4)*y3) + x3^2*(x5*y4 - x4*y5) + (x4*x5^2 - x4^2*x5)*y3 + (x3*(x5^2 - x4^2) - x4*x5^2 + x4^2*x5 + x3^2*(x4 - x5))*y2) + y2^2*(x3*(x5^2*y4 - x4^2*y5) + x3^2*(x4*y5 - x5*y4) + (x4^2*x5 - x4*x5^2)*y3))/(x1*(y2*(x2*(y3*(y5^2 - y4^2) - y4*y5^2 + y4^2*y5 + y3^2*(y4 - y5)) + x4*y4*y5^2 + x3*y3*(y4^2 - y5^2) + y3^2*(x5*y5 - x4*y4) - x5*y4^2*y5) + y3*(x3*(y4*y5^2 - y4^2*y5) - x4*y4*y5^2 + x5*y4^2*y5) + y2^2*(y3*(x3*(y5 - y4) - x5*y5 + x4*y4) + y4*(x5*y5 - x4*y5)) + y3^2*y4*(x4*y5 - x5*y5)) + y1*(x1*(y2*(x3*(y5^2 - y4^2) - x4*y5^2 + x5*y4^2 + (x4 - x5)*y3^2) + x2*(y4*y5^2 + y3*(y4^2 - y5^2) + y3^2*(y5 - y4) - y4^2*y5) + x3*(y4^2*y5 - y4*y5^2) + y3*(x4*y5^2 - x5*y4^2) + y2^2*(x4*y5 + x3*(y4 - y5) - x5*y4 + (x5 - x4)*y3) + y3^2*(x5*y4 - x4*y5)) + x2*(x3*y3*(y5^2 - y4^2) - x4*y4*y5^2 + y3^2*(x4*y4 - x5*y5) + x5*y4^2*y5) + x3*(x4*y4*y5^2 - x5*y4^2*y5) + x2*y2*(x4*y5^2 + x3*(y4^2 - y5^2) - x5*y4^2 + (x5 - x4)*y3^2) + x3*y3*(x5*y4^2 - x4*y5^2) + y2^2*(x3*(x5*y5 - x4*y4) - x4*x5*y5 + x4*x5*y4 + x3*(x4 - x5)*y3) + y3^2*(x4*x5*y5 - x4*x5*y4)) + y2*(x2*(x3*(y4*y5^2 - y4^2*y5) + y3*(x5*y4^2 - x4*y5^2) + y3^2*(x4*y5 - x5*y4)) + x3*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4*y5^2 - x5*y4^2) + y3^2*(x4*x5*y4 - x4*x5*y5)) + x2*(y3*(x3*(y4^2*y5 - y4*y5^2) + x4*y4*y5^2 - x5*y4^2*y5) + y3^2*y4*(x5*y5 - x4*y5)) + y1^2*(y2*(x2*(x3*(y5 - y4) - x4*y5 + x5*y4 + (x4 - x5)*y3) + x3*(x4*y4 - x5*y5) + x4*x5*y5 - x4*x5*y4 + x3*(x5 - x4)*y3) + x2*(y3*(x5*y5 + x3*(y4 - y5) - x4*y4) + y4*(x4*y5 - x5*y5)) + y3*(x3*(x4*y5 - x5*y4) - x4*x5*y5 + x4*x5*y4) + x3*y4*(x5*y5 - x4*y5)) + y2^2*(y3*(x3*(x5*y4 - x4*y5) + x4*x5*y5 - x4*x5*y4) + x3*y4*(x4*y5 - x5*y5))),c = - (y1*(x1*(x2*(x3^2*(y5 - y4) - x4^2*y5 + x5^2*y4 + (x4^2 - x5^2)*y3) + x3*(x4^2*y5 - x5^2*y4) + x2^2*(x4*y5 + x3*(y4 - y5) - x5*y4 + (x5 - x4)*y3) + x3^2*(x5*y4 - x4*y5) + (x4*x5^2 - x4^2*x5)*y3 + (x3*(x5^2 - x4^2) - x4*x5^2 + x4^2*x5 + x3^2*(x4 - x5))*y2) + x2^2*(x3*(x5*y5 - x4*y4) - x4*x5*y5 + x4*x5*y4 + x3*(x4 - x5)*y3) + x2*(x3^2*(x4*y4 - x5*y5) + x4^2*x5*y5 - x4*x5^2*y4 + x3*(x5^2 - x4^2)*y3) + x3*(x4*x5^2*y4 - x4^2*x5*y5) + x3^2*(x4*x5*y5 - x4*x5*y4) + x3*(x4^2*x5 - x4*x5^2)*y3 + x2*(x4*x5^2 + x3*(x4^2 - x5^2) + x3^2*(x5 - x4) - x4^2*x5)*y2) + x1*(x2^2*(y3*(x3*(y5 - y4) - x5*y5 + x4*y4) + y4*(x5*y5 - x4*y5)) + y2*(x3^2*(x5*y5 - x4*y4) + x2*(x4^2*y5 + x3^2*(y4 - y5) - x5^2*y4 + (x5^2 - x4^2)*y3) - x4^2*x5*y5 + x4*x5^2*y4 + x3*(x4^2 - x5^2)*y3) + y3*(x3*(x5^2*y4 - x4^2*y5) + x4^2*x5*y5 - x4*x5^2*y4) + x3^2*y4*(x4*y5 - x5*y5)) + x1^2*(y2*(x2*(x3*(y5 - y4) - x4*y5 + x5*y4 + (x4 - x5)*y3) + x3*(x4*y4 - x5*y5) + x4*x5*y5 - x4*x5*y4 + x3*(x5 - x4)*y3) + x2*(y3*(x5*y5 + x3*(y4 - y5) - x4*y4) + y4*(x4*y5 - x5*y5)) + y3*(x3*(x4*y5 - x5*y4) - x4*x5*y5 + x4*x5*y4) + x3*y4*(x5*y5 - x4*y5)) + x2*(y3*(x3*(x4^2*y5 - x5^2*y4) - x4^2*x5*y5 + x4*x5^2*y4) + x3^2*y4*(x5*y5 - x4*y5)) + y2*(x2*(x3*(x5^2*y4 - x4^2*y5) + x3^2*(x4*y5 - x5*y4) + (x4^2*x5 - x4*x5^2)*y3) + x3*(x4^2*x5*y5 - x4*x5^2*y4) + x3^2*(x4*x5*y4 - x4*x5*y5) + x3*(x4*x5^2 - x4^2*x5)*y3) + x2^2*(y3*(x3*(x5*y4 - x4*y5) + x4*x5*y5 - x4*x5*y4) + x3*y4*(x4*y5 - x5*y5)))/(x1*(y2*(x2*(y3*(y5^2 - y4^2) - y4*y5^2 + y4^2*y5 + y3^2*(y4 - y5)) + x4*y4*y5^2 + x3*y3*(y4^2 - y5^2) + y3^2*(x5*y5 - x4*y4) - x5*y4^2*y5) + y3*(x3*(y4*y5^2 - y4^2*y5) - x4*y4*y5^2 + x5*y4^2*y5) + y2^2*(y3*(x3*(y5 - y4) - x5*y5 + x4*y4) + y4*(x5*y5 - x4*y5)) + y3^2*y4*(x4*y5 - x5*y5)) + y1*(x1*(y2*(x3*(y5^2 - y4^2) - x4*y5^2 + x5*y4^2 + (x4 - x5)*y3^2) + x2*(y4*y5^2 + y3*(y4^2 - y5^2) + y3^2*(y5 - y4) - y4^2*y5) + x3*(y4^2*y5 - y4*y5^2) + y3*(x4*y5^2 - x5*y4^2) + y2^2*(x4*y5 + x3*(y4 - y5) - x5*y4 + (x5 - x4)*y3) + y3^2*(x5*y4 - x4*y5)) + x2*(x3*y3*(y5^2 - y4^2) - x4*y4*y5^2 + y3^2*(x4*y4 - x5*y5) + x5*y4^2*y5) + x3*(x4*y4*y5^2 - x5*y4^2*y5) + x2*y2*(x4*y5^2 + x3*(y4^2 - y5^2) - x5*y4^2 + (x5 - x4)*y3^2) + x3*y3*(x5*y4^2 - x4*y5^2) + y2^2*(x3*(x5*y5 - x4*y4) - x4*x5*y5 + x4*x5*y4 + x3*(x4 - x5)*y3) + y3^2*(x4*x5*y5 - x4*x5*y4)) + y2*(x2*(x3*(y4*y5^2 - y4^2*y5) + y3*(x5*y4^2 - x4*y5^2) + y3^2*(x4*y5 - x5*y4)) + x3*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4*y5^2 - x5*y4^2) + y3^2*(x4*x5*y4 - x4*x5*y5)) + x2*(y3*(x3*(y4^2*y5 - y4*y5^2) + x4*y4*y5^2 - x5*y4^2*y5) + y3^2*y4*(x5*y5 - x4*y5)) + y1^2*(y2*(x2*(x3*(y5 - y4) - x4*y5 + x5*y4 + (x4 - x5)*y3) + x3*(x4*y4 - x5*y5) + x4*x5*y5 - x4*x5*y4 + x3*(x5 - x4)*y3) + x2*(y3*(x5*y5 + x3*(y4 - y5) - x4*y4) + y4*(x4*y5 - x5*y5)) + y3*(x3*(x4*y5 - x5*y4) - x4*x5*y5 + x4*x5*y4) + x3*y4*(x5*y5 - x4*y5)) + y2^2*(y3*(x3*(x5*y4 - x4*y5) + x4*x5*y5 - x4*x5*y4) + x3*y4*(x4*y5 - x5*y5))),d = - (x1^2*(y2*(x2*(y3*(y5^2 - y4^2) - y4*y5^2 + y4^2*y5 + y3^2*(y4 - y5)) + x4*y4*y5^2 + x3*y3*(y4^2 - y5^2) + y3^2*(x5*y5 - x4*y4) - x5*y4^2*y5) + y3*(x3*(y4*y5^2 - y4^2*y5) - x4*y4*y5^2 + x5*y4^2*y5) + y2^2*(y3*(x3*(y5 - y4) - x5*y5 + x4*y4) + y4*(x5*y5 - x4*y5)) + y3^2*y4*(x4*y5 - x5*y5)) + y1*(x1*(y2*(x3^2*(y5^2 - y4^2) - x4^2*y5^2 + x5^2*y4^2 + (x4^2 - x5^2)*y3^2) + x2^2*(y4*y5^2 + y3*(y4^2 - y5^2) + y3^2*(y5 - y4) - y4^2*y5) + x3^2*(y4^2*y5 - y4*y5^2) + y3*(x4^2*y5^2 - x5^2*y4^2) + y2^2*(x4^2*y5 + x3^2*(y4 - y5) - x5^2*y4 + (x5^2 - x4^2)*y3) + y3^2*(x5^2*y4 - x4^2*y5)) + x2^2*(x3*y3*(y5^2 - y4^2) - x4*y4*y5^2 + y3^2*(x4*y4 - x5*y5) + x5*y4^2*y5) + x3^2*(x4*y4*y5^2 - x5*y4^2*y5) + x2*y2*(x4^2*y5^2 + x3^2*(y4^2 - y5^2) - x5^2*y4^2 + (x5^2 - x4^2)*y3^2) + x3*y3*(x5^2*y4^2 - x4^2*y5^2) + y2^2*(x3^2*(x5*y5 - x4*y4) - x4^2*x5*y5 + x4*x5^2*y4 + x3*(x4^2 - x5^2)*y3) + y3^2*(x4^2*x5*y5 - x4*x5^2*y4)) + y2*(x2*(x3^2*(y4*y5^2 - y4^2*y5) + y3*(x5^2*y4^2 - x4^2*y5^2) + y3^2*(x4^2*y5 - x5^2*y4)) + x3^2*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4^2*y5^2 - x5^2*y4^2) + y3^2*(x4*x5^2*y4 - x4^2*x5*y5)) + x2^2*(y3*(x3*(y4^2*y5 - y4*y5^2) + x4*y4*y5^2 - x5*y4^2*y5) + y3^2*y4*(x5*y5 - x4*y5)) + y1^2*(y2*(x2*(x3^2*(y5 - y4) - x4^2*y5 + x5^2*y4 + (x4^2 - x5^2)*y3) + x3^2*(x4*y4 - x5*y5) + x4^2*x5*y5 - x4*x5^2*y4 + x3*(x5^2 - x4^2)*y3) + x2^2*(y3*(x5*y5 + x3*(y4 - y5) - x4*y4) + y4*(x4*y5 - x5*y5)) + y3*(x3*(x4^2*y5 - x5^2*y4) - x4^2*x5*y5 + x4*x5^2*y4) + x3^2*y4*(x5*y5 - x4*y5)) + y2^2*(y3*(x3*(x5^2*y4 - x4^2*y5) + x4^2*x5*y5 - x4*x5^2*y4) + x3^2*y4*(x4*y5 - x5*y5)))/(x1*(y2*(x2*(y3*(y5^2 - y4^2) - y4*y5^2 + y4^2*y5 + y3^2*(y4 - y5)) + x4*y4*y5^2 + x3*y3*(y4^2 - y5^2) + y3^2*(x5*y5 - x4*y4) - x5*y4^2*y5) + y3*(x3*(y4*y5^2 - y4^2*y5) - x4*y4*y5^2 + x5*y4^2*y5) + y2^2*(y3*(x3*(y5 - y4) - x5*y5 + x4*y4) + y4*(x5*y5 - x4*y5)) + y3^2*y4*(x4*y5 - x5*y5)) + y1*(x1*(y2*(x3*(y5^2 - y4^2) - x4*y5^2 + x5*y4^2 + (x4 - x5)*y3^2) + x2*(y4*y5^2 + y3*(y4^2 - y5^2) + y3^2*(y5 - y4) - y4^2*y5) + x3*(y4^2*y5 - y4*y5^2) + y3*(x4*y5^2 - x5*y4^2) + y2^2*(x4*y5 + x3*(y4 - y5) - x5*y4 + (x5 - x4)*y3) + y3^2*(x5*y4 - x4*y5)) + x2*(x3*y3*(y5^2 - y4^2) - x4*y4*y5^2 + y3^2*(x4*y4 - x5*y5) + x5*y4^2*y5) + x3*(x4*y4*y5^2 - x5*y4^2*y5) + x2*y2*(x4*y5^2 + x3*(y4^2 - y5^2) - x5*y4^2 + (x5 - x4)*y3^2) + x3*y3*(x5*y4^2 - x4*y5^2) + y2^2*(x3*(x5*y5 - x4*y4) - x4*x5*y5 + x4*x5*y4 + x3*(x4 - x5)*y3) + y3^2*(x4*x5*y5 - x4*x5*y4)) + y2*(x2*(x3*(y4*y5^2 - y4^2*y5) + y3*(x5*y4^2 - x4*y5^2) + y3^2*(x4*y5 - x5*y4)) + x3*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4*y5^2 - x5*y4^2) + y3^2*(x4*x5*y4 - x4*x5*y5)) + x2*(y3*(x3*(y4^2*y5 - y4*y5^2) + x4*y4*y5^2 - x5*y4^2*y5) + y3^2*y4*(x5*y5 - x4*y5)) + y1^2*(y2*(x2*(x3*(y5 - y4) - x4*y5 + x5*y4 + (x4 - x5)*y3) + x3*(x4*y4 - x5*y5) + x4*x5*y5 - x4*x5*y4 + x3*(x5 - x4)*y3) + x2*(y3*(x5*y5 + x3*(y4 - y5) - x4*y4) + y4*(x4*y5 - x5*y5)) + y3*(x3*(x4*y5 - x5*y4) - x4*x5*y5 + x4*x5*y4) + x3*y4*(x5*y5 - x4*y5)) + y2^2*(y3*(x3*(x5*y4 - x4*y5) + x4*x5*y5 - x4*x5*y4) + x3*y4*(x4*y5 - x5*y5))),e = - (x1^2*(x2*(x3*y3*(y5^2 - y4^2) - x4*y4*y5^2 + y3^2*(x4*y4 - x5*y5) + x5*y4^2*y5) + x3*(x4*y4*y5^2 - x5*y4^2*y5) + x2*y2*(x4*y5^2 + x3*(y4^2 - y5^2) - x5*y4^2 + (x5 - x4)*y3^2) + x3*y3*(x5*y4^2 - x4*y5^2) + y2^2*(x3*(x5*y5 - x4*y4) - x4*x5*y5 + x4*x5*y4 + x3*(x4 - x5)*y3) + y3^2*(x4*x5*y5 - x4*x5*y4)) + x1*(x2*y2*(x3^2*(y5^2 - y4^2) - x4^2*y5^2 + x5^2*y4^2 + (x4^2 - x5^2)*y3^2) + x2^2*(x4*y4*y5^2 + x3*y3*(y4^2 - y5^2) + y3^2*(x5*y5 - x4*y4) - x5*y4^2*y5) + x3^2*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4^2*y5^2 - x5^2*y4^2) + y2^2*(x3^2*(x4*y4 - x5*y5) + x4^2*x5*y5 - x4*x5^2*y4 + x3*(x5^2 - x4^2)*y3) + y3^2*(x4*x5^2*y4 - x4^2*x5*y5)) + x1*y1*(x2^2*(x3*(y5^2 - y4^2) - x4*y5^2 + x5*y4^2 + (x4 - x5)*y3^2) + x2*(x4^2*y5^2 + x3^2*(y4^2 - y5^2) - x5^2*y4^2 + (x5^2 - x4^2)*y3^2) + x3*(x5^2*y4^2 - x4^2*y5^2) + x3^2*(x4*y5^2 - x5*y4^2) + (x4^2*x5 - x4*x5^2)*y3^2 + (x4*x5^2 + x3*(x4^2 - x5^2) + x3^2*(x5 - x4) - x4^2*x5)*y2^2) + x2*(x3^2*(x4*y4*y5^2 - x5*y4^2*y5) + x3*y3*(x5^2*y4^2 - x4^2*y5^2) + y3^2*(x4^2*x5*y5 - x4*x5^2*y4)) + x2^2*(x3*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4*y5^2 - x5*y4^2) + y3^2*(x4*x5*y4 - x4*x5*y5)) + x2*y2*(x3*(x4^2*y5^2 - x5^2*y4^2) + x3^2*(x5*y4^2 - x4*y5^2) + (x4*x5^2 - x4^2*x5)*y3^2) + y1^2*(x2*(x3^2*(x5*y5 - x4*y4) - x4^2*x5*y5 + x4*x5^2*y4 + x3*(x4^2 - x5^2)*y3) + x2^2*(x3*(x4*y4 - x5*y5) + x4*x5*y5 - x4*x5*y4 + x3*(x5 - x4)*y3) + x3*(x4^2*x5*y5 - x4*x5^2*y4) + x3^2*(x4*x5*y4 - x4*x5*y5) + x3*(x4*x5^2 - x4^2*x5)*y3 + x2*(x3*(x5^2 - x4^2) - x4*x5^2 + x4^2*x5 + x3^2*(x4 - x5))*y2) + y2^2*(x3*(x4*x5^2*y4 - x4^2*x5*y5) + x3^2*(x4*x5*y5 - x4*x5*y4) + x3*(x4^2*x5 - x4*x5^2)*y3))/(x1*(y2*(x2*(y3*(y5^2 - y4^2) - y4*y5^2 + y4^2*y5 + y3^2*(y4 - y5)) + x4*y4*y5^2 + x3*y3*(y4^2 - y5^2) + y3^2*(x5*y5 - x4*y4) - x5*y4^2*y5) + y3*(x3*(y4*y5^2 - y4^2*y5) - x4*y4*y5^2 + x5*y4^2*y5) + y2^2*(y3*(x3*(y5 - y4) - x5*y5 + x4*y4) + y4*(x5*y5 - x4*y5)) + y3^2*y4*(x4*y5 - x5*y5)) + y1*(x1*(y2*(x3*(y5^2 - y4^2) - x4*y5^2 + x5*y4^2 + (x4 - x5)*y3^2) + x2*(y4*y5^2 + y3*(y4^2 - y5^2) + y3^2*(y5 - y4) - y4^2*y5) + x3*(y4^2*y5 - y4*y5^2) + y3*(x4*y5^2 - x5*y4^2) + y2^2*(x4*y5 + x3*(y4 - y5) - x5*y4 + (x5 - x4)*y3) + y3^2*(x5*y4 - x4*y5)) + x2*(x3*y3*(y5^2 - y4^2) - x4*y4*y5^2 + y3^2*(x4*y4 - x5*y5) + x5*y4^2*y5) + x3*(x4*y4*y5^2 - x5*y4^2*y5) + x2*y2*(x4*y5^2 + x3*(y4^2 - y5^2) - x5*y4^2 + (x5 - x4)*y3^2) + x3*y3*(x5*y4^2 - x4*y5^2) + y2^2*(x3*(x5*y5 - x4*y4) - x4*x5*y5 + x4*x5*y4 + x3*(x4 - x5)*y3) + y3^2*(x4*x5*y5 - x4*x5*y4)) + y2*(x2*(x3*(y4*y5^2 - y4^2*y5) + y3*(x5*y4^2 - x4*y5^2) + y3^2*(x4*y5 - x5*y4)) + x3*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4*y5^2 - x5*y4^2) + y3^2*(x4*x5*y4 - x4*x5*y5)) + x2*(y3*(x3*(y4^2*y5 - y4*y5^2) + x4*y4*y5^2 - x5*y4^2*y5) + y3^2*y4*(x5*y5 - x4*y5)) + y1^2*(y2*(x2*(x3*(y5 - y4) - x4*y5 + x5*y4 + (x4 - x5)*y3) + x3*(x4*y4 - x5*y5) + x4*x5*y5 - x4*x5*y4 + x3*(x5 - x4)*y3) + x2*(y3*(x5*y5 + x3*(y4 - y5) - x4*y4) + y4*(x4*y5 - x5*y5)) + y3*(x3*(x4*y5 - x5*y4) - x4*x5*y5 + x4*x5*y4) + x3*y4*(x5*y5 - x4*y5)) + y2^2*(y3*(x3*(x5*y4 - x4*y5) + x4*x5*y5 - x4*x5*y4) + x3*y4*(x4*y5 - x5*y5))),f = (x1*(y2*(x2*(x3^2*(y4*y5^2 - y4^2*y5) + y3*(x5^2*y4^2 - x4^2*y5^2) + y3^2*(x4^2*y5 - x5^2*y4)) + x3^2*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4^2*y5^2 - x5^2*y4^2) + y3^2*(x4*x5^2*y4 - x4^2*x5*y5)) + x2^2*(y3*(x3*(y4^2*y5 - y4*y5^2) + x4*y4*y5^2 - x5*y4^2*y5) + y3^2*y4*(x5*y5 - x4*y5)) + y2^2*(y3*(x3*(x5^2*y4 - x4^2*y5) + x4^2*x5*y5 - x4*x5^2*y4) + x3^2*y4*(x4*y5 - x5*y5))) + y1*(x1*(x2^2*(x3*(y4*y5^2 - y4^2*y5) + y3*(x5*y4^2 - x4*y5^2) + y3^2*(x4*y5 - x5*y4)) + x2*(x3^2*(y4^2*y5 - y4*y5^2) + y3*(x4^2*y5^2 - x5^2*y4^2) + y3^2*(x5^2*y4 - x4^2*y5)) + y2*(x3*(x5^2*y4^2 - x4^2*y5^2) + x3^2*(x4*y5^2 - x5*y4^2) + (x4^2*x5 - x4*x5^2)*y3^2) + y2^2*(x3*(x4^2*y5 - x5^2*y4) + x3^2*(x5*y4 - x4*y5) + (x4*x5^2 - x4^2*x5)*y3)) + x2*(x3^2*(x4*y4*y5^2 - x5*y4^2*y5) + x3*y3*(x5^2*y4^2 - x4^2*y5^2) + y3^2*(x4^2*x5*y5 - x4*x5^2*y4)) + x2^2*(x3*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4*y5^2 - x5*y4^2) + y3^2*(x4*x5*y4 - x4*x5*y5)) + x2*y2*(x3*(x4^2*y5^2 - x5^2*y4^2) + x3^2*(x5*y4^2 - x4*y5^2) + (x4*x5^2 - x4^2*x5)*y3^2) + y2^2*(x3*(x4*x5^2*y4 - x4^2*x5*y5) + x3^2*(x4*x5*y5 - x4*x5*y4) + x3*(x4^2*x5 - x4*x5^2)*y3)) + x1^2*(x2*(y3*(x3*(y4*y5^2 - y4^2*y5) - x4*y4*y5^2 + x5*y4^2*y5) + y3^2*y4*(x4*y5 - x5*y5)) + y2*(x2*(x3*(y4^2*y5 - y4*y5^2) + y3*(x4*y5^2 - x5*y4^2) + y3^2*(x5*y4 - x4*y5)) + x3*(x4*y4*y5^2 - x5*y4^2*y5) + x3*y3*(x5*y4^2 - x4*y5^2) + y3^2*(x4*x5*y5 - x4*x5*y4)) + y2^2*(y3*(x3*(x4*y5 - x5*y4) - x4*x5*y5 + x4*x5*y4) + x3*y4*(x5*y5 - x4*y5))) + y1^2*(x2*(y3*(x3*(x4^2*y5 - x5^2*y4) - x4^2*x5*y5 + x4*x5^2*y4) + x3^2*y4*(x5*y5 - x4*y5)) + y2*(x2*(x3*(x5^2*y4 - x4^2*y5) + x3^2*(x4*y5 - x5*y4) + (x4^2*x5 - x4*x5^2)*y3) + x3*(x4^2*x5*y5 - x4*x5^2*y4) + x3^2*(x4*x5*y4 - x4*x5*y5) + x3*(x4*x5^2 - x4^2*x5)*y3) + x2^2*(y3*(x3*(x5*y4 - x4*y5) + x4*x5*y5 - x4*x5*y4) + x3*y4*(x4*y5 - x5*y5))))/(x1*(y2*(x2*(y3*(y5^2 - y4^2) - y4*y5^2 + y4^2*y5 + y3^2*(y4 - y5)) + x4*y4*y5^2 + x3*y3*(y4^2 - y5^2) + y3^2*(x5*y5 - x4*y4) - x5*y4^2*y5) + y3*(x3*(y4*y5^2 - y4^2*y5) - x4*y4*y5^2 + x5*y4^2*y5) + y2^2*(y3*(x3*(y5 - y4) - x5*y5 + x4*y4) + y4*(x5*y5 - x4*y5)) + y3^2*y4*(x4*y5 - x5*y5)) + y1*(x1*(y2*(x3*(y5^2 - y4^2) - x4*y5^2 + x5*y4^2 + (x4 - x5)*y3^2) + x2*(y4*y5^2 + y3*(y4^2 - y5^2) + y3^2*(y5 - y4) - y4^2*y5) + x3*(y4^2*y5 - y4*y5^2) + y3*(x4*y5^2 - x5*y4^2) + y2^2*(x4*y5 + x3*(y4 - y5) - x5*y4 + (x5 - x4)*y3) + y3^2*(x5*y4 - x4*y5)) + x2*(x3*y3*(y5^2 - y4^2) - x4*y4*y5^2 + y3^2*(x4*y4 - x5*y5) + x5*y4^2*y5) + x3*(x4*y4*y5^2 - x5*y4^2*y5) + x2*y2*(x4*y5^2 + x3*(y4^2 - y5^2) - x5*y4^2 + (x5 - x4)*y3^2) + x3*y3*(x5*y4^2 - x4*y5^2) + y2^2*(x3*(x5*y5 - x4*y4) - x4*x5*y5 + x4*x5*y4 + x3*(x4 - x5)*y3) + y3^2*(x4*x5*y5 - x4*x5*y4)) + y2*(x2*(x3*(y4*y5^2 - y4^2*y5) + y3*(x5*y4^2 - x4*y5^2) + y3^2*(x4*y5 - x5*y4)) + x3*(x5*y4^2*y5 - x4*y4*y5^2) + x3*y3*(x4*y5^2 - x5*y4^2) + y3^2*(x4*x5*y4 - x4*x5*y5)) + x2*(y3*(x3*(y4^2*y5 - y4*y5^2) + x4*y4*y5^2 - x5*y4^2*y5) + y3^2*y4*(x5*y5 - x4*y5)) + y1^2*(y2*(x2*(x3*(y5 - y4) - x4*y5 + x5*y4 + (x4 - x5)*y3) + x3*(x4*y4 - x5*y5) + x4*x5*y5 - x4*x5*y4 + x3*(x5 - x4)*y3) + x2*(y3*(x5*y5 + x3*(y4 - y5) - x4*y4) + y4*(x4*y5 - x5*y5)) + y3*(x3*(x4*y5 - x5*y4) - x4*x5*y5 + x4*x5*y4) + x3*y4*(x5*y5 - x4*y5)) + y2^2*(y3*(x3*(x5*y4 - x4*y5) + x4*x5*y5 - x4*x5*y4) + x3*y4*(x4*y5 - x5*y5)))]] Exiting SAGE (CPU time 0m1.41s, Wall time 0m2.23s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:30:30 2006 Input: x1 = 1 y1 = 2 s1 = 'x1^2 + b*x1*y1 + c*y1^2 + d*x1 + e*y1 + f = 0' x2 = 44 y2 = 11 s2 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' x3 = 65 y3 = 2 s3 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' x4 = 3 y4 = 2 s4 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' x5 = 3 y5 = 2 s5 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s Output: [[b = %r1,c = - ((%r1*x1 + %r2)*y1 + ( - %r1*x - %r2)*y + x1^2 + %r3*x1 - x^2 - %r3*x)/(y1^2 - y^2),d = %r3,e = %r2,f = - (((%r1*x + %r2)*y + x^2 + %r3*x)*y1^2 + ( - %r1*x1*y^2 - %r2*y^2)*y1 - x1^2*y^2 - %r3*x1*y^2)/(y1^2 - y^2)]] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.226' ************** SAGE ***************** Host 169.226.18.76 (169.226.18.76) Time: Wed Jul 5 13:30:17 2006 Input: 10/80 Output: 1/8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:29:52 2006 Input: x1 = 1 y1 = 2 s1 = 'x1^2 + b*x1*y1 + c*y1^2 + d*x1 + e*y1 + f = 0' s2 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s3 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s4 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s5 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s Output: [[b = %r1,c = - ((%r1*x1 + %r2)*y1 + ( - %r1*x - %r2)*y + x1^2 + %r3*x1 - x^2 - %r3*x)/(y1^2 - y^2),d = %r3,e = %r2,f = - (((%r1*x + %r2)*y + x^2 + %r3*x)*y1^2 + ( - %r1*x1*y^2 - %r2*y^2)*y1 - x1^2*y^2 - %r3*x1*y^2)/(y1^2 - y^2)]] Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.35s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:29:26 2006 Input: x = 1 y = 2 s1 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' x = 3 y = 2 s2 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s3 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s4 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s5 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s Output: [[b = %r1,c = %r4,d = %r3,e = %r2,f = - %r4*y^2 + ( - %r1*x - %r2)*y - x^2 - %r3*x]] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:29:05 2006 Input: x = 1 y = 2 s1 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s2 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s3 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s4 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s5 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s Output: [[b = %r1,c = %r4,d = %r3,e = %r2,f = - %r4*y^2 + ( - %r1*x - %r2)*y - x^2 - %r3*x]] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.33s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:28:53 2006 Input: x = 1 s1 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s2 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s3 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s4 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' s5 = 'x^2 + b*x*y + c*y^2 + d*x + e*y + f = 0' eqn = maxima([s1,s2,s3,s4,s5]) s = eqn.solve('[b,c,d,e,f]'); s Output: [[b = %r1,c = %r4,d = %r3,e = %r2,f = - %r4*y^2 + ( - %r1*x - %r2)*y - x^2 - %r3*x]] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.34s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 13:26:57 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 -(y*x + y)^2 -1 print(f) xt = (x-2)*(x+2-y) yt = y*xt + y print(xt) print(yt) Output: -1 - x1^2 - 2*x0*x1^2 + x0^2 - x0^2*x1^2 -4 + 2*x1 - x0*x1 + x0^2 -3*x1 + 2*x1^2 - x0*x1^2 + x0^2*x1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 13:26:14 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 -(y*x + y)^2 -1 print(f) xt = (x-2)*(x+2-y) yt = t*xt + t print(xt) print(yt) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__mul__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for t (parent: Univariate Polynomial Ring in t over Rational Field) and -4 + 2*x1 - x0*x1 + x0^2 (parent: Polynomial Ring in x0, x1 over Rational Field) --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'yt' is not defined -1 - x1^2 - 2*x0*x1^2 + x0^2 - x0^2*x1^2 -4 + 2*x1 - x0*x1 + x0^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Wed Jul 5 13:19:33 2006 Input: pts = mathematica({{1,0}, {1,1}}) Output: Errors: ------------------------------------------------------------ File "", line 1 pts = mathematica({{ZZ(1),ZZ(0)}, {ZZ(1),ZZ(1)}}) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:37:00 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 -(y*x + y)^2 -1 print(f) xt = (2*t^2 + 2)/-(2*t^2 - 2) yt = t*xt + t print(xt) print(yt) Output: -1 - x1^2 - 2*x0*x1^2 + x0^2 - x0^2*x1^2 (2*t^2 + 2)/(-2*t^2 + 2) 4*t/(-2*t^2 + 2) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:33:01 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 -(y*x + y)^2 -1 print(f) rt = (-2*t^2)^2 - 4*(1-t^2)*(-(t^2) - 1) print(rt) Output: -1 - x1^2 - 2*x0*x1^2 + x0^2 - x0^2*x1^2 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:28:35 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 -(y*x + y)^2 -1 print(f) Output: -1 - x1^2 - 2*x0*x1^2 + x0^2 - x0^2*x1^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:26:21 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) rt = t*2*(8*t^2-2)/(8*t^2+2) - 2*t print(rt) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 -8*t/(8*t^2 + 2) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:22:04 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) rt = t*2*(8*t^2-2)/(8*t^2+2) - 2*t print(rt) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 -8*t/(8*t^2 + 2) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:22:00 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) rt = t*2*(8*t^2-2)/(8*t^2+2) - 2*t print(rt) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 -8*t/(8*t^2 + 2) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:20:14 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) rt = 2*(8*t^2-2)/(8*t^2+2) print(rt) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 (16*t^2 - 4)/(8*t^2 + 2) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:13:59 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) rt = (16*t^2)^2 - 4*(4*t^2 + 1)*(16*t^2 - 4) print(rt) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 16 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:13:37 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) rt = (16*t)^2 - 4*(4*t^2 + 1)*(16*t^2 - 4) rt = (16*t)^2 - 4*(4*t^2)*(16*t^2) print(rt) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 -256*t^4 + 256*t^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:11:52 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) rt = (16*t)^2 - 4*(4*t^2 + 1)*(16*t^2 - 4) print(rt) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 -256*t^4 + 256*t^2 + 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '192.31.' ************** SAGE ***************** Host 192.31.19.50 (192.31.19.50) Time: Wed Jul 5 12:08:50 2006 Input: SQUARE ROOT OF 73 Output: Errors: ------------------------------------------------------------ File "", line 1 SQUARE ROOT OF ZZ(73) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:05:40 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + 4*y^2)-4 print(f) Output: -4 + 16*x1^2 - 16*x0*x1^2 + x0^2 + 4*x0^2*x1^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 12:05:30 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; f = x^2 + 4*(y^2*x^2 - 4*y^2*x + p*y^2)-4 print(f) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'p' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.158.' ************** SAGE ***************** Host 66.158.49.19 (66.158.49.19) Time: Wed Jul 5 11:46:55 2006 Input: y=? x^.5=y^2 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Object `y=` not found. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.158.' ************** SAGE ***************** Host 66.158.49.19 (66.158.49.19) Time: Wed Jul 5 11:46:02 2006 Input: y=4 x^5=y^2 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.158.' ************** SAGE ***************** Host 66.158.49.19 (66.158.49.19) Time: Wed Jul 5 11:44:46 2006 Input: y=4 x=y^2 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.158.' ************** SAGE ***************** Host 66.158.49.19 (66.158.49.19) Time: Wed Jul 5 11:44:21 2006 Input: x=y^2 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.158.' ************** SAGE ***************** Host 66.158.49.19 (66.158.49.19) Time: Wed Jul 5 11:43:46 2006 Input: x=y Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 11:29:07 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = x-y+1; l2 = x-2; l3 = y; l4 = l3; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(5/4,3/2)'); a = l1l2(5/4,3/2); print(a); print('l3l4(5/4,3/2)'); b = l3l4(5/4,3/2); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(-1,0) == 0); print(f(2,0) == 0); print(f(5/4,3/2) == 0); print('check'); print(f(4,2) == 0); print(f(3,0) == 0); Output: -2 + 2*x1 - x0 - x0*x1 + x0^2 x1^2 l1l2(5/4,3/2) -9/16 l3l4(5/4,3/2) 9/4 solve for c 1/4 -2 + 2*x1 + 1/4*x1^2 - x0 - x0*x1 + x0^2 tests: True True True check False False Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 11:24:06 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = x-y+1; l2 = x; l3 = y; l4 = l3; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(5/4,3/2)'); a = l1l2(5/4,3/2); print(a); print('l3l4(5/4,3/2)'); b = l3l4(5/4,3/2); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(-1,0) == 0); print(f(2,0) == 0); print(f(5/4,3/2) == 0); print('check'); print(f(4,2) == 0); print(f(3,0) == 0); Output: x0 - x0*x1 + x0^2 x1^2 l1l2(5/4,3/2) 15/16 l3l4(5/4,3/2) 9/4 solve for c -5/12 -5/12*x1^2 + x0 - x0*x1 + x0^2 tests: True False True check False False Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 11:03:46 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = x/6 + y - 8/3; l2 = y; l3 = 3*x + y + 3; l4 = 2*x - y - 6; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(0,6)'); a = l1l2(0,6); print(a); print('l3l4(0,6)'); b = l3l4(0,6); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(-2,3) == 0); print(f(-1,0) == 0); print(f(0,6) == 0); print(f(4,2) == 0); print(f(3,0) == 0); Output: -8/3*x1 + x1^2 + 1/6*x0*x1 -18 - 9*x1 - x1^2 - 12*x0 - x0*x1 + 6*x0^2 l1l2(0,6) 20 l3l4(0,6) -108 solve for c 5/27 -10/3 - 13/3*x1 + 22/27*x1^2 - 20/9*x0 - 1/54*x0*x1 + 10/9*x0^2 tests: True True True True True Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 11:02:35 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = -x/6 + y - 8/3; l2 = y; l3 = 3*x + y + 3; l4 = 2*x - y - 6; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(0,6)'); a = l1l2(0,6); print(a); print('l3l4(0,6)'); b = l3l4(0,6); print(b); print('solve for c') c = -a/b; print(c) f = l1l2 + c*l3l4; print(f); print('tests:'); print(f(-2,3) == 0); print(f(-1,0) == 0); print(f(0,6) == 0); print(f(4,2) == 0); print(f(3,0) == 0); Output: -8/3*x1 + x1^2 - 1/6*x0*x1 -18 - 9*x1 - x1^2 - 12*x0 - x0*x1 + 6*x0^2 l1l2(0,6) 20 l3l4(0,6) -108 solve for c 5/27 -10/3 - 13/3*x1 + 22/27*x1^2 - 20/9*x0 - 19/54*x0*x1 + 10/9*x0^2 tests: False True True False True Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:40:58 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-y+2; l2 = 3*x-y-6; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(0,0)'); print(l1l2(0,0)); print('l3l4(0,0)'); print(l3l4(0,0)); f = l1l2 + -4*l3l4; print(f); print('tests:'); print(f(-1,0) == 0); print(f(2,0) == 0); print(f(0,0) == 0); print(f(0,2) == 0); print(f(1,-3) == 0); Output: -12 + 4*x1 + x1^2 - 6*x0 - 5*x0*x1 + 6*x0^2 -3 - 1/2*x1 + x1^2 - 3/2*x0 + 5/2*x0*x1 + 3/2*x0^2 l1l2(0,0) -12 l3l4(0,0) -3 6*x1 - 3*x1^2 - 15*x0*x1 tests: True True True True True Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:38:56 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-6; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(0,0)'); print(l1l2(0,0)); print('l3l4(0,0)'); print(l3l4(0,0)); f = l1l2 + -4*l3l4; print(f); print('tests:'); print(f(-1,0) == 0); print(f(2,0) == 0); print(f(0,0) == 0); print(f(0,2) == 0); print(f(1,-3) == 0); Output: -12 + 10*x1 + 2*x1^2 - 6*x0 - 8*x0*x1 + 6*x0^2 -3 - 1/2*x1 + x1^2 - 3/2*x0 + 5/2*x0*x1 + 3/2*x0^2 l1l2(0,0) -12 l3l4(0,0) -3 12*x1 - 2*x1^2 - 18*x0*x1 tests: True True True False True Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:38:18 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); print('l1l2(0,0)'); print(l1l2(0,0)); print('l3l4(0,0)'); print(l3l4(0,0)); f = l1l2 + -4*l3l4; print(f); print('tests:'); print(f(-1,0) == 0); print(f(2,0) == 0); print(f(0,0) == 0); print(f(0,2) == 0); print(f(1,-3) == 0); Output: -10 + 8*x1 + 2*x1^2 - 4*x0 - 8*x0*x1 + 6*x0^2 -3 - 1/2*x1 + x1^2 - 3/2*x0 + 5/2*x0*x1 + 3/2*x0^2 l1l2(0,0) -10 l3l4(0,0) -3 2 + 10*x1 - 2*x1^2 + 2*x0 - 18*x0*x1 tests: True False False False False Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:36:09 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); print(l3l4); f = l1l2 + -4*l3l4; print(f); print('tests:'); print(f(-1,0) == 0); print(f(2,0) == 0); print(f(0,0) == 0); print(f(0,2) == 0); print(f(1,-3) == 0); Output: -10 + 8*x1 + 2*x1^2 - 4*x0 - 8*x0*x1 + 6*x0^2 -3 - 1/2*x1 + x1^2 - 3/2*x0 + 5/2*x0*x1 + 3/2*x0^2 2 + 10*x1 - 2*x1^2 + 2*x0 - 18*x0*x1 tests: True False False False False Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:34:12 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2(-1,0)) print(l3l4) print(l1l2 + -4*l3l4); Output: 0 -3 - 1/2*x1 + x1^2 - 3/2*x0 + 5/2*x0*x1 + 3/2*x0^2 2 + 10*x1 - 2*x1^2 + 2*x0 - 18*x0*x1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:33:49 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2(0,0)) print(l3l4) print(l1l2 + -4*l3l4); Output: -10 -3 - 1/2*x1 + x1^2 - 3/2*x0 + 5/2*x0*x1 + 3/2*x0^2 2 + 10*x1 - 2*x1^2 + 2*x0 - 18*x0*x1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:31:30 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2) print(l3l4) print(l1l2 + -4*l3l4); Output: -10 + 8*x1 + 2*x1^2 - 4*x0 - 8*x0*x1 + 6*x0^2 -3 - 1/2*x1 + x1^2 - 3/2*x0 + 5/2*x0*x1 + 3/2*x0^2 2 + 10*x1 - 2*x1^2 + 2*x0 - 18*x0*x1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:30:15 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2 + -4*l3l4); Output: 2 + 10*x1 - 2*x1^2 + 2*x0 - 18*x0*x1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:30:00 2006 Input: Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); Output: -10 + 8*x1 + 2*x1^2 - 4*x0 - 8*x0*x1 + 6*x0^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:29:22 2006 Input: help(PolynomialRing) Px = PolynomialRing(QQ, 2); x = Px.0; y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); Output: Help on function PolynomialRing in module sage.rings.polynomial_ring: PolynomialRing(base_ring, name=None, sparse=False, names=None, order=None, macaulay2=False) Return a univariate or multivariate polynomial ring. INPUT: base_ring -- the base ring name -- (str) the name of the generator sparse -- (bool; default: False) whether or not elements are represented using sparse methods; note that multivariate polynomials are always sparse names -- names of the generators (for multivariate poly) order -- term order of ring macaulay2 (bool; default: False) -- whether or not to use Macaulay2 (multivariate only) EXAMPLES: PolynomialRing(ZZ) Univariate Polynomial Ring in x over Integer Ring PolynomialRing(ZZ, 'y') Univariate Polynomial Ring in y over Integer Ring PolynomialRing(PolynomialRing(QQ,'z'), 'y') Univariate Polynomial Ring in y over Univariate Polynomial Ring in z over Rational Field PolynomialRing(QQ, name='abc') Univariate Polynomial Ring in abc over Rational Field PolynomialRing(QQ, name='abc', sparse=True) Sparse Univariate Polynomial Ring in abc over Rational Field PolynomialRing(QQ, 3, sparse=True) Polynomial Ring in x0, x1, x2 over Rational Field PolynomialRing(QQ, 3, macaulay2=True) Polynomial Ring in x0, x1, x2 over Rational Field -10 + 8*x1 + 2*x1^2 - 4*x0 - 8*x0*x1 + 6*x0^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:27:38 2006 Input: help(PolynomialRing) Px = PolynomialRing(QQ, 'x', 'y'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.0; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5; l3 = x+y-2; l4 = 3*x/2 + y + 3/2; l1l2 = l1*l2; l3l4 = l3*l4; print(l1l2); Output: Help on function PolynomialRing in module sage.rings.polynomial_ring: PolynomialRing(base_ring, name=None, sparse=False, names=None, order=None, macaulay2=False) Return a univariate or multivariate polynomial ring. INPUT: base_ring -- the base ring name -- (str) the name of the generator sparse -- (bool; default: False) whether or not elements are represented using sparse methods; note that multivariate polynomials are always sparse names -- names of the generators (for multivariate poly) order -- term order of ring macaulay2 (bool; default: False) -- whether or not to use Macaulay2 (multivariate only) EXAMPLES: PolynomialRing(ZZ) Univariate Polynomial Ring in x over Integer Ring PolynomialRing(ZZ, 'y') Univariate Polynomial Ring in y over Integer Ring PolynomialRing(PolynomialRing(QQ,'z'), 'y') Univariate Polynomial Ring in y over Univariate Polynomial Ring in z over Rational Field PolynomialRing(QQ, name='abc') Univariate Polynomial Ring in abc over Rational Field PolynomialRing(QQ, name='abc', sparse=True) Sparse Univariate Polynomial Ring in abc over Rational Field PolynomialRing(QQ, 3, sparse=True) Polynomial Ring in x0, x1, x2 over Rational Field PolynomialRing(QQ, 3, macaulay2=True) Polynomial Ring in x0, x1, x2 over Rational Field 4*x - 10 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:27:04 2006 Input: Px = PolynomialRing(QQ, 'x', 'y'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.0; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 print(l1l2); Output: 4*x - 10 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:26:51 2006 Input: Px = PolynomialRing(QQ, 'x', 'y'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.0; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:26:36 2006 Input: Px = PolynomialRing(QQ, 'x', 'y'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in gen(self, n) IndexError: Generator 1 not defined. --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:26:07 2006 Input: Px = PolynomialRing(QQ^2, 'x'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) TypeError: Base ring (=Vector space of dimension 2 over Rational Field) must be a commutative ring. --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:25:28 2006 Input: Px = PolynomialRing(QQ, 'x'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.0; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 print(l1l2) Output: 4*x - 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:25:06 2006 Input: Px = PolynomialRing(QQ, 'x'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.0; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:24:51 2006 Input: Px = PolynomialRing(QQ, ['x','y']); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.0; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/gens.pyx in gens.Generators.assign_names() IndexError: the number of names must equal the number of generators --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:24:08 2006 Input: Px = PolynomialRing(QQ, ['x','y']); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/gens.pyx in gens.Generators.assign_names() IndexError: the number of names must equal the number of generators --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:23:52 2006 Input: Px = PolynomialRing(QQ, '[x,y]'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.ValueError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/gens.pyx in gens.Generators.assign_names() /home/sage/gens.pyx in gens.Generators.__certify_names() ValueError: variable names must be alphanumeric, but one is '[x' which is not. --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:23:30 2006 Input: Px = PolynomialRing(QQ, 'x,y'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in PolynomialRing(base_ring, name, sparse, names, order, macaulay2) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in __init__(self, base_ring, name, sparse) /home/sage/gens.pyx in gens.Generators.assign_names() IndexError: the number of names must equal the number of generators --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Px' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:23:08 2006 Input: Px = PolynomialRing(QQ, 'x'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Px.1; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_ring.py in gen(self, n) IndexError: Generator 1 not defined. --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'y' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Wed Jul 5 10:22:36 2006 Input: Px = PolynomialRing(QQ, 'x'); x = Px.0; Py = PolynomialRing(QQ, 'y'); y = Py.0; Pt = PolynomialRing(QQ, 't'); t = Pt.0; l1 = 2*x-2*y+2; l2 = 3*x-y-5 l3 = x+y-2 l4 = 3*x/2 + y + 3/2 l1l2 = l1*l2 l3l4 = l3*l4 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__sub__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 2*x (parent: Univariate Polynomial Ring in x over Rational Field) and 2*y (parent: Univariate Polynomial Ring in y over Rational Field) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__sub__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 3*x (parent: Univariate Polynomial Ring in x over Rational Field) and y (parent: Univariate Polynomial Ring in y over Rational Field) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__add__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and y (parent: Univariate Polynomial Ring in y over Rational Field) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/element.pyx in element.RingElement.__add__() /home/sage/coerce.pyx in coerce.bin_op() TypeError: unable to find a common parent for 3/2*x (parent: Univariate Polynomial Ring in x over Rational Field) and y (parent: Univariate Polynomial Ring in y over Rational Field) --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l1' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'l3' is not defined Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.57s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '198.105' ************** SAGE ***************** Host 198.105.0.129 (198.105.0.129) Time: Wed Jul 5 09:22:07 2006 Input: diff((exp(-0.5*lambda2)*(0.5*lambda2)^N2*exp(-(5/12)*lambda3)*((5/12)*lambda3)^N3)/(N2!*N3!),lambda2); Output: Errors: ------------------------------------------------------------ File "", line 1 diff((exp(-RealField(max(6,RR.precision()))('0.5')*lambda2)*(RealField(max(6,RR.precision()))('0.5')*lambda2)**N2*exp(-(ZZ(5)/ZZ(12))*lambda3)*((ZZ(5)/ZZ(12))*lambda3)**N3)/(N2!*N3!),lambda2); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.10.1' ************** SAGE ***************** Host 65.10.169.171 (65.10.169.171) Time: Wed Jul 5 08:45:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.42.1' ************** SAGE ***************** Host 68.42.16.64 (68.42.16.64) Time: Wed Jul 5 08:12:34 2006 Input: 8753 Output: 8753 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.146.' ************** SAGE ***************** Host 72.146.229.75 (72.146.229.75) Time: Wed Jul 5 07:49:37 2006 Input: 2* -2 Output: -4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '4.155.5' ************** SAGE ***************** Host 4.155.51.57 (4.155.51.57) Time: Wed Jul 5 06:41:39 2006 Input: 271.28+144.46= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(16,RR.precision()))('271.28')+RealField(max(16,RR.precision()))('144.46')= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '4.155.5' ************** SAGE ***************** Host 4.155.51.57 (4.155.51.57) Time: Wed Jul 5 06:41:18 2006 Input: 271.28+144.46= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(16,RR.precision()))('271.28')+RealField(max(16,RR.precision()))('144.46')= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '193.6.2' ************** SAGE ***************** Host 193.6.209.30 (193.6.209.30) Time: Wed Jul 5 06:31:50 2006 Input: 12+54+1+kl Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'kl' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '193.6.2' ************** SAGE ***************** Host 193.6.209.30 (193.6.209.30) Time: Wed Jul 5 06:30:35 2006 Input: 12+54 Output: 66 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '62.171.' ************** SAGE ***************** Host 62.171.194.4 (62.171.194.4) Time: Wed Jul 5 02:02:40 2006 Input: (8*4)*6 Output: 192 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.247.' ************** SAGE ***************** Host 24.247.252.228 (24.247.252.228) Time: Tue Jul 4 20:27:52 2006 Input: 4*3.5+7.5 Output: 21.500000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.247.' ************** SAGE ***************** Host 24.247.252.228 (24.247.252.228) Time: Tue Jul 4 20:27:05 2006 Input: 4*3.5 Output: 14.000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.247.' ************** SAGE ***************** Host 24.247.252.228 (24.247.252.228) Time: Tue Jul 4 20:26:28 2006 Input: 6*5 Output: 30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.247.' ************** SAGE ***************** Host 24.247.252.228 (24.247.252.228) Time: Tue Jul 4 20:26:19 2006 Input: 6+5 Output: 11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.0.23' ************** SAGE ***************** Host 75.0.236.210 (75.0.236.210) Time: Tue Jul 4 18:15:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.0.23' ************** SAGE ***************** Host 75.0.236.210 (75.0.236.210) Time: Tue Jul 4 18:11:53 2006 Input: 64*2.54 135/2.2 61.4*30 Output: 162.56000000000000 61.363636363636360 1842.0000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.0.23' ************** SAGE ***************** Host 75.0.236.210 (75.0.236.210) Time: Tue Jul 4 18:10:05 2006 Input: 64*2.54 135/2.2 61.4*33 Output: 162.56000000000000 61.363636363636360 2026.2000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.0.23' ************** SAGE ***************** Host 75.0.236.210 (75.0.236.210) Time: Tue Jul 4 18:09:43 2006 Input: 64*2.54 135/2.2 Output: 162.56000000000000 61.363636363636360 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.0.23' ************** SAGE ***************** Host 75.0.236.210 (75.0.236.210) Time: Tue Jul 4 18:09:08 2006 Input: 64*2.54 Output: 162.56000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '75.0.23' ************** SAGE ***************** Host 75.0.236.210 (75.0.236.210) Time: Tue Jul 4 18:08:43 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.163.' ************** SAGE ***************** Host 67.163.103.71 (67.163.103.71) Time: Tue Jul 4 16:19:36 2006 Input: 89.99+29.99+29.99+24.99+24.99+49.99 Output: 249.94000000000003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.163.' ************** SAGE ***************** Host 67.163.103.71 (67.163.103.71) Time: Tue Jul 4 16:18:27 2006 Input: 3.32+32.6 Output: 35.920000000000002 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.08s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.163.' ************** SAGE ***************** Host 67.163.103.71 (67.163.103.71) Time: Tue Jul 4 16:18:08 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.163.' ************** SAGE ***************** Host 67.163.103.71 (67.163.103.71) Time: Tue Jul 4 16:17:53 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.181.' ************** SAGE ***************** Host 69.181.63.41 (69.181.63.41) Time: Tue Jul 4 11:37:25 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:47:56 2006 Input: EllipticCurve(GF(37),[0,0,0,5,10]).cardinality() EllipticCurve(GF(41),[0,0,0,5,10]).cardinality() EllipticCurve(GF(43),[0,0,0,5,10]).cardinality() EllipticCurve(GF(47),[0,0,0,5,10]).cardinality() EllipticCurve(GF(53),[0,0,0,5,10]).cardinality() Output: 32 45 40 44 60 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:47:06 2006 Input: EllipticCurve(GF(37),[0,0,0,5,10]).cardinality() EllipticCurve(GF(41),[0,0,0,5,10]).cardinality() EllipticCurve(GF(43),[0,0,0,5,10]).cardinality() EllipticCurve(GF(47),[0,0,0,5,10]).cardinality() EllipticCurve(GF(51),[0,0,0,5,10]).cardinality() Output: Errors: --------------------------------------------------------------------------- exceptions.ArithmeticError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/finite_field.py in GF(order, name) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/finite_field.py in FiniteField(order, name) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/finite_field.py in __init__(self, q, name, modulus) ArithmeticError: q (=51) must be a prime power 32 45 40 44 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.09s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.191.' ************** SAGE ***************** Host 67.191.91.107 (67.191.91.107) Time: Tue Jul 4 08:37:42 2006 Input: sage: maxima('x^2+3*x').integrate('x') Output: x^3/3 + 3*x^2/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.191.' ************** SAGE ***************** Host 67.191.91.107 (67.191.91.107) Time: Tue Jul 4 08:28:31 2006 Input: sage: maxima('x*sin(x^2)').integrate('x') Output: -cos(x^2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.191.' ************** SAGE ***************** Host 67.191.91.107 (67.191.91.107) Time: Tue Jul 4 08:27:04 2006 Input: sage: maxima('x^2').integrate('x') Output: x^3/3 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.29s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.191.' ************** SAGE ***************** Host 67.191.91.107 (67.191.91.107) Time: Tue Jul 4 08:26:28 2006 Input: sage: maxima('x*sin(x^2)').integrate('x') Output: -cos(x^2)/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.91s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.191.' ************** SAGE ***************** Host 67.191.91.107 (67.191.91.107) Time: Tue Jul 4 08:24:28 2006 Input: integral(x^2,x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.191.' ************** SAGE ***************** Host 67.191.91.107 (67.191.91.107) Time: Tue Jul 4 08:23:58 2006 Input: integrate(x^2,x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.191.' ************** SAGE ***************** Host 67.191.91.107 (67.191.91.107) Time: Tue Jul 4 08:23:30 2006 Input: 1+2 Output: 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:17:18 2006 Input: EllipticCurve(GF(23),[0,0,0,5,10]).cardinality() EllipticCurve(GF(29),[0,0,0,5,10]).cardinality() EllipticCurve(GF(31),[0,0,0,5,10]).cardinality() EllipticCurve(GF(17),[0,0,0,5,10]).cardinality() EllipticCurve(GF(19),[0,0,0,5,10]).cardinality() Output: 26 38 42 23 21 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:16:00 2006 Input: EllipticCurve(GF(7),[0,0,0,5,10]).cardinality() EllipticCurve(GF(11),[0,0,0,5,10]).cardinality() EllipticCurve(GF(13),[0,0,0,5,10]).cardinality() EllipticCurve(GF(17),[0,0,0,5,10]).cardinality() EllipticCurve(GF(19),[0,0,0,5,10]).cardinality() Output: 6 13 18 23 21 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:10:32 2006 Input: EllipticCurve(GF(3),[0,0,0,5,10]).cardinality() Output: 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:10:19 2006 Input: EllipticCurve(GF(2),[0,0,0,5,10]).cardinality() Output: Errors: --------------------------------------------------------------------------- exceptions.ArithmeticError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py in EllipticCurve(x, y) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py in __init__(self, x, y) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py in __init__(self, ainvs, extra) ArithmeticError: Invariants [0, 0, 0, 1, 0] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:06:57 2006 Input: for n to 100 do EllipticCurve(GF(n),[0,0,0,5,10]).cardinality() Output: Errors: ------------------------------------------------------------ File "", line 1 for n to ZZ(100) do ^ SyntaxError: invalid syntax --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'n' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:06:17 2006 Input: EllipticCurve(GF(7),[0,0,0,5,10]).cardinality() Output: 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.19s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:05:48 2006 Input: EllipticCurve(GF(7),[0,0,0,5,10]) Output: Elliptic Curve defined by y^2 = x^3 + 5*x + 3 over Finite Field of size 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:05:36 2006 Input: E=EllipticCurve(GF(7),[0,0,0,5,10]) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:05:31 2006 Input: E:=EllipticCurve(GF(7),[0,0,0,5,10]) Output: Errors: ------------------------------------------------------------ File "", line 1 E:=EllipticCurve(GF(ZZ(7)),[ZZ(0),ZZ(0),ZZ(0),ZZ(5),ZZ(10)]) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:05:08 2006 Input: E:=EllipticCurve(GF(7)[0,0,0,5,10]) Output: Errors: ------------------------------------------------------------ File "", line 1 E:=EllipticCurve(GF(ZZ(7))[0,0,0,5,10]) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:04:56 2006 Input: E=EllipticCurve(GF(7)[0,0,0,5,10]) Output: Errors: --------------------------------------------------------------------------- exceptions.AttributeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py in EllipticCurve(x, y) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py in __init__(self, ainvs, extra) AttributeError: 'PolynomialRing_integral_domain' object has no attribute 'parent' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '141.20.' ************** SAGE ***************** Host 141.20.50.155 (141.20.50.155) Time: Tue Jul 4 08:04:43 2006 Input: E:=EllipticCurve(GF(7)[0,0,0,5,10]) Output: Errors: ------------------------------------------------------------ File "", line 1 E:=EllipticCurve(GF(ZZ(7))[0,0,0,5,10]) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '213.5.9' ************** SAGE ***************** Host 213.5.94.159 (213.5.94.159) Time: Tue Jul 4 05:16:47 2006 Input: Simplify [(a+b)^2] Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Simplify' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '213.5.9' ************** SAGE ***************** Host 213.5.94.159 (213.5.94.159) Time: Tue Jul 4 05:16:15 2006 Input: 4+5 Output: 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '59.144.' ************** SAGE ***************** Host 59.144.22.239 (59.144.22.239) Time: Tue Jul 4 03:53:28 2006 Input: 3^.5 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/integer.pyx in integer.Integer.__pow__() TypeError: exponent (=0.50000000000000000) must be an integer. Coerce your numbers to real or complex numbers first. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '59.144.' ************** SAGE ***************** Host 59.144.22.239 (59.144.22.239) Time: Tue Jul 4 03:53:27 2006 Input: 3^.5 Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/integer.pyx in integer.Integer.__pow__() TypeError: exponent (=0.50000000000000000) must be an integer. Coerce your numbers to real or complex numbers first. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '60.224.' ************** SAGE ***************** Host 60.224.237.97 (60.224.237.97) Time: Tue Jul 4 02:45:36 2006 Input: 208/16.5 Output: 12.606060606060606 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '60.224.' ************** SAGE ***************** Host 60.224.237.97 (60.224.237.97) Time: Tue Jul 4 02:36:07 2006 Input: 240/16.5 Output: 14.545454545454545 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.22s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '60.224.' ************** SAGE ***************** Host 60.224.237.97 (60.224.237.97) Time: Tue Jul 4 02:35:16 2006 Input: 240/3 Output: 80 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.33s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.194.' ************** SAGE ***************** Host 69.194.230.105 (69.194.230.105) Time: Tue Jul 4 00:35:09 2006 Input: 0+0.1(1-1(0)-1) Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.233.' ************** SAGE ***************** Host 71.233.78.114 (71.233.78.114) Time: Mon Jul 3 21:49:38 2006 Input: print maxima('tan(x)').integrate('x') print maxima (5!) Output: Errors: ------------------------------------------------------------ File "", line 1 print maxima (ZZ(5)!) ^ SyntaxError: invalid syntax log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.233.' ************** SAGE ***************** Host 71.233.78.114 (71.233.78.114) Time: Mon Jul 3 21:48:56 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.01s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.34.2' ************** SAGE ***************** Host 67.34.228.106 (67.34.228.106) Time: Mon Jul 3 13:38:06 2006 Input: 1+7% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1)+ZZ(7)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.45.1' ************** SAGE ***************** Host 24.45.104.89 (24.45.104.89) Time: Mon Jul 3 13:35:13 2006 Input: 34 x 3 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(34) x ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.95.2' ************** SAGE ***************** Host 65.95.231.63 (65.95.231.63) Time: Mon Jul 3 13:28:27 2006 Input: 28.5+38+26.5+16.5+24.5+2+20.5+4.5+6.5+5+30+13+20.5+3+17+16+25-1.5+1.5+6 Output: 303.00000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.95.2' ************** SAGE ***************** Host 65.95.231.63 (65.95.231.63) Time: Mon Jul 3 13:26:42 2006 Input: 36+38+21.5+22+0.5+16.5+4.5+12.5+12+26.5+5.5+2+8+24.5+22+19+2+9.5+24.5+3.5+21-10 Output: 321.50000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.95.2' ************** SAGE ***************** Host 65.95.231.63 (65.95.231.63) Time: Mon Jul 3 13:25:13 2006 Input: 36+38+21.5+22+0.5+16.5+4.5+12.5+12 Output: 163.50000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.95.2' ************** SAGE ***************** Host 65.95.231.63 (65.95.231.63) Time: Mon Jul 3 13:24:15 2006 Input: 43+41 Output: 84 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '142.177' ************** SAGE ***************** Host 142.177.190.211 (142.177.190.211) Time: Mon Jul 3 10:52:17 2006 Input: $681. x 29.90% Output: Errors: ------------------------------------------------------------ File "", line 1 $RealField(max(9,RR.precision()))('681.') x RealField(max(13,RR.precision()))('29.90')% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '142.177' ************** SAGE ***************** Host 142.177.190.211 (142.177.190.211) Time: Mon Jul 3 10:52:08 2006 Input: $681. x 29.90% Output: Errors: ------------------------------------------------------------ File "", line 1 $RealField(max(9,RR.precision()))('681.') x RealField(max(13,RR.precision()))('29.90')% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '142.177' ************** SAGE ***************** Host 142.177.190.211 (142.177.190.211) Time: Mon Jul 3 10:51:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.242.' ************** SAGE ***************** Host 71.242.70.72 (71.242.70.72) Time: Mon Jul 3 10:33:12 2006 Input: log2(4500) Output: log2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.200' ************** SAGE ***************** Host 207.200.116.135 (207.200.116.135) Time: Mon Jul 3 09:12:42 2006 Input: 20 x 9.50= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(20) x RealField(max(9,RR.precision()))('9.50')= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '206.3.4' ************** SAGE ***************** Host 206.3.42.254 (206.3.42.254) Time: Mon Jul 3 09:02:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.21.1' ************** SAGE ***************** Host 66.21.142.211 (66.21.142.211) Time: Mon Jul 3 08:55:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '165.234' ************** SAGE ***************** Host 165.234.216.246 (165.234.216.246) Time: Mon Jul 3 08:43:08 2006 Input: The graph of the function f(x)= 3x^2-4/X^2-16 has a horizontal asymptote at y= Output: Errors: ------------------------------------------------------------ File "", line 1 The graph of the function f(x)= ZZ(3)x**ZZ(2)-ZZ(4)/X**ZZ(2)-ZZ(16) has a horizontal asymptote at y= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '165.234' ************** SAGE ***************** Host 165.234.216.246 (165.234.216.246) Time: Mon Jul 3 08:41:54 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.139' ************** SAGE ***************** Host 169.139.1.20 (169.139.1.20) Time: Mon Jul 3 08:24:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.66.2' ************** SAGE ***************** Host 72.66.228.54 (72.66.228.54) Time: Mon Jul 3 04:32:33 2006 Input: 10x100 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10)x100 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '220.136' ************** SAGE ***************** Host 220.136.163.12 (220.136.163.12) Time: Mon Jul 3 02:47:20 2006 Input: pari(120^128+1).isprime() Output: True Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '220.136' ************** SAGE ***************** Host 220.136.163.12 (220.136.163.12) Time: Mon Jul 3 02:47:06 2006 Input: pari(102^64+1).isprime() Output: True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '220.136' ************** SAGE ***************** Host 220.136.163.12 (220.136.163.12) Time: Mon Jul 3 02:46:33 2006 Input: factor(2^128+1) Output: 59649589127497217 * 5704689200685129054721 Exiting SAGE (CPU time 0m0.24s, Wall time 0m0.24s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '129.78.' ************** SAGE ***************** Host 129.78.208.4 (129.78.208.4) Time: Mon Jul 3 02:42:46 2006 Input: (1+x)^7 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '220.136' ************** SAGE ***************** Host 220.136.163.12 (220.136.163.12) Time: Mon Jul 3 02:42:43 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.13s, Wall time 0m4.39s). Exiting spawned Gap process. Exiting spawned GP/PARI interpreter process. Exiting spawned Kash process. Exiting spawned Maxima process. Exiting spawned Singular process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '220.136' ************** SAGE ***************** Host 220.136.163.12 (220.136.163.12) Time: Mon Jul 3 02:42:16 2006 Input: factor(62^32+1) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 6883 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '220.136' ************** SAGE ***************** Host 220.136.163.12 (220.136.163.12) Time: Mon Jul 3 02:41:42 2006 Input: factor(62^32+1) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 6858 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Mon Jul 3 00:28:13 2006 Input: z = QQ['z'].0 K = NumberField(z^3 - 2,'s'); K K.discriminant() Output: Number Field in s with defining polynomial z^3 - 2 -108 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.23s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Mon Jul 3 00:26:55 2006 Input: NumberField(x^2-3).discriminant() Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Mon Jul 3 00:25:32 2006 Input: k=NumberField(x^2-3) k.discriminant() Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'x' is not defined --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'k' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '62.135.' ************** SAGE ***************** Host 62.135.116.248 (62.135.116.248) Time: Mon Jul 3 00:17:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.40.1' ************** SAGE ***************** Host 65.40.109.31 (65.40.109.31) Time: Mon Jul 3 00:15:15 2006 Input: factor (11048546173416288693839243179043636404907551253850222324764735773426960799386155367351499591084286517) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 6233 Killed sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '71.103.' ************** SAGE ***************** Host 71.103.201.206 (71.103.201.206) Time: Sun Jul 2 17:51:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.103.' ************** SAGE ***************** Host 71.103.201.206 (71.103.201.206) Time: Sun Jul 2 17:51:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.103.' ************** SAGE ***************** Host 71.103.201.206 (71.103.201.206) Time: Sun Jul 2 17:51:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.103.' ************** SAGE ***************** Host 71.103.201.206 (71.103.201.206) Time: Sun Jul 2 17:51:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:41:13 2006 Input: 48+26*3+35*4+20+28*5+50 Output: 476 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:40:19 2006 Input: 4*50+5*24+15*13+5*13+8*18 Output: 724 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:39:37 2006 Input: 14*3 Output: 42 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:38:55 2006 Input: 29*3 Output: 87 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:38:00 2006 Input: 1427/105 Output: 1427/105 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:37:25 2006 Input: (21*13)+26+120+100+(26*24)+70+(13*10.5)+(3*26) Output: 1427.5000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:37:14 2006 Input: (21*13)+26+120+100+(26*24)+70+(13*10.5)+(3*26) Output: 1427.5000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:36:27 2006 Input: (21*13)+26+120+100+(26*24)+70+(13*10.5)+(3*26) 1427/105 Output: 1427.5000000000000 1427/105 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '63.207.' ************** SAGE ***************** Host 63.207.56.74 (63.207.56.74) Time: Sun Jul 2 15:36:11 2006 Input: (21*13)+26+120+100+(26*24)+70+(13*10.5)+(3*26) Output: 1427.5000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '84.187.' ************** SAGE ***************** Host 84.187.225.251 (84.187.225.251) Time: Sun Jul 2 14:00:54 2006 Input: diff (x^2,x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'diff' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.226.' ************** SAGE ***************** Host 68.226.31.110 (68.226.31.110) Time: Sun Jul 2 13:04:28 2006 Input: 78789 + 58747 Output: 137536 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.150.' ************** SAGE ***************** Host 24.150.86.125 (24.150.86.125) Time: Sun Jul 2 10:25:26 2006 Input: 1+1+1000+1400+1300+400+600+1000+100+2000+300+800+1500+1500+1700+5500+2+4=3+300+200+1400+1000+1200+1200+3000+8000+200+1000+600 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.150.' ************** SAGE ***************** Host 24.150.86.125 (24.150.86.125) Time: Sun Jul 2 10:25:23 2006 Input: 1+1+1000+1400+1300+400+600+1000+100+2000+300+800+1500+1500+1700+5500+2+4=3+300+200+1400+1000+1200+1200+3000+8000+200+1000+600 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.150.' ************** SAGE ***************** Host 24.150.86.125 (24.150.86.125) Time: Sun Jul 2 10:25:20 2006 Input: 1+1+1000+1400+1300+400+600+1000+100+2000+300+800+1500+1500+1700+5500+2+4=3+300+200+1400+1000+1200+1200+3000+8000+200+1000+600 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.246.' ************** SAGE ***************** Host 61.246.61.208 (61.246.61.208) Time: Sun Jul 2 10:11:34 2006 Input: mwrank([0,21,0,20,0]) Output: "\nCurve [0,21,0,20,0] :\tWorking with minimal curve [0,0,0,-127,546]\n\t[u,r,s,t] = [1,-7,0,0]\n\n3 points of order 2:\n[6:0:1], [7:0:1], [-13:0:1]\n\n****************************\n* Using 2-isogeny number 1 *\n****************************\n\nUsing 2-isogenous curve [0,-36,0,400,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 1\nrk(S^{phi}(E'))=\t2\nrk(S^{phi'}(E))=\t1\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\nAfter second local descent, rank bound = 1\nrk(phi'(S^{2}(E)))=\t2\nrk(phi(S^{2}(E')))=\t1\nrk(S^{2}(E))=\t3\nrk(S^{2}(E'))=\t2\n\n****************************\n* Using 2-isogeny number 2 *\n****************************\n\nUsing 2-isogenous curve [0,-42,0,361,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 1\nrk(S^{phi}(E'))=\t3\nrk(S^{phi'}(E))=\t0\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\nAfter second local descent, rank bound = 1\nrk(phi'(S^{2}(E)))=\t3\nrk(phi(S^{2}(E')))=\t0\nrk(S^{2}(E))=\t3\nrk(S^{2}(E'))=\t2\n\n****************************\n* Using 2-isogeny number 3 *\n****************************\n\nUsing 2-isogenous curve [0,78,0,1,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 1\nrk(S^{phi}(E'))=\t3\nrk(S^{phi'}(E))=\t0\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\nAfter second local descent, rank bound = 1\nrk(phi'(S^{2}(E)))=\t3\nrk(phi(S^{2}(E')))=\t0\nrk(S^{2}(E))=\t3\nrk(S^{2}(E'))=\t2\n\nAfter second local descent, combined upper bound on rank = 1\nThird step, determining E(Q)/phi(E'(Q)) and E'(Q)/phi'(E(Q))\n-------------------------------------------------------\n1. E(Q)/phi(E'(Q))\n-------------------------------------------------------\n(c,d) =(-39,380)\n(c',d')=(78,1)\nFirst stage (no second descent yet)...\n(2,0,-39,0,190): (x:y:z) = (3:1:1)\n\tCurve E \tPoint [18:6:1], height = 0.861234196435297\n(5,0,-39,0,76): (x:y:z) = (2:0:1)\n\tCurve E \tPoint [20:0:1], height = 0\nAfter first global descent, this component of the rank = 3\n-------------------------------------------------------\n2. E'(Q)/phi'(E(Q))\n-------------------------------------------------------\nThis component of the rank is 0\n\n-------------------------------------------------------\nSummary of results:\n-------------------------------------------------------\n\trank(E) = 1\n\t#E(Q)/2E(Q) = 8\n\nInformation on III(E/Q):\n\t#III(E/Q)[phi'] = 1\n\t#III(E/Q)[2] = 1\n\nInformation on III(E'/Q):\n\t#phi'(III(E/Q)[2]) = 1\n\t#III(E'/Q)[phi] = 1\n\t#III(E'/Q)[2] = 1\n\n-------------------------------------------------------\n\nList of points on E = [0,0,0,-127,546]:\n\nI. Points on E mod phi(E')\nPoint [5:6:1], height = 0.861234196435301\n\nII. Points on phi(E') mod 2E\n--none (modulo torsion).\n\n-------------------------------------------------------\nComputing full set of 2 coset representatives for\n2E(Q) in E(Q) (modulo torsion), and sorting into height order....done.\n\nRank = 1\n\nRegulator (before saturation) = 0.861234196435301\nSearching for points (bound = 10)...done\nRegulator (after searching) = 0.861234196435301\nSaturating (bound = 100)...finished saturation (index was 1)\nRegulator (after saturation) = 0.861234196435301\nTransferring points back to original curve [0,21,0,20,0]\n\nGenerator 1 is [-2:6:1]; height 0.861234196435301\n\nRegulator = 0.861234196435301\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.245 seconds)" Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.30s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.246.' ************** SAGE ***************** Host 61.246.61.208 (61.246.61.208) Time: Sun Jul 2 10:09:27 2006 Input: mwrank([0,60,0,59,0]) Output: "\nCurve [0,60,0,59,0] :\tWorking with minimal curve [0,0,0,-1141,14820]\n\t[u,r,s,t] = [1,-20,0,0]\n\n3 points of order 2:\n[19:0:1], [20:0:1], [-39:0:1]\n\n****************************\n* Using 2-isogeny number 1 *\n****************************\n\nUsing 2-isogenous curve [0,-114,0,3481,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 1\nrk(S^{phi}(E'))=\t2\nrk(S^{phi'}(E))=\t1\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\nAfter second local descent, rank bound = 1\nrk(phi'(S^{2}(E)))=\t2\nrk(phi(S^{2}(E')))=\t1\nrk(S^{2}(E))=\t3\nrk(S^{2}(E'))=\t2\n\n****************************\n* Using 2-isogeny number 2 *\n****************************\n\nUsing 2-isogenous curve [0,-120,0,3364,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 1\nrk(S^{phi}(E'))=\t2\nrk(S^{phi'}(E))=\t1\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\nAfter second local descent, rank bound = 1\nrk(phi'(S^{2}(E)))=\t2\nrk(phi(S^{2}(E')))=\t1\nrk(S^{2}(E))=\t3\nrk(S^{2}(E'))=\t2\n\n****************************\n* Using 2-isogeny number 3 *\n****************************\n\nUsing 2-isogenous curve [0,234,0,1,0]\n-------------------------------------------------------\nFirst step, determining 1st descent Selmer groups\n-------------------------------------------------------\nAfter first local descent, rank bound = 1\nrk(S^{phi}(E'))=\t3\nrk(S^{phi'}(E))=\t0\n\n-------------------------------------------------------\nSecond step, determining 2nd descent Selmer groups\n-------------------------------------------------------\nAfter second local descent, rank bound = 1\nrk(phi'(S^{2}(E)))=\t3\nrk(phi(S^{2}(E')))=\t0\nrk(S^{2}(E))=\t3\nrk(S^{2}(E'))=\t2\n\nAfter second local descent, combined upper bound on rank = 1\nThird step, determining E(Q)/phi(E'(Q)) and E'(Q)/phi'(E(Q))\n-------------------------------------------------------\n1. E(Q)/phi(E'(Q))\n-------------------------------------------------------\n(c,d) =(-117,3422)\n(c',d')=(234,1)\nFirst stage (no second descent yet)...\n(2,0,-117,0,1711): (x:y:z) = (5:6:1)\n\tCurve E \tPoint [50:60:1], height = 2.55934404258766\nAfter first global descent, this component of the rank = 3\n-------------------------------------------------------\n2. E'(Q)/phi'(E(Q))\n-------------------------------------------------------\nThis component of the rank is 0\n\n-------------------------------------------------------\nSummary of results:\n-------------------------------------------------------\n\trank(E) = 1\n\t#E(Q)/2E(Q) = 8\n\nInformation on III(E/Q):\n\t#III(E/Q)[phi'] = 1\n\t#III(E/Q)[2] = 1\n\nInformation on III(E'/Q):\n\t#phi'(III(E/Q)[2]) = 1\n\t#III(E'/Q)[phi] = 1\n\t#III(E'/Q)[2] = 1\n\n-------------------------------------------------------\n\nList of points on E = [0,0,0,-1141,14820]:\n\nI. Points on E mod phi(E')\nPoint [11:60:1], height = 2.55934404258763\n\nII. Points on phi(E') mod 2E\n--none (modulo torsion).\n\n-------------------------------------------------------\nComputing full set of 2 coset representatives for\n2E(Q) in E(Q) (modulo torsion), and sorting into height order....done.\n\nRank = 1\n\nRegulator (before saturation) = 2.55934404258763\nSearching for points (bound = 10)...done\nRegulator (after searching) = 2.55934404258763\nSaturating (bound = 100)...finished saturation (index was 1)\nRegulator (after saturation) = 2.55934404258763\nTransferring points back to original curve [0,60,0,59,0]\n\nGenerator 1 is [-9:60:1]; height 2.55934404258763\n\nRegulator = 2.55934404258763\n\nThe rank and full Mordell-Weil basis have been determined unconditionally.\n (0.233 seconds)" Exiting SAGE (CPU time 0m0.03s, Wall time 0m1.16s). Exiting spawned Mwrank process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '61.21.2' ************** SAGE ***************** Host 61.21.212.139 (61.21.212.139) Time: Sun Jul 2 04:32:19 2006 Input: saa Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'saa' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.111.' ************** SAGE ***************** Host 71.111.189.223 (71.111.189.223) Time: Sun Jul 2 00:44:27 2006 Input: [1.80]3 Output: Errors: ------------------------------------------------------------ File "", line 1 [RealField(max(9,RR.precision()))('1.80')]ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sat Jul 1 16:37:57 2006 Input: print gap('CharacteristicPolynomial([[1,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0],[1,1,0,1,0,1,1,1,0,0,0,0],[0,0,1,1,0,1,0,1,1,1,0,0],[0,0,0,0,1,1,0,1,0,1,1,1],[1,0,1,1,1,1,1,1,1,1,0,1],[0,1,0,0,0,1,0,0,0,1,1,1],[1,0,1,0,1,1,0,1,1,0,0,1]])') Output: x_1^12-6*x_1^11+8*x_1^10+2*x_1^9-12*x_1^8+20*x_1^7-12*x_1^6-10*x_1^5+14*x_1^4-12*x_1^3+6*x_1^2+2*x_1-1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.23s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sat Jul 1 16:27:04 2006 Input: k=FiniteField(2**12) k.polynomial() Output: x^12 + x^7 + x^6 + x^5 + x^3 + x + 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sat Jul 1 16:25:40 2006 Input: k=FiniteField(2^12); k.polynomial(); Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sat Jul 1 16:24:06 2006 Input: print gap('CharacteristicPolynomial([[1,0,0,0,1],[0,0,0,1,0],[0,1,0,0,1],[0,0,0,1,1],[0,0,1,0,0]])') Output: x_1^5-2*x_1^4+2*x_1^2-2*x_1+1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.33s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sat Jul 1 16:20:31 2006 Input: print gap('v1 := Z(2)*[1,0,0,0,1];') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'v1' must have a value Syntax error: ; expected $sage1:=v1 := Z(2)*[1,0,0,0,1];;; ^ executing $sage1:=v1 := Z(2)*[1,0,0,0,1];;; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.18s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sat Jul 1 16:19:39 2006 Input: print gap('v1:=Z(2)*[1,0,0,0,1];') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'v1' must have a value Syntax error: ; expected $sage1:=v1:=Z(2)*[1,0,0,0,1];;; ^ executing $sage1:=v1:=Z(2)*[1,0,0,0,1];;; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.22s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.145.' ************** SAGE ***************** Host 72.145.170.64 (72.145.170.64) Time: Sat Jul 1 16:18:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.75.2' ************** SAGE ***************** Host 66.75.247.82 (66.75.247.82) Time: Sat Jul 1 16:03:34 2006 Input: k = FiniteField(32) k.polynomial() Output: x^5 + x^2 + 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.54s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '216.173' ************** SAGE ***************** Host 216.173.171.190 (216.173.171.190) Time: Sat Jul 1 10:35:40 2006 Input: 3(X-4)-4(X-3)=X+3-(X-2) Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:54:48 2006 Input: 4524*.375-4524 Output: -2827.5000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:54:18 2006 Input: 4524*.375 Output: 1696.5000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:54:04 2006 Input: 4524*37.5% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4524)*RealField(max(9,RR.precision()))('37.5')% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:53:27 2006 Input: 32.31*80+1939 Output: 4523.8000000000002 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:52:55 2006 Input: 48.47*40 Output: 1938.8000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:52:30 2006 Input: 32.31/2+32.31 Output: 48.465000000000003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:51:48 2006 Input: 29.37*.10+29.37 Output: 32.307000000000002 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:51:21 2006 Input: 32.63*.90 Output: 29.367000000000004 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:50:38 2006 Input: 32.01*.90 Output: 28.808999999999997 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:49:38 2006 Input: 28.81*.03+28.81 Output: 29.674299999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '162.140' ************** SAGE ***************** Host 162.140.67.10 (162.140.67.10) Time: Sat Jul 1 01:49:14 2006 Input: 28.81*.03 Output: 0.86429999999999996 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.121' ************** SAGE ***************** Host 200.121.195.108 (200.121.195.108) Time: Fri Jun 30 21:54:21 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.04s, Wall time 0m1.93s). Exiting spawned Gap process. Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '200.121' ************** SAGE ***************** Host 200.121.195.108 (200.121.195.108) Time: Fri Jun 30 21:53:45 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.69s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '207.200' ************** SAGE ***************** Host 207.200.156.130 (207.200.156.130) Time: Fri Jun 30 21:30:05 2006 Input: d(y(x),x) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'd' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.231.' ************** SAGE ***************** Host 69.231.225.218 (69.231.225.218) Time: Fri Jun 30 19:19:33 2006 Input: 30.38*360 Output: 10936.799999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.231.' ************** SAGE ***************** Host 69.231.225.218 (69.231.225.218) Time: Fri Jun 30 19:19:18 2006 Input: 30.38*360 Output: 10936.799999999999 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.65.6' ************** SAGE ***************** Host 66.65.65.207 (66.65.65.207) Time: Fri Jun 30 18:25:20 2006 Input: exp(2) Output: 7.3890560989306504 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.177.' ************** SAGE ***************** Host 72.177.154.172 (72.177.154.172) Time: Fri Jun 30 18:15:50 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.65.6' ************** SAGE ***************** Host 66.65.65.207 (66.65.65.207) Time: Fri Jun 30 18:13:29 2006 Input: e Output: e Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.208' ************** SAGE ***************** Host 128.208.119.46 (128.208.119.46) Time: Fri Jun 30 17:14:21 2006 Input: factorial (1000) Output: 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.208' ************** SAGE ***************** Host 128.208.119.46 (128.208.119.46) Time: Fri Jun 30 17:14:15 2006 Input: factorial (10^6) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 2873 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '128.208' ************** SAGE ***************** Host 128.208.119.46 (128.208.119.46) Time: Fri Jun 30 17:13:59 2006 Input: factorial (10^6) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 2848 Segmentation fault sage-ipython $READLINE $LOGOPT -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140 | '128.208' ************** SAGE ***************** Host 128.208.119.46 (128.208.119.46) Time: Fri Jun 30 17:12:51 2006 Input: factorial (4) Output: 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '68.221.' ************** SAGE ***************** Host 68.221.14.5 (68.221.14.5) Time: Fri Jun 30 17:08:25 2006 Input: print maxima ('tan(x)') Output: tan(x) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.96s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.174.' ************** SAGE ***************** Host 69.174.127.165 (69.174.127.165) Time: Fri Jun 30 15:56:03 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.112.' ************** SAGE ***************** Host 69.112.102.230 (69.112.102.230) Time: Fri Jun 30 15:13:02 2006 Input: 2X2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)X2 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.95.' ************** SAGE ***************** Host 128.95.47.120 (128.95.47.120) Time: Fri Jun 30 14:32:31 2006 Input: 9393/13 Output: 9393/13 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.174.' ************** SAGE ***************** Host 66.174.79.240 (66.174.79.240) Time: Fri Jun 30 11:40:58 2006 Input: sin(pi) Output: sin(pi) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.174.' ************** SAGE ***************** Host 66.174.79.240 (66.174.79.240) Time: Fri Jun 30 11:40:31 2006 Input: fact(5) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'fact' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.174.' ************** SAGE ***************** Host 66.174.79.240 (66.174.79.240) Time: Fri Jun 30 11:40:15 2006 Input: 5! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.174.' ************** SAGE ***************** Host 66.174.79.240 (66.174.79.240) Time: Fri Jun 30 11:39:54 2006 Input: 1 + 2 ; Output: Errors: ------------------------------------------------------------ File "", line 1 ; ^ SyntaxError: invalid syntax 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.184.' ************** SAGE ***************** Host 72.184.21.131 (72.184.21.131) Time: Fri Jun 30 10:34:18 2006 Input: 85-10%= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(85)-ZZ(10)%= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.137.' ************** SAGE ***************** Host 72.137.117.160 (72.137.117.160) Time: Fri Jun 30 09:22:33 2006 Input: loan of 18000 compounded at 8%semiannually for 4years Output: Errors: ------------------------------------------------------------ File "", line 1 loan of ZZ(18000) compounded at ZZ(8)%semiannually for ZZ(4)years ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.137.' ************** SAGE ***************** Host 72.137.117.160 (72.137.117.160) Time: Fri Jun 30 09:19:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '193.136' ************** SAGE ***************** Host 193.136.144.3 (193.136.144.3) Time: Fri Jun 30 09:18:52 2006 Input: x^2=1 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '193.136' ************** SAGE ***************** Host 193.136.144.3 (193.136.144.3) Time: Fri Jun 30 09:18:34 2006 Input: 1+1 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.11.1' ************** SAGE ***************** Host 87.11.185.140 (87.11.185.140) Time: Fri Jun 30 06:27:18 2006 Input: (a+b)^3 Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '87.11.1' ************** SAGE ***************** Host 87.11.185.140 (87.11.185.140) Time: Fri Jun 30 06:27:06 2006 Input: 1+4 Output: 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.150.' ************** SAGE ***************** Host 69.150.116.231 (69.150.116.231) Time: Fri Jun 30 05:38:15 2006 Input: 1500/60 Output: 25 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.150.' ************** SAGE ***************** Host 69.150.116.231 (69.150.116.231) Time: Fri Jun 30 05:38:07 2006 Input: 25×40 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(25)×ZZ(40) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.150.' ************** SAGE ***************** Host 69.150.116.231 (69.150.116.231) Time: Fri Jun 30 05:37:42 2006 Input: 25×40 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(25)×ZZ(40) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.150.' ************** SAGE ***************** Host 69.150.116.231 (69.150.116.231) Time: Fri Jun 30 05:37:04 2006 Input: 25×40 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(25)×ZZ(40) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.150.' ************** SAGE ***************** Host 69.150.116.231 (69.150.116.231) Time: Fri Jun 30 05:35:46 2006 Input: 1500/60 Output: 25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Fri Jun 30 05:31:10 2006 Input: print gap('LoadPackage("toric")') Output: fail Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.16s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Fri Jun 30 05:30:51 2006 Input: print gap('LoadPackage("hap")') Output: fail Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Fri Jun 30 05:30:33 2006 Input: print gap('LoadPackage("laguna")') Output: fail Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Fri Jun 30 05:29:54 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.30s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '67.48.9' ************** SAGE ***************** Host 67.48.90.46 (67.48.90.46) Time: Fri Jun 30 04:05:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.124.' ************** SAGE ***************** Host 64.124.10.163 (64.124.10.163) Time: Thu Jun 29 20:17:39 2006 Input: 500*.2316 Output: 115.80000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '71.194.' ************** SAGE ***************** Host 71.194.152.231 (71.194.152.231) Time: Thu Jun 29 20:03:03 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '152.163' ************** SAGE ***************** Host 152.163.100.68 (152.163.100.68) Time: Thu Jun 29 18:46:48 2006 Input: 1.5 x 6 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('1.5') x ZZ(6) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Thu Jun 29 17:57:14 2006 Input: 73.680000000000007*5 Output: 368.400000000000034 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Thu Jun 29 17:56:54 2006 Input: 9.21*8 Output: 73.680000000000007 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:06:09 2006 Input: log (10000)/log(2) Output: 13.287712379549451 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:06:04 2006 Input: log (100000)/log(2) Output: 16.609640474436812 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:05:52 2006 Input: log (10000000)/log(2) Output: 23.253496664211539 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:05:28 2006 Input: log (1000000)/log(2) Output: 19.931568569324174 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:05:14 2006 Input: log (100)/log(2) Output: 6.6438561897747253 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:05:05 2006 Input: log (16)/log(2) Output: 4.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:04:57 2006 Input: log (4)/log(2) Output: 2.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '202.67.' ************** SAGE ***************** Host 202.67.119.71 (202.67.119.71) Time: Thu Jun 29 17:04:09 2006 Input: 1+1 Output: 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:02:43 2006 Input: log (4) Output: 1.3862943611198906 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '204.128' ************** SAGE ***************** Host 204.128.192.8 (204.128.192.8) Time: Thu Jun 29 17:02:24 2006 Input: lg(4) Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'lg' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.15.2' ************** SAGE ***************** Host 24.15.211.64 (24.15.211.64) Time: Thu Jun 29 16:20:59 2006 Input: 30x8 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(30)x8 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.224.' ************** SAGE ***************** Host 24.224.141.59 (24.224.141.59) Time: Thu Jun 29 16:13:26 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.27s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '18.245.' ************** SAGE ***************** Host 18.245.6.168 (18.245.6.168) Time: Thu Jun 29 15:22:18 2006 Input: exp(2.4); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.95.' ************** SAGE ***************** Host 128.95.47.142 (128.95.47.142) Time: Thu Jun 29 15:02:09 2006 Input: 15/2 Output: 15/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '74.239.' ************** SAGE ***************** Host 74.239.215.60 (74.239.215.60) Time: Thu Jun 29 12:17:00 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.173' ************** SAGE ***************** Host 210.173.62.3 (210.173.62.3) Time: Thu Jun 29 11:32:45 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.97s). Exiting spawned Maxima process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.173' ************** SAGE ***************** Host 210.173.62.3 (210.173.62.3) Time: Thu Jun 29 11:32:16 2006 Input: print maxima(solve(x^2,x)); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'solve' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.173' ************** SAGE ***************** Host 210.173.62.3 (210.173.62.3) Time: Thu Jun 29 11:31:48 2006 Input: maxima(solve(x^2,x)); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'solve' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '210.173' ************** SAGE ***************** Host 210.173.62.3 (210.173.62.3) Time: Thu Jun 29 11:31:17 2006 Input: solve(x^2,x); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'solve' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.234.' ************** SAGE ***************** Host 64.234.18.142 (64.234.18.142) Time: Thu Jun 29 11:23:06 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.245.' ************** SAGE ***************** Host 69.245.140.87 (69.245.140.87) Time: Thu Jun 29 10:33:03 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.177.' ************** SAGE ***************** Host 69.177.135.41 (69.177.135.41) Time: Thu Jun 29 10:22:03 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:34:02 2006 Input: print gap('ResolutionFiniteGroup(SymmetricGroup(3),2)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'ResolutionFiniteGroup' must have a value executing $sage1:=ResolutionFiniteGroup(SymmetricGroup(3),2);; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:33:22 2006 Input: gap('LoadPackage("HAP")') print gap('GroupHomology(SymmetricGroup(3),2)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'GroupHomology' must have a value executing $sage2:=GroupHomology(SymmetricGroup(3),2);; fail Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:32:20 2006 Input: print gap('GroupHomology(SymmetricGroup(3),2)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'GroupHomology' must have a value executing $sage1:=GroupHomology(SymmetricGroup(3),2);; Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:31:58 2006 Input: print gap('GroupHomology(SymmetricGroup(3),6)') Output: Errors: --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/sage/ /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __call__(self, x) /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py in __init__(self, parent, value, is_name) TypeError: Gap produced error output Variable: 'GroupHomology' must have a value executing $sage1:=GroupHomology(SymmetricGroup(3),6);; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.17s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:31:29 2006 Input: print gap('SymmetricGroup(3)') Output: Sym( [ 1 .. 3 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.71s). Exiting spawned Gap process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:31:06 2006 Input: Print gap('SymmetricGroup(3)') Output: Errors: ------------------------------------------------------------ File "", line 1 Print gap('SymmetricGroup(3)') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:30:44 2006 Input: Print(gap('SymmetricGroup(3)')); Output: Errors: --------------------------------------------------------------------------- exceptions.NameError Traceback (most recent call last) /home/sage/ NameError: name 'Print' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '140.203' ************** SAGE ***************** Host 140.203.3.61 (140.203.3.61) Time: Thu Jun 29 08:30:30 2006 Input: Print(gap('SymmetricGroup(3)'); Output: Errors: ------------------------------------------------------------ File "", line 1 Print(gap('SymmetricGroup(3)'); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.53.1' ************** SAGE ***************** Host 69.53.117.242 (69.53.117.242) Time: Thu Jun 29 06:13:51 2006 Input: 1345.00-(25%) Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(19,RR.precision()))('1345.00')-(ZZ(25)%) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.53.1' ************** SAGE ***************** Host 69.53.117.242 (69.53.117.242) Time: Thu Jun 29 06:13:21 2006 Input: 1345.00-25% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(19,RR.precision()))('1345.00')-ZZ(25)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.53.1' ************** SAGE ***************** Host 69.53.117.242 (69.53.117.242) Time: Thu Jun 29 06:10:00 2006 Input: 100+100 Output: 200 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.53.1' ************** SAGE ***************** Host 69.53.117.242 (69.53.117.242) Time: Thu Jun 29 06:09:48 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '89.172.' ************** SAGE ***************** Host 89.172.13.168 (89.172.13.168) Time: Thu Jun 29 04:03:40 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m2.59s). Exiting spawned Kash process. Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.66.1' ************** SAGE ***************** Host 72.66.186.140 (72.66.186.140) Time: Wed Jun 28 21:55:47 2006 Input: 6.75*4 27.000000000000000*5 Output: 27.000000000000000 135.000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '72.66.1' ************** SAGE ***************** Host 72.66.186.140 (72.66.186.140) Time: Wed Jun 28 21:54:59 2006 Input: 6.75*4 Output: 27.000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.176.' ************** SAGE ***************** Host 70.176.247.119 (70.176.247.119) Time: Wed Jun 28 20:30:59 2006 Input: 50/1000000 Output: 1/20000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '70.176.' ************** SAGE ***************** Host 70.176.247.119 (70.176.247.119) Time: Wed Jun 28 20:30:00 2006 Input: 1000^2 Output: 1000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '69.180.' ************** SAGE ***************** Host 69.180.139.103 (69.180.139.103) Time: Wed Jun 28 20:00:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.26.1' ************** SAGE ***************** Host 65.26.119.144 (65.26.119.144) Time: Wed Jun 28 19:29:28 2006 Input: s(t) = 256-16t2 Output: Errors: ------------------------------------------------------------ File "", line 1 s(t) = ZZ(256)-ZZ(16)t2 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '65.26.1' ************** SAGE ***************** Host 65.26.119.144 (65.26.119.144) Time: Wed Jun 28 19:25:14 2006 Input: x+6= Output: Errors: ------------------------------------------------------------ File "", line 1 x+ZZ(6)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.14.1' ************** SAGE ***************** Host 24.14.130.21 (24.14.130.21) Time: Wed Jun 28 18:52:20 2006 Input: 4x1/2+8-5 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)x1/ZZ(2)+ZZ(8)-ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '66.227.' ************** SAGE ***************** Host 66.227.177.57 (66.227.177.57) Time: Wed Jun 28 18:19:14 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '24.128.' ************** SAGE ***************** Host 24.128.240.102 (24.128.240.102) Time: Wed Jun 28 16:32:00 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '169.231' ************** SAGE ***************** Host 169.231.35.225 (169.231.35.225) Time: Wed Jun 28 16:22:36 2006 Input: 2+2=4 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.218' ************** SAGE ***************** Host 128.218.157.135 (128.218.157.135) Time: Wed Jun 28 15:55:11 2006 Input: 1/8 Output: 1/8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.218' ************** SAGE ***************** Host 128.218.157.135 (128.218.157.135) Time: Wed Jun 28 15:54:58 2006 Input: 3/32 Output: 3/32 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.218' ************** SAGE ***************** Host 128.218.157.135 (128.218.157.135) Time: Wed Jun 28 15:53:59 2006 Input: 1275*0.2248 Output: 286.62000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.208' ************** SAGE ***************** Host 128.208.160.175 (128.208.160.175) Time: Wed Jun 28 13:55:34 2006 Input: version() Output: 'SAGE Version 1.3.4.2, Build Date: 2006-06-27-0140' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '128.208' ************** SAGE ***************** Host 128.208.160.175 (128.208.160.175) Time: Wed Jun 28 13:55:26 2006 Input: 2+2 Output: 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). Unable to save IPython command history to file: '/home/sage/.ipython/history' '64.107.' ************** SAGE ***************** Host 64.107.110.214 (64.107.110.214) Time: Wed Jun 28 12:39:31 2006 Input: 18x250 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(18)x250 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '66.188.' ************** SAGE ***************** Host 66.188.52.4 (66.188.52.4) Time: Wed Jun 28 12:25:14 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '66.188.' ************** SAGE ***************** Host 66.188.52.4 (66.188.52.4) Time: Wed Jun 28 12:24:59 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '198.178' ************** SAGE ***************** Host 198.178.147.1 (198.178.147.1) Time: Wed Jun 28 11:28:45 2006 Input: 94000 log10 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(94000) log10 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '158.109' ************** SAGE ***************** Host 158.109.54.195 (158.109.54.195) Time: Wed Jun 28 11:24:57 2006 Input: P:=PolynomialRing(GF(9)); h= (x^8-1)/x^4+2*x^3+2*x+2; Output: Errors: ------------------------------------------------------------ File "", line 1 P:=PolynomialRing(GF(ZZ(9))); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '158.109' ************** SAGE ***************** Host 158.109.54.195 (158.109.54.195) Time: Wed Jun 28 11:23:14 2006 Input: GF(9); h= (x^8-1)/x^4+2*x^3+2*x+2; Output: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '158.109' ************** SAGE ***************** Host 158.109.54.195 (158.109.54.195) Time: Wed Jun 28 11:22:48 2006 Input: g= GF(9); h= (x^8-1)/x^4+2*x^3+2*x+2; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '158.109' ************** SAGE ***************** Host 158.109.54.195 (158.109.54.195) Time: Wed Jun 28 11:22:38 2006 Input: g:= GF(9); h:= (x^8-1)/x^4+2*x^3+2*x+2; Output: Errors: ------------------------------------------------------------ File "", line 1 g:= GF(ZZ(9)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 h:= (x**ZZ(8)-ZZ(1))/x**ZZ(4)+ZZ(2)*x**ZZ(3)+ZZ(2)*x+ZZ(2); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '158.109' ************** SAGE ***************** Host 158.109.54.195 (158.109.54.195) Time: Wed Jun 28 11:21:23 2006 Input: GF(8); Output: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.31s). '81.38.1' ************** SAGE ***************** Host 81.38.176.70 (81.38.176.70) Time: Wed Jun 28 11:14:55 2006 Input: f:Gf(8); Output: Errors: ------------------------------------------------------------ File "", line 1 f:Gf(ZZ(8)); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:41:28 2006 Input: 10260000*.06 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10260000)*.ZZ(06) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:41:22 2006 Input: 10260000*.06 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10260000)*.ZZ(06) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:41:12 2006 Input: 1026000000*.06 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1026000000)*.ZZ(06) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:41:03 2006 Input: 102600000*.06 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(102600000)*.ZZ(06) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:40:54 2006 Input: 102600000*.06 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(102600000)*.ZZ(06) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:40:41 2006 Input: 1026000000*.06 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1026000000)*.ZZ(06) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:40:35 2006 Input: 1026000000*.06 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1026000000)*.ZZ(06) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:40:26 2006 Input: 1026000000*.06*.1 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1026000000)*.ZZ(06)*.ZZ(1) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:39:55 2006 Input: 1026*1000000 Output: _3 = 1026000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.53.2' ************** SAGE ***************** Host 24.53.219.241 (24.53.219.241) Time: Wed Jun 28 10:39:36 2006 Input: 57*1.5*12 Output: _3 = 1026.0000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '212.138' ************** SAGE ***************** Host 212.138.47.21 (212.138.47.21) Time: Tue Jun 27 23:56:09 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.73s). '212.138' ************** SAGE ***************** Host 212.138.47.21 (212.138.47.21) Time: Tue Jun 27 23:55:16 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '71.112.' ************** SAGE ***************** Host 71.112.195.68 (71.112.195.68) Time: Tue Jun 27 23:20:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '70.106.' ************** SAGE ***************** Host 70.106.113.26 (70.106.113.26) Time: Tue Jun 27 21:17:08 2006 Input: 2+3 Output: _3 = 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.203.' ************** SAGE ***************** Host 69.203.67.70 (69.203.67.70) Time: Tue Jun 27 19:12:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '201.78.' ************** SAGE ***************** Host 201.78.100.44 (201.78.100.44) Time: Tue Jun 27 18:42:50 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.03s). '216.227' ************** SAGE ***************** Host 216.227.72.136 (216.227.72.136) Time: Tue Jun 27 16:16:07 2006 Input: 8000*0.15 Output: _3 = 1200.0000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.157.' ************** SAGE ***************** Host 68.157.38.8 (68.157.38.8) Time: Tue Jun 27 16:12:41 2006 Input: 6.40×35 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('6.40')×ZZ(35) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.157.' ************** SAGE ***************** Host 68.157.38.8 (68.157.38.8) Time: Tue Jun 27 16:12:06 2006 Input: 6.40×35 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('6.40')×ZZ(35) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:41:49 2006 Input: (2x + 1)(x - 2) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(2)x + ZZ(1))(x - ZZ(2)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:41:33 2006 Input: 3x^2 (4x^2 - 2x + 3) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x**ZZ(2) (ZZ(4)x**ZZ(2) - ZZ(2)x + ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:41:09 2006 Input: (3x^2 + 6x - 8) + (-5x^2 - 8x + 4) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(3)x**ZZ(2) + ZZ(6)x - ZZ(8)) + (-ZZ(5)x**ZZ(2) - ZZ(8)x + ZZ(4)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:40:55 2006 Input: 2(4s - 3t) + 7s + 5t Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)(ZZ(4)s - ZZ(3)t) + ZZ(7)s + ZZ(5)t ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:40:40 2006 Input: -2(3x - 7) Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(2)(ZZ(3)x - ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:40:17 2006 Input: 3x - 4(x-3) = 2(3x + 4) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x - ZZ(4)(x-ZZ(3)) = ZZ(2)(ZZ(3)x + ZZ(4)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:39:53 2006 Input: 2x - 4 = -3 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)x - ZZ(4) = -ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:39:23 2006 Input: 2.5- -1.4 Output: _3 = 3.8999999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:38:32 2006 Input: -4/7*2.5 Output: _3 = -1.4285714285714284 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:37:05 2006 Input: 23*-10 Output: _3 = -230 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:36:46 2006 Input: (-2 4/5)*(-3/7) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2) ZZ(4)/ZZ(5))*(-ZZ(3)/ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:36:38 2006 Input: (-2 4/5) * (-3/7) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2) ZZ(4)/ZZ(5)) * (-ZZ(3)/ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:36:11 2006 Input: (-2 4/5) * (-3/7) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2) ZZ(4)/ZZ(5)) * (-ZZ(3)/ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:36:05 2006 Input: (-2 4/5) * (-3/7) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2) ZZ(4)/ZZ(5)) * (-ZZ(3)/ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:35:46 2006 Input: (2/5)^2 / (1/5) + (2 - 4) / (8 + 2) * (-3) Output: _3 = 7/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:35:30 2006 Input: -2^2 + (6 - 9) / (-3) + 4 * (-2) Output: _3 = -11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:35:14 2006 Input: 3^2 * (6 - 4) + 8 Output: _3 = 26 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:34:51 2006 Input: 3 -2 5 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3) -ZZ(2) ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:34:20 2006 Input: 3/4+1/2+-7/10 Output: _3 = 11/20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:33:22 2006 Input: x + y + z when: x = 3/4, y = 1/2, z = -7/10 Output: Errors: ------------------------------------------------------------ File "", line 1 x + y + z when: x = ZZ(3)/ZZ(4), y = ZZ(1)/ZZ(2), z = -ZZ(7)/ZZ(10) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:33:00 2006 Input: 16/40 Output: _3 = 2/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.99.9' ************** SAGE ***************** Host 24.99.96.65 (24.99.96.65) Time: Tue Jun 27 15:32:28 2006 Input: 3^2 * (6 - 4) + 8 Output: _3 = 26 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.250.' ************** SAGE ***************** Host 64.250.210.53 (64.250.210.53) Time: Tue Jun 27 13:17:38 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 12:42:00 2006 Input: p=73 q=101 n=p*q a=41 que=Mod(a^(q-p), n) r=Mod(a^(n-1), n) ok=Mod(que^(n-1), p) ok2=Mod(r^(n-1), p) ok3=Mod(que^(q-p), p) ok4=Mod(r^(q-p), p) que mod p r mod p Output: Errors: ------------------------------------------------------------ File "", line 1 que mod p ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 r mod p ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 12:40:53 2006 Input: p=73 q=101 n=p*q a=41 que=Mod(a^(q-p), n) r=Mod(a^(n-1), n) ok=Mod(que^(q+p+99), p) ok2=Mod(r^(q+p+99), p) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '206.8.1' ************** SAGE ***************** Host 206.8.10.132 (206.8.10.132) Time: Tue Jun 27 12:02:41 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '131.107' ************** SAGE ***************** Host 131.107.0.102 (131.107.0.102) Time: Tue Jun 27 11:54:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Tue Jun 27 11:47:51 2006 Input: 598% / 26% Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(598)% / ZZ(26)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Tue Jun 27 11:47:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:18:18 2006 Input: p=73 q=101 n=p*q a=41 que=Mod(a^(q-p), n) que^2 Output: _8 = 4236 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:17:56 2006 Input: p=73 q=101 n=p*q a=41 que=Mod(a^(q-p), n) que^2 Output: _8 = 4236 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:17:48 2006 Input: p=73 q=101 n=p*q a=41 que=Mod(a^(q-p), n) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:17:19 2006 Input: p=73 q=101 n=p*q a=41 Mod(a^(q-p), n, 1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: Mod() takes exactly 2 arguments (3 given) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:16:44 2006 Input: p=73 q=101 n=p*q a=41 mod(a^(q-p), n) Output: _7 = 5945 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:16:24 2006 Input: p=73 q=101; n=p*q a=41 Mod(a^(q-p), n) Output: _7 = 5945 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:16:11 2006 Input: p=73 q=101 n=p*q a=41 Mod(a^(q-p), n) Output: _7 = 5945 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:15:51 2006 Input: p=73 q=101 n=p*q a=41 Mod(a^(q-p), n) Output: _7 = 5945 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:15:14 2006 Input: p=73 q=101 n=p*q a=41 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:15:05 2006 Input: p=73 q=101 n=p*q a=41 que=mod(a^(q-p), n) Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:14:53 2006 Input: p=73 q=101 n=p*q a=41 que=a^(q-p) mod n Output: Errors: ------------------------------------------------------------ File "", line 1 que=a**(q-p) mod n ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:14:19 2006 Input: p=73 q=101 n=p*q a=41 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:14:15 2006 Input: p=73 q=101 n=p*q a=41 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:14:02 2006 Input: p=73 q=101 n=p*q a=41 que=mod(a^(q-p), n) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:13:47 2006 Input: p=73 q=101 n=p*q a=41 a^(q-p) mod n Output: Errors: ------------------------------------------------------------ File "", line 1 a**(q-p) mod n ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:13:33 2006 Input: p=73 q=101 n=p*q a=41 que:=a^(q-p) mod n Output: Errors: ------------------------------------------------------------ File "", line 1 que:=a**(q-p) mod n ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:12:27 2006 Input: p=73 q=101 p*q Output: _5 = 7373 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:12:11 2006 Input: q=101 73*q factor(73) factor(101) Output: _4 = 7373 _5 = 73 _6 = 101 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:12:05 2006 Input: q=101 73*101 factor(73) factor(101) Output: _4 = 7373 _5 = 73 _6 = 101 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:11:54 2006 Input: 73*101 factor(73) factor(101) Output: _3 = 7373 _4 = 73 _5 = 101 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:11:46 2006 Input: 73*101 factor(73) Output: _3 = 7373 _4 = 73 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:11:28 2006 Input: 73*101 Output: _3 = 7373 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:11:14 2006 Input: 73*101; Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:11:01 2006 Input: p=73; q=101; p*q; Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:10:51 2006 Input: p=73; q=101; factor(p); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:10:46 2006 Input: p=73; q=101; factor(p); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:10:42 2006 Input: p=73; q=101; factor(p); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:10:35 2006 Input: p=73; q=101; ifactor(p); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ifactor' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:10:20 2006 Input: p=73; q=101; nextprime(p); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'nextprime' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:10:08 2006 Input: p=73; q=101; isprime(p); isprime(q); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'isprime' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'isprime' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 27 11:09:56 2006 Input: p:=73; q:=101; isprime(p); isprime(q); Output: Errors: ------------------------------------------------------------ File "", line 1 p:=ZZ(73); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 q:=ZZ(101); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'isprime' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'isprime' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '207.118' ************** SAGE ***************** Host 207.118.131.102 (207.118.131.102) Time: Tue Jun 27 08:36:58 2006 Input: 40'x20'=d Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(40)'x20'=d ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '207.118' ************** SAGE ***************** Host 207.118.131.102 (207.118.131.102) Time: Tue Jun 27 08:34:20 2006 Input: bxh=d Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '207.118' ************** SAGE ***************** Host 207.118.131.102 (207.118.131.102) Time: Tue Jun 27 08:33:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '207.118' ************** SAGE ***************** Host 207.118.131.102 (207.118.131.102) Time: Tue Jun 27 08:33:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '209.184' ************** SAGE ***************** Host 209.184.114.249 (209.184.114.249) Time: Tue Jun 27 08:02:47 2006 Input: Mod(2828^(26851),168503) Output: _3 = 41 Exiting SAGE (CPU time 0m0.18s, Wall time 0m0.22s). '209.184' ************** SAGE ***************** Host 209.184.114.254 (209.184.114.254) Time: Tue Jun 27 06:29:11 2006 Input: mod(14238^-59780,168503) Output: _3 = 48806 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '156.63.' ************** SAGE ***************** Host 156.63.242.3 (156.63.242.3) Time: Tue Jun 27 05:40:59 2006 Input: 3Ö 2 + 3Ö 2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)Ö ZZ(2) + ZZ(3)Ö ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.4' ************** SAGE ***************** Host 24.17.43.87 (24.17.43.87) Time: Mon Jun 26 23:15:38 2006 Input: .086/.001 Output: Errors: ------------------------------------------------------------ File "", line 1 .ZZ(086)/.ZZ(001) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.145.' ************** SAGE ***************** Host 71.145.189.161 (71.145.189.161) Time: Mon Jun 26 22:10:40 2006 Input: 36x9x6x17x13x5x18x53 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(36)x9x6x17x13x5x18x53 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.94.8' ************** SAGE ***************** Host 68.94.8.219 (68.94.8.219) Time: Mon Jun 26 21:23:22 2006 Input: 73 x 0.30 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(73) x RealField(max(9,RR.precision()))('0.30') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.94.8' ************** SAGE ***************** Host 68.94.8.219 (68.94.8.219) Time: Mon Jun 26 21:22:27 2006 Input: 73x.30 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(73)x.gen(30) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.33.4' ************** SAGE ***************** Host 69.33.46.42 (69.33.46.42) Time: Mon Jun 26 20:49:29 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '66.227.' ************** SAGE ***************** Host 66.227.142.207 (66.227.142.207) Time: Mon Jun 26 20:08:35 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.96.1' ************** SAGE ***************** Host 71.96.105.106 (71.96.105.106) Time: Mon Jun 26 20:07:19 2006 Input: 88+99 Output: _3 = 187 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.96.1' ************** SAGE ***************** Host 71.96.105.106 (71.96.105.106) Time: Mon Jun 26 20:07:08 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '75.22.3' ************** SAGE ***************** Host 75.22.3.94 (75.22.3.94) Time: Mon Jun 26 19:36:38 2006 Input: 20+20 Output: _3 = 40 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.116.' ************** SAGE ***************** Host 69.116.146.116 (69.116.146.116) Time: Mon Jun 26 19:03:43 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.29s). '24.6.10' ************** SAGE ***************** Host 24.6.109.66 (24.6.109.66) Time: Mon Jun 26 18:18:24 2006 Input: x-2=4 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.174.' ************** SAGE ***************** Host 67.174.10.231 (67.174.10.231) Time: Mon Jun 26 17:41:55 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 16:01:20 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = x^3 - 1 sage: f.roots() [(1, 1)] sage: f = (x^3 - 1)^2 sage: f.roots() Output: _5 = [(1, 1)] _6 = [(1, 1)] _8 = [(1, 2)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:59:29 2006 Input: QQ(4.4545454) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/rational_field.py", line 100, in __call__ File "rational.pyx", line 105, in rational.Rational.__init__ File "rational.pyx", line 183, in rational.Rational.__set_value TypeError: Unable to coerce 4.4545453999999998 () to Rational Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:59:02 2006 Input: 1.2 is 6/5 Output: _3 = False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:58:55 2006 Input: 1.2 == 6/5 Output: _3 = True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:58:09 2006 Input: parent(1.2) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:57:45 2006 Input: parent(sin(pi/2)) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:57:34 2006 Input: parent(1.29786979879879797987987987980987809798) Output: _3 = Real Field with 129 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:57:22 2006 Input: parent(1.2) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:57:16 2006 Input: parent(5/4) Output: _3 = Rational Field Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:56:30 2006 Input: parent(5/4) Output: _3 = Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:56:19 2006 Input: parent(1.2) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:55:08 2006 Input: parent? Output: Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: parent(x) Docstring: Return x.parent() if defined, or type(x) if not. EXAMPLE: Z = parent(int(5)) Z(17) 17 Z Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:54:56 2006 Input: parent?? Output: Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: parent(x) Docstring: Return x.parent() if defined, or type(x) if not. EXAMPLE: Z = parent(int(5)) Z(17) 17 Z Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:53:43 2006 Input: 1 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:53:29 2006 Input: sin(pi/2) Output: _3 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:53:17 2006 Input: parent(sin(pi/2)) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:52:44 2006 Input: parent(1) Output: _3 = Integer Ring Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:52:36 2006 Input: parent(sin(pi/2)) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:52:21 2006 Input: sage: x = PolynomialRing(RationalField(), 'x').gen() sage: f = 3*x^3 + x sage: g = 9*x*(x+1) Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:52:13 2006 Input: sage: x = PolynomialRing(RationalField(), 'x').gen() sage: f = 3*x^3 + x sage: g = 9*x*(x+1) Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:52:11 2006 Input: parent(1) Output: _3 = Integer Ring Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:51:58 2006 Input: parent(sin(pi/2)) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:51:54 2006 Input: parent(sin(pi/2)) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '202.169' ************** SAGE ***************** Host 202.169.209.104 (202.169.209.104) Time: Mon Jun 26 15:51:47 2006 Input: 2^20 Output: _3 = 1048576 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:51:44 2006 Input: parent(sin(pi/4)) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:51:26 2006 Input: exp(pi*i) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find an unambiguous parent for 3.1415926535897931 (parent: Ring of Mathematical Functions) and 1.0000000000000000*I (parent: Complex Field with 53 bits of precision) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:51:11 2006 Input: parent(sin(pi/4)) Output: _3 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:51:10 2006 Input: os.environ['PAGER']='cat' R. = PolynomialRing(QQ) f = (x+10)^5 print f print factor(f) f.critical_points() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'critical_points' x^5 + 50*x^4 + 1000*x^3 + 10000*x^2 + 50000*x + 100000 (x + 10)^5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:51:06 2006 Input: Parent(sin(pi/4)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Parent' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:50:54 2006 Input: os.environ['PAGER']='cat' R. = PolynomialRing(QQ) f = (x+10)^5 print f print factor(f) Output: x^5 + 50*x^4 + 1000*x^3 + 10000*x^2 + 50000*x + 100000 (x + 10)^5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:50:36 2006 Input: os.environ['PAGER']='cat' R. = PolynomialRing(QQ) f = x^2 f Output: _6 = x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:50:33 2006 Input: os.environ['PAGER']='cat' R. = PolynomialRing(QQ) f = x^2 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:50:00 2006 Input: sage: x, y = MPolynomialRing(RationalField(), 2, ['x','y']).gens() sage: f = 9*y^6 - 9*x^2*y^5 - 18*x^3*y^4 - 9*x^5*y^4 + 9*x^6*y^2 + 9*x^7*y^3 + 18*x^8*y^2 - 9*x^11 sage: f.factor() Output: _5 = (-9) * (-1*y^2 + x^5) * (y^4 - x^2*y^3 - 2*x^3*y^2 + x^6) Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.22s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:49:54 2006 Input: os.environ['PAGER']='cat' help(factorial) Output: Help on function factorial in module sage.rings.arith: factorial(n, algorithm='gmp') Compute the factorial of $n$, which is the product $1\cdot 2\cdot 3 \cdots (n-1) n$. INPUT: n -- an integer algorithm -- string (default: 'gmp') 'gmp' -- use the GMP C-library factorial function 'pari' -- use PARI's factorial function OUTPUT: an integer EXAMPLES: factorial(0) 1 factorial(4) 24 factorial(10) 3628800 factorial(1) == factorial(0) True factorial(6) == 6*5*4*3*2 True factorial(1) == factorial(0) True factorial(71) == 71* factorial(70) True factorial(-32) Traceback (most recent call last): ... ValueError: factorial -- n = (-32) must be nonnegative PERFORMANCE: This discussion is valid as of April 2006. All timings below are on a Pentium Core Duo 2Ghz MacBook Pro running Linux with a 2.6.16.1 kernel. \begin{itemize} \item It takes less than a minute to compute the factorial of $10^7$ using the GMP algorithm, and the factorial of $10^6$ takes less than 4 seconds. \item The GMP algorithm is faster and more memory efficient than the PARI algorithm. E.g., PARI computes $10^7$ factorial in 100 seconds on the core duo 2Ghz. \item For comparison, computation in Magma $\leq$ 2.12-10 of $n!$ is best done using \code{&*[1..n]}. It takes 113 seconds to compute the factorial of $10^7$ and 6 seconds to compute the factorial of $10^6$. Mathematica V5.2 compute the factorial of $10^7$ in 136 seconds and the factorial of $10^6$ in 7 seconds. (Mathematica is notably very efficient at memory usage when doing factorial calculations.) \end{itemize} Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:49:42 2006 Input: os.environ['PAGER']='cat' factorial? Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:49:29 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = (x^3 - 1)^2-(x^2-1)^2 sage: f.factor() Output: _5 = (x - 1)^2 * x^2 * (x^2 + 2*x + 2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:49:22 2006 Input: factor? Output: Errors: sh: less: command not found Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:49:17 2006 Input: factorial? Output: Errors: sh: less: command not found Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:49:15 2006 Input: sin?? Output: Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: sin(x) Docstring: Return the sin of x. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:49:08 2006 Input: sin?? Output: Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: sin(x) Docstring: Return the sin of x. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:49:07 2006 Input: factor? Output: Errors: sh: less: command not found Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:49:02 2006 Input: f = x^2? Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/IPython/OInspect.py", line 456, in psearch ValueError: invalid argument string for psearch: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:49:02 2006 Input: sin? Output: Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: sin(x) Docstring: Return the sin of x. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:48:54 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = (x^3 - 1)^2-(x^2-1)^2 sage: f.factor() Output: _5 = (x - 1)^2 * x^2 * (x^2 + 2*x + 2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:48:52 2006 Input: f = x^2 ? Output: Errors: sh: less: command not found Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:48:17 2006 Input: (x^3 - 1)^2-(x^2-1)^2 Output: _3 = x^6 - x^4 - 2*x^3 + 2*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:47:21 2006 Input: f = x^2 f.critical_points() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'critical_points' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:47:11 2006 Input: f = x^2 f(2) Output: _4 = 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:47:01 2006 Input: f = x^2 f.critical_points() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'critical_points' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:45:53 2006 Input: f1 = x f1.critical_points() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'critical_points' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:45:49 2006 Input: maxima('x^2').diff('x',1) Output: _3 = 2*x Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.89s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:45:48 2006 Input: f1 = x f.critical_points() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:45:36 2006 Input: maxima('x^2').diff(1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1089, in diff File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 538, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 483, in function_call File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 391, in new File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Error executing code in Maxima CODE: sage3 : diff(sage0,sage1,sage2); Maxima ERROR: Non-variable 2nd argument to diff: 1 -- an error. Quitting. To debug this try debugmode(true); (%o21) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.74s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:45:21 2006 Input: f1=x f1.critical Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'critical' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:45:18 2006 Input: f1=x f1.critical Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'critical' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:45:14 2006 Input: f1=x f1.critical() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'critical' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:45:10 2006 Input: f1=x f.critical() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:45:04 2006 Input: f1=x f.critical Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:44:54 2006 Input: f1=x Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.119 (128.95.47.119) Time: Mon Jun 26 15:44:44 2006 Input: L = [[cos(pi*i/100)^3,sin(pi*i/100)] for i in range(200)] p = line(L, rgbcolor=(1/4,1/8,3/4)) t = text("a bulb", (-1.7, 0.5)) x = text("x axis", (2,-0.2)) y = text("y axis", (0.6,1.3)) g = p+t+x+y view(g, xmin=-1.5, xmax=2, ymin=-1, ymax=1.3) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: view() got an unexpected keyword argument 'xmin' Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.18s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:44:12 2006 Input: factor(12309234092354234098723497802403509887752738949546098243598723450984256098345) 2*3*5*7*11*13*17*19*23*29*31*37*41*43 factor(13082761331670030) factor(factorial(32012)) Output: _3 = 3^3 * 5 * 31 * 383 * 547 * 3019 * 1560877 * 1597381 * 9512687 * 27236687 * 29175271 * 1784081587 * 138299962629014764483 _4 = 13082761331670030 _5 = 2 * 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23 * 29 * 31 * 37 * 41 * 43 _6 = 2^32004 * 3^15999 * 5^8001 * 7^5333 * 11^3200 * 13^2666 * 17^1999 * 19^1776 * 23^1453 * 29^1142 * 31^1066 * 37^888 * 41^799 * 43^761 * 47^695 * 53^615 * 59^551 * 61^532 * 67^484 * 71^456 * 73^444 * 79^410 * 83^389 * 89^363 * 97^333 * 101^319 * 103^313 * 107^301 * 109^295 * 113^285 * 127^253 * 131^245 * 137^234 * 139^231 * 149^215 * 151^213 * 157^204 * 163^197 * 167^192 * 173^186 * 179^178 * 181^176 * 191^167 * 193^165 * 197^162 * 199^160 * 211^151 * 223^143 * 227^141 * 229^139 * 233^137 * 239^133 * 241^132 * 251^127 * 257^124 * 263^121 * 269^119 * 271^118 * 277^115 * 281^113 * 283^113 * 293^109 * 307^104 * 311^102 * 313^102 * 317^100 * 331^96 * 337^94 * 347^92 * 349^91 * 353^90 * 359^89 * 367^87 * 373^85 * 379^84 * 383^83 * 389^82 * 397^80 * 401^79 * 409^78 * 419^76 * 421^76 * 431^74 * 433^73 * 439^72 * 443^72 * 449^71 * 457^70 * 461^69 * 463^69 * 467^68 * 479^66 * 487^65 * 491^65 * 499^64 * 503^63 * 509^62 * 521^61 * 523^61 * 541^59 * 547^58 * 557^57 * 563^56 * 569^56 * 571^56 * 577^55 * 587^54 * 593^53 * 599^53 * 601^53 * 607^52 * 613^52 * 617^51 * 619^51 * 631^50 * 641^49 * 643^49 * 647^49 * 653^49 * 659^48 * 661^48 * 673^47 * 677^47 * 683^46 * 691^46 * 701^45 * 709^45 * 719^44 * 727^44 * 733^43 * 739^43 * 743^43 * 751^42 * 757^42 * 761^42 * 769^41 * 773^41 * 787^40 * 797^40 * 809^39 * 811^39 * 821^38 * 823^38 * 827^38 * 829^38 * 839^38 * 853^37 * 857^37 * 859^37 * 863^37 * 877^36 * 881^36 * 883^36 * 887^36 * 907^35 * 911^35 * 919^34 * 929^34 * 937^34 * 941^34 * 947^33 * 953^33 * 967^33 * 971^32 * 977^32 * 983^32 * 991^32 * 997^32 * 1009^31 * 1013^31 * 1019^31 * 1021^31 * 1031^31 * 1033^30 * 1039^30 * 1049^30 * 1051^30 * 1061^30 * 1063^30 * 1069^29 * 1087^29 * 1091^29 * 1093^29 * 1097^29 * 1103^29 * 1109^28 * 1117^28 * 1123^28 * 1129^28 * 1151^27 * 1153^27 * 1163^27 * 1171^27 * 1181^27 * 1187^26 * 1193^26 * 1201^26 * 1213^26 * 1217^26 * 1223^26 * 1229^26 * 1231^26 * 1237^25 * 1249^25 * 1259^25 * 1277^25 * 1279^25 * 1283^24 * 1289^24 * 1291^24 * 1297^24 * 1301^24 * 1303^24 * 1307^24 * 1319^24 * 1321^24 * 1327^24 * 1361^23 * 1367^23 * 1373^23 * 1381^23 * 1399^22 * 1409^22 * 1423^22 * 1427^22 * 1429^22 * 1433^22 * 1439^22 * 1447^22 * 1451^22 * 1453^22 * 1459^21 * 1471^21 * 1481^21 * 1483^21 * 1487^21 * 1489^21 * 1493^21 * 1499^21 * 1511^21 * 1523^21 * 1531^20 * 1543^20 * 1549^20 * 1553^20 * 1559^20 * 1567^20 * 1571^20 * 1579^20 * 1583^20 * 1597^20 * 1601^19 * 1607^19 * 1609^19 * 1613^19 * 1619^19 * 1621^19 * 1627^19 * 1637^19 * 1657^19 * 1663^19 * 1667^19 * 1669^19 * 1693^18 * 1697^18 * 1699^18 * 1709^18 * 1721^18 * 1723^18 * 1733^18 * 1741^18 * 1747^18 * 1753^18 * 1759^18 * 1777^18 * 1783^17 * 1787^17 * 1789^17 * 1801^17 * 1811^17 * 1823^17 * 1831^17 * 1847^17 * 1861^17 * 1867^17 * 1871^17 * 1873^17 * 1877^17 * 1879^17 * 1889^16 * 1901^16 * 1907^16 * 1913^16 * 1931^16 * 1933^16 * 1949^16 * 1951^16 * 1973^16 * 1979^16 * 1987^16 * 1993^16 * 1997^16 * 1999^16 * 2003^15 * 2011^15 * 2017^15 * 2027^15 * 2029^15 * 2039^15 * 2053^15 * 2063^15 * 2069^15 * 2081^15 * 2083^15 * 2087^15 * 2089^15 * 2099^15 * 2111^15 * 2113^15 * 2129^15 * 2131^15 * 2137^14 * 2141^14 * 2143^14 * 2153^14 * 2161^14 * 2179^14 * 2203^14 * 2207^14 * 2213^14 * 2221^14 * 2237^14 * 2239^14 * 2243^14 * 2251^14 * 2267^14 * 2269^14 * 2273^14 * 2281^14 * 2287^13 * 2293^13 * 2297^13 * 2309^13 * 2311^13 * 2333^13 * 2339^13 * 2341^13 * 2347^13 * 2351^13 * 2357^13 * 2371^13 * 2377^13 * 2381^13 * 2383^13 * 2389^13 * 2393^13 * 2399^13 * 2411^13 * 2417^13 * 2423^13 * 2437^13 * 2441^13 * 2447^13 * 2459^13 * 2467^12 * 2473^12 * 2477^12 * 2503^12 * 2521^12 * 2531^12 * 2539^12 * 2543^12 * 2549^12 * 2551^12 * 2557^12 * 2579^12 * 2591^12 * 2593^12 * 2609^12 * 2617^12 * 2621^12 * 2633^12 * 2647^12 * 2657^12 * 2659^12 * 2663^12 * 2671^11 * 2677^11 * 2683^11 * 2687^11 * 2689^11 * 2693^11 * 2699^11 * 2707^11 * 2711^11 * 2713^11 * 2719^11 * 2729^11 * 2731^11 * 2741^11 * 2749^11 * 2753^11 * 2767^11 * 2777^11 * 2789^11 * 2791^11 * 2797^11 * 2801^11 * 2803^11 * 2819^11 * 2833^11 * 2837^11 * 2843^11 * 2851^11 * 2857^11 * 2861^11 * 2879^11 * 2887^11 * 2897^11 * 2903^11 * 2909^11 * 2917^10 * 2927^10 * 2939^10 * 2953^10 * 2957^10 * 2963^10 * 2969^10 * 2971^10 * 2999^10 * 3001^10 * 3011^10 * 3019^10 * 3023^10 * 3037^10 * 3041^10 * 3049^10 * 3061^10 * 3067^10 * 3079^10 * 3083^10 * 3089^10 * 3109^10 * 3119^10 * 3121^10 * 3137^10 * 3163^10 * 3167^10 * 3169^10 * 3181^10 * 3187^10 * 3191^10 * 3203^9 * 3209^9 * 3217^9 * 3221^9 * 3229^9 * 3251^9 * 3253^9 * 3257^9 * 3259^9 * 3271^9 * 3299^9 * 3301^9 * 3307^9 * 3313^9 * 3319^9 * 3323^9 * 3329^9 * 3331^9 * 3343^9 * 3347^9 * 3359^9 * 3361^9 * 3371^9 * 3373^9 * 3389^9 * 3391^9 * 3407^9 * 3413^9 * 3433^9 * 3449^9 * 3457^9 * 3461^9 * 3463^9 * 3467^9 * 3469^9 * 3491^9 * 3499^9 * 3511^9 * 3517^9 * 3527^9 * 3529^9 * 3533^9 * 3539^9 * 3541^9 * 3547^9 * 3557^8 * 3559^8 * 3571^8 * 3581^8 * 3583^8 * 3593^8 * 3607^8 * 3613^8 * 3617^8 * 3623^8 * 3631^8 * 3637^8 * 3643^8 * 3659^8 * 3671^8 * 3673^8 * 3677^8 * 3691^8 * 3697^8 * 3701^8 * 3709^8 * 3719^8 * 3727^8 * 3733^8 * 3739^8 * 3761^8 * 3767^8 * 3769^8 * 3779^8 * 3793^8 * 3797^8 * 3803^8 * 3821^8 * 3823^8 * 3833^8 * 3847^8 * 3851^8 * 3853^8 * 3863^8 * 3877^8 * 3881^8 * 3889^8 * 3907^8 * 3911^8 * 3917^8 * 3919^8 * 3923^8 * 3929^8 * 3931^8 * 3943^8 * 3947^8 * 3967^8 * 3989^8 * 4001^8 * 4003^7 * 4007^7 * 4013^7 * 4019^7 * 4021^7 * 4027^7 * 4049^7 * 4051^7 * 4057^7 * 4073^7 * 4079^7 * 4091^7 * 4093^7 * 4099^7 * 4111^7 * 4127^7 * 4129^7 * 4133^7 * 4139^7 * 4153^7 * 4157^7 * 4159^7 * 4177^7 * 4201^7 * 4211^7 * 4217^7 * 4219^7 * 4229^7 * 4231^7 * 4241^7 * 4243^7 * 4253^7 * 4259^7 * 4261^7 * 4271^7 * 4273^7 * 4283^7 * 4289^7 * 4297^7 * 4327^7 * 4337^7 * 4339^7 * 4349^7 * 4357^7 * 4363^7 * 4373^7 * 4391^7 * 4397^7 * 4409^7 * 4421^7 * 4423^7 * 4441^7 * 4447^7 * 4451^7 * 4457^7 * 4463^7 * 4481^7 * 4483^7 * 4493^7 * 4507^7 * 4513^7 * 4517^7 * 4519^7 * 4523^7 * 4547^7 * 4549^7 * 4561^7 * 4567^7 * 4583^6 * 4591^6 * 4597^6 * 4603^6 * 4621^6 * 4637^6 * 4639^6 * 4643^6 * 4649^6 * 4651^6 * 4657^6 * 4663^6 * 4673^6 * 4679^6 * 4691^6 * 4703^6 * 4721^6 * 4723^6 * 4729^6 * 4733^6 * 4751^6 * 4759^6 * 4783^6 * 4787^6 * 4789^6 * 4793^6 * 4799^6 * 4801^6 * 4813^6 * 4817^6 * 4831^6 * 4861^6 * 4871^6 * 4877^6 * 4889^6 * 4903^6 * 4909^6 * 4919^6 * 4931^6 * 4933^6 * 4937^6 * 4943^6 * 4951^6 * 4957^6 * 4967^6 * 4969^6 * 4973^6 * 4987^6 * 4993^6 * 4999^6 * 5003^6 * 5009^6 * 5011^6 * 5021^6 * 5023^6 * 5039^6 * 5051^6 * 5059^6 * 5077^6 * 5081^6 * 5087^6 * 5099^6 * 5101^6 * 5107^6 * 5113^6 * 5119^6 * 5147^6 * 5153^6 * 5167^6 * 5171^6 * 5179^6 * 5189^6 * 5197^6 * 5209^6 * 5227^6 * 5231^6 * 5233^6 * 5237^6 * 5261^6 * 5273^6 * 5279^6 * 5281^6 * 5297^6 * 5303^6 * 5309^6 * 5323^6 * 5333^6 * 5347^5 * 5351^5 * 5381^5 * 5387^5 * 5393^5 * 5399^5 * 5407^5 * 5413^5 * 5417^5 * 5419^5 * 5431^5 * 5437^5 * 5441^5 * 5443^5 * 5449^5 * 5471^5 * 5477^5 * 5479^5 * 5483^5 * 5501^5 * 5503^5 * 5507^5 * 5519^5 * 5521^5 * 5527^5 * 5531^5 * 5557^5 * 5563^5 * 5569^5 * 5573^5 * 5581^5 * 5591^5 * 5623^5 * 5639^5 * 5641^5 * 5647^5 * 5651^5 * 5653^5 * 5657^5 * 5659^5 * 5669^5 * 5683^5 * 5689^5 * 5693^5 * 5701^5 * 5711^5 * 5717^5 * 5737^5 * 5741^5 * 5743^5 * 5749^5 * 5779^5 * 5783^5 * 5791^5 * 5801^5 * 5807^5 * 5813^5 * 5821^5 * 5827^5 * 5839^5 * 5843^5 * 5849^5 * 5851^5 * 5857^5 * 5861^5 * 5867^5 * 5869^5 * 5879^5 * 5881^5 * 5897^5 * 5903^5 * 5923^5 * 5927^5 * 5939^5 * 5953^5 * 5981^5 * 5987^5 * 6007^5 * 6011^5 * 6029^5 * 6037^5 * 6043^5 * 6047^5 * 6053^5 * 6067^5 * 6073^5 * 6079^5 * 6089^5 * 6091^5 * 6101^5 * 6113^5 * 6121^5 * 6131^5 * 6133^5 * 6143^5 * 6151^5 * 6163^5 * 6173^5 * 6197^5 * 6199^5 * 6203^5 * 6211^5 * 6217^5 * 6221^5 * 6229^5 * 6247^5 * 6257^5 * 6263^5 * 6269^5 * 6271^5 * 6277^5 * 6287^5 * 6299^5 * 6301^5 * 6311^5 * 6317^5 * 6323^5 * 6329^5 * 6337^5 * 6343^5 * 6353^5 * 6359^5 * 6361^5 * 6367^5 * 6373^5 * 6379^5 * 6389^5 * 6397^5 * 6421^4 * 6427^4 * 6449^4 * 6451^4 * 6469^4 * 6473^4 * 6481^4 * 6491^4 * 6521^4 * 6529^4 * 6547^4 * 6551^4 * 6553^4 * 6563^4 * 6569^4 * 6571^4 * 6577^4 * 6581^4 * 6599^4 * 6607^4 * 6619^4 * 6637^4 * 6653^4 * 6659^4 * 6661^4 * 6673^4 * 6679^4 * 6689^4 * 6691^4 * 6701^4 * 6703^4 * 6709^4 * 6719^4 * 6733^4 * 6737^4 * 6761^4 * 6763^4 * 6779^4 * 6781^4 * 6791^4 * 6793^4 * 6803^4 * 6823^4 * 6827^4 * 6829^4 * 6833^4 * 6841^4 * 6857^4 * 6863^4 * 6869^4 * 6871^4 * 6883^4 * 6899^4 * 6907^4 * 6911^4 * 6917^4 * 6947^4 * 6949^4 * 6959^4 * 6961^4 * 6967^4 * 6971^4 * 6977^4 * 6983^4 * 6991^4 * 6997^4 * 7001^4 * 7013^4 * 7019^4 * 7027^4 * 7039^4 * 7043^4 * 7057^4 * 7069^4 * 7079^4 * 7103^4 * 7109^4 * 7121^4 * 7127^4 * 7129^4 * 7151^4 * 7159^4 * 7177^4 * 7187^4 * 7193^4 * 7207^4 * 7211^4 * 7213^4 * 7219^4 * 7229^4 * 7237^4 * 7243^4 * 7247^4 * 7253^4 * 7283^4 * 7297^4 * 7307^4 * 7309^4 * 7321^4 * 7331^4 * 7333^4 * 7349^4 * 7351^4 * 7369^4 * 7393^4 * 7411^4 * 7417^4 * 7433^4 * 7451^4 * 7457^4 * 7459^4 * 7477^4 * 7481^4 * 7487^4 * 7489^4 * 7499^4 * 7507^4 * 7517^4 * 7523^4 * 7529^4 * 7537^4 * 7541^4 * 7547^4 * 7549^4 * 7559^4 * 7561^4 * 7573^4 * 7577^4 * 7583^4 * 7589^4 * 7591^4 * 7603^4 * 7607^4 * 7621^4 * 7639^4 * 7643^4 * 7649^4 * 7669^4 * 7673^4 * 7681^4 * 7687^4 * 7691^4 * 7699^4 * 7703^4 * 7717^4 * 7723^4 * 7727^4 * 7741^4 * 7753^4 * 7757^4 * 7759^4 * 7789^4 * 7793^4 * 7817^4 * 7823^4 * 7829^4 * 7841^4 * 7853^4 * 7867^4 * 7873^4 * 7877^4 * 7879^4 * 7883^4 * 7901^4 * 7907^4 * 7919^4 * 7927^4 * 7933^4 * 7937^4 * 7949^4 * 7951^4 * 7963^4 * 7993^4 * 8009^3 * 8011^3 * 8017^3 * 8039^3 * 8053^3 * 8059^3 * 8069^3 * 8081^3 * 8087^3 * 8089^3 * 8093^3 * 8101^3 * 8111^3 * 8117^3 * 8123^3 * 8147^3 * 8161^3 * 8167^3 * 8171^3 * 8179^3 * 8191^3 * 8209^3 * 8219^3 * 8221^3 * 8231^3 * 8233^3 * 8237^3 * 8243^3 * 8263^3 * 8269^3 * 8273^3 * 8287^3 * 8291^3 * 8293^3 * 8297^3 * 8311^3 * 8317^3 * 8329^3 * 8353^3 * 8363^3 * 8369^3 * 8377^3 * 8387^3 * 8389^3 * 8419^3 * 8423^3 * 8429^3 * 8431^3 * 8443^3 * 8447^3 * 8461^3 * 8467^3 * 8501^3 * 8513^3 * 8521^3 * 8527^3 * 8537^3 * 8539^3 * 8543^3 * 8563^3 * 8573^3 * 8581^3 * 8597^3 * 8599^3 * 8609^3 * 8623^3 * 8627^3 * 8629^3 * 8641^3 * 8647^3 * 8663^3 * 8669^3 * 8677^3 * 8681^3 * 8689^3 * 8693^3 * 8699^3 * 8707^3 * 8713^3 * 8719^3 * 8731^3 * 8737^3 * 8741^3 * 8747^3 * 8753^3 * 8761^3 * 8779^3 * 8783^3 * 8803^3 * 8807^3 * 8819^3 * 8821^3 * 8831^3 * 8837^3 * 8839^3 * 8849^3 * 8861^3 * 8863^3 * 8867^3 * 8887^3 * 8893^3 * 8923^3 * 8929^3 * 8933^3 * 8941^3 * 8951^3 * 8963^3 * 8969^3 * 8971^3 * 8999^3 * 9001^3 * 9007^3 * 9011^3 * 9013^3 * 9029^3 * 9041^3 * 9043^3 * 9049^3 * 9059^3 * 9067^3 * 9091^3 * 9103^3 * 9109^3 * 9127^3 * 9133^3 * 9137^3 * 9151^3 * 9157^3 * 9161^3 * 9173^3 * 9181^3 * 9187^3 * 9199^3 * 9203^3 * 9209^3 * 9221^3 * 9227^3 * 9239^3 * 9241^3 * 9257^3 * 9277^3 * 9281^3 * 9283^3 * 9293^3 * 9311^3 * 9319^3 * 9323^3 * 9337^3 * 9341^3 * 9343^3 * 9349^3 * 9371^3 * 9377^3 * 9391^3 * 9397^3 * 9403^3 * 9413^3 * 9419^3 * 9421^3 * 9431^3 * 9433^3 * 9437^3 * 9439^3 * 9461^3 * 9463^3 * 9467^3 * 9473^3 * 9479^3 * 9491^3 * 9497^3 * 9511^3 * 9521^3 * 9533^3 * 9539^3 * 9547^3 * 9551^3 * 9587^3 * 9601^3 * 9613^3 * 9619^3 * 9623^3 * 9629^3 * 9631^3 * 9643^3 * 9649^3 * 9661^3 * 9677^3 * 9679^3 * 9689^3 * 9697^3 * 9719^3 * 9721^3 * 9733^3 * 9739^3 * 9743^3 * 9749^3 * 9767^3 * 9769^3 * 9781^3 * 9787^3 * 9791^3 * 9803^3 * 9811^3 * 9817^3 * 9829^3 * 9833^3 * 9839^3 * 9851^3 * 9857^3 * 9859^3 * 9871^3 * 9883^3 * 9887^3 * 9901^3 * 9907^3 * 9923^3 * 9929^3 * 9931^3 * 9941^3 * 9949^3 * 9967^3 * 9973^3 * 10007^3 * 10009^3 * 10037^3 * 10039^3 * 10061^3 * 10067^3 * 10069^3 * 10079^3 * 10091^3 * 10093^3 * 10099^3 * 10103^3 * 10111^3 * 10133^3 * 10139^3 * 10141^3 * 10151^3 * 10159^3 * 10163^3 * 10169^3 * 10177^3 * 10181^3 * 10193^3 * 10211^3 * 10223^3 * 10243^3 * 10247^3 * 10253^3 * 10259^3 * 10267^3 * 10271^3 * 10273^3 * 10289^3 * 10301^3 * 10303^3 * 10313^3 * 10321^3 * 10331^3 * 10333^3 * 10337^3 * 10343^3 * 10357^3 * 10369^3 * 10391^3 * 10399^3 * 10427^3 * 10429^3 * 10433^3 * 10453^3 * 10457^3 * 10459^3 * 10463^3 * 10477^3 * 10487^3 * 10499^3 * 10501^3 * 10513^3 * 10529^3 * 10531^3 * 10559^3 * 10567^3 * 10589^3 * 10597^3 * 10601^3 * 10607^3 * 10613^3 * 10627^3 * 10631^3 * 10639^3 * 10651^3 * 10657^3 * 10663^3 * 10667^3 * 10687^2 * 10691^2 * 10709^2 * 10711^2 * 10723^2 * 10729^2 * 10733^2 * 10739^2 * 10753^2 * 10771^2 * 10781^2 * 10789^2 * 10799^2 * 10831^2 * 10837^2 * 10847^2 * 10853^2 * 10859^2 * 10861^2 * 10867^2 * 10883^2 * 10889^2 * 10891^2 * 10903^2 * 10909^2 * 10937^2 * 10939^2 * 10949^2 * 10957^2 * 10973^2 * 10979^2 * 10987^2 * 10993^2 * 11003^2 * 11027^2 * 11047^2 * 11057^2 * 11059^2 * 11069^2 * 11071^2 * 11083^2 * 11087^2 * 11093^2 * 11113^2 * 11117^2 * 11119^2 * 11131^2 * 11149^2 * 11159^2 * 11161^2 * 11171^2 * 11173^2 * 11177^2 * 11197^2 * 11213^2 * 11239^2 * 11243^2 * 11251^2 * 11257^2 * 11261^2 * 11273^2 * 11279^2 * 11287^2 * 11299^2 * 11311^2 * 11317^2 * 11321^2 * 11329^2 * 11351^2 * 11353^2 * 11369^2 * 11383^2 * 11393^2 * 11399^2 * 11411^2 * 11423^2 * 11437^2 * 11443^2 * 11447^2 * 11467^2 * 11471^2 * 11483^2 * 11489^2 * 11491^2 * 11497^2 * 11503^2 * 11519^2 * 11527^2 * 11549^2 * 11551^2 * 11579^2 * 11587^2 * 11593^2 * 11597^2 * 11617^2 * 11621^2 * 11633^2 * 11657^2 * 11677^2 * 11681^2 * 11689^2 * 11699^2 * 11701^2 * 11717^2 * 11719^2 * 11731^2 * 11743^2 * 11777^2 * 11779^2 * 11783^2 * 11789^2 * 11801^2 * 11807^2 * 11813^2 * 11821^2 * 11827^2 * 11831^2 * 11833^2 * 11839^2 * 11863^2 * 11867^2 * 11887^2 * 11897^2 * 11903^2 * 11909^2 * 11923^2 * 11927^2 * 11933^2 * 11939^2 * 11941^2 * 11953^2 * 11959^2 * 11969^2 * 11971^2 * 11981^2 * 11987^2 * 12007^2 * 12011^2 * 12037^2 * 12041^2 * 12043^2 * 12049^2 * 12071^2 * 12073^2 * 12097^2 * 12101^2 * 12107^2 * 12109^2 * 12113^2 * 12119^2 * 12143^2 * 12149^2 * 12157^2 * 12161^2 * 12163^2 * 12197^2 * 12203^2 * 12211^2 * 12227^2 * 12239^2 * 12241^2 * 12251^2 * 12253^2 * 12263^2 * 12269^2 * 12277^2 * 12281^2 * 12289^2 * 12301^2 * 12323^2 * 12329^2 * 12343^2 * 12347^2 * 12373^2 * 12377^2 * 12379^2 * 12391^2 * 12401^2 * 12409^2 * 12413^2 * 12421^2 * 12433^2 * 12437^2 * 12451^2 * 12457^2 * 12473^2 * 12479^2 * 12487^2 * 12491^2 * 12497^2 * 12503^2 * 12511^2 * 12517^2 * 12527^2 * 12539^2 * 12541^2 * 12547^2 * 12553^2 * 12569^2 * 12577^2 * 12583^2 * 12589^2 * 12601^2 * 12611^2 * 12613^2 * 12619^2 * 12637^2 * 12641^2 * 12647^2 * 12653^2 * 12659^2 * 12671^2 * 12689^2 * 12697^2 * 12703^2 * 12713^2 * 12721^2 * 12739^2 * 12743^2 * 12757^2 * 12763^2 * 12781^2 * 12791^2 * 12799^2 * 12809^2 * 12821^2 * 12823^2 * 12829^2 * 12841^2 * 12853^2 * 12889^2 * 12893^2 * 12899^2 * 12907^2 * 12911^2 * 12917^2 * 12919^2 * 12923^2 * 12941^2 * 12953^2 * 12959^2 * 12967^2 * 12973^2 * 12979^2 * 12983^2 * 13001^2 * 13003^2 * 13007^2 * 13009^2 * 13033^2 * 13037^2 * 13043^2 * 13049^2 * 13063^2 * 13093^2 * 13099^2 * 13103^2 * 13109^2 * 13121^2 * 13127^2 * 13147^2 * 13151^2 * 13159^2 * 13163^2 * 13171^2 * 13177^2 * 13183^2 * 13187^2 * 13217^2 * 13219^2 * 13229^2 * 13241^2 * 13249^2 * 13259^2 * 13267^2 * 13291^2 * 13297^2 * 13309^2 * 13313^2 * 13327^2 * 13331^2 * 13337^2 * 13339^2 * 13367^2 * 13381^2 * 13397^2 * 13399^2 * 13411^2 * 13417^2 * 13421^2 * 13441^2 * 13451^2 * 13457^2 * 13463^2 * 13469^2 * 13477^2 * 13487^2 * 13499^2 * 13513^2 * 13523^2 * 13537^2 * 13553^2 * 13567^2 * 13577^2 * 13591^2 * 13597^2 * 13613^2 * 13619^2 * 13627^2 * 13633^2 * 13649^2 * 13669^2 * 13679^2 * 13681^2 * 13687^2 * 13691^2 * 13693^2 * 13697^2 * 13709^2 * 13711^2 * 13721^2 * 13723^2 * 13729^2 * 13751^2 * 13757^2 * 13759^2 * 13763^2 * 13781^2 * 13789^2 * 13799^2 * 13807^2 * 13829^2 * 13831^2 * 13841^2 * 13859^2 * 13873^2 * 13877^2 * 13879^2 * 13883^2 * 13901^2 * 13903^2 * 13907^2 * 13913^2 * 13921^2 * 13931^2 * 13933^2 * 13963^2 * 13967^2 * 13997^2 * 13999^2 * 14009^2 * 14011^2 * 14029^2 * 14033^2 * 14051^2 * 14057^2 * 14071^2 * 14081^2 * 14083^2 * 14087^2 * 14107^2 * 14143^2 * 14149^2 * 14153^2 * 14159^2 * 14173^2 * 14177^2 * 14197^2 * 14207^2 * 14221^2 * 14243^2 * 14249^2 * 14251^2 * 14281^2 * 14293^2 * 14303^2 * 14321^2 * 14323^2 * 14327^2 * 14341^2 * 14347^2 * 14369^2 * 14387^2 * 14389^2 * 14401^2 * 14407^2 * 14411^2 * 14419^2 * 14423^2 * 14431^2 * 14437^2 * 14447^2 * 14449^2 * 14461^2 * 14479^2 * 14489^2 * 14503^2 * 14519^2 * 14533^2 * 14537^2 * 14543^2 * 14549^2 * 14551^2 * 14557^2 * 14561^2 * 14563^2 * 14591^2 * 14593^2 * 14621^2 * 14627^2 * 14629^2 * 14633^2 * 14639^2 * 14653^2 * 14657^2 * 14669^2 * 14683^2 * 14699^2 * 14713^2 * 14717^2 * 14723^2 * 14731^2 * 14737^2 * 14741^2 * 14747^2 * 14753^2 * 14759^2 * 14767^2 * 14771^2 * 14779^2 * 14783^2 * 14797^2 * 14813^2 * 14821^2 * 14827^2 * 14831^2 * 14843^2 * 14851^2 * 14867^2 * 14869^2 * 14879^2 * 14887^2 * 14891^2 * 14897^2 * 14923^2 * 14929^2 * 14939^2 * 14947^2 * 14951^2 * 14957^2 * 14969^2 * 14983^2 * 15013^2 * 15017^2 * 15031^2 * 15053^2 * 15061^2 * 15073^2 * 15077^2 * 15083^2 * 15091^2 * 15101^2 * 15107^2 * 15121^2 * 15131^2 * 15137^2 * 15139^2 * 15149^2 * 15161^2 * 15173^2 * 15187^2 * 15193^2 * 15199^2 * 15217^2 * 15227^2 * 15233^2 * 15241^2 * 15259^2 * 15263^2 * 15269^2 * 15271^2 * 15277^2 * 15287^2 * 15289^2 * 15299^2 * 15307^2 * 15313^2 * 15319^2 * 15329^2 * 15331^2 * 15349^2 * 15359^2 * 15361^2 * 15373^2 * 15377^2 * 15383^2 * 15391^2 * 15401^2 * 15413^2 * 15427^2 * 15439^2 * 15443^2 * 15451^2 * 15461^2 * 15467^2 * 15473^2 * 15493^2 * 15497^2 * 15511^2 * 15527^2 * 15541^2 * 15551^2 * 15559^2 * 15569^2 * 15581^2 * 15583^2 * 15601^2 * 15607^2 * 15619^2 * 15629^2 * 15641^2 * 15643^2 * 15647^2 * 15649^2 * 15661^2 * 15667^2 * 15671^2 * 15679^2 * 15683^2 * 15727^2 * 15731^2 * 15733^2 * 15737^2 * 15739^2 * 15749^2 * 15761^2 * 15767^2 * 15773^2 * 15787^2 * 15791^2 * 15797^2 * 15803^2 * 15809^2 * 15817^2 * 15823^2 * 15859^2 * 15877^2 * 15881^2 * 15887^2 * 15889^2 * 15901^2 * 15907^2 * 15913^2 * 15919^2 * 15923^2 * 15937^2 * 15959^2 * 15971^2 * 15973^2 * 15991^2 * 16001^2 * 16007 * 16033 * 16057 * 16061 * 16063 * 16067 * 16069 * 16073 * 16087 * 16091 * 16097 * 16103 * 16111 * 16127 * 16139 * 16141 * 16183 * 16187 * 16189 * 16193 * 16217 * 16223 * 16229 * 16231 * 16249 * 16253 * 16267 * 16273 * 16301 * 16319 * 16333 * 16339 * 16349 * 16361 * 16363 * 16369 * 16381 * 16411 * 16417 * 16421 * 16427 * 16433 * 16447 * 16451 * 16453 * 16477 * 16481 * 16487 * 16493 * 16519 * 16529 * 16547 * 16553 * 16561 * 16567 * 16573 * 16603 * 16607 * 16619 * 16631 * 16633 * 16649 * 16651 * 16657 * 16661 * 16673 * 16691 * 16693 * 16699 * 16703 * 16729 * 16741 * 16747 * 16759 * 16763 * 16787 * 16811 * 16823 * 16829 * 16831 * 16843 * 16871 * 16879 * 16883 * 16889 * 16901 * 16903 * 16921 * 16927 * 16931 * 16937 * 16943 * 16963 * 16979 * 16981 * 16987 * 16993 * 17011 * 17021 * 17027 * 17029 * 17033 * 17041 * 17047 * 17053 * 17077 * 17093 * 17099 * 17107 * 17117 * 17123 * 17137 * 17159 * 17167 * 17183 * 17189 * 17191 * 17203 * 17207 * 17209 * 17231 * 17239 * 17257 * 17291 * 17293 * 17299 * 17317 * 17321 * 17327 * 17333 * 17341 * 17351 * 17359 * 17377 * 17383 * 17387 * 17389 * 17393 * 17401 * 17417 * 17419 * 17431 * 17443 * 17449 * 17467 * 17471 * 17477 * 17483 * 17489 * 17491 * 17497 * 17509 * 17519 * 17539 * 17551 * 17569 * 17573 * 17579 * 17581 * 17597 * 17599 * 17609 * 17623 * 17627 * 17657 * 17659 * 17669 * 17681 * 17683 * 17707 * 17713 * 17729 * 17737 * 17747 * 17749 * 17761 * 17783 * 17789 * 17791 * 17807 * 17827 * 17837 * 17839 * 17851 * 17863 * 17881 * 17891 * 17903 * 17909 * 17911 * 17921 * 17923 * 17929 * 17939 * 17957 * 17959 * 17971 * 17977 * 17981 * 17987 * 17989 * 18013 * 18041 * 18043 * 18047 * 18049 * 18059 * 18061 * 18077 * 18089 * 18097 * 18119 * 18121 * 18127 * 18131 * 18133 * 18143 * 18149 * 18169 * 18181 * 18191 * 18199 * 18211 * 18217 * 18223 * 18229 * 18233 * 18251 * 18253 * 18257 * 18269 * 18287 * 18289 * 18301 * 18307 * 18311 * 18313 * 18329 * 18341 * 18353 * 18367 * 18371 * 18379 * 18397 * 18401 * 18413 * 18427 * 18433 * 18439 * 18443 * 18451 * 18457 * 18461 * 18481 * 18493 * 18503 * 18517 * 18521 * 18523 * 18539 * 18541 * 18553 * 18583 * 18587 * 18593 * 18617 * 18637 * 18661 * 18671 * 18679 * 18691 * 18701 * 18713 * 18719 * 18731 * 18743 * 18749 * 18757 * 18773 * 18787 * 18793 * 18797 * 18803 * 18839 * 18859 * 18869 * 18899 * 18911 * 18913 * 18917 * 18919 * 18947 * 18959 * 18973 * 18979 * 19001 * 19009 * 19013 * 19031 * 19037 * 19051 * 19069 * 19073 * 19079 * 19081 * 19087 * 19121 * 19139 * 19141 * 19157 * 19163 * 19181 * 19183 * 19207 * 19211 * 19213 * 19219 * 19231 * 19237 * 19249 * 19259 * 19267 * 19273 * 19289 * 19301 * 19309 * 19319 * 19333 * 19373 * 19379 * 19381 * 19387 * 19391 * 19403 * 19417 * 19421 * 19423 * 19427 * 19429 * 19433 * 19441 * 19447 * 19457 * 19463 * 19469 * 19471 * 19477 * 19483 * 19489 * 19501 * 19507 * 19531 * 19541 * 19543 * 19553 * 19559 * 19571 * 19577 * 19583 * 19597 * 19603 * 19609 * 19661 * 19681 * 19687 * 19697 * 19699 * 19709 * 19717 * 19727 * 19739 * 19751 * 19753 * 19759 * 19763 * 19777 * 19793 * 19801 * 19813 * 19819 * 19841 * 19843 * 19853 * 19861 * 19867 * 19889 * 19891 * 19913 * 19919 * 19927 * 19937 * 19949 * 19961 * 19963 * 19973 * 19979 * 19991 * 19993 * 19997 * 20011 * 20021 * 20023 * 20029 * 20047 * 20051 * 20063 * 20071 * 20089 * 20101 * 20107 * 20113 * 20117 * 20123 * 20129 * 20143 * 20147 * 20149 * 20161 * 20173 * 20177 * 20183 * 20201 * 20219 * 20231 * 20233 * 20249 * 20261 * 20269 * 20287 * 20297 * 20323 * 20327 * 20333 * 20341 * 20347 * 20353 * 20357 * 20359 * 20369 * 20389 * 20393 * 20399 * 20407 * 20411 * 20431 * 20441 * 20443 * 20477 * 20479 * 20483 * 20507 * 20509 * 20521 * 20533 * 20543 * 20549 * 20551 * 20563 * 20593 * 20599 * 20611 * 20627 * 20639 * 20641 * 20663 * 20681 * 20693 * 20707 * 20717 * 20719 * 20731 * 20743 * 20747 * 20749 * 20753 * 20759 * 20771 * 20773 * 20789 * 20807 * 20809 * 20849 * 20857 * 20873 * 20879 * 20887 * 20897 * 20899 * 20903 * 20921 * 20929 * 20939 * 20947 * 20959 * 20963 * 20981 * 20983 * 21001 * 21011 * 21013 * 21017 * 21019 * 21023 * 21031 * 21059 * 21061 * 21067 * 21089 * 21101 * 21107 * 21121 * 21139 * 21143 * 21149 * 21157 * 21163 * 21169 * 21179 * 21187 * 21191 * 21193 * 21211 * 21221 * 21227 * 21247 * 21269 * 21277 * 21283 * 21313 * 21317 * 21319 * 21323 * 21341 * 21347 * 21377 * 21379 * 21383 * 21391 * 21397 * 21401 * 21407 * 21419 * 21433 * 21467 * 21481 * 21487 * 21491 * 21493 * 21499 * 21503 * 21517 * 21521 * 21523 * 21529 * 21557 * 21559 * 21563 * 21569 * 21577 * 21587 * 21589 * 21599 * 21601 * 21611 * 21613 * 21617 * 21647 * 21649 * 21661 * 21673 * 21683 * 21701 * 21713 * 21727 * 21737 * 21739 * 21751 * 21757 * 21767 * 21773 * 21787 * 21799 * 21803 * 21817 * 21821 * 21839 * 21841 * 21851 * 21859 * 21863 * 21871 * 21881 * 21893 * 21911 * 21929 * 21937 * 21943 * 21961 * 21977 * 21991 * 21997 * 22003 * 22013 * 22027 * 22031 * 22037 * 22039 * 22051 * 22063 * 22067 * 22073 * 22079 * 22091 * 22093 * 22109 * 22111 * 22123 * 22129 * 22133 * 22147 * 22153 * 22157 * 22159 * 22171 * 22189 * 22193 * 22229 * 22247 * 22259 * 22271 * 22273 * 22277 * 22279 * 22283 * 22291 * 22303 * 22307 * 22343 * 22349 * 22367 * 22369 * 22381 * 22391 * 22397 * 22409 * 22433 * 22441 * 22447 * 22453 * 22469 * 22481 * 22483 * 22501 * 22511 * 22531 * 22541 * 22543 * 22549 * 22567 * 22571 * 22573 * 22613 * 22619 * 22621 * 22637 * 22639 * 22643 * 22651 * 22669 * 22679 * 22691 * 22697 * 22699 * 22709 * 22717 * 22721 * 22727 * 22739 * 22741 * 22751 * 22769 * 22777 * 22783 * 22787 * 22807 * 22811 * 22817 * 22853 * 22859 * 22861 * 22871 * 22877 * 22901 * 22907 * 22921 * 22937 * 22943 * 22961 * 22963 * 22973 * 22993 * 23003 * 23011 * 23017 * 23021 * 23027 * 23029 * 23039 * 23041 * 23053 * 23057 * 23059 * 23063 * 23071 * 23081 * 23087 * 23099 * 23117 * 23131 * 23143 * 23159 * 23167 * 23173 * 23189 * 23197 * 23201 * 23203 * 23209 * 23227 * 23251 * 23269 * 23279 * 23291 * 23293 * 23297 * 23311 * 23321 * 23327 * 23333 * 23339 * 23357 * 23369 * 23371 * 23399 * 23417 * 23431 * 23447 * 23459 * 23473 * 23497 * 23509 * 23531 * 23537 * 23539 * 23549 * 23557 * 23561 * 23563 * 23567 * 23581 * 23593 * 23599 * 23603 * 23609 * 23623 * 23627 * 23629 * 23633 * 23663 * 23669 * 23671 * 23677 * 23687 * 23689 * 23719 * 23741 * 23743 * 23747 * 23753 * 23761 * 23767 * 23773 * 23789 * 23801 * 23813 * 23819 * 23827 * 23831 * 23833 * 23857 * 23869 * 23873 * 23879 * 23887 * 23893 * 23899 * 23909 * 23911 * 23917 * 23929 * 23957 * 23971 * 23977 * 23981 * 23993 * 24001 * 24007 * 24019 * 24023 * 24029 * 24043 * 24049 * 24061 * 24071 * 24077 * 24083 * 24091 * 24097 * 24103 * 24107 * 24109 * 24113 * 24121 * 24133 * 24137 * 24151 * 24169 * 24179 * 24181 * 24197 * 24203 * 24223 * 24229 * 24239 * 24247 * 24251 * 24281 * 24317 * 24329 * 24337 * 24359 * 24371 * 24373 * 24379 * 24391 * 24407 * 24413 * 24419 * 24421 * 24439 * 24443 * 24469 * 24473 * 24481 * 24499 * 24509 * 24517 * 24527 * 24533 * 24547 * 24551 * 24571 * 24593 * 24611 * 24623 * 24631 * 24659 * 24671 * 24677 * 24683 * 24691 * 24697 * 24709 * 24733 * 24749 * 24763 * 24767 * 24781 * 24793 * 24799 * 24809 * 24821 * 24841 * 24847 * 24851 * 24859 * 24877 * 24889 * 24907 * 24917 * 24919 * 24923 * 24943 * 24953 * 24967 * 24971 * 24977 * 24979 * 24989 * 25013 * 25031 * 25033 * 25037 * 25057 * 25073 * 25087 * 25097 * 25111 * 25117 * 25121 * 25127 * 25147 * 25153 * 25163 * 25169 * 25171 * 25183 * 25189 * 25219 * 25229 * 25237 * 25243 * 25247 * 25253 * 25261 * 25301 * 25303 * 25307 * 25309 * 25321 * 25339 * 25343 * 25349 * 25357 * 25367 * 25373 * 25391 * 25409 * 25411 * 25423 * 25439 * 25447 * 25453 * 25457 * 25463 * 25469 * 25471 * 25523 * 25537 * 25541 * 25561 * 25577 * 25579 * 25583 * 25589 * 25601 * 25603 * 25609 * 25621 * 25633 * 25639 * 25643 * 25657 * 25667 * 25673 * 25679 * 25693 * 25703 * 25717 * 25733 * 25741 * 25747 * 25759 * 25763 * 25771 * 25793 * 25799 * 25801 * 25819 * 25841 * 25847 * 25849 * 25867 * 25873 * 25889 * 25903 * 25913 * 25919 * 25931 * 25933 * 25939 * 25943 * 25951 * 25969 * 25981 * 25997 * 25999 * 26003 * 26017 * 26021 * 26029 * 26041 * 26053 * 26083 * 26099 * 26107 * 26111 * 26113 * 26119 * 26141 * 26153 * 26161 * 26171 * 26177 * 26183 * 26189 * 26203 * 26209 * 26227 * 26237 * 26249 * 26251 * 26261 * 26263 * 26267 * 26293 * 26297 * 26309 * 26317 * 26321 * 26339 * 26347 * 26357 * 26371 * 26387 * 26393 * 26399 * 26407 * 26417 * 26423 * 26431 * 26437 * 26449 * 26459 * 26479 * 26489 * 26497 * 26501 * 26513 * 26539 * 26557 * 26561 * 26573 * 26591 * 26597 * 26627 * 26633 * 26641 * 26647 * 26669 * 26681 * 26683 * 26687 * 26693 * 26699 * 26701 * 26711 * 26713 * 26717 * 26723 * 26729 * 26731 * 26737 * 26759 * 26777 * 26783 * 26801 * 26813 * 26821 * 26833 * 26839 * 26849 * 26861 * 26863 * 26879 * 26881 * 26891 * 26893 * 26903 * 26921 * 26927 * 26947 * 26951 * 26953 * 26959 * 26981 * 26987 * 26993 * 27011 * 27017 * 27031 * 27043 * 27059 * 27061 * 27067 * 27073 * 27077 * 27091 * 27103 * 27107 * 27109 * 27127 * 27143 * 27179 * 27191 * 27197 * 27211 * 27239 * 27241 * 27253 * 27259 * 27271 * 27277 * 27281 * 27283 * 27299 * 27329 * 27337 * 27361 * 27367 * 27397 * 27407 * 27409 * 27427 * 27431 * 27437 * 27449 * 27457 * 27479 * 27481 * 27487 * 27509 * 27527 * 27529 * 27539 * 27541 * 27551 * 27581 * 27583 * 27611 * 27617 * 27631 * 27647 * 27653 * 27673 * 27689 * 27691 * 27697 * 27701 * 27733 * 27737 * 27739 * 27743 * 27749 * 27751 * 27763 * 27767 * 27773 * 27779 * 27791 * 27793 * 27799 * 27803 * 27809 * 27817 * 27823 * 27827 * 27847 * 27851 * 27883 * 27893 * 27901 * 27917 * 27919 * 27941 * 27943 * 27947 * 27953 * 27961 * 27967 * 27983 * 27997 * 28001 * 28019 * 28027 * 28031 * 28051 * 28057 * 28069 * 28081 * 28087 * 28097 * 28099 * 28109 * 28111 * 28123 * 28151 * 28163 * 28181 * 28183 * 28201 * 28211 * 28219 * 28229 * 28277 * 28279 * 28283 * 28289 * 28297 * 28307 * 28309 * 28319 * 28349 * 28351 * 28387 * 28393 * 28403 * 28409 * 28411 * 28429 * 28433 * 28439 * 28447 * 28463 * 28477 * 28493 * 28499 * 28513 * 28517 * 28537 * 28541 * 28547 * 28549 * 28559 * 28571 * 28573 * 28579 * 28591 * 28597 * 28603 * 28607 * 28619 * 28621 * 28627 * 28631 * 28643 * 28649 * 28657 * 28661 * 28663 * 28669 * 28687 * 28697 * 28703 * 28711 * 28723 * 28729 * 28751 * 28753 * 28759 * 28771 * 28789 * 28793 * 28807 * 28813 * 28817 * 28837 * 28843 * 28859 * 28867 * 28871 * 28879 * 28901 * 28909 * 28921 * 28927 * 28933 * 28949 * 28961 * 28979 * 29009 * 29017 * 29021 * 29023 * 29027 * 29033 * 29059 * 29063 * 29077 * 29101 * 29123 * 29129 * 29131 * 29137 * 29147 * 29153 * 29167 * 29173 * 29179 * 29191 * 29201 * 29207 * 29209 * 29221 * 29231 * 29243 * 29251 * 29269 * 29287 * 29297 * 29303 * 29311 * 29327 * 29333 * 29339 * 29347 * 29363 * 29383 * 29387 * 29389 * 29399 * 29401 * 29411 * 29423 * 29429 * 29437 * 29443 * 29453 * 29473 * 29483 * 29501 * 29527 * 29531 * 29537 * 29567 * 29569 * 29573 * 29581 * 29587 * 29599 * 29611 * 29629 * 29633 * 29641 * 29663 * 29669 * 29671 * 29683 * 29717 * 29723 * 29741 * 29753 * 29759 * 29761 * 29789 * 29803 * 29819 * 29833 * 29837 * 29851 * 29863 * 29867 * 29873 * 29879 * 29881 * 29917 * 29921 * 29927 * 29947 * 29959 * 29983 * 29989 * 30011 * 30013 * 30029 * 30047 * 30059 * 30071 * 30089 * 30091 * 30097 * 30103 * 30109 * 30113 * 30119 * 30133 * 30137 * 30139 * 30161 * 30169 * 30181 * 30187 * 30197 * 30203 * 30211 * 30223 * 30241 * 30253 * 30259 * 30269 * 30271 * 30293 * 30307 * 30313 * 30319 * 30323 * 30341 * 30347 * 30367 * 30389 * 30391 * 30403 * 30427 * 30431 * 30449 * 30467 * 30469 * 30491 * 30493 * 30497 * 30509 * 30517 * 30529 * 30539 * 30553 * 30557 * 30559 * 30577 * 30593 * 30631 * 30637 * 30643 * 30649 * 30661 * 30671 * 30677 * 30689 * 30697 * 30703 * 30707 * 30713 * 30727 * 30757 * 30763 * 30773 * 30781 * 30803 * 30809 * 30817 * 30829 * 30839 * 30841 * 30851 * 30853 * 30859 * 30869 * 30871 * 30881 * 30893 * 30911 * 30931 * 30937 * 30941 * 30949 * 30971 * 30977 * 30983 * 31013 * 31019 * 31033 * 31039 * 31051 * 31063 * 31069 * 31079 * 31081 * 31091 * 31121 * 31123 * 31139 * 31147 * 31151 * 31153 * 31159 * 31177 * 31181 * 31183 * 31189 * 31193 * 31219 * 31223 * 31231 * 31237 * 31247 * 31249 * 31253 * 31259 * 31267 * 31271 * 31277 * 31307 * 31319 * 31321 * 31327 * 31333 * 31337 * 31357 * 31379 * 31387 * 31391 * 31393 * 31397 * 31469 * 31477 * 31481 * 31489 * 31511 * 31513 * 31517 * 31531 * 31541 * 31543 * 31547 * 31567 * 31573 * 31583 * 31601 * 31607 * 31627 * 31643 * 31649 * 31657 * 31663 * 31667 * 31687 * 31699 * 31721 * 31723 * 31727 * 31729 * 31741 * 31751 * 31769 * 31771 * 31793 * 31799 * 31817 * 31847 * 31849 * 31859 * 31873 * 31883 * 31891 * 31907 * 31957 * 31963 * 31973 * 31981 * 31991 * 32003 * 32009 Exiting SAGE (CPU time 0m1.39s, Wall time 0m1.40s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:43:29 2006 Input: factor(12309234092354234098723497802403509887752738949546098243598723450984256098345) 2*3*5*7*11*13*17*19*23*29*31*37*41*43 factor(13082761331670030) factor(factorial(3209234012)) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 9890 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" _3 = 3^3 * 5 * 31 * 383 * 547 * 3019 * 1560877 * 1597381 * 9512687 * 27236687 * 29175271 * 1784081587 * 138299962629014764483 _4 = 13082761331670030 _5 = 2 * 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23 * 29 * 31 * 37 * 41 * 43 '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:43:27 2006 Input: def cong_number_sets(n): """ Given a positive integer n, returns the two sets appearing in the conjectural criterion for when a number is congruent. """ n = ZZ(n) n = ZZ(prod([p for p, e in n.factor() if e%2 == 1])) if n % 2 == 0: # even case E = [] # with c even O = [] # with c odd a_bound = (sqrt(n/8) + 1).floor() c_bound = (sqrt(n)/4 + 1).floor() half_n = n//2 for c in range(-c_bound, c_bound+1): c_square = c^2 for a in range(-a_bound, a_bound+1): a_square = a^2 z = half_n - 4*a_square - 8*c_square try: b = z.square_root() if b.denominator() == 1: b = b.numerator() assert 4*a^2 + b^2 + 8*c^2 == n/2 if c % 2 == 0: E.append((a,b,c)) else: O.append((a,b,c)) except ValueError: pass else: E = [] # with c even O = [] # with c odd a_bound = (sqrt(n/2)+1).integer_part() c_bound = (sqrt(n/8) + 1).integer_part() for c in range(-c_bound, c_bound+1): c_square = c^2 for a in range(-a_bound, a_bound+1): a_square = a^2 z = n - 2*a_square - 8*c_square try: b = z.square_root() if b.denominator() == 1: b = b.numerator() assert 2*a^2 + b^2 + 8*c^2 == n if c % 2 == 0: E.append((a,b,c)) else: O.append((a,b,c)) except ValueError: pass return E, O def is_conj_cong_number(n): """ Returns True if n is conjecturally a congruent number, according to the Birch and Swinnerton-Dyer conjecture. """ E, O = cong_number_sets(n) return len(E) == len(O) def is_cong_number(n): """ Returns True if n is provably a congruent number. This computes the rank of the corresponding elliptic curve. """ return cong_number_curve(n).rank() > 0 def conj_cong_number_list(bound): """ Returns the conjectural congruent numbers up to a given bound. """ return [n for n in range(1,bound+1) if is_conj_cong_number(n)] def cong_number_curve(n): """ Returns the elliptic curve corresponding to the integer n. This curve has positive rank if and only if n is a congruent number. """ return EllipticCurve([-n^2,0]) def cong_curve_gens(n, verbose=True): """ Returns generators for the Mordell-Weil group of the elliptic curve corresponding to n. """ E = cong_number_curve(n) return E.gens(verbose=verbose, proof=False) def cong_triangle(P): """ Returns the triangle corresponding to the point P on a congruent number elliptic curve. The point P must have nonzero y coordinate. """ m = P.curve().a_invariants()[3] n = (-m).square_root() (x, y) = (P[0],P[1]) if y == 0: raise ArithmeticError, "point does not define a rational right triangle" T = ((n^2-x^2)/y, -2*x*n/y, (n^2+x^2)/y) assert (T[0]^2 + T[1]^2 == T[2]^2), "bug in program." return T def point_from_triangle(a,b,c): """ Return the point on $y^2=x^3-n^2x$ corresponding to the right triangle with side lengths $a,b,c$. """ n = a*b/2 E = EllipticCurve([-n^2, 0]) return E([-n*b/(a+c), 2*n^2/(a+c)]) print conj_cong_number_list(30) Output: Errors: ------------------------------------------------------------ IndentationError: expected an indented block (, line 8) ------------------------------------------------------------ File "", line 3 z = half_n - ZZ(4)*a_square - ZZ(8)*c_square ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 3 if b.denominator() == ZZ(1): ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'b' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined ------------------------------------------------------------ File "", line 3 else: ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'function' object has no attribute 'append' ------------------------------------------------------------ File "", line 1 except ValueError: ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 else: ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined ------------------------------------------------------------ File "", line 3 for a in range(-a_bound, a_bound+ZZ(1)): ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined ------------------------------------------------------------ File "", line 3 if b.denominator() == ZZ(1): ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'b' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined ------------------------------------------------------------ File "", line 3 else: ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined ------------------------------------------------------------ File "", line 1 except ValueError: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 5, in conj_cong_number_list File "", line 6, in is_conj_cong_number TypeError: unpack non-sequence ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.10s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:43:26 2006 Input: factor(factorial(100)) Output: _3 = 2^97 * 3^48 * 5^24 * 7^16 * 11^9 * 13^7 * 17^5 * 19^5 * 23^4 * 29^3 * 31^3 * 37^2 * 41^2 * 43^2 * 47^2 * 53 * 59 * 61 * 67 * 71 * 73 * 79 * 83 * 89 * 97 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.122 (128.95.47.122) Time: Mon Jun 26 15:42:53 2006 Input: 789-456 Output: _3 = 333 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:41:55 2006 Input: factorial(40987) Output: _3 = 637509097168433819503077418340685050152901909948741957580058067734070565159637172028271410230527004139292352258328001040020256740559651748541433557904910401934636135651515657963869282786738570140175223307125156248159169361138804940558404716437996493271126575088934813395567977789095166127155417663395807892191658615602223349524059839804227055743819434611360556422964812580789054345710946218656331450748290888476365713067927052200782282082763329372403307631113423556298969254447343723697593580537728258666973258396916896255224606420231041215617904245654405665776999271187004194613020405916046859644628327630096469563974760585048319469104081930621687718235949804429676819932897771120584761923496916317625067666427425561685274879266154001400982086872373562194792807066667160698344006942220970573518705225610235431080509343864449647605190536365148666746876446435014387507491882330861495464503777144184428865871070521508152185261881221408484634456872951301590253183934958521681763278486082079921275502384407415824659724670552843583030031669275806555164182496161176164278901385749943013824754737281402829858992403478634180673518207329894232014302556463467173716913001451205646905258514170798286566135145673767234632923090146670118716885749299416052870807396043856650765166340517833537912898678260849650072792389563942764708733627012322947590275157777145225418837370322218090649605583696005992287540653777293033248076600520372481653867792605055957659789075275356152372331794194910042916631395062845847483334918451272026814854756244606544843339838778109414326662774456707691330510800234985317642207956415642148115847045747999360224367228485417243462417982236517334486169098943673982455133961803100669810669134295900398905087708058594371062297275477089001558928097415432896949759279004092304471510781300388522751744566200846135393291245557860041084969912459022830329459428892681897920083845241438876262452087721052441193864227889756926803168098710049687341774971099785736604908533059389212108724490536644797799009064337882590057538249310136210932223652017596794874573578546559222216758822230361034092757609183387935940139135183231258363519247780518671747829065615560893608645155964518694247214615523392227431504171569372865766543805869249828728432837398193372038302937298176708228024629942736024756206561644259465826012912684606396726287258988523561387490012854827099492953929371055216083973861558964995485922258378887088358690753798103907583451634958251987759111700023588326995441730792307442971344174359769670049957917697337195852141260580111903670777478194188052176492379105657367647265049253354445590520053732156460962405454054604951412651839279962598458195461464247950339911577674345884243619764044370644806766955273600222517327986615668283534323836107100553188082131569680536919383958222206798913545627697182500173689014495747945866028410252417349851719009200767579264948232607033341025741758974297870318041019155406478353620828591005452916016486639973447925044016590280738268846523455049480232011851035927026101642488015120594158510701618980744738325738176038804935242454565786526356002091162379980639526217448631163971252180414089609714587564128453178580824837502172127775579157472536709671835559605401710552285595079711954491766917607198154501033410117214449794192111766903162264264770545824602213469178888062770950944833575588277305771645395459940004888105068740903397634592541355134589632398697556079434077043717273004345374636593059980596920012390612156245093893687143180569416830925623759989249415735274818933632426731740509414759978490320558060324933321895960229170122193294312130409259597950320127092839820852134403281368536842743513814007163868894435193758175688605680267996578154741984979467851929146716366722872632474267729756897235807500947311584294745951574686070912371975772846008068471351766078052186323256195142806789876281126942234877144161785942610963945126816017830911397211127671571283046726260822568485437955508816771434167743039197597304126883516531985011533843077974076984735286422448419201159855471181369741320079269548079566180868097438672967260118756376320772673387671392689830615143390043600651554767883128881525517849607657100986447891996326251599321534522031466199106040891175802159371240331291714482774507512780865955202611819699174213170468011566769851132090255670567010909969184072023734159560477605238509630522874509473361498055227533030289405637705612894969279397566778896462436089491616879353986999972886048611846137547945779616700481995698746034625109302450234548015049270637588242974932083349323874652141278515904072610551293057306049734140687172012088010219297479395750415071368719287308115048989421202352556286269263617733575733120834227640342442537484276832669148837213842745151136001324057400486315184733847846717036881674655128149935339474647747302509154576628481866126884157038762026378481400190199947407822404751574185577573381451255949434598413321387138861937659567433830248785382548240456219520694813821133299938867048702910494444627097825740484682741489178243501763039868083614980633905838440833032311338413163603126267978405429233474326377914454142798920107551739270605859872855182644399572300240983038733505069229807202258252647089364743404188499842928067456325637298729419998763903650321738059766188860995261322570223143702358917910678797110997206056335391225988485233831119141899278864964148777861160077634341893774770286938238214222319293947698737601013485427328362028411603522957786920390908261593203150895605831717183650447551451965835213772007743930886163277663526062519096824956316397076069163472429076790830784561491731474299050081131190672313179578301088688494443815926803658268624627005760791836265106100969096104353264053368063451800572360141067102175606598575181016650201729177095486721047500802107823738662548152536548061349708262025448889330272317791375728930395810838112789723132465223789998259658701542093034334383898971643360162690175764096627137160763150793041862461914052767176870814735213225927194093629228386986468357726721787304786370815240726220357338533737809763227001412110714667914704602078578751243617686693763574068620247856834466413981886221171070919700906544247750617554346113740848993771637979650768093735660616144919455516015077882108963059453398788285501924048182454360847233707642268875517197289920485507847841228528375318783093379823336728690693604116050600644183990070856404479025592067884778727075446728429553557264373319115988811822796187169876039937097011374573565880430744294355431736019270548673352673159832305368903969201109039501394785473410041122304037944426164729163909930486193857046063475415011929523023875727590979969738224229763168109660636807547425584565923555223891963894758023628332352750977173094423191782212676219484635607080463124401167981067651029007198251520126899984019814871868274421359899954961617549133199300245726963343917788543544569540529071555765202240287266943865452681566853461006066548632158224900442138105896132686692462857922777379693360192417402004013646383919142827083706879918956735659004926952268940451557781184623113578525704499271875117036436087551148362899674978964427924168951124572018850085236005937271251764495117303853309466653734993742456396659583073790581398961847630557455446762074312724038248059112417644552317894064239115595714537627413734802564656178561598559525492847247844150356543663656370838392029674211993492735986533193107871913121141482778894044419699712286114315566724186430449179609313457195725636903046964133909335361387254454706468065520852832768056949554462505145225203960134796707393815985397738373263878556135462556727932239955980073765599407886014745317984926564019454817308473857396541272865113901796589189186340723032795918688761605352503979868046822509064294608301471746370638957703964210738980553075204340313411681596447355387924544261580395392448532554619714595698454735394993887771848124443377936539213937820419048004549801838759724955496818326347115221534228743057107696128623454197620771464107949388516362721070913258612324852584156827303000893946771751080640092262562346095168722361672656205810242765487083431485807396001106118720480848375175812195984926978439944110016028078179289595066002232861974505836546792382822837328310183167037400985318538258519096207973391171632178594254895066893907846532591842877387620465394453036446637649623142406096590213426118998524869752272233791055034274093446464155906482610616916467460880044439995443401236769613305621907390093244084126427057256586337182256156696666950768365865338881785839148491326833964517498160465157345369809667130177404243322713115726551297246613173374261288086095327394777033335748965495322938691579011527988218606096361092390358055239724237110523406716772024272159326218384218584174304499078178797022606999211155812593626747422168673639283802119552300514706063161500763072346742894502556677721768313636302972599614586440373900911571916888085113111725946485015860661640325887042616212216549463019203545660201838795593601846251362114738263515031718603959764634681186366549937740194069823290320148869914934043657854723679566211622162045493390341266199271891962520083632484442014526895551619821404038130827926320953783291695585015850706360748111204453310365977536601268612815273419135073083363687342779216843307051615489936256196972109902395035287635812562364748785901723149446304165679464124648037518661675276559011852874567552244776246849819722332204933643367021242694130219612309020542035245143128950041329584815090582788310159699882715132247095171525616781026609031065956170398152745850166650382099287321170390664973329822740727585589198638761506455180597132744243411376946589676095203059056692900572824566767366676809375632331540277544361474959047179888835944563513312643051494800329683336928024021079763008665239142634043664657085277311898771698990251045516742031383631628459552170444667884259309898141730393476533527551854528266067631940658241054350664322721332398860623660996469129786387988140192569038029628193829891569057950198842312140681860472367470712355438350970064394964669179073866638421813170018160616069297138062114925098337402440095988931410237604225335071604230728526095200357660975629859423186288269647334445378782397972837604271273175197754837376575877636152374491326467486134920499936163410197156274710207241854675919558589369603446891021621291262451215795999970500500056505611754796313052298774268728851651784228368253829798879842386857128003292563427467644193737381361661422379219108921479799690865822277360711912256264359760042362673047305936325832284645803021739484759606739472074559546943356560157799116605322044370657177722647799088226999385136360924075128461677356943080120279690357118179161468491433295019002973228534051490857558334264205819533213175283713619830047085462142505193955858255340943550264079737251632008305828170480308128932575564337801407727367119853255448294949997181498967629947225948319722807432575850207620139617439305795216743546325879691026947026150628813772618122874828902685265917321255554704605974952681184672457229153381345949716261847046928986973402810642080291915988387067899033297263517001455829956182928392009303821756395463327338779930732422144428406883837906491421736803114907263719304554344055633826233295998193868380928740698343345281364976668766517950164321716084396172534286797057728870390054781645317844658031659681885277668771329530000256500404959667712273891931533224128181126551802325994448555696935462846730129074115057430003354818012283427266057832760014998362185505583944059003856002251744917262593993607908263115012531689776480461204090841976944220592715367100586089705720005346406712986835040969464241119284630115286294617703446746517640475627372848636765006221361160651943475890251139971979950545707030237508521869787930913088062174772723771852228411259827245174032182179908514990448549470879789073650166067126441011159125810043107762029300847359608582476325945636882129199990963499646513516527143726172703487895803299185060570612146701849803657944625855055598907674981598954399560531979672777763407655853092857723248321944132550644580151067869624549550055451469055437670631905737005524504504249413553116486941904787419721021075396434033832270926994636810311630217511116561200180644343653130161521293194433118628697334526166801748214404732596062903904019352036857496894988711248655834323731005750979022047801891599272759906292566383951543553217362884527307167616344127793252599159367690951909916199731665505411363671885199286373288364660072547485614337755187791283869348992980107352805329199396984579772467634609816796475807827209500969974879606859488184398268773149232620635085549245988778462270290569877768592396649548785557795402012398975786168270199063014373083747767763590094008045428641198549882059506619556664155839791081856111707150530572631003889939668237421276911647231493965787277925242191950953276944767458325485643373004439475549492455945954325129225798818517063752533055383740801388450584309994737850774296539903273992705136104692756729440798681190689806577987002707314381109738732885129216411569536134977590756749720563973783689167401672289281678142031160866125349653301243684022051344822950208213292283196762772657287660947872257789877844678465436138192319476245711068074256714928894336849580806047261967432867178527715010470101835108700154322586441205699748692390373731882641038178114098399426990547828360599533436279086128252534807525881182636005206696636086807075710088662587175441873574199111094977780193591539605373195500351938875553527850979017126135718802447156176429583828846931476838160213271229179809517316451683512976193318958008705688039126407503150497083367682719521434439662100804121065347272168097553751717345004389426540431060662906551095908590708961941333631257819581371082426089397280111346959539574806559552127681142422585525075621631029717655105879062091075350093614645199696939889957004561406740184423476989608361292885092569102022561571411986465427674597644734534967947415689108561667103933702970063978397085108267668186748524089786538605582191243463694117675704604901510232262331440557381850592529990100723441781961516729933904263418111856435821155526483904681366700611432082322898782537399917235235129945621955082035245088867822051582149563337694142178278590152421345532778229302148956063105705156963795867926106413546932228437171438223577113241051259554018171835954701397986316799952895847112189147818432899510769774364661108893026804510024677865730335911016179441826174834351899268347384516688734774913883168438473556417635760963786937326737758242439544832414972808948714196533417898818670372541029225320811612734135417338485087510959731723482131560305917813281807865895848023127453152527803034534209007816862234381547004544408023050153725690243784956502898215278005462630695680680877738341171818000698867519464322085348245254160107011471405183458943637262003273806426811135049727916995437219684412394247290056665815689132868971922480608977024779183065984474149975529513861224369445991399704358057799837429088835736329437959628794133520119243193856040422424849836211293483118895457038323827149674900748041210381022290671384050220292805522701041580998507471842962913511705593328503488235857698875125813162519056176834907030022373581679024872692583019064391487727807521829900388899224912083112137254716497495513301425430512776727228012107325185534934036103254171715029482158936479962866327827762001218938504451957970782795145320903745155030111211989550588152385064619056957023836966948963181148538373816453785176369873578903928967075937414827187095946446490573737768892346597029979600185753878395642221364666846856837028417302864074036557214946182309156934917427134214436858571215920621348359627291148310497323556512281396722372840060828546970209220973204496923067149716709885976554671087439688083386378444461254897793238998116458299386634217569304257806934189955767082121499931272739635224129598268746288684622741262723299883829193001440379108452693811638638707561174160544132182663289857737661308539792945338249059368137658594921788471761365937748560873759283304535622166005368132861351033716430797780902944975880465625693452289392858967885058246313035498429821624375892644149113904342722397958895985631854315238018062900516217866414609900785445127984365655010861299702875500700913540064047128910165894266137394991316906170265471325949049132707458869537417273880543978596562009362494124801797180732473867966221971946460954145998370568707243499162284457994117430184570841272346061720544880181675912730399070497513379202492675322900894858604093583978116554298497474023133596710115652922361139173675402126857796850881844710128662103138519599221521299109785615462729173560741669477657331417307694157792394348541251770891949409077311299185051549126355919230214018852457614213146594291728661019540750670766596945038116074620801309582240133160460212263412342883555932096577893113440758785050359259615513839217000790507192400387276188579507677892895960775112147930030937467389108472279748181612201811730591630692166932718203792318082179629027248785248237546462618989660717704215992409708644397448819452017867990183235318215648753425958981687522361717224715288196056223985376058019968526953003255938154521453924917539273023675583152644211828553610803949872790842548027690276504007886489598157984682310629714762721126201613774594282684968703401655881751007409048293081977035620092881579836149340419206360184162180604190761776628574301413277946883228237246748236203761810297748348151564394954925357350323362995094185581683445599185892922266307742002844202517462677069124127489520649342476398264061091513252366621075607020472308129005227007747834371295293632776598727770657682910842349626579125776347504445788847586483317066282486889229484227531419933761470256776390006525127315206999281234857262293730682637407724468018544222306236807133358703550195258440318997380777020414964124551102952746129404517399058193205671425177213950092442398049677755615528826292252192974085782433630473196189041463005623268920014107001146371219175342397265641567030764624175543167361716502911169507145418972353448191919451327032135672361755637381791895833741077117293652535684955893148180719045901576588945038933191726508502564057988813879448938017615882190430254011424561729632726273248886580479926942462389563740053035036048054614467692675027500244300422643082378806658261831144834665254961828223848799850247473602236442522778758239609425752426154997906278291275123318490029537955384935347369875975048534159293328488544198742234850571743533460143898968754951294810044273084010810270143750952677671793236916903459084743020068014322863206771301415962035916857065656791337727165085012006644470563595404189582304217800358389999548349415289683554076651313750400732966727337865500218158951710988164042099027448253721383127618514218369523959516483338525374513639842859106059681845760780025392560916216187224078087339388832639356083458162434896067248839626736079398405391342841570495124652673449050120659405656509312152321183579487318698364839037526225236018963794820406763350581222238751260059902197029292990895308385266118521297819584473068409875417243635177747388499535036661658180665616714989174113636355929921756594171449249528128815863740980627468322888871136128782388996291095476051225543995027733533885270781425825223410967606961690368318012467440634332479755267602772279627087658970829544352861201533750611794407185283519222142497788863414174446708841142000267521949933993714527319069386491296962577296876517923032102015962652603407176660438055863990854708448527344513658956840382146339245479261466012298257199927208360772778009904129495163755925787975475513420472246857517405496915255182820910622725684366947697013882321868264921841371461918065264456385938549041013472688858590184505429911709545192204230717774140711932247363309967807734496143001158668219747245802671571716804668946752110680942741248351157872990054343893056801239624977852534519342113224312565906752408290973641667299207835256959014686996171105679060173422113408033409228392569543909309195818031601293414095775325618723921239176356172863522592118466124015048578746927610324857262383515091484062305219755500216194795903590728897209987180525538194513188074810151706235647989838798841312064575241772582950281977400871133850216005296562157389897365813417559127109185394573939109280587906422213649571939317455579697884786509721127194498061414999319871930349399263348098612416489349476444600102954494335936328904036183380369365927319180827771769104602889530138848561575151401514846332033328555677880470306283845553972045657548827257767495053448338199340156811083764503055069434996103102792338034192002372616542350061459737156147549511986538408335040125734661303212751190354499044842712134977579973136277630400899235613741517591033574956525227006286134303623897001602997937275015037397681091520695359821587580109581108705112111354528157861720089855432191801792465217572059132889473535745765639370145094243945699333560169952615381179064860584431802053623735318348249026327884643143217472555345075265842699955612530678375093525677535143765971096151869519719785450770104712474337754820298299852249521788145473455621741097582505402263136194693012828313050976207005290755530267051776204294943262454782104049164530251979219993868601303731762184591674618807809525364038649939873140252464931509410314500126144676317963017582218384373805074011780394170912928773541595052424399832887123475030168942607562159702378404429729241920796002901884976319496600097916011735404172237124745560397271773269206682556816325743418704126395704949079868481330139168949151569063646503703954004769490077639854306072932311296202080500702023616192664857052381074886222963302548283183158453060260919119462083330715925724413817752589126334724800010563324053974370913393588101886287231333651385531894302574810872268893835264288833591323151594292288242643874659072914419570260667339293555760157337151466002792877396213471778113195019736209466037821162751912434354615857060262675435361205425374955594793305456246342408101648154315071432501826947708502682154149661465427439104438229863461071185446192554903258525017887904470667895521936506363591989223774066329408922370528080071145064082118922726702644192844495394104692866715220232855223765489941136387548330581656268395901810852873493464858579160792775261180591997147308263286056673491203339690516108764529480278431592825099653331778754007140624886415797236770468993955427716075971046618443930098621520788049583675606823357180306211167689280075419814287858628655293220574202104991292096131707546975745870278592813162481394921061873588187942902602820464607249147784904408636178064790878619038189305519436962438230164834829060413265846482393287911436843107234024724547425783901145317929210970693960712726697730205805568765287446763846217968539225708161751834590294465079376860269164208822688050747785704146606382791475631873180348105424099610598116378695411534298991652269782598067274640214977740919364570247760869283473456162773339548211375924962109949830287985445995832081155776934444690965692436490949930553755128220657106171344841491359899950111490661677662308667817196151501370723539283096237635956721107345246173450466272363820204475934171790966948707182867658114432481439416733203707464337102987447014116527289293098160847464414746263979980293670630517909935093244885078224415717663378911433828351090132198721934629031089689051972405689646364623071126323655831608972245887067229109292213940553614821508750915765766048656406354733347921489953974121199608846426794113369360028928930885228835895097031227814006164575743134162330076591723705182395824010308882738199740239908716298366214254908442547775692156139231661746643119683037462606667484682283335207530209403525621504857273353548226056289444297107463633751107603542107639019678365042424930477620056551085875748393882375258661519563742357605851190095311892305834372762445317045039775645942623905334830516921300623303837054223575231043673946772993983243745722317643165793475418739144909881100774290951379700272289416745207682612758413318047175808624653975524730254994674989955199429758715636881618464678635980642655749092963594805144897784367559361462715389648596444755649998989338503587849117639882747104211515383167303566497642416618117331734643805675077282839112921628966359009747666418156293654325140504475490767870470709258126210785325305525188572014144155050454977541855196693939525082098411849677011859961227486272742644065392761648506148284689667767699265238017529023677779489377746109854749521113370257319388585333177446502749129594446504589134774125766722689534986595725658335174412789213141316320764738302103252186684726048603491770256732753956509153401850914043094598568827560873307994845704005128094326780767095921284064920795879942961852522960502685101636945103069567387962597005688181969313696559924968887987274775519929811110211364462917127452570773946620960083390864739892800587906936975387347620472968697336210559304724331237684649277550838059832150600123239449970025835362045527415234021118279753414685396632005199944920732973243901262458449260644008689389873552759509558798695378986310755751370000983901060510974767260766460456515922783096152045079151888027687013983893893811592881255965792949436634582044215211000380954226513968869666526950455394889310630460262799395783857023202399965317625533359608047265438840851936444105795736875659533300732179763933263337158059024426873273535225795018957131070915220103147072443260614192874573387000940797651963572552315064871463648705240833650859654491148573336782745710461557004908953711496502407189120279575120392042081118316970497793606782407650678583954498454399629171826705831697227900505988053217844429365836168628035425869934650621846334120451837393160441596876373010949161672880232140601811975689723671840910953775978195025669914491451036898006921153828429353938657649531076965453854436390748266132957400490727981871756328499601970617549041814143516586308661666491706663920940481592104315532954061896304952460465333258949329244335429378034173965653141126819495475315445291975758021890315220683170695053185246709061757378519239187704352613824377833783264178027401886295399019084925690531221188672020582870607299154340564681820994648607701967283150732954324179202983943428515762880237096676920699344282354368494163840104606274418866834174530203893707884234692526028163294107422536810622083265670631017839437600423340982723869614951711716399463120671634126610085946969317198447394237188801114895269959917380090110067422495038520119634492770310408763647093040663670111510238978344574494206371243502019023745495205175499874157884218100236686902388647007714630318515323344071961556997029545867299382736402828022239433191047532366205133560766690079708897814081370621467223792061236267308103033683373385603139584629469310841694361599785043500202403378665405987331015374329047384845214883713582389487575286094818544252447054357304766216569580474787066308394268164002832576917773112503561077894390071573874728195125212251825462523024405972899420911831979366615403470806889604629170530055056967651111993914000581906683642405930740464153162795656942811643744536643948806040268735163564822905607244584986002921156826628587044807913290588654920948624366469402124846673165753723963883385619957954067675780099718376705137433094238818775057136238335703181297177611600625790631576639864220474633041244799454013011952057175625581432117505281920923523819993293191292142409104412672462214621713724599741237231023564541780160100815884672967060687746070890235891699246813515561085783482553261871211495892413619436203446695291082608071518635855597834527194631641553326742532423916518723491056193129944576030831378245912261031000118457378106274507767031394039648461054250056256627836991284533091417644674362833465075889810848776288871027128565286978151332117118806367739505029628050515554171902898920047131081786011907897772825121033365178649754651319634505898051148754921280638673061054790184192041845738277985658364808689423424299652044563254363300034781300789138555187136680508950664930286904926922851724013503741896381566071769993360632909334708568934869408959206777658632387995932589473629479845252342212962442128112960905324210498040225859564642306227781965276117852150665646140877041938399401265909258516611663036888441478719996586743703325852413170081273847641831670515661069758629180828673998649194178830654689847223500761921242405329630292553858865602456671944964982761069936405841081868759660865400381793181016213780528962619373629572509380564235646949280356798407072943183561895992215549795225157852737079609679124061168196037221766936249960775856434329798908775434517145816090692484789224228481316290057615831812285431645913480581699701220568556239679626931758173466477903362500626139405399914853218429919012804928452794626610256949323140445689318597191110080030865876789983334465975745108039781463431639868474714098743168742365871713969598951669915505354874871786816222838985159528044215214230341406230865353541336666058692045847456082613005416211483812289246748118137175382385869929719026238600797950810591314728526407482031105385302434935958774650955078798010582704667657683409335303456900445677743114997155330723107175577936937816292585572405945739577833519276105798567572422506231252251134283856387849856595607858834251508881149641446441569573434818526704555479767712085552718247826294006181313192661667797575227843616308070654126843393760034965304859545646569985652176376255100048718860464788584006140002134791363004285854422711067939621805773935814614766382839990216583967857853880720888578039208974680041162957729248245470089575148061558659131632294721532942061001252672131765211188521512660473659584579844220418239692814586828886315326520563221439313959559334834205278804344624880629997170818679238433019115426162247742258204973437154894170038229418550626552203527617369337956464953397332983911564963874654749590025284132449836598871518368397245509715690959035743200930891312810325570649890426270117837160969423676780031171106930675438722535483237348825086398271695470380089052641001951606847279369259191930264045729009198776559166892750062700428627944389938505765135117101024018474259676728620630312063171860211673555125721170577882526850922050183698636442881451114819516934115674451979140226385527608744901616796515621562890094512873935414141010419122251543357147072634212564987109246014910373018895956686413818303430163573991067548292163207879151445539769852770077335823165832585115673350237992725601428051235025888960222233751880452884411338837501575334872809034298041802473493571965980372851601830518755286689568108985667161585712353102735155192974318947625870021623858377300054608274377714224319412916474334236171413231010921276050176048607715621616181449468775102167274950454779804426717983829317191443847079956730099964326277677997962424372859803758772622419332355376947355473365585613953344542756834076304377388286177239198941013406544166167660135110376745811596881744801525785752826563908268013852114552769059810298631088634623060119527669101921184155001087766547452788097232500835078824232830225747006952149013655281278743292304861326759537842193688863895837346678486384736757350573402235333594834949465491753658123217787637522152752778255870056981639180631756950723232045993633774174508978204729117807409931195809015705496836179130744540834326366212457796454610018629260347673182181322116243157428621614451630807323924320368612319548320334110178480787726764332200904385690601087800842373437494874995094401936577201456850338955886506562160121184080542038395851238570728678380318273493867466610151089622544212495221666007510439969530130721140196759114993738536893939133740410671545852866340209685075216061817080404189010281521734627709656525131295217005407792749227991769840351913641906755383278626093821001233057989525029392243234965925561946316680054771380262775413362104408998560051310132437940117684021001573751381068397568001957759335950195287949042541428612696524831834705475644297297158650841995540997658426967544677764002424583170389984498809647067857200540215034266785262113670620034367240239748987224429621331341826493156408050987644992368179622484791914725764345228555848489546635683456988327375109106468123474694163251551934386394266470659227332031001362526044039891336316509375766597046840639899395540766701681742123982435954204835129241818634552042610215030149791192313698008037403883992457177204325014397172321573459151791786926997966119107829482971878277170601368011061400785209522976916599655255063225574612942674859653405678539058060877318935801577595701213178409839842834009403325439798626211850529167564689337762800961667975089782524076198793842087183106482107849800236110653373467422243996988516192070090135416992336133505125143760783977792366745611489697619727552208199360955487257954372377453169525812869711207743097145403082645075300230927308207651641843611060201542655811380625862038046097045604279845230454877765523149861066356545378156534681000163170982641588462111442946687588742076254891702133547855402318033059112453071217159326226546631973275258784716426953593668000672251713727965465741295642723909410054584236062978176707944777826242659950454690571408758286424535800686831446093597274744968478899255771334515289085737707207290216241026859436548416648207212616202276886751187852807666306958616734338355503835262017523647630112114533004398010436396329209783336048983023264688562528001000612797807333964685023855401012002653547392210754004996807988119229087499467662277412767489605565611273967789719453895642578639048331582633320921240518999145779324704083514585584660557409899289723433150009426029789399273366233041212496895411874986232944438367194493325215950079168374199149234154603748264101338018698652106955554095866631964961753102505425420392167475198664556896722697874725177131068793260832877588658033055848692665449465294056345821921084471742227138147884215514910142090042448736579062620265727982329011055406044961600360084831526245474795987280555655568117719031740312028191544682359824204849957325965552819628029163589152685351818644624903672006620147276345506361691383018714744527038099288404160942845763079393138278600755169723935827066125479984724393002484638426954190147089201024347914159278472092292762064820046307907141574809335991829848503139749598003930592774666389757568500220219245986524999166024749020236692318771159986519123803549800043252533602191319058530343285445581614059709756464993087174360604975702816439540180894205336549597440417110225972855423765129386343693243239441272988418447376729583771271157769414496951035816434660571432248039338820296425827947364320898742973498551838897833589229344027850077964648253156358405010592013288207181073942608268937225508326357348716063419974542884044345419567011197602780729783601418065735946295293748804557056386608781157486682323542013962391891909619387655588017803875028301529832080479839018303034610703956693488617043527981327695012602792277820695937757973658204289514633713096374330839056551577158240768532893852128276810223018864146203050500197444115021592802687363973153397891876479028176388848832254957049114963778936559978455460064203683306045772915042311353853099171347187760372046669654359693796398344974177895749523218632680170227187555224240396140879298541908744391716669383469976702535596123101826672953041731699008732581793828720091262972414254864771405476388371907342066923166629502676446521119468787325821919356995536960587006279275267635799759529814026442592260394978595123339447564456032581852184427963721805948860142231325745139774673998889595809639930878827547326365868885057300883457028380541426988292939905096189379116821569997843344022380840548671435694453074305031440784915411416964835691439309050192292719487796157656610266852535506725861286266993672347663922539011710306565978532307947082216856544741793644449004633677514851756849172040642869250480963801117892648460576731150672493439572647643685861825182369354107594168627958180305786273601231013709046775946733606503667930702520249553947028991140963474676637002724677177473549990701339185440313518695560615160452537230801808991163630746925806987347714169589986069096972006966504567906368573347907291083604588616148807701197956265397168225696545396710323876199108670531649583310559544670003531312566725101051863980274470045208758533365376894686173173341140084683615154628914980944977486539882175236334523926062435812038747549335574550543263654189795644042703262057046671073178080799517043656908659839895634699266995224293882988667108547304009105842867725290594962830608921141692765705134237464906789966074848045266904067433219668202312561495473085519604343167802657996239651489050215144339423106523539872007317636910130445519809080964628413203504248498580304225317006744405748128439033357519133277789794383709167567236952631562517414438068577341279389294696994685160032885863133286763282289224555370721167840355541093078485044946527007149035638926542535980076771734368099716900011205171591277134713423030763086574608817872559634028799538879843309299186115431593214344750185510967570644564703977300547634553346774979781556271283686995290134857437171908434465743777112916338979239736426915425854902696514156876504635022234661426593542722995212895970241219945246612877689440575598585941647294083522556698786878598803797941435518934372449027220974020044432957708689437619821043525456401373299814433741062691069069595042801117028285888130488033517561465809928372597432173672286980628962041633684682704144713317682698781529229410385628330080630351345035347360337388750605504441525403659926013901012464491681697634256412214795463468878690320578388599053400928276712718672633884000142049004680911762863956033595143886974119330757566731192374864025434063975349085116406979970356330504674789873759809572241119541326706533674025744793697911126209874021076194287252960259707658720502998928099468971549705203717462845814430454016826702129570521675571097710292274194791270229662416679267825386289645923022187468227779703110055468652297571685463150582881889595814850139151740561953743472911781955386258709358086028425229316963301553214926642163837948981888773896940954376026878792647168329125072176849425058039003135194722567101634387712802131272547649294065346993843655729257426178186817289329695754498988088117923809136199297170788791538075615102071375289533162746630695801066549637899543555305115903531058264586981112180668260545534669038989813268475527097372149540350098730858677600006351043676140817037693496140575649256913070121992078155269735100624697230124189278706138228260534680082078699645988050818019674264872086025681214952992813565070611269307956144890377846555989827790040360767618969021058757559128809835632897055402613714288922762785290673505540666814391662137326241644960330166048336105030589550285423655655675209794203129382019272776775761283520958186893828344083926089132101449820766602258289343170971733084584953603919083516672427461745677918195605918939621351201012692102998148348589338336015136459314427435378312109433108051025711661564483242621497800661097246078438032479393565650202182692640075624938551252365641010238012520736145226210443384884808265312201262607920064550930835840805339050052531591067181512646277225241716634458808922827860051923369504123622816474588968867915585941104362047459195743979535248007601060897604281077039001167312234062799447814833907027116027809892204569422093239264840259628315945473014653127149607485357371220129735546551382087074077870766339535200340768503368355131855779330512870643669164968936346389115118235005156439885348448896170198477319759715972455845848116261841964649385303988317001091451940660420533198148621648954733916092065533489472142322019497979284766008496828129055288181765497644787983454089606922366822314336097543628869330255117368495803870058823193993713216415533401747694225303965402303434039832234210812224436314072083601591631785536347054457830253816203472184820592064175097684068913275663107928404483857547992422193921279117701240992349743889135582361651077180314828538198989632108707376091062298963918879182357804345604021322142989141883869259881520316703564269884543448573728225483398728920392442720044785385018643103165133584404497476293954496783319736069800848620832123038852482615738901801766811398816549018592915783485682435734424062305112867737713854288132468105583304712473079623663224988071696067235059139356335714099801424945140243507416811044376473717532568962837281902593684336206448828653109508374085698182102667276813573853530772483490333119160036722509053124278729949316372423275767561753367646097555837506334216164658210432988020248780822244900482287037394762499375224271427799358929138295970682251448880496391905853019580959230588557551620136068451955443781875620705571878931660482094860009992381329162440462231327310771777685294740378920904684362854417587865248410754575678709649547721417972030068041356305529382663191639284543039054263667787770800216031310149319878320963755081644967551728844200267145319093877231823980716054701058732970296896610568334435481341387534881066480781470226631101022572354021107175445256507622161890263168553165434781227711215260427488195813276207038873256505504857589544082277140760598230955066304076672227104029281864979611727898201768810768944495353730668581993096668012556050963411993892067377758765176207774783715055205300920931437952114277705595829295661852808556492821814031375818972818831372021698519905407328532284657940107831966904597050538340453204275671828136096736805818166547240346000570679867694293436150433114949286769089540716052711931231298594682452046850520592865122958540273365223152108137006671561902388320015933545841136323073510800820198089365624609594113318671649213224790088190212857386058714975993787757464065718574637532199729797820143831153269111375019663421842585619879888305311741402241285976466485162204395771206807132325310244399953497727758073683517606474447614640955049006192658912709871111486551139699625315581841543908354257305455749428286302723707021770213196606363740437275230338010028363714241013643416598384667057558562933060295622059893008514940493222311761738290246624672435169861941340433416667212609249998147494348349000622273299966020545273487739004960784096572486400034057232671966196545770388852526165876449034837533639379276524887868949251336282963166349180869902473274824185690808694546232422249668804277499175488590131984391644050778474912165948446386985363486524053258447265375891599760297935899085106478962339026974240883032357039892846968056273701820002150368964515794043592051520273068068073989152819408124499214378851024234185299004154213801876820326239272782428736367252222620391033897749964883925926921555527914700180128238478006182304406106161871691407132131952870240042446302110779613717571697679626231916770312258721613007660321196212377356735562299788008311145346045783346402396411568322069097494485837181575215311831664552343974269192122160424412524754508100099694168990909351416234717829802149593500076353380590023005849224110443406710667667067042776547688953692137026009238279449910164541912809830525040857776115510743842155437666122135116829652041456683800217690247083811718407609240478923687703261292169873752107942044099424581141066445329901539646049610672947358830164396007938559284030254650796137753484408510820211659913710691086752514897321413752468006581815992333408248011308195023299289844768861726976359783803196392159133315825137848313412245287930589619721409087461821812930191036807772685821967041245683807541726290075344236317068070592813618586507034792720746580017162051039681355082341238524719999808886241046808173647506844245190075508232568283192119063560511910281236764901013064542580080291911333980142854961786069653883566904325695107504579088938413156200762911926460939512702005692831360889448493203930974119837675777200244031158531967616299539272400689740161653357653920663596852952258223996580412264783733436944514055293196554032288699623889111897572756257023434075597858181940210445472487334414403495689368772799845056135868792887589178425126180366454290661127997083076696599705345466408144539880467703133897662868947223528291393665171722758225433557848979325853959582494394827774318493792261069500261967425784604471415305414157188778045441559151584295626116539596765601129143561230350640517182775210548252706198170745873904971179649646989222410825108094087914755716087902890776820522756159135069290888061049842834340596247306788580034837874208471279517709847649361456193570955042379804251625007351023113909886336481177860439888358691466659412484981561642427488446381791564516604326646646738967224636597709861884604919089580132506994964919742737865585882187122073438848191175939039201034538023202881690294481994125774568187268133613086927994001375564629718210609455281393318978517778207949776841299489413860593245604162199172535150612999817497435170612928838451166816955775321910518894468282148538162553839414772120548226307429421923664115394711770715200598032950100056164186717583820132268666331284919876526362993839139205121691999635129794797798217827889531457715773589354007952514234029528928699615727380565137181007803768596019051157685673869502650705828161804552265164198324794379825184323633622141489791933435133333287535562624000145797232462309799788143746915112719831756835858785939046966472811847014174235676825668741982707858557859762374801289692460489038647557799005483469307478317408912229725026344797132718666299857578496311771427832724628283442694064522405285799857060508520372825561449322516815236143786498746931156854911792073434319985942278562100592030272887623883717409413085650713571452484347872406917733900006959735103338956348087251521032243180255217531109776397083451939850527857850118435468708928806830148764146508471676961812677733378127248318130366552720346884982607658246280962584072296452113675294393682264047201300811311973010126979479406952890132859661151420302755021631646844694760047350377792461923546241375727489610314993916573072028680042293085311809388201482789093749052234728694137838243219669142983162715814177649570161776807969149692614520803667930356898802472072035417881540936426878449742914301484113732197120828646660131470254354108446353630515709760484089454209568782408001120468318232555366280325972288508880793802722634968335713362018514506969083222802253938204621080585139396004740476273236801995035854590598958026062610897321717845172238693683858984175964726172883350264964713380174458066631733940335532591004025399680905622062580007851762403985459396643530951592821278551677989989233256964896883462530476357532989722878890270095986477898507049322195978045915361722218068519513757865351794106200089452944934362761380558542137319517297133440729422940007922449845710924372996201584026757802994591118712586221568884595519847001563131695902230572944775526042876656647324959100431743291688112725104918502868241989521618684414516908143032835096618229290162846497844378991644292164902173626283703395682885250154961955221563139776071906061332654959263257339306502437193458633547789261082982404007066940914748338937419831637329806513212940427078925456996582870593261698428799114659255268776798850550328782580116196828417859384410008112844598681399889611455176728392903747956138897389708426044672340921039322144826340916765841519446004720976535398015849961499832659102236760504025811114280452459316899011215613943313057617988629074566715541738067914818677592063697584290107168390325734625156629203926479735706917154689853097325231977141181196130615337305674352801646653126193367836981569782796093913123201100601251058941071483151537990102968641061024216023121785953311276533251394441827254507561134406186244801297447315634728146498381067659078714761122775832093335545865811163003750575341405226562862305961226569456212051721823629574393292241358499111326912366961455125492473580152987091310669616182904406808332152923356382856002228025675677012426689881251324799044657355286676362204885402324317279258697891017952970446155270130343721411982782720039486067506660499329852647321031142607192992781728782535419074017496987388419212019565538313897126137731059458696570232118350087137434810846790737667030194447303250420831741768252433945650258985727528394749703223668784527956823796830169650678779183315161351062058315332892981842862924595364867154752559945457201298244462819493759192020881832835986520288175914567191889113608629492347477642807335813541538936516719179319715322445964851357806765922192276876528552816687838165994247999000401713707089529209329708849511254115646438410689123169204728993306340651553584980146900158173956239266329782386257152035012681269014204961064389224463421824750254605207302377651235995822163871579405964179838131594616971333810405032796182221626888554821641518590266233445844525705030389407810848107717537327598622012241307690222578140945037705582750326516147578981513595825253374200387706706943620574187520847808153104584906682898700009073040807488850127093706702113032020768446068533628965649792446732033273408967408901838648825619366919136297980289910257016337395681867922324363909996955043170964235212593328427749140682410394684933464067297441211801220763238057005828542719285071486413849466725874455453801210258828028323791374340154781239360340449057918732519937178566854755333490400377696072233675547204435133513807800807911129300488800907000082527412738522173253705404865083270081954829854407324728228272677029654130503694998871744396329905152216321892204149317200510331642049517197924781539826827035340124320765839338698964946375922919691966190311368710495038928126142165878330550187516645371787900679671913987257967423758396292421627145190185180622542039535714546977695496803015701099059136783873685499239944798955919364843588001436568272477998457670751162172254656019716212584532431141602467722516900687235684161942713050237065036707104373138933966126374856337726905719987096675237062882556929428674760845697299287900764239203373714289585645348493639687686765238502109836003873107898950002032880588960006842645919692867855921500830211007600856878665312597339408877716577384195149713671225487132000846938014982781968177283438448382905519430045345480856386778869002625715095128086729736678139613326239078898703176618608054389456628633483461696337530811658402413865006295298916939422316342987531198996205727263358467876305045706932550040374987741234834478964716135721176472245149618186969457498780141193724573857259619188323850336145919980024146670009780671137748437593769799631416421566712619106827088004648685188587032488219178965639208915509870151103277942269475193521914727570954811966323926146691298963623620244069687866175571378691484861843467477368706638031912472565732717810565530845314708838888854657998315174440013970761745539038866472480330308305049856683224724692213674744017092838381106205519925060058381581151019964593088487373201367971794941841756219198339125718709415294521418093577071538058771475622168984492648875536687751175738670857596539307191091163264150906529284428127084676446571191532835475899730490101898442018825593902597474254742820759004334264667357289579498093115420594535991530581036771247128281897075506624767830938611346759257954023160653804721007480382725850231565938922323616019271851120042245944397410639934543109687373607711397371354463206731149086093251035683595746560680922472928192768827474250135286492332180894237679595465414210627397487548630286089275934862061122984258953765526137995172383094236936408124235846361554828442154878403168867974895954673981417034418254740853525705788927652530553874293466355861277477958307603937164405303609960397903755366718688663595148280286860319530917533042826494402787134836677147137324922463683194060193935383699192145683074994712840877957887137346241370800298235563223256869613112122590989247718208140361325672933185029573499149845831458665162283346892299339783010096631605347532759111656239392622913170744104527484410049801346827311190574091654956115276192133052836332562985990322803580635779104181706693250808462111801173730848708867432187424971067333069352847879305474476003692424467227333065083718755061583160629685468784474343991906040874604319604257167832281643042939328340668261237155657822893931087019056095353508437679192109039607315549614733498454472195710785301878287046106542808581073774500697340545574506368931871557042271003449119257969112873495107582035082450715490783581985420738060429402805368733479886750854643915602279168885075718863035094114974603671722272079354993639168745653577045443295436234485640996676718253404103529195554396439940964550728981154345900759780281647091404063697445165436342126926998504388908911124830107902778414408751419524593215854228099896841232103173018697648530020846474021206349296711237957293147759756405635653666998521403221748744410373427928827612899515231144438650892732708951781070167541649688332904854651059748060216055912525881165921855629638457589106878645466036674609160269264792767422498299350788090729405912832599643751779888117182721083505512904779500573845692634711127090240415998990085504878327271885838660202430919737824581827859697891950765671189664731263328993792722578240691566565554881541462384902145745369151941322646786433558612895154295756500356290303624068238868271067346785446028963388947596516674140579842363724123948448881055639539791561142776556029634808665737277077159197451806814664694685146079495756601170016274115913139548149371471510951232492761136260716520107126880375664512892453686588860779260511954697011836049426148094573550565083431771620331049183435283735898742630905265270952115896223210336460303371882659070042618331107527844085644065912864001998848244603910770403841975045326905530814409921841413495177469634910649603056988486942214881163357760318801196388593792711892253607157865106614620952698744354466331220035543646371952299783474482516513724711227125080548057100058427271855821265230244796568742157368175582707547908377973127129550368864000113030633634417558475453382093874668169767077554148124699287601748265329700285326177392615207720333218762212356867469907830844658427038277938646073737470886702525437725016548271851546163384493306499494663221724101963150471323554316572337943814323039729169269915339716485405103027596699396076456807690455319722669374020232654411602843835271698587125848575823184753167084373751435240420597547533742709783862517996916505905929486485339241801422709349594435369917341138950725543432512272000227975377704619605561463628725633409487893989348138851823444174747043082361155007599307324488414979671334070520188075352295424006380745359660142671137017439550323706208083824812417690737063928181315134297373755906033171441468702717026859768030621124430767413248014906732563123740394039706537006185856547249238311428783604642829224435194530112073747099346551599962931602101984083501669133483157212459259896945413863721811029491691997140450154554718039763771521147453451929669170719082440178086201926558843527650363689549502418166606923936111951563995089210487887551839732164777347636095866295746532288779680601326856199943419094884297986881391882262039929840720085397448563960016568517419641026546752714635283545277950842044300030661749899632091579740018744439281708789810764847957235979414929323015586194172200689890559218952780443554827604908575080318224700702914819276074911321637458447293331874313667347352907762541249294292940580230528172725920745812693123797491259031127949262504048761424338578765273734025579911003132078348228476739466106955318427114423995642294113012313177863870940044117241270522448306608596426823954951706584855078770362148965990388526360863627139683460326918208988558688582982691656118368370680411957002947042320257643301555891084921318950382793783421597535474007357571793479026355898799958445092241916662250124474135106007185604273617646516199842153196621659177777293795497492249692323379477931862235201047025239323300322868199503341876184937128687715651645065355130665465633185991069090646068271668242953296729724997373306866840447940415073942875681033863978253011319745392406657952457950866283662691859677404866459506906651191863755463722989547048931580227389969488482871728273203265977376337594422232348099857707092919145759463116163024577744410953073401403296751314124731061014763266337382791394569228648293563800925838633490642949929505982191679225025452812447156605463726560547325852258867894022853385426606784857138619339334662717155468836386489442667270142026298268043987722803792526926614159684693294997314041179265178390355557335800350983132188261041639420068969949394191729716611031407544873503242782330574470466791144587133623975320185105348866118533544292893151467270544882878126903186608456034678664860476855404065549777611941365766547396829374125461257497233810871389443788321932114138345843978837914062282906075635587003963145528967322974598961518471685666256566230168498955081864273218431687053432445906080899671416912612356941052638229584933195030402394507872079080078965736675772534160624235827940309452885735830224730109815085584531863744460572653356502469642437399823134708184252027486783861952171832048604301837417524593902365643662568114450983896257896360530570959476157441548489895153736818882179920879241283799572684071726512656236206106628223203398656787121145374860037120868500634446266880251378076667250926741644055833780002046114227452998589578659007768328252248735587283991336630747417356081768807315317282577276986545190977967408187803741620463873871385644087670101129684598143120599386561519020709473205609202948986272722958576506770040534797627859207151051691677943236401495547029004401180473426910843295508649565053978183188834599431002708955479165541110419903932359380214321990705789154777040293123277097420796253637522791395402752711533180395010321943749025461230677591061155572739516068855925264753112423231066245481265230376263268217596239562011675212898162632105281658258251443451868130507465823957506218356823840685881313149051867903594065423294574014156467083885648564860887497930370668082060680092461711762118381019617334689076800866698205274859352487043408574930465336189556495577178959825416494081630065629337535685255728418938543915037663499598512636213368977269491074844343437743676013723159145397872068789308455707286718452777158810555564255869766934029868251155357028541899229149526395506321264119172094188610792581062569053114693796290478211954406597919210427481615395998009764542457935778484145750359222898316962469108680587449003600632230545477171385498735284766281788303165977860271584476784532938819497512114359591195462127770552942754968339803885472475150105327418051349776710567932969727595382427658678011217579469935083382885981468512862683891206514867555281997255398150231547853737934369475417626908869511514674329886285424869211992260357558138356933889718688956594583957202130154213177746511140272310876911645209741197002956038722924437259930500075039862795671986384882586385421797417931185315201037985086775730806379796938018790292871295908456099373810673629868588798507893806887758272910956946102209271350299591932867211301834904955264015896750749901158608260901586686403833844822506816588501102769938341176665594701434016182603105980762493426481293393007005548080661606479272178001905004874942241705585436559387967862583812871290021386712644565771842776286753298475444130964130556366707561392313348081341274952662271660961881009053236251565735710464605008633973598774545137799056542285909605678496768844741730117557235150206274841479654970871633891202521587708205690588073612875213914265620143826662891549339098536122426419552501552580608133239778419616776126750251550316002478245234931099597797975415688565518175998607583827008355313940763871192680241551016099154202063586251662105062269414162535004279623951338553503002218272537109852272626351048875386117228017113811349201485188811759345990654190810499535340358067153569181908587403995258043923854863621302338670295826836852908883731252083357741744335348031512262469983284430665956866716776895338970948112516688770887651111391099401130376207521306816112226230614024559864503225462531761814102204928950039162759342624195577995610628422784043586356544895309555708005918748051101786740644078348147318742251861862003166768782643063977925309340638914037682067493108732080311134524786880091627653275433086537630638240196896401876528239512408036370101074100642785476379344590514354571193168629465897397973351373519620402674934585078252898587197706015901090325819269531986063332529253657594891218913003000323295678331681748697202854624863290729302786297390936180712787350125562304498397975347585356047958393168351310002767424320940126592464122026903073915346203518924289331067366563785253780017523465882354015206528618950462848028476521427488697179793340258202484058883145248130791625457343208345421545656163135576144749617209923118769268939811681189503303443789447513508299364040572968253960303580587829122365363776122362936034060263434450111834340336842277455802651659715698972788205263962037968579956363063418605162575558990454999415409027301200671863705022672902118619865674442698302730801944925151822849281402338835548047837988617536886287411092530833710654219171660875708744967858011704305856254485569852048695570291190048323094873594163170186790474379468084034046728303489885718251860282952490391700298257505682584204127091880019108544770603816916958113188960492669039940163317709780609346562735131242534586428375684423025516059774334117806863614084203687468217148801398359204643970058644864006262792389112426415804081565717204091240349734663558785933721557239564515987975624715061882847558794514209902733638188218300187554925867458630870982496996580590114646012280995411728449582699447474539323626002498205856117025971225261458083567787335341716263336532291682062503287605727881019925789812540942592063469476454224935013935110261773639367637914926686141349207081676706981899961716291468967502374429942413526033862132163746996226771404920830157673505051943938940142379612121438974038995955555877501151231716148784252594168644613794976923508396159356691923299168102336287702555863219920928496599150584635790112632020803303032633959777197128141038015263349982631176225775586386767437543251404509036989753460172940929013532932970258908226467882468679911319963662801098854997976059973563892250218983194357402729571254926946470099266457111074843570547980400358180806360701904400627603543976681259478858848533227454370081355430872632885412644847315953172300926574840173857542481088780312424715337482289861690492055079841004890497440675067059902596000320138636636240576079228004022445088171170374528834837376276043819288395573888786842383701011152626554773525923280998827562023377573364780815372856719983249959814193030413422340993098826311393052136064135992392031415991749390150657342489189200919026026943701640957491052153936680514260284513338846751500958464475772918619036928916837555548985399108661273937962051987435899951051093369591195198554337633720701993471871180321514121823401980040485565999745293641627289812970441230770012268919027384531198925161646902236786135142454454927115935593650036549142157562958881220219786443561054632422100738057678095794406267522880027736093275997540762581344353818567924668480781480707229078763484844629715489485879560109892272720590592178121202165658774855161983480901781591135612716490566337050230613301893551809629547644734464588631888458034323474577083939700168334657053438126146591627958957060553504349771707313333162884778747215240728085164470876687679931188004804210176564877241524493027976152597245715437054040292759995028526642035681475514132134051003040955939299280717947536249240438803747158297887560362728656569197215428516542635400922570368805357285765070102726872695505998096458887430976871131227501341912549004572199752991210541105603517496788696796610730355345898689721666453810127462215240038295303738757643688152901536459946624679268605027893669535014332887339016036896076761951174466589659236746045827122447073203067201265185733202462996335500088266557450040048430006603516224789219773359942672673260635468446456213134507732678603582329066338867451814719486361656324628574858883127040420659205323838088034490477738881887342746660423621429811998137080455535120249153733727791612010242962684933590449495711519009811008058884704657040984217176552639753271053554238463847392703188951292845279037065529276590965136764567625517711409030786440201482120708913075698160381871380473974228883905840091072487670469725779583837259130116615175299855019730471330490837974034545772743684655718316730927738478863685231309978384719652980740265877678958213070733576971393991665777905881997692545122441582240057776848973723309702539300655895900995948199853056310719207365447804825287569578135210226913874588183536064858722565745880832697133983658128701798662590500480447386444939695908184453564199695425653318485367003275860525082684822820070450869446935333733659364307667922977898231410224948474891963223025981487330409567003971612130576248864089059589188353490861295433956874890438155044489637732351910389188003089536004786356696593102895274608779228055892753971636384599728975934887178794080328657191086412403921921380184208839392719117585799998590008663399364663062936355393001723264451379768407827451163374735792447869259862939494100249704828723619005680757796324969653156454115793845621989558919734592553415285458058431972651713605019765582834304687704757580827160398407712901718628101546953518362393189826440572217030699049061336437075349452394226034204317320089839972997377025747880936598102722630427181649270019868005670983389867589839670587497553508905278042451032644838824022114846886503818172391993580471252607002673663628036081978606806268190308848863953714058124628787856440766609576333393467772941194287683228915817345778229201248926341362926217019544810688921082542698722907155845517328618551091585223798740106881816124875491299120988402546426258255264825958370862398982949395537879588326664602098937286907345407510143271391150174965211803652659837250417809908696140314414551945322888394907318210933498626820255081626450185836538172506625273603476685231317179665670440009260569725457182115554300229667534014176480257332735253648499814309082629621417769925137774292010140726542251164254403888969890701637713470684709833332442128395853696700188264278047697508014912108107185180261017850697142216504688921848783958052053174062252501382545877690889863540864479526413574094584170030025603722649477955257024999367824063477858327129553641609178556144175839730611256235566815464895886117957489585747201898631806829668740056395273459438445244244979440846507967849910063440037409698983666934645545528165269139854071186142694536058234570265971247789512538736483712135039975007991846117421860768008657212943314876916204011175026955027743559423719772346235137434189607879182468600207194409776667603343096432637011112077607961689049694345483080977486062835084294039749946547835751664593396494196806201932542210468015793894473848692682163899964194055801095631427903689134980464075854451559897273005893901455587188779060782147512222176526322307561236262704231449685107284550106469793832828770140420928040496798024578701090093199697770024524894201216139553265017498844372617684120046541426371457292476990900174314768951770325044304970517853243751262400980197160508378210270145103869331193075934412421541559347626705639731875067416900026338278163364656578221182106743695862838573196502722342179541179944043717230353568053544494246614243625309054970821984636558940639039891123192077398097286479841139898062393623362509165652903306106381902037489240442862204503244585277182055421249186849602463230848318023783520366380936407789668657604908567899934837538506722514073135957375953291372800654354517919151462924807978032701103545603736420652026730588505651615199961797196851240684450773987541292211170841542411708040338623642165057235222158810698937213675224586435712678307057971909480505495933650114707494926249099030687709021689419478566742735318761382863058785936644596465278657739558002369890103919680310555586906499605592019459369688743981365612794896878090176786459647949114303897467913058076659865775166651260916370857471746018104489758320402518311865407222141921521935682395413099196818811610497448285202103967620611194977220700474797594598472900787276942579305104429246754004716521038538157694522250573725807042001904305138361487002578579263848980905185723812939712974490505777910298543788254380065394583924541586095224414671108619736684715486428981188940082427790950755401387071933675727034714186464989822243071725307053784624802590581036148586618166685166087921709788745442037021333181099163680604268344278644707936480959363031446828486019034779087458102320401450487860427525747124615914036448873969484814712235148116151756726664509251856362423682498563862946048693400501358168251606260011276980015687125680171238083981529823595427576945804539362851587440562104015193419499279222687217951440366439117660253028528434698122528444480739579751448980929839548427937591944941880121262121898175888505175136916272776729361771549740752474997900694023128172981557684861243610592617954664654533386384932327696518983750708218970341405410869723180088590985858786617321839918091301457181831681397600388652027902113138574023700633723703998117279686012648250923957021156441330402080786600082253129501407867339826126689646945642937045971502148918195595803712561386248721106048891872924661295811256738313142049973035200327241957739207633434344342042335235228528147606848800866696344538351197386740665017492107191724378272079950100841963753450498234470255941792481356061013084347597470153784521316232548543208444283356094643626475531081177447467176557790598934153003278211991544835821307151703146922797809426057423665433883731682151911840230410120660524973112961624618993847254262881451622024423147039805679047879647437795964128356731591450825060131951955040054198757409571814835702234498866764743735937336244835120638177072100658375874824585106078190491079068251186860817802008877708050093548171821765065751004476142503232224653314792907638954496934857939436750327251383818248005473504186841767214326597413610645682209310465673207067413826931118843419423144995818127880096893200040267692246395837098970992821027679110537281573396211114863451082823301094548077810340790374792750529695315477477309003305850049240072762473983868415300552951635081725710366460877760031273739893691787280298467092465955640037474197614161459751508841635084079645038563053846482787272119948310670105829223856226294310001409085857242414047708790168660696321118689224823137760993678384840288267288509453814634092785681714964836408246299467669726268539383922697482776486749901117007802980581002874586331516498358727804002889718879673879869851459912203051026992337006257148093482793602148818610568899502950464586603256600149062460826730673591808254566068473021321912313720590294466101160154850924937486864635052520367738774119169518339996468197454532484731297722938780224300966051307229151449281668996007626845747513746076615705310021754674824874355625736560179005230133819972695984253763728185058230102729681897071445184053166580405998992006441042357371796099084096282730173806614905767966741472863461873596143012507656314622198481599109554091301318049006729464414054668549267718434504641736082088889019349967180319556878835792983509223814841691910225860027815494615685879737378695683878552734674479099976820735477685009804920469237228041746060634425309761988609147346393824730740667918510573098534041579078076031068889863112082883105054770808063833576967501048775168252129004725222960289413638993104584056798249976237475750856811412668904869437440859996537643392076762848876631238960864696427123393911716656318688155995934501154987151123107783363752536646442568028496189134866909428749577745323492740330580968283350450170237380086131290448479576840711194036329080670213959282208262800746607046101426657293888542649074902163730837086006079014067122133535073547888784976387434835847157887111814813467956196168692285517510387129555060790471309485246873198720083427418388442734812372136799921842078010680531769064203348360394901561975985865496609900972998881877965086388183922234709420742999821416859600347744738925270428844690732775810002146253376680233558168884237404081014765776944797281756653592586120424432353881576555717207050153929218228542983254664185039784204934012458633536597926675166189773436495071718612275909664108995500709209248261215760558589963806730051435006203223770744717700785669196310560209562588307434652898175495819669097653243553023395838595017371634847374666579394657731368717063621113436307734909070724269703287099261526260921296306441311624069102566590629310607280250563342929356901073108947273914713022037412816657780988880332434080970160455692109737396791847422321902251562845834593423296077066182560001616712407536619506677836655846002864894879017815301852156588237411093036515962454324088968509102026896562024549879851877049088279631083531560784056669097357603998301966880195933173054313456699197099341911034565885275915292213682954785874729340758188080899720388544432975840709755801589591649666428079158595795171830301053400407321435489461714366086955239692254987420049680183538800734232686832528776091188485245152003306548109031236145973833105363925651520393610758018700688396470528011925611003025476492100140480346393361324926094824510481453611512037480515496068299193105581897022740882689368353313502201248030152038265924950141437198015956095484985010641670237925982375865570359975732139088160257760797224191459166996618318881093040230361684690807967593027411919940636272382751053481664027616301217048619981877525841832491075283399944798105219551418857037008268526505527436476738422497668007055958661501077071230690480036564126047919852077638160840826154904718750209247331262514448610187980665788424089103083691725286905166070346319609257826225754399747319459399851359725776664890347867957321616301311062391798342020644410457753588257234304811470281387249016055996609774955312545139311316707756842787125864216358845869348786366171465851242996995929317244324321218982875825791232645087846405924360185046673434482041766150722827619288379779084738025940180612311754307900241558659736369284725920569975589394487494802762255804670151022156453622102544256891742588173078588270866416851806136898875238017140621643648172808203475545021517079612716756888980391449216398142725967752315482157980468861807888879482389483816190958303325345297390265324360272811556386227144712845045023028768788172451783825491255022969826007441489945608725245804220391182134480971333535026662055711909223047871900573955289254232500580318251098241005439015285808768583189753722762485588812371102427446729979883969505488871560051806165804549515534981776603854321395053734856941875409607930482711451849596995872719776086052508400964328679941649668083094377526375991935526514935720294175952831111550731837955174009483839206179074104985850072745157913197306748736694353094359139314545349642453527309373468174092227000929447491682129071092744141449430253098654244071725563502454509231367184235164567197472632997696041436908004785122034437468564605145800583293466606258988870780350820316191329652231433409952174942445359248318546098839330759759298917477367051301310863336906148727806865640957489902151752449556849955976844662883975190550464790587159485003333057961120504649770464409545032997345861205659364101237738692377768162461018163895886555591975014137596564525116113751223719337257014422512289325365941116895895373583415576986278468919789839033002368501104262544176921904019002948873813691351052443995700119249175878635425242225285743675926841102473794610213545829789742869866161353820981150716749631170479022890623063514434198379594191547235750478940161835208001136204720992909481890495304649944052749877573375355634521792505784685019566017494047902445730740815571803672066232556466591214100757608602187523002363139845919224703968011614185376856612083033144230792511433738839540346596239642541359349551438141136405412833485566233521768229834166258284333521986719825400816651268658006918136643930152509250764585612648266891895480092303041689363074064848250633230062715222639888159025156573812879626313912032368580964952349365265987361202554226397186963871584228395588563969977154494353303951656212855076000830253892374318820755780161548880973546368151857149176265275923293478623298278544905449897616111477991075010439996365278141803488812095908227330515960658916311938880981590887221082273580629124021250950942413090850656360578937487955167595377847094356567409904990657093183247492653903931850224025318095651017086498978814056986132210334225043483429340389016469504630629929130564447512940832389961735317412296645487569292104693414755026648705347565362758176908239384972231753024931005037457263462925046973595012661867963941348501154906041943668329759067257414459845016474707536801426011975711675201537211071453733578719708647982116017075830054136767862804280459814404608975893649246661133423547859618586021275781733129200810088741499814147125906565849650073450912435339246399875369651664975691597325379038004475328336915779315738323536797154687445049258932713343403973297500206315095080324286347729727919261200228375586083293582462386449315287654978089294093194933186839090576148143378850157060972002273673571818627541101914221861580935746829719988898133943375443981235284205124353758287549765065351686813206979664152278214370074996028116516053515343876967174189711968553791512557307709734565429048559717224014128780734248107858428192661040382170074964124411554651340797055623309295281778229591500131862933335092592546958754445204491856383557637663613634744689140596449611201604862983507716840799233517142170384666118955006328750707862328619353901405410180522037513324452483875465838815920027700316631945676302100107301615933879810929940821710440715138550198739725903047741986562472128295523586706084196346271389732613225220484882291569622174937798801039009031959580921554721791502966909075848149498049482038656732690598267299499085757021764717765479390153567888531675691457001565633679331426187568688525084846500341778975938763108789210801803959545285772656012596514180983560245237182172425195098934695226735457154076836786295537743929686046639335795723256374871444824078117618237025455420811265504435329163600508590474580580191587080573444112514898594991472716638485817758433186101735616269040807817063895356455323458256708586790799803955396931100486383953935146897764565466203382235586569271102422439448586082419959461716899518433091644231216881291938723295215120357770979412165671735592416919474510586487691483997804601602475640924766224350943244701266105766414776392893497384140674264412415089295194290390197271557469542154702843330566366449196650584211133334875725062255905113485023969259451065147952337277186574940418151414056134961821202839354316961919182422244474812228881280007324608680746089997359454096153359518812061188145278580175409458153356380599739168152792867305819593119055247026332698903199722715684677697259677706519914534469918201012369040511471900127542847580802331420563668744219690488377473482914227964357054870392115698288695095173510712830477493978550026379938202817775309153377236155801768202525356245566864738743800696184324870439444127560582611970041692718870478223628211086724599521436419133234882975220062945588085008332560711774358883365871843261411113849469569392555228280504823104928809515813187821166564293635948027268766557169291430633857781107934198963812200243812913174453471225424732276077110306009125053584690371387369291552954108160612229887073831402426463543311258553510042092712778938176802718953782428343770801312135387200801824865223954597894366253880828262489642528119609303271800342968996534613518413099498965358933292863936921435428939789435398678513242208154399506340722297223903554226198660158707950605274463653586126974141558488899287309507956984407956763733197685230770043040857888473666501423319390859441871601624958036866550903948607486798942034702049805375352554825175106943082377958199220049205543001494075901391049044998905865769835443538223467060249980792020530558615133426889286149624544293733350895615012043564061573652872197422803326614182040229381816097804330433623893246647499685122460515829954502181588050339532360715136689607801672079323976526686148600907672089546964661100137729220176345167761610828159477637430239677174036558926333521285511065953411940519779276263006068181384212075513325128073187687582809607742426903884924341292846307714767237109675040969596716781731150911679559840649498825528466554588097352536805250970914602488016466504743144382885132039826591508765134541210805818075540852619671258130930958993028121941052650339654410551620990550000537084040338665107345591252001162300058363773102452341631808420215442914586938126697189114420910455853440359603192522782143300750127845797182263881008129700076766358511837848745579162656965427896992669199950803521560560344011290300778882153580260253224963697718775957821502097402751728719324035589451542536665519022654163970784005664004011513836823247471080091302397628845299464741360878559003221020125783788413457305561312196680879019564291025498580651978413687222086981670719122621762142001255037607368642468894366034669285935565424596641421413898237958092710694646277269488606232652712230032438755174818244730344418460842797593230838696333202638699473624656122507912387778408761569849085004606888626451558880409838267700019069718422510403563019356657269810702556017252608512637274436233976602798478587086425534328264075357961459805614149737863642019625452745951627087272791401868746135271117515049764006177811475686494144168733883146453511610874953229259716216624460219220228117027199474071273180538433525065898928337937160409312065033355912998488833304289592099386993580941805693249207662256913948575930237381356873932410103379276722027415669412477722720320645860898588078696175883833830011814171565465295799272018515634195748232118452121458661896507584584714866939961888056759242405003920151534313042316518068630376570637957282123924850487859755472127176698177257881831217686312281895537764120042271608495461316540461617408994097408276697185825592688332202392638488747814329569270489744467357269017345485966891379536310548321966400661669632005336602327262370012785140455947183209468209146774089033126088834606379598942421920583055082579025290862218136403586440569657924421213872247056680597951807260803993195533055109157519752001998650985766933382655861504238038472342834870601942585090261117783295818854744013933908576012873066681040809886927807940480757699214876423442630141606350292089683899879490703871699246587794036664588170742031662855371330213063295787353879463202576768714642258472843745559216328271424865513279422188797689602716660165462939123273000097431936181198125557673691135342117602211690505155531372704724432065905631767691473457095808854477310464597709720360444436112787292180023715892686513072292559941693300320607761482694272128801383902003702386851319229838758839135601191441084367839401488820183402824339085315249666120934113409641980559942737847443519549214347949126812722399220775799292211744646967884376790098047183055205152168393867506186995654304188536441823504317528067613190922485363123223500969550139518371426949412848455321382176228408011655567903057771676692043028858186806901915423948897104048057787909596330941125057268181945295615035576561578289893737824295375211995862223220647629144030898027618310785111134262467265630246150054197937516801976249396463176874374669777592055843281562907055913079754356747560571982966039664173654937438736524576219033601107741170068463600498351560640527864246857781739139175038301780857806187989847051463557044984000440568617487687993341872590386466640291974394438353803931779141289657715141199361569436672756544191974479146044222452425256799459926831711276243903566596992214184838362653231414898296886146260455465195982407767843418235748286827218756488543936936388054260360821361530788040783289549327476381778076526848578796832986423823810763912307953093694848621984707274268274619155698665426430741637650540888530423184321126207386029864618799284613065873083065419471874530853783346868721600262900353529826392159563664385731482357989126783501727611504522958401053399288317813510167509733461409028154170657629821876937872364590547147006491735441791655993030840483468130430144422875686069472343000176481381125582559122923052057582515196447147350274777788153023203586049527919010145908042636746332844427747331485061621939830972874407153327379616372532263171399908423960226617673999155660340309859110173179474752148771279253794807481453016958295291872623337921872112212901851335280524221775871446326906541747061950725950484895237776009358123759891634916713257634518131230439119340994036206521160952574165114326824318595437228509419116806465419994403894480770453945894243071665722036697285350879758516210381103915756162532031440282434160960329630011631313607939021909152509431313798040378971402788798459448333726610014203735002806041570285257999777461217726008096349712238213513248802213700411859363228955962722424260562737200893185278226579661824636984081696854198278655287175656837827228985418882626794082308414089615074231288883802666612750393672450696146814412973140986482373244939945139995318792485795357017605218105454853200566530361765695122027186852168413677086593986061931302472919883830639086442956545704886606122533413823318129772868722603883328517793210809762262071778784055942132820303444341634667426226533417931077199357238098162159518735542844763115842444815580985325021887992167419220021159235275918935227904642524178183088944728948473525607964544776412120513092289551220090404808779402071907836460207609551721104282979689479112301939377439300571719607988639531136378557407170590356542920025701203252526931576591829107837121385662804956984012612476185618747145565469089509849957298211287389066199304874682343572498480734752142760206938330000947948135506224762246532448614182130010634089981445959291789502890226342330313595973110283986035593827185863639501030731699426051845611794402901766143379421409850170492612763597284680202641685762859309267370811077577713081127917013183884718525495676627188700989480652856864541278062762750861963472794531107324105011342981220787956552121286835635639385354577831011440538238038804774218060118923521144443683842798562777685210824708860208024139361833146311058607207820755012016002024451677245278520993185668500220466258465780251926505670016907253759912499385753697155309282510085967270191070647699292215082160112273962506461219778407373002388069782745002604070350381854224704201962014565525337560087569577019318591585344191823997017025937943052074881875487795140379383670632173453937383335299443370049986662825785163836889047120320987473644833756711236569892508876870019227952397665969809363978170508114578327901929431072365109948132173882336650349573202628099204374677906175667599692216383607656566273090689785163013451695032615363457503162484606516197589474425802606268896832845626497411327837606935255999725963891101215503025432083325816686588512446530966383645892227238654016482354218139982651507777569489269445999107055186171300671445952821934093422995059468384841950487413491753864748234465413428863775388305705163447530712548943678292256872496489189688813714942225353410600227034429136468108924626176640854636568789034093610982825750987012662562282357985951723280655839446437664790911614873476643404620027103574961044380108785103907770371412948521744484728676757054857655479589885873497300015853147422827153821818113412017813987653082112049522692025028009378078673552809460248509388344545917950369567052459735957583120491421310843261977512327012374876444130129637895921651077421494493717714636722220677261262042183113057825547339823733669876064395757356972736996474483514547958524970727682120110779629332725723025399297193564896499670426493307989985009540226732186605987409592169148242220823844314986201378216551928169761674006873797273993790803930121591443500856235545409585894168642943605515558907835565877317936534878747215715901957554379693293006266181027305668509207450122274339673600584145048963410691884434145865263905610007344848304177170130725042526000230205434461112971471023864540533261007494181600867975638454228388434272125261430920481504873395340902881241116921205889216894079185794092740944395577178944680948607509127299986611984594557112673620973285785727194580579381430854445410068253160364753162654477195737225750260654086155094320470688277404213894225032570936867809953449526565636132740204037896703761026279104321393282106391922460448769344319134630015916063126631042449524870027953169841874883620622238417602013622498272726853540375634282091403383730343671403119238019326813363469334796512907321095793968812672986784069724306738504741574755916899571105824338746444150694044421472566282476972068019957108692725626225692109302620945258497818071731618734862430482332337407142552375582109670369310971110219619086476990578398421973722139179800667070093202459036299274607160634844843472932496210972692003282473421379730476316631072690938304120870307941983236514508427417410722731026147853997324440373328466320338611623327596007608280525078707117393713962110988548894224124142441740685731397335264635587627608930502054225111408032736881973184813245644212633844896127984300880086852713437010482146312009692925289010255806258302706732029143062942869878774546980157326463329649202437216324075474285221024651493022287924096464511937334470345687407038718601552707111607534063522738914208997780467402458607981297106645012747255321689729613363059080597042274566308304657451169282540330667047461790101411640353593466213825041118242111065143044824993192086327150520360812672174474372640833671856150396010027407797494368401018318735421573152790997873007284962742235374218190367884511930980996962719149905210694479999452015045851063982006540448376682186171396126511379536458021418393791961692293984641693790341382919080421985613705846910622541515852481391345643341751789493943347342806018172702178946819286842977796908863168782948243803589894961191565686634325369386398812238992822304813027594976549873659012310744718152968607915657013512458563602247739086981011420270278648503673758401550526928714959685998473944631501722532096046386667005012811476472055452104008589875672865261195615294442682121164412993474649028012356662119940146068180433514036358345117262082951933748045451304924713596949455746235421319543980383602966534267474672512299252626266489133670205393273354884335659357849226176817226290260977010831962430926191775099275791611302426998115190431259249529337380364146222093842801324413269483430020873785536972989465032641655788197030392346660522991413191882304812209450779503001751638852608258591621568041147503787797277936024145710854187236278618581147039246946328891107270513176954149866775180938962603392971208500249346554052278732044537527023088334198310586715504499284464634472641856925022322096353112764225155094641524955386510692582667776628856293359902836543552419167877440802660548856943291632224252724061458820163745537873596350134865227523370475866283576971773600348911320728639520859511532000806706493660094211204412772470830920103995517432036774164265267639887472821014633137131298900240746821137709037188414337870419560712833737962087715411106903997717001657911177833428393964718840327375726367013104347220572811609639582261881804243361103589315326243343084023400499009196541953995037118415084260811807205819376516498270473825445440556570949835000252812421600187297544749411723821616828218720855924832936708681246937717458786535669919328900993220688280806260953025752139475985187119411993946673183622323064213050376518792493931495829361719998999989633993885336071259789762146553371572447448543010524210554117689055769123732983842920411192274805299922395952314566863092419373493015154338031069558828278222007358522465141327709812877875258709941790197657151698900423306958109922880177557788030293532812469568552132288968140232020129876440021093518928213702752681838500393564928134911901418805462640895014386405241928463054031074662768089200524916783135738615984289752687268396097536828002925153757758148793155721261582573204883764476281464833836502634138751649076480397554594582759801496353523142424189914783406463191582466525549650457862005442026620860788565657502015990824201230093123167423282214543466922726333000818496949520414910890315702177157890433567028363281790076058949747073011173076059253354029261633632194930023822665086803305471943251586671331386672144458978544510051903677904417410620295809308489820293166264709021829300597384605833653094284921085348701530933282509180630959530145238837513761356853638291481307260377261465009863699634245930417618307527435937802135337112279618278186795645871294038563562023226857409240555284960308789325180587211675733906117703262884605595713050347718510463819076532723450472024866244877155579368210072325429688033348272148472757516332611315579883699259100068674608535161643443893205830173472162678091725473466118492713342533200230568342352950565138790322867507427048429215501702694517719244320325221599439164059418912288102953930936729719202736020122491066340768512933984903800998557220817451590866327933091553556168719701513145057965619745606962826622224744523587988774639304559434229307701570535124296029830181848873487907588390835091357884246829649750132155770218754216360800626468134488384417172288980539130096167495765262767645237901833783751011487555120849729942822774170494784709891477173414823788194981124787971678348959753922925933081670661438964216807062999985539718337536530368465433129254253232076076263579638231133167448299820973069017453708627199293274880468940475670554567845844217847792924902321036578578769962111146073017501464118680642677696000963250085920582910268942142855885508783903956451893358301684402324513786354418540799144383144891340876947533945307789987812274554848141025683952404206413082844470718655285735578852639837306841086525393965418226664228167558428687187567400791778535711906899862655909855201902596177885548573034358233108610300341913908277451840594606728461423799592864483950067845051897506719931668862913109177233612633533596980715852108339742125596492739401524636831656239270148087863648166573100055450167055225794506721505501767556655531036987702609002656790445510682894940056732286218996794408179889024154422697703154611808105311545648135298745699203169119636952029034888613701276080963331392704925316449213944338260161488506469953372740251974788703957733012473660198921243980889904003393466198594657093359722781136667650657260609870335801854050357521435063521327285347572352749111614537051889337587316211934750746386146565517396194001230489743771255725792050176282448681456859984599790890493929518010003639614145270946376517019163671089630168409482185069321810373947306921620175232600228227886620310742454378238490366347673325456288955919117770077862927740127179647532687764310215988923925539445077457143938237820652778252184753003543473690464029424802309262286781811879690114012426562213934753129078295575744767493241859944596876289830112102455756531394296843164344741443552179302998924194113193161244134537926059352447930309435943248505227178115777771791922408113303666510406158694214757283812892752337382397826329732959531262667800146161952033421960931492568332758426924204208573964598474390535014432997704831818571362871341587204272157534088647246053408458538972943440951662407792056844298154167550725598155566037022572004960871191338479780300018272575741130844637831011473639908325991230827097590578271633888861743801715085600804529492362342913542112465388281026887329876453178648869861006314594095947708220265169726163009842267863230685795989428236559751802820640614879809498284532096524085888783039929040969298054628589789954807387183775603237911635775029240669947508389527351034988457035290166083672988498400545113104293135870361786291827163510750988857997401604028524448246759861170541889667809173610617370930648957568324446053209154212092434101611147784809087562778243898634942823849212928843214707918114346440508569366490806392377401667468147776090749343820154271487497189780346828337198691414129001195282428139530239800667949807718327798061046428353022391187712534914303571613952619044301123820111967823859443946875084282040656040908537737678370787666373044465619870341124929420772094813836943471292861440233696220990864916803024377886617083114457385948708366925735823951179531503166302722736912457423851964851318111550925681137111441040740031582735931617519110151007028261624334604312429365741741141491884621721741621896836699471091764154273731273266994709012683468098417353455259065518529580204542152487379646625243095670093223944407230879856579692534912847372110181036988988730000908095904955115654406031008669365935459747053708640898723473804109142484851980964600347134379355409870718071757279891278528352083682106454651937534888741100000382201906965220153222718538373746887907165536835586696342944794106281338377310130092815900243828927392461186595976210789670191161454605718626242372037332508180912185616936398007935412899708492239965064825811569527917184299536803713318078861849247272416466367476827948148007215782229358544448372967690695687124603164348212846142316426495985213656083261729774870937258767324524616247235283589471104117595020132356830075354185233101584957636033557287240369732474418374210460953362981449889068292435108145392878578888210031161778061138722560662876676520269001981076692996563887169372322602002909783831393433505706643257130942356730288843923563325376801179563401690896442331717250652235503312398297450749942036220622756705728902692312772557358244213039030242043551837444458184870384248479202310291991552131154109220355136272670627457329623252861998102763512354993594211036383965555405121420372541450990028466411330718645488644398256348378973652697542258296325483216297523793867783616295995096594340218709655872671130298724960626239255707632350119871633773404583381285189553412407014084858973897882201317786727524501081555315518631032057905711144529955554503090422284902962848830917307820583148514681028446720613994587936807235032251660879947415255206044684651591745255155179216699656960791400572643636273415266269032232813105764772105638389566043120840003718472870152242460760012347865614074220962618421732704692990071721313620415493680250876459856609065255883592541668204704118142775892214851871470393055162133023167274035892101497727848388729644409081436518060134738342993539092596433161871980606738881062071084295733794809573691325638660909718613756434457482977752333586641007837598378392767589063453890595793615297080909778451027465343645109996270152791132025214384502046115341223476403147783896836667751514257757880045486038079290519043115257324315733818315738122618436339763211072257846544927062878702317758868282637816681722429641588361343735141876478991545041879137702772326816415404131067019374645337162241460560251191191384970790764330648201149490185096036825396429966670837684622270162138394317548853672386515042683600879308229266215847497679022192886107764524195998355032759980941436329694605530674528058652871000935993453119010302258689388158868187898352033214766285054943211238972231220333546868476968120120958233550693351732688863168391575653805961408412532177294635868949186996782556143296408051981682879845315553600491673694986262923382158368291802890410775039119069694486358404257777262047365536370267095279630811582259285670239266911297706438556594999500167603780926818762780371388367031198911898225860170967840377293502311856784892582653026026433835610782457516614971557700385464261172677899241573344482950116809340920440921552657035496225693817614953884957360935401174225193280534761634743014679883038855227943117605645042606290633152737402508850022894946295789314005043292272822912556850301226534901196609945805121373500719536965666314515543517056669802515626264149921202573477674641556816691432932184374667062622583250950291841697253962738606455976289191621983342558772807755253137256784454370681833235970198304267891314029438714533896884966616054230523287482208405653476002963900967162389678736138908994348396818483167471956371181833885581571107869753943382605736208233641684823357093444043214946098840313033607040793722555518410552651347933281808230828101473482161795649121743810211979419286008285009879594794144559581496321948804044571375249969542088785782585116915567698547159182826849116659776223580445775888655426306007046607578937700055132152987261082474680294913132790363561891937114880194320947374865489778746701680208020453501007701540214722733841262268740700526927630785758321275549871775765204199729569387510665212184494278333162773135854426438854323709034239248172656871325778843040725374245749140734139668980331913024881977225302008368947946156062727668535302463851216295507740269749702254550036384164772509173740320476965144473361351678337846570162330959669654609897919001034765795968031866514667736841171537208231017187641405630158987299127800129293961471284042422491790893595049779258725708135587555937351196500296954370815740793603067757966852359152520006611742760659496855246134037524810451865837195049835199660211622382964297535433928673212035126368767189777203380431366691758188341143698308368927835453012204049691220849491734140099695507063249075649204445618374193417449215814485135577771089937788980664340120769671714304147968426108552461558589169948377021212171647161352615211373865079167586375717170819199005265080329150005526849216813936390911814958097424655928212736307659021723931655692758898229138616982270350896159029822876367192353985499489469853574429926948380301835498286678640200497332048399711100995019344943073338938813041591875109732923882720664325666114339694227240516893108532818329069701332679750350252442674503916028411987740602448286043559403332475829932461539452749495676024396983127484683764837488567653270306931996658677314292069827209170431525426935044081125274826426205505796618370918738851944055498695823373943730824592771074094747180894921014574493753932611037150314245960920793865309429657343804404608403553554985527560718977148776872653336328712923315818028725138829297886971757886964435765469347194496240686014094676311556115342747939342208533216799490995199795026269569179095720807077589211532831420544183464589320405744424313481933136669322906899386906976334642188811170304668891355544193255566504226613210008669340669252166697922794426817760932286223548255284778085186899155085497008543333180466340163479510279081749717056009778619672295020694909512379206413084590539060641952683232616169952584318271317874632135018231086412575271919102469909976309749345475038054126387241068179995684032423155900746568364778523035424120883993219560063654215372348944942517894936215554447173203241373780299676158379800812791443728234140733607493862016941007670470221182345278825440802277792770613703060608925216152547667485213760319828413866349810416129180520078687192564666550165952359257153195203744412775692956994015689796938045572649237644766310648464843191841690652636218237713792160180257357110794168276146882329102042545524372707356158320990503197057458934872728053426886382965757882749535832204105882285260248310876684142772090014750786022329272111040700908179953013271385404571671159284615976054030466440511000547203768389131066452660674601555211440433363304178347957103420259783169600234822039463221671935157477253736331936456046290323141050078384701489940593928606953872716906370648532616076064905960993233032550291770415869554040709462154441431138805743822652646612479605215317756403735946175677430029961964321817771128943057958538126386534920827830387268493170494313183955594928467504574172137713974032260757115496235159698118954374094032842746056658363828739291158778228545233045836633213813052197775435449713589231346116232640531123449386347849745618898960728213393936808372053533130068279029041504015769003709659969781000607061328612771776400747729826669826800101409818749244485271913647407798558411583255551599351089144598175069427562704202016269295187610940658746453668242642707003832324901090995260110245794911438506523976789645885590816203664198001507607972845233375618852323074509454199105814889341708133546222355753104128367676316836811702227248536679218311388741691302611453266450415087962188577132440629602369020857397016874216943703541078048380469717034452938325096891532000192044580439191855175831986146614024694091340277822684440004148976990832807686810042871483542407263176117505037996161149555574633966885477312251065985782767967800137114052837397670526993962380200281038937108026652770465180316684306363056794510742646210987985456979887437261925977653830485665933067168638456113086211479690187428318751003777763281324323925516820428518192350383231418578183349211608543394386982141376724487389245144986097168198993073510440931351956705844443714612441127822490424972294364243059124750265925995926458734909553005163769460510677170071851509822763289974350504179074021421525372879703699606602637254044687592820260189529519027611123537376579429298753289234466294770382665670970090002736574403783403000729235566302112245661841534557591546585947465665552463203488033660533348730267812305713148160279518824976642304820556066277463906341146701079816381198254388349036897187353325899163157506523514757469585542892020272648924276518833430079510543007876933792227549038819785118570181012169042902078919880865520478477130744865429080856938906570626527734128862924545318714947433372361767762224865773403302401997468769100433924026221233130935002308674468247007874743732935708277383607764625669618174002316209737497350042202163613489028203343020081060449597920260037911973619082775027466169584831073935674935262292463324190547426044411442767559723142769184371369537684302727995041934973041461219375836605872360152851967364989410977928474790607278805233228284978420875185380442555475902891985258889596805162453287832798538477609737407416515996941791420758218985982330948223736085494033689851075361469142243169504013853652463891181105606522285477745876404715770199972287580796739893108934923408362110524435040182641428491922131697928377383846965628285259668339044881860933704816413531075123289272934284051948402691500070697933282812381784008514625771500969829535765359367565596651884910010686704476245350379818854278749514820155264441791100996104209379097069464993210310715307252371811877194677085580232440525988731789263697004480893775776641008425212090284691979280549375715411208380965404194832644174483591942427696566004583178716911185845969725720451263486220866913132889525874461226382365418324099668887066086487773266752091828813306000495073037044465364252714731434422616296254543623655855429638314990775439727557437981382086751195524367185495491771871689019315837897939514264447023433138078455579176887942616036642595357792749459299047091740071043259846817783124641206666792533676660542482461864754087621133312687168686588343017787997238539985358121902920827082784238756013342062329147084351195592079227012680686337843068523163359856078645386322183512687794495814594488043272048420387117419857834569268220831238711772565666092302937133201162795250021800166743712669217678899192783795138878010426834496986599011809080935725568840640226884625760761951499897423128383790225053507563369694483624105719406051524728643402980804889793072614500736390702058540198380311707284269208138059619534117527439619479152614986723283649061480842096578753037583927212477499438611228654958176595763336879426462913047491933718553256856145364390432684158054119696774301396306841816381776250564725157220065019768388473464405466384797032355133331789257519049408627660298596825930242011223713942697746574616937011731596374917939075454677148841274579454350209639271354284237230918379361231223090893905913131890939031885027400091016560642300208636794220732803747271332723728272938492993753982730885697207044098622241190529437708714234924068975930585134595306487660094390505169844013166803448477498909534171445472004482049696438682997679809340775852699033167975756537279157345055831113468004632379372352617162559392452523004021549492356802266073411403688133595689616852688288329940679254888833997704219620115083073584245921534640267834434023277197744783942496913875597595751466297899821109939844699066256281327219467510278171721128450814954904475203783855727309061196918324765794069340588178476683764162206033906734248826182588051424962642330909936057696624126362229748680339948439554084943186163670552730701084041148800859632511110824117652010236575927420751603317388181444699247040509713242522252048082785172708615092133635333641617547358222534838505390337299472182793679425020028085440021647825883961665489801228956834061222361242438929797212149412432881004146223511589931693711097588042736551711924015338436342064294586097668379718947966104029457981540261879584540388615598476317951228014035200816995774318773698435244918787844635780248539588286234089707396159221314667892912836262661155459714866824305103432126228456412181906494439410978173415061864311070635011780751721371173359976343669652966158308289486201778836414519341263503651998240465704568270687882028545155756901971269868893859491436966561896569474072711198234318277383728124279129662981524512948608059712864526311515645369428192543546178085110927216405237651108726958769456175255001104959488870945450350138835194251256124664240849220323832316861811678409539182109165097708329236821482520338376553379737254636761765372116870786630308756760818009063870849662045114906538511846884607686175103194613727677433870355659155177421833260872148433175606182414680445752968378133020378077679760672838815250380811704469330555518574241598631110956247941682315223535105794650301742174105751409689537241977312158594214288920303808956244143310369231922979031090274854023766526465723947493186496432867926900107324709377193006980895266624871043348727563344394382135061290459327483213036089712029003914779156208226278934228476316331000018390799277367240128591679248170521949482873045200643814969979296310616994147505758757643409315520102452514424437994261182616285699119953940848447169573851508540114978293811556364658737155465147878568787526379736206549075968830792881097907825230255726414757344278449600510343958731157396692063431205231331233752756260080660314577841340955185462852541400557244681504530835132328250888478797014491670718595605392868678412983316465296612172340802032987251977903311683118109633409258217366775767762850864318951908642497662123566731319144937854633265261144372464810764176854021633963756338268811700692417446348859906656028556326140635386689447228146445721482291732271589857241609508002563242575785476758658920613582707478480881939818486356971188877360478435277409863198568257123304313600889356884304081436335142209207304933916646071547905030159653072973469210593828186251309492586070629272090458905384357043872755579069971640077500822277534905195786395314859874947443882638022281435063555385191807021946393413818607624272217454003250757831132616930527359508262573603034898343152086961441188698299874537452128736848015158654265208814525765649214088473481893767962379732751488067026533133929863964180582242238073291673542577362976360536984776737100082669816572384987932182829694213080110051995211357640611739477830219326966278991321852237137471610134723371133888519712500095364801853605299559630898483911034578500599127657681865012367250077502077937191872321085003254226869727144570901668454724101109857368062006294237084811694714637421146210128179825308239607373840182582273734369270493892592591067020973758204405749035926851815829062794633278116404459092881036996591418069686026255528123633526968618488471354461712099714834415806747880946254161033302502637406290654692665037835933140707718519934902171771964785076886118949616742320102443943031597731340031527365666654064522578502217460279866287933023916165806854411623502825991298727360747492474978470897189621844106819075822198655412956568004460888728329315136045900826531143145508254329654023680326245850344854532790587323734732949020137460959836105821397400704369750546739381960109820320256430041571876091630817436528709682373175203970576570646509446802269007395954970643490365149990205054747332847239488275465474510166555619493811471625817296785471077584307916193780814029276129456841876486256121688003118964659511227863198434296308276859206168292816448592324593000275778998126328547459335207795690200866064258004345445680582118573054272667147438375373285569012458209061003346118538476390713110213047626558650243110129808374459196707037779055613618702924455822385074898997718354587746352084883195115800420245589511807949636334435831895137603660007927256985884074520704117262818725512109613100721225781419867186266974560417956329167275005611723009705378162968483573920728404240758301459125379393574374804917287740719926726240918145000499733503326832278871052298047604071989081828747826447854727351357032250945472188191877829348588209521729035785104176961408451994023505233038925557742424087703968880531717597379428259569713664510141852512473484391031462382325082923596953582713846108972484482291994821908275176814533734947649880260834702022439301987638645632174739566337318097116559502721588224027312966818634627551331395129227093662334713469834782817803050911712997850645019067175829738891286345160722308163646040028093538934088854233691173028284250228319726254296947103856048694814739117981657476869767376239617021990041056951617939801301346672839628331536360549619057105921253120373071469832312723551164901164397520034727829191049049103800711593878250246123017472330374393930442061364717464944881698479939704875876426565111306558292467678924893745600741613660939276801465009416824059176473031757506381435949064263875839700857320289965534674847222909786187035980929663823550297504634244419336825964519835317106658163274092445906407570930691449039772689688224512720184482099160042524516730020415271427643008663699677522980974789641722434481201022191177844407082989893972202248764960613222711928920505356631875617710935963636253915714835401646543014615750705170280227593793521672906772458117541739898606888427703336768229943767528700960689771122978795832051908704271358100532114530934291978693411818325883456459617792479790577425633382688612249063377908023629498791130569788812133565476675981527801499450040819269128257852494715203149983395435622443062752871529467274993417490269690548032043999536651338367796428059995548447794890361394772159525462639893273257051099180377416737662415914174455693764080893972343534496469189681496617803866225764310034414190913453991099933602467967072795011261586702325249327064594106573681245730394941631297809438205746761714973192320162702159901950595204346863246499565950786843744240384092454268048137391645238098510487023567389801423726693896299771981660180393424535147184943197563556657307839744688458511723240551142618649722199725455736730054813811353684344460205577939882249095057448832438764611161423647206665560443413114079679217795239850941542210230315096465947864606228625999045287683636412922765540614129922897474207681462018883787451444936122871639695714179522095414023531270780141707803214166709156449504982307576095327060884649961416768270315590205229240584654873132544562233156050882979220289822696179395482244204361104183898712680505053483757839170305692290248350082358843557365017104555528971637262017028640954225638600043119555693929515568101314012660524008653367555204565344516182133733817650327639091771908413219067048860841558893438214450791532111867833785495843121913893435776916499777318267125586502068026555797044222173029479464282280834950070305369468929844564535352016658852162170238122837033716051496802957819245441207082867213511965971381968180719110775720357329584650757165866505448803276090208184791099347922602878650871950676227594539766533196227316619153252339189482427214516487503837899865017984986553427728103979686240035684157446181222151193509220698040185966597439502008018846186277518229441281508437587306146593142968147363301315474432800131793421129972471380493947334631946121567546120042881856600059317488127937131856170586126949154943601482957545007410522835592170892807362709484998929273283784609041997713409317994639259884931296095885138897932534714181483092256395813963213130057036757893851518862061580378947695263700878672958933514499822734314276726826826878375376199638685936430787457000420670208078814081320829499941934571268378607074648606222986443236474127471047306072266085297852085403423901033999381301209862176021337750846685504122375241521576107811396184940860488985722989176163857700086657156783747616615563632055800574257172807415014320450169372561429633465220531210980199953677293644691822965902015458413212552333832196332406748511784743951530261783644007783927858472316636041560807240737771374956487805160028671871349612765782499394111234000123225962425201274455166802450820076628539714466742122474936924717934113537053367378051215125271543983328299735637352246498317815299324365533363572573933111535047638282672325325712749102952632623182405445790319704812001403374062621800246520200496707388791003078305085732270092441515060364009617255974627235529706450585739304449559476008479300458622001680438973254786525654012194545952595724604886052830091726657825352270804122632416741898469627413695754776136419210865004658436469273903261184004177009567798961485568658571234604372197370865661100647830314288984486785973644910323495733577522399858503412328531016120215526664495806540832488036947965224396018213569039735694129299436481683830811975300964662532677391491804654618210978577639782718390826211725072914108063490953986148584998169752708212668639785614835272745454311499101245622876739314759682088056896519636951756537050038267763594789848483539537926131659332996941691510298374036026285563518004899307014996200796549088497016286818966592257496885756121856941226180928641363256640311121055369099786074590115440573909095204516795368118733160226415645665252299184103629545873641246091562813580896978282687261296748273718645552133603741673830499259882852192202658641210684967250923523946076978747308524582845493256184802115163578134195131246827913587905993982039971744850540533699879810663467351561482710219673577487155946246945113812873272141582040788318387711520206572329704292600620480637031060754150212985241007125440903988563826328377155421682704425284669600915106974531898761178815584898449263813717843843188772320943110958513473970450085600117196654970570815057281618095126790357746052134784993661520768117501689331808058238861063110582642077690512460970797207770793340014600925749699783550433285914056410449107863577890583941510222248988529701097446805324033182207156596556367021290322779662274283855367381168815418509355287220162523307736303473927202303011937818986467669805390458942680128786281976618716786093108888868550896550983336963394861363511895849619691744940856678465551762648632596217474628777987357451575124898864331013110054679634804343398593890588728368666841229467358959318962137917436734531999157154487405606507989536904052447696535045350564594016817472317529526818003639163352893815675176130653377779881669965128541417495659883819217125883051127660052494071596643342124077169742443853902172983833596826404088159670336245976746790613010616904993179660264530996082817392012814662820990293766890046600278779880522979396424687370292460388317351564046488272054082960348230819349738168438742734254833849307199844029060407205352180629411566372347844972034364117366816028760801495509497985119789916331482033849113892542754382038797384831772654655735986402785337826430843653937184468292935288679675277731191558243815110961150952546772377174637313699508692556508776743686770821955635152845399176203082451836150003645607844438318782409127093239767941010033387776771019358737179604867722783898133802128127197746987008301495665955142815772463077279700451983590994105483469618517520558022601729230855203756696642554034601328864616705718901216782348886049892000505025855399662457828778454506411606057920948423373759602050517883537192959499023860781410415080095808457026355305859500738444259548210061649196007094890795931917493467682612307385968471481109234270696540557086392319464940419977078935045250187076266952063660348184990314637314646872876175110330527713236854055926103735980514528206542950489354666773240882104993457639231540843458745993997268283942174928246174723680548248103315945851791364911921722046862704759698439282959943856679076248038697983457261837654949405065734505656745192833594511971011744547506406947232669543560619875863729548190928478754894155067207680458941177376204702291473333878095078297315266403409561366033379287166406579858413801577251244634214015210927817715331283881695399981907699491867796852450873452486680243355059773450167298003153840038884810226420447265276733102212089710127697609941702678386888885027820315046409685602479251380754511825834969809542790731220822667939574464165488891126973160031837022867977517018483949863975839788388577816816387061737905053434867250833051547448183470613024331878476439391879407528802106187472403350388042083993928530835889724357765948314198008285732717351108431725862115921919794765480931821274004516223561838902342478097207614814927247653036893471500796923727634931910832884293788748982605088038132043960299266965528791690595416430034197015118901304049734147468230333886469612024911176888550954328879576628320520717429663431362247690062864560397843210197014930337136568783283499722346525175744424990838212589529026447938340763469308184552385434449442475376255380325759698843124458314541221947687968209138137254899208279722084912479205434781033554859843202183708284458147015293054918156002169309834171774588650091730701318068426860397296508229171289879180384923328069403958996464458794133018942088198649608664181950217848263666101333937813879508175311302203938636060615314975467262666898824253115631897772830201063063419688930599508566057511466001598939455199243508990374502864210188852672278078680744196497077769811035095185394768211967438910088211452733563723090263103573108053936751384046892394994663156181172650210079417688908666624731349656724681366872410868759556028336339642393901392405590979229950922536187189404795111492282972353363266705858838718546655204870788753058904159343699306866862464807861656986941277338641312904448185068293036009126726824136232850858315997104393945404943436375613876423658548849063807201861364198014598378573573595634543129153605920658847717477701278186015629522111950055773803701318961948070513826152780179414390323812748187955715829449180189685906138125693174578071065076350432342628553253080468840849084430757734349902326120493940894658703469526728764415707559301127408280489609770281963078302337494453066303614099374220831330403743656878590968363270191393544115472388468497002062189677005692679218731761018535342762954125173305806481295749468184845120036005381173418252664516749536239896278056856199692127232519654328840622266685529380578283850141572300076819455393645758858352923582925255790376535326146451922810575607770444346002936889836756547706506396022268930063675262822739975882933287513324064089138829703036776520640133143214712926950190271277956144400770605271446771027101511769702861535763771849228005195644717359385163775116805547887827298902366264285821484232186921620624168743733969052775301667331727950769230724320375517644814084525566972577971569617255841544177960934172862572277495814468853841123951092643222483519990643342196262241021315575568332461066822204143251713494228654379594379364005976071401080092738242645555534952174669304899909682888404731320145116526418196492290345293322170397023826900317284148283636555334082524534109515176265386502506563088627223338218719320952395073376979467580087928030088711368310675801528491419165556442281200416645866200117617982207847740196307425105062471826266225706492615236950702553720040422580295352593624461477862944856084918853806446062630418322535401296642859626023001462871147072009144303810130650433811837214334613560406366464798441575919165987159330943244618618425739812038649666698565792609942932628918172055936678935007280064914865464883966612121876116074123506822092583180067788348266971265812502323280136491346618066648095256372110577538147332522327873242858872951155024032071088016162864314446346055977837227243095511224849166947134947062582860486915943358887805734015581038213967669793134248343870150808084644204425542850016812555668027691720446109764473515354839630605541948328128246067068991297605162327108953765382159896923334220497514601022210199793391151455422452370998663722132720503907536813557600747579187050082503309976928219586248249546123088318285398660253619046066096544901240697539970442703136583407362296883135313622221343927586854396780888345903543907052285280944111011652149508625281402689172720925444499440856265109930098882489843249610778868527645606021254889902697460497789843411287106525437962991072452767949706940715114771904386178205377186498432373210721918318783743903926245375804538606555351253301272808600346201961921199025612723947913371264232204181179929035229892040899472200680977065344363663835728814231487312954068434509399723626345246937681576236210131578282821431632407795638941206671664568758793311958905045905131021255659797252941028407257502349247279930682962828532950688831076651536380819526968638697765816931291434029943485943158603085064552955739872600438670698875203153105511469902302919078790863951639517543353682734291194800171711172281393790287303458478847300504544547331521800400703612673039405141173099144136071660397563202005062217874034245133355862615671020890232815707859147653193229785043148980128464547938129466041009599446954628366143820933407582758355962000186272871572844931411080149349286825065981278416555789138753402981533921068313607116354425915868875880548036766607721601092953089062490858812920785453223392611752835209523434664285071047715514025032142712834893553561259443697370569628230011520740212674855357809126988387941447943073547755798176185546299362164191148753897435708384764852356862957876413262641472339079636968998594658729949661898003773088212835013587854415510578707205341768767988851253354489286988917929377941264013022441328840144265883869474463961675900022776751161375236872272397942739261473944521652643185489859204331149193835038168535849172167188511876000634725316994631297924266444656410710572525101142710424620151310506006720290108549518364742926092333595001994173620104031913915392797008442040052131010935937717993537099618713040940229871545914308095830660136656518685673187078151400284704123916879394721233501040147723252231584771143458926730529028469204985474725890236935591944792766107856302382238798009741093940389392814781109159135527529548610397905973579542538647548481477503620164161404584373084319249355546760903918581892372034964093412211090603110808023793575251970088774020536790683151201011641254250387783078383048273927015709930227162108986827210768588171740082710224259161095387513735181915804249238509133628611114996594229761491183844985654787418428004205246615336810527952637669516375238325340119947409999551336795956899661164804222542160457352075866385174936982086788037491008721688609783809332444840648102256609692189138743443706217260451890981155804471380621060690191149481949971410794307053606655834283803851898457787163422425613859867887923422713399819167341386040493515089542363762928350816042893352431723585458066084231871523256123919161830984777909815449261269080172364839959962020577520051809204503375591883105490353600031243629022237189182001737162965080997253286151941098218084678021693865624686526075789274519720512532409800621466614806430526112068345943367946316342476094249701594170067837315400365888510591909821395836325105428405597393168563504252186680273086418086899789532785774633957723188241611292880712997170164058232639770176291306987480117610657874954040728734707729653937422645357066591970898635213410367994622265438946635406957750251158450337972771755444533149305556432650820020889115906264680634806171622741238481049197276289272543250236372461928440941222701847303494103772494842976894076948338077630738354776209915013710333107051247306090489084542140061161170636526261904817483071016591198001661509870978086961573900848847796408505975882235658555929941908006388235140642056956837534486584141429990220249935049937163655280877536680283140389036408095040708738483786424018010526757471039808364650960015147565494720843801253970052891661332441491600351853385947559529325570031213015168196878326643787496230433095984075555168996415487389730869422519770719139993575643290088687523935446204815356787295701353523671169003468646414995868595326178860027905228668238138119436115920616796508363485681109967207295214750315913201576811355777229887920625906287477372386606901721253811979227182878777799227229792956312554133735093847951157648670270798132851964793986354104685639806771843239933298470724636887578380548269813716558977720808117391450857273397595251858966026850320533512833871109606804282532821412380480269940298649585767348867329338138472456380775523862660352087179617707739917582383968250094763451522360179334148791396057887558467325887699352780397416826281872702364217504679894251574744030929298173309171852494241378093097730247362150002210680804014165087616990998757973883964069269142545235813205964481614898891050286427099357256889916526404803292928357048601957323310607458900485167690849686972824124707631899263303706483538757225261489157447344512734398978122873973618029564025693474548526006325512660938700168582928309644584791367905055728099168641711097383165375545833996278106453884653575978745752970608509629927037123618552076826463513211991239222657904239473862776261772553415017040072760107228292000668101936969915889534560557176217341189702438347867795987385838138390765270510011585506862918657073369805386305290170958836583307572145066147999802936183345661846648048388918301607500824937342260432149572863207494656316685795881825552017910971172946357400484389188997401626370675358325542610736586243335135115047086324851176791279752022207663865764466852184846777090636129511835060605943742048784602001722973745271757707130084655665445203249275099108079148200374206823007069120694493060487855848968868001501868352140945975198682692078357429920404492936666224780603612473333992587736120461187052957921052098166311938411673502106556525250226306611113376866439837044139072306964850310190830213430049845383175482441204823964266497170828642233854614043008312337309990679637052071600238243113725689552535538925931674676162871431541403579566143392419465682968172348502965924727874363957931528279099183290396332146467184374921444966918136495800327670573002873208829052877249106508501049741660381029929029934899810975994584434058117030535996404339617826316032439752964499868093371264918447802479663065148206624018471880426020378023842900701040035937645125863052207839332321955205599813229915018625210868050175743005172194812851861976536644454980039050469673225150750892987128216595202527600465272444068627814996633596940902043479468562601472077285333356140617469725845277414461815129836724215366017965857967209561608466517993803529987371903745236643506426457267438216470685757232003185300762269354065837932258127883365116892331758243546946542878905451954131485318520885244115177511630677941020033716808504988881467008715810330382432443164247643693839165579126235497064883912004509047340072611468717883937327586504444282131244506413116736915949410602778541547162437643866786690231697362667314144126120033727527464383931560049924769021672559622765136121025287678281138985019697472660494410576309628604574973601621934758422112379667813381184695256735894234584163114745408756677995666817361062512165034691923853161433403288591910836055631184819031900941160083017835821700273560873433320480345141027228033286275043221313757715212613826535837737026866088143180134030079283985649184921124520483145678549797439941403144349256099317092762167729020492380194538620626703876398603828893826532237795637040862210739775931197942683106622411905104471847588310628371337125436608217032590241254309672768804145894998514037273067171941618466641586729484581396103314283008599061650279604363420127849047573685030683044286855294726568974644292943668369895949189349064867230787736896871406337948407180618438942789086258306829687687381280064923826295369953061654350843433773037064142972508242891152751982144779889427186677811359856190107868595287105292225729189485066468850164053023951568667730680674691717143599455991740621201846826927801002510004041507806981372795263141756618626618288852752245325081956343938007250725652576234195801388888528068496007757137401456629064017934828850102876411158394932370215739424854158347391407086568083642936007205191647735918332323359728687510514933664359353607976285452521902417677630563373578296113784863702496681723618606907282095696483683124067065251585667412772548176931731433516924196876286975833489599226761551679648924281254652212489380152242258594212434839511027377288953416356647146995457042070835087408305279642177742135018938945093787916150003633614081873574599247820879789456085276559645385580798082708747334472270823888614982125631145397979761703135222374532622097683662269991257931404325786669303999758650091527052474190271335290076341414982111530911444684269782892161342755857332657029811657606708415184752774290755427427731072986344986504671661916652216734845304806485336851683602614787188763573749941277600212476828738621641457657558956838100025466800678755695610351259212740481672962767856231521252143699487323286663695588640624862071956194585411386045494998149573638977563619696201603108808102348167293368010685105738000124433150016821647912311294188576556696390493745082885941772494787710545035684611497779737392754840308664014363996262927803416129232987374299431889165015683575794816802169050061435230208179998882521338055726439183568032196388244067833856694009391491890301021962110440016979188334773608725766202827271824868609335372405717189127106455909515540480510628345846041418187621089061872970631058242618722960354225108988634058368705213562023644085413492354735397133841094569265668213330947992081202665086971054794349168863471723019864082938006976079850189516390832138189477606163884168038290022563782669298702291130474292340133546248677428516185847213974704530704453000175817184887077906698219648375061716944204582563694996073351604561330504811388112368948341363351875520735020847874706996895771773617563031333753237263344093245042334839650448647180910159300505717283489450637475537161149859172810945927540303413693001176575198194417661373946939338769182140170860477483562363079324586378910713798347190774952064685261942520697666661358631920030443051574298729930978281836358407222459810076504548711004630873183300322600086340170051973066537978085351881816035397247392669212892012404574901289210263211163770003390302376651385272180587666353047740426596226917959200778169468405513255550301568649383060802223441853531210943018579941574314282776450828022566058947449205088537125753862955451589182135716949721287674164730030814785420309120903488536372351920526947800781459422228732646498940701211258131082515179905409647382984716852998867644206607507841994651161494628887929290244777723177984715189426537167599743196127174640587658047359588372658759275285482518716990189456251311951184039818640220788172603060773734143518617350181550904851750074237520940386373460134999637133529482233315666317961684285896958909990639837675426925068133394545103355188535402613468038267145583607370677843371569078092450309902689273718928602907572421704381638213184111127893993274240462555100189465165914549833743275602705169513913576186557688788008510292188694973270286846160773138977869681824149598468387753854474093283139639744868462677531093533278335574742654602952723776939948102266939697016032867631790995116348967415681720111706564084048906589248204459498172680113392933909843627483318614896038700333433200116327115439214493381110840170828456494246024245538290783778485763030023854411000319424800703255531614937111770831850355861059277294686408466485369501382670863507434625979171936240716260339296125761743450269961803975731440691849152405839999492192660232817593536008633493754622411814768467993281432756033112600220873355014679292273639626475686875344198938307331984237332764159956618339493347153240981951208269398850352224009634230980416395324506380840456317047475715562214159655729411372890768369145922441134236019961414215714162702653382613973588956998876678963580450458177872758277453235618560376826632179163128909198937647802973739797331488679996596157503909845649969437911263874999724253901204044015457082485310104528064013605264759435992436093731427232699188866044751682531605979282583911215778787043006132455830410347347366749443391875914696853463689868589255396999080744263742446990724411234048752746367583944442407211103480380744017726854260284474483207293837568831889086964670544454851385161376346563527646901602415120987676509507754282000563696985342184759028271943704865772825067457972713747026823766176237559838401148678716659056505689389401188052087149351515197045253169098775858759898171302840308635005600407938196005355504746680675070535310120468710156718138361915031042425116950588563462225953251545638003700548814058291847828309795078777014075721097570078260544167770902371642110649946764317928820963352665647649284424654193406471237460776255654371715848575814060482767235378786505269808611603183851566998341562081578867029963434525744125891922091659679063077535235052525638070328362129147559445999115974972258746562420490461904427623807845943550729980515905308734058910069481905727150365871544471801997638851494112944222183547172084530623672755174561160804682263263660703959112317284295214338964962722435857477032531222832977023652914041768564976776623752411228089762354982282649382520286303937969028634099953494696412832481521844701592741654517996168558972006211644430025724125398215005803485031003703684544200436797235274184295840688019402752754102590410248754389851778241886593864354864150549641218549025327988622565027353341206018796828790137879200314047944825550297075687350146762909019176507238193719224404358382036994479477064347194079473507873057531513650898315879437206509132826917906047608559953530958897850114073996793383922902594434179450304877208765707007955263828623590297170182062309689501028419306599444875200293739205202905916085365070578416109274979214227433087228575950551136708759997068241552739964204927552687177055721934649203565359665011379918215931033970516720326846293429379900144129391970194001872693140277407723547875044358252803850270973884548742074088913745796808339403563499676715729271466458981301038812328837189254228914873475349388627382637914028626662529013154130211012267028228376600819668243216649786784140913220736632196522642369062723224405924191062081104357542732785490338752363184866656210977126893311164982802917507154971679666620789989458470728705757780329334314253634626197691321777886124193602360963561173011050838782807305455114932330009162649746081301162006818272019114354814366955736828904138379131620492398558910067932734860550864166388148416388697449121224623668840674909791743559408500481812324992186573850718874702957447160590893869229859954520961255366006301323086303400600087642286389192989149092091869010126073795663580485814841393139925572890796096466354633102011656398941244104740851591386670090966871144210970444215103678371061283482752251468487061148518924448599211868730437031244959468829515925375745784544800879156792012214423259211087783832093909366026327454800418604688275585904320702282073716734042757374609359826965617286463519867469383271148799436042856562436073666646567922483355149276858259293064340260942446906559139531132113757092216256704968400464351690398225452131127429513023028453277704225396871589446263950560357089984724427005378440679827662202107910749139307064384359227478496290100068361986350842025324081692563139587026216663918729753232658598751174007875240406558245000563664204357916431156560017933817578000037163169712137721470276725556898150526075326810141027704706455232244122816697937042080230684745150533179072723670995275837308284334464568480553716952235702504075114743156623876290868520879851986778290479456818090834774702198282398676767737413735395550268561115975029061695385329063537586161556420740310371094547765658844151065937863585843683684954569499152017326753361399302409062689884761276478266779259331221415651478237067119001233758674511290507922290718302323996132731327222502967169845740796754609605178998369273410325920096707999583112293486543155908954383131886050719251869735593012239495854323323784756439162787875789702792453669567825412767982760486110840028148489582380744124467009046685366991097842929567285677417685297087013970428719095239228037871052390222301015128931757105555949452984865479508732590519585018966516145146653831956992037275670495461936189389230847673319063179019796413785879956743534962351148791372393868209142643557383724289617957638904581460378038550649086650322492618252676346220028922301625200059527296275373071213187427324489100221506448536942178443738411333492543471033006348189284228348026378713347437723341848261287615462840916771065040564008497337195703165149692329524755167662529889922710401374559295341639105858797000074020865037281807309512684276374119975934352096832359120332843496719151085765460577386954877803939947374240440532497127871839645189834345980084902377436436402055256674643152238900473232410990111535671908686723576487924753494222664476212186751980526068963661760947848913093938268430348294035044284657137519821273596877065433700350801409878720341540578328800393148922341905253277736464844808627821013718558488155369406021448518692000347301628017346321466629933599028187529031834362455804359979004228936681126520178524070327290176806603798097174472238894822627562373976255591727307088525939208973435784846597460993333055401004747745336746671529537984198101343400224332367138351895897999202526753861319350854591036197080304854792951104919679471806992092197170757102595106022102911857065646733280933114533618199873463755008814118960647207702976936057575571555574574975684713069900961386469067868162888296031925525540834159530238106399687001238480417455016885635560653413667601658591074203623321506827388250830517190978376672595707927194604440998295255611417648493761874753418423925556037073344823915230014837002306648859448217624364238236580529141672856510511281807247472667516621991593303074218478424689230854833342802692023687025241687502520142210582806697799720046277305995579821778490757931327280936491323599041851526018720935569713939961759182657190632435379005478433836040610373365065732888210837799940821031823191374893193367712580310540196429857106650958900184186100692227855252597308150301418968433234235452832933162076709595637892522040287526242843141064409686520201640267617129025755971649908848854690986071120493719176586808847776052197166188918539746164628940359861262705390873990563901820267946561116196629544538990757516650612072720786603582909097086142316456680436196143681395606917281548773854199213876469633851508124532569286327280711258918200849951906099305807937902546793016223161185678693578212188981724935014916761622626537502074838175890978938694053590060045979865115346129238288437264986518770270219361969188118600155327216542492665416086026426634706547318637193836040562891999654847784470919653352074462511727973132463724909425941203437691374151357348402056178061489556269447103718519821008273083045417249345658288095940756648804213993042969484571277460631358610550325450302016197133675891161788350083886354655202334595594100298556204087048008812633381706949078965251788211786875888181459418854750227825628687822522925389342524027384592763936693349645575214475271328606088313661351659401952977454921067847705544325374783550893452628496629510362270613313760335095824290094648908246244860608172639135256645344579193746670863435726231837890815617333123924140493215887295335947838988348023257187868328932428165202183471673675065468265635840402377272989207362134376725549669444420104558813114805085066062697665167228603807810226499807065809788895894465120684304208700011326869518931443878137660202157187732765192638673673383736290632537189057030142272891009247182138314506121195964907653845417579060688323183691943664883706268811804073709381876951181944034029499439019254488016334945033287016384132259976029385302279511537509507688637521705845886069301797561270750546854923108654082715312628693618312044135486553806860659276126216603165172448941051620606387935588135808831514054522510526543173658335676053757550239304559200950402679498337170030511513231745415319767918725493084270867751356445293172965718189481095483055644656133217440982738405274280647969663129701315017956571425076926468983678811734191095070698416929749876243607256752368649705521888069848032193716003317240679892094245789010959121077633746890003699060764041189909423144685130624797116081216425130007262576850083585441662875789060107127524755315569488088334585234734174655435937741364907789024740734309903791412670374803403856931272651766451000369906335162818632937708358625287495230250683472733833339698074191291873061362339702317520748855598368514828700573257064897283670661980197951937712214524466883248701355266468755505469713262238351191793230908390415694922857237169282602138660872518670413250552743246606759626701010076525899273004958592642552837410560902040191075413857862224819667957904681295210333894230608009411276274292782334444993028795066620349230517796562138883664446079309377683252697217447248643353339875859895397469456489973463769124635728633630618746458619701352219810549645606778320407089750463552917521825998700367111174958688512532103945742705084382470760130886192818542234995245821578847412362150086680084120204681925038391346236691284140071720361742805500023503066260863795024472671130937021733632367158844166398655809399025325955889121444159913420722172161065596392114043438963388923971862528082020372236060963052154303549463638423739124670957037266957957392216819842457923461605458178899366686785463342472698049271995737961175507536552192584984830334802192943215569115328032981577875059635311192021957270149446330168915439785799606477292348116980484624356733080109318349190516840611405920567802903883310173198715630112974126418222447897542909140546244938217112007421465989242937021098614089906424649033943454541432194875238671012874610379236701687382839763786002212811810956538925662968822923592589831097802658377879667070218743700854622454160982868204915524536119682678351652450710827728221954296201884123151278851535620457077830328539668600979341754507319400953891535645126167531114369535986011548818946315788980487996879984136870407628821736966816085053487753890332888313223424773279194275005384841802575270187375075187160725366926070875054777116286526028085761774197125496492569644410157727466829053735818794228164241024649262137856180620775259629291368707601107719677426571904253025696697602347722485540217813228940951114703850781900334140601675052970010311184770838630254538507889661913319037259954849284909823507252174834891385680304606229345553824189249468844075214488548590812704024517551820280064129270350172390578891792405640684317200178059371164576323601924246268988648474775283656378834252190842280613353218385134032872443325190706314632246304929749015259298491734101749191937627105263890637531121280413949998857245709177595023818046290563335389615076665588952908703327312150432585873518765821983406826292422256376627573660144340533689392993104259456750534370046780320289644160673862901393806696512505560369117064298686337655367174687583944818404538118789326235247172120753407793655582192411316022773841505571028678466688388982923665162404242830772933706761442035841851362779512698158988251140691790293949018721421908120177542357807845620335070314711839548531210379429475699058114268419603733506827053408590516700077941809731394616616232918758528706627906024733661381724204537968683675343214230584442370983951226676796207939157192598676627089784408003929097011530423274943562898193568523365430129902045356515838599672234205764908936018294818935361338364012480704506669995946386591438832412831840922727458305874564793457209971785411568050978237487533365629047909541628263514052524577245734221568471189601728632445361842628339938877133508179976885029527026091379491178886826090498722191795163698244795664217549713475263237995231929622548627076140088706567748319347114730769053989851934633462446059033684819132768635073211517812668782841507846710101116824733922352973620819701522072320454690207436765999338425016968667576654291237356266278362694775019720041783164040275002828301186031218511019445399221621484454653900368419453746926802661794410421070895618107980566411989541909778879219502229590180116754161398014905377882026077103683254881746421900052441340673492281556335431729554564163178324874354742301015423025765183963188469437461697416987416580552724505115378517057893070717221681466557571289379008104798181243981817808073156945994056188054147027184413996965668225695787341735516659265436304657396795484641040955447721715834782371725018643267199970794034966859611311715122057344694389950522720507500339997784555012352158133443296648886232890167425756550266756752780726834803898646656938916765260033696131358950960893687078491473917554229396937104232805411909690287733769502340036038116451821003871517577599324113521680373390334564720581907289221973135341006798978408493760672940881926470569346779408696275243204077033501135499222036114161786026862341808246153660135539449046856359571099014949076259081143459733450904562317985667595520643943253746323067529855147424003478499488879354786807691654289839703381527593814791555927202852626269804405056161423596797328316779783034897994388142426635588833059575223946743631077802525503640537063255776227040221899487270287289461614181603574645513398781076001968340121151856539962110565498439333915412580994727945052219868500215645765605226239516652607346222462462712177172142999057432010952030265353439857005499374555530002737069631652769778924981683832368023471019345586839138815042423187907611625503759704979976533467733377720486447435023909478329104156163577847537178836398633383259822585554200524719095958047328669436305034658544546619825335353967919550305268493602080358445268286300115787464762203667091503118799906475179821965497828783192762938252316839419996658655647328713117798970057918291039250944574649532246140950194761734451405890349216430686211408677926555344305210886616395080070011086596418513199380022212782619624462621254771785789505913512718406448723108383524887699815669676389971974475093805492303960726623233405032570110493588648294871597681990972366749298225621377455566854908298390263516390389336413350143988717665507883471157047163824536946641573627835911146911979335907380256277402007776315994961861908318149948446295621110641330613420138801411351855270212215124070667104485250446290419555369338055314926424907257455885694820093803353288964679136585556967092209000694566857410032538384955134211475424845499609905692118075565598785046618695124214085711338357098502328001082580670034032297216851017659121764639650821713863065839398243797525018672089649797883614750615950663517670920635559118267967904158700799696686898104300116919967077103781284184378258544410029937140141476992942011599512926359234355829571245140618282324222805672030748155684168739401225803220238237543202903393447052051318263170391893181363562956195611969904362992066254263354117430109931842646326139289820649967029538904093840308201940254657921693790982310851784755257090029531651363466177012036697241145875934294847120793538356992719247802147207698624510937085309998884859545982317536384385801740623228237432266057242602632922614612779983746183718793606589539579546372695164610904536940951754856739921276397022405429336511404922783276645038456084820821422117437094290512140197258677621405748061379828398190270807968263260931989104151759884493238967476045117931420753432632555698662445380131749744258202195728310239290900670181835408671890257136744518356750669590575648505978742689499728878506366864477388371235940257511977766883058804463184366215087008636980414598890209522499852213183950992951563102596117203841482955238739872889366636720754567281818552191064884629414826761208119824510044140089108205173482041990336240274801147636531280790571975139087113272114805572551027153039413098320855256029851859262652423397398935736327487583616307495299688070024143179041700981290099493330303006512775395797937812065803923558549289849172819275585970410109172933878889564461986966712301745275817615870457584614017570352165214928911308601755557847460889863224094197144551734487971438833413926528660283616031809993215263952326987327483853178210363025235378290779968526222724997932919159738581381196280567724896741407836397242256201410824863369116897113253138630658045382541761884559441251873886141303486959131275214843685399872512227170323700957912740246090470118954075463402963100300018811183799791944605406444465944196316904768973261953535152671624850282980987170467146839087586275476376433460768845787651541212775338128028150026404768962908636235969287156644914919624819679529864033945065728624278152885787663432271581851189751019629707930588423750503412294430809475745561836989424214931144676778535002343156486937119292844154866271778812943611134502378769897440039879872519655088591003759312189536074577406284224980034322413092491266110915921127174117005737316505193024227302360724821227323260526363852171065095813249380455430910596723858928741664312576616702892404534841366136940408353384307093856907191686950906358576583467377521054335672660656672466128644823104476447024204958472433598346233526566541009364867885655718659374765532702656577361327582522213811176549392035596807273925693480201156471154227146860281984523400428241396528166603099189052580985481449819599232859306917651781438269853234998686721295282558133698165513614475078107286579350113808020806857561337081336055756088280411481032791830289317488598711484622700970668110906686069505651575605522778845629264709052611910821093776817684542070843987189831837385692352484407501686340510575866085532142485634851866538823884209901229272066256104859337661558950792246863037208937280146095603734296249884711418778089035746791238798876662885706114400889265808550178831914667608290586591674725214553024841590812559215483675356362153028895578596513875363774242895532655843928362661202656271722954888624218368503840590565752106258910037574521603600052253751281564043866365368691342852138891090737873351259795792350961618892534125625733288154904351665030154131438387605820089489193416869578769154567188863182210708864564883299538546230942347612635325727301499968207498293234214774795369642952780914429346387204746964245114844093874936657142212073996862311937079377771774165597478545069839057049508816185764419123737687973219615978258037421677806883700505718040393650224812981980082282936474697876671791316418625716128336751150930392915856869693955193615653477811483127584176401623739043838662866889529296289676224083634511334858997785126466704544555484162526975059108199160016944230298237710305856328532707947833253862751888261512745522316704584149720314062722544993341916054910771739631814034486246788561267812593208977668799408498298666993714651842871996563828256242113487648261261584642934395394296184797536514847894838393253357099973020791571460650336447665090924447594811296770911758622497610581731651439996338557482491649455764234608613334880032291823495352859741748862238465322337538504862504252538235261146201928421244220440348039789112452122083457405998638077252791579598971601583278956062275726522766417203367058127642844019501016754646562913329614925612709014218127452609231359573760238713951544547603848492276714227384515323132356771098835942991652100734753187694218975454584685831068537606801589980923902925669288996436394331960987001911521966223040547475108305459417639062928440603544188206530430453512674819189551767675593600981002300354821313167600512020364084576602731511210757414142211481620765661370917289813080642657214676322055833439762759744057344692998012437813052499695066252492406809785947518362501102668963051475383425596104627231265497180349823582157410400501142797823066301445852073752846858855114004302020689017162851960102527556538803702201577923141274671975456774813680575991587514633191440353183430999332660439193304944033208892897354561186406625497237416945482957710505528236218925665883245196357278782004505641908535536740422182331036997427848073959569623517103556964422590202000830182595928852140166037926367621102720715408456955697046734198268420586650174564887028254057669277533034410349529942780949147703582727110534576751727305564207406638764202432298716896371588187721523244124447631651319486422017397818606588243202020550866562486904503519745241197448897649079704192013583860288412427055995584960221314666708295892507284322750437945320285704551343109920908068203537050040990721714393650225593141598283820676987349619750733720995520816187070205837276890905913753910339483330399916860923012008454581423169201031862756287804577138622744187991124983876246092760023627543906852677044753508995322823396399257244602089973771321383572988290969747426028568401010851572342403612060460319125643973816526415805666719975731354758369606349451883237716705340770531604896838164251933140746382682829567834678108538508686652941486610382898959290089798626528550276548328997000956731817184767605893918184915235008809690820244877821500577398332068020254250542740716098980257759043949679781138620367547756596824349457552265295319448978122829759050636254405206113711392201883853123436402138808723018547720905512499039138892392454209093084334666049017044961439592127547730104485433133440420393726930967498276213657084591675449675201913753417475967958392245880336029032637355029033773962097820749596773489581124829046837622729976300241998807216382321312311297375129573742182743261543815574323979414953845283137298222573682172461469349120688627556496744878723743681762221446791330381750868289461404035292273350600755550455315236980462462523833023787625513633208870349115940718605035611302938194783138047691935199898182974676782978552277305108501245517515204534618719221380004805571940539047302953432460117208686038491368493841946365300929309015685581303452222132534440620424375111398915322200822677418221689037830050268191683195805006562291415781862435933136697292176813400265365770025908273468217468269056763960549319467094787478628523736977723459333329426817998786188974767566726584776921803023218446337799509204612963423951368120339699958004550603608152531692878233540493117497936383322833173905858992661808497155183005423366998079505534612505392251127389977922399797309454991631682301544147652962037440283206808391265642550189344292975682688377547390578081738325604608486337976602383235287149195640471750460125502359546961473796114604047325249279423048344766098233129105618217848954265110757970554710668691685958881162636188401355340551371693579221741532190789942567716181776947126622213523506026171774355260649161119053142015031147669463387232725213437950430385716466059471404965915242003542887332169501329842179964778727938162237204807245854301774133082589729292785310949703250251481508551126717103519349224575647543661191364853068840854568153196862445268545236899069937908319952475887126418750837482677537971422386004245456575839439217478226589866363362984659704814656485779582164110695624377111953471891643291766968434601878518487791562762573149415751279210632938341346654185514350368587000014511009744541044609688676082738732492660788462521626639737279284305389203909025415322027673718654230192210907975904712593798809791300480103632713035215304734867684968100336465030373175554288062038680756454599842142494246364688557249990819822447691477566979078959563112034711052370605612972403476623138836733783445743343882640059863201789718376122614085436972470986143336066615880895017256603876893517179456802897356921663258211588801818940077158126747910355572863375791069504564926239776043565802203212330975132199567795072813978943681578640866291193083596712367225749268590420590284702438048063585633940784385106511081584669499330630853847499654824330575413118792347566629438495295159127754123745871133548287954015275140837821976662934998276375678840302555712394288232941921474057574266939079532116285451287866540614585586340278579778361435724732048611611080126501182494053013588296407981865646496269142611565300409430231938327249742915843740123007720207074504566468064928624409114741792315724693369729731524881950592477554089608561993294019425902486863212199438153262111734053085363247195085140016245135829547001973105703858317115079083548682770697419464875666822655021269913374779636238092282341322732426946874627565615842672564096018530691852379719771336632771103266759134260424210770050767736705157653026965492914013547313340817099816440261373229058596358775346883937099535735187036007668054055791628204152395404340928875601951521102550760298827589783471208070429572984575674138386771966485916904368444767292659024278147785133582405658965714128868392336502628900708165009579825082296104012057642270720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.13s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:41:27 2006 Input: wtf Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'wtf' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:40:18 2006 Input: factorial(4) Output: _3 = 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:39:36 2006 Input: factor(12309234092354234098723497802403509887752738949546098243598723450984256098345) 2*3*5*7*11*13*17*19*23*29*31*37*41*43 factor(13082761331670030) Output: _3 = 3^3 * 5 * 31 * 383 * 547 * 3019 * 1560877 * 1597381 * 9512687 * 27236687 * 29175271 * 1784081587 * 138299962629014764483 _4 = 13082761331670030 _5 = 2 * 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23 * 29 * 31 * 37 * 41 * 43 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:39:28 2006 Input: factor(12309234092354234098723497802403509887752738949546098243598723450984256098345) 2*3*5*7*11*13*17*19*23*29*31*37*41*43 13082761331670030 Output: _3 = 3^3 * 5 * 31 * 383 * 547 * 3019 * 1560877 * 1597381 * 9512687 * 27236687 * 29175271 * 1784081587 * 138299962629014764483 _4 = 13082761331670030 _5 = 13082761331670030 Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:39:16 2006 Input: factor(12309234092354234098723497802403509887752738949546098243598723450984256098345) 2*3*5*7*11*13*17*19*23*29*31*37*41*43 Output: _3 = 3^3 * 5 * 31 * 383 * 547 * 3019 * 1560877 * 1597381 * 9512687 * 27236687 * 29175271 * 1784081587 * 138299962629014764483 _4 = 13082761331670030 Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.07s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:38:27 2006 Input: factor(12309234092354234098723497802403509887752738949546098243598723450984256098345) Output: _3 = 3^3 * 5 * 31 * 383 * 547 * 3019 * 1560877 * 1597381 * 9512687 * 27236687 * 29175271 * 1784081587 * 138299962629014764483 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:37:58 2006 Input: factor(123092340923542340987234978024035098877527389495460982435987234509872340984256098345) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 9325 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '128.95.' ************** SAGE ***************** Host 128.95.47.144 (128.95.47.144) Time: Mon Jun 26 15:37:40 2006 Input: A = maxima("A: matrix ([1, -4], [1, -1])") A.eigenvectors() Output: _4 = [[[ - sqrt(3)*%i,sqrt(3)*%i],[1,1]],[1,(sqrt(3)*%i + 1)/4],[1, - (sqrt(3)*%i - 1)/4]] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.80s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:37:00 2006 Input: factor(12309234092354234098723497802403509887752738949) Output: _3 = 3 * 120157 * 669857 * 270005011 * 188802080332518360797158897 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.12s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:36:42 2006 Input: factor(123092340923542340987234978024035098) Output: _3 = 2 * 3^2 * 6838463384641241165957498779113061 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:35:58 2006 Input: factor(12309234092354234) Output: _3 = 2 * 7 * 879231006596731 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:35:17 2006 Input: 43^1111 Output: _3 = 607371135656277995430959818511201636681707479727941209445905883231820636840558511354047297318718074891273086617200732800897890093037499003751675687169247524072173404905910448447148012327094326827236228005960966586043325728551834943285549655091750185769064731627446668896540224696092021480632659800898423272479596246530128263292114431168832042305702148622334038262806421255196377718607371119654581916237013207740426101287501016951207659783041329245156016425609672628895988326676037033470463550889052442799569431906794588187455689655724348621000710267990226326211271703341937599514427702701190346918319753921211324515390178487969937706864932926664524618920126595663549998007842906199589222024273868318000148891355408206867544356584630650943293546232397453941892869398517495239027256533618670473911274041760301229940190280837952714759404247997516636574759702107858872546403354208574315299708763429367879959700514796717294282777338269947490130310216264612055479520834570746220814343739628189802287100011296910644457726829736113182856090509189192350494107282161381362512422983677632818012766035123558067803877355492614675703662579489946247476674437224333467094121459408012163608668479082723653843508802538040763832519043290639911993819113403043939331368173421946130088694720198157930902191428606203547412198879405619599955663408551311923475139042718161423691964241360828320634260840969477212045565582410710906920677158216123350582037623055833995554507180970072684153211137605186501893256491015775080379019082033321543589038618755764105317717935704546073147717367846400398662872828924156712573321903698361460741446749804585506684805890263114268397786067823068832563310261543032857093540499424732083455805088432219773532282073251849618053237422835605660939210566441372388732546073374602823419761210935747547879858475412707 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.126 (128.95.47.126) Time: Mon Jun 26 15:35:04 2006 Input: 42^43 Output: _3 = 6305499376902456038984422830898687228190014763887028643907528386674688 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.120 (128.95.47.120) Time: Mon Jun 26 15:34:27 2006 Input: factorial(328) Output: _3 = 2601164799285135015713462792216859365922728337003296648484607341449793570538921204123346546604825198830200401439076319907972776156775951616953285765085526320207381229850681601218032280696970644359053190025838344593632835070575130151679200880098163898808152799965239413055598109705894816740819256972491710169317639960336343624454722800561899542624203290529423983492223743367073135726231559026440745150943993849629516186856327057554166532158581987203989577704365425996133720048466773886597039619355669015852553255185221992310353657380715196561858034226208494762735561184487312227478164670578282678084383539200000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.119 (128.95.47.119) Time: Mon Jun 26 15:34:16 2006 Input: factorial(1000003213) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 8760 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 26 15:34:06 2006 Input: n Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.137 (128.95.47.137) Time: Mon Jun 26 15:34:01 2006 Input: factorial(1000) factorial(10000) factorial(100) factorial(34) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 _4 = 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 _5 = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 _6 = 295232799039604140847618609643520000000 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 26 15:33:53 2006 Input: time n=42^42 Output: CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s Wall time: 0.00 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.131 (128.95.47.131) Time: Mon Jun 26 15:33:50 2006 Input: factorial(500) Output: _3 = 1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.136 (128.95.47.136) Time: Mon Jun 26 15:33:49 2006 Input: 1000! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1000)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.145 (128.95.47.145) Time: Mon Jun 26 15:33:44 2006 Input: log(n,10) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.143 (128.95.47.143) Time: Mon Jun 26 15:33:41 2006 Input: factorial(83472) Output: _3 = 1932602311462036331119069890766415201278082460440911591491848461223982619305349512565797709901791009295520794092141725578355234243024918979107451879723588105302686717005572646095906074087341239584230326587106337672426499264460346204081894243538595893814385683935279609003797533751302733594538568257426669351291852028203180214152813189284701916391342263600825682024723632272629923061626749824807361392627088375664278415865570910649775232440081419291254082947580665106150850087059873064708403276603418383371949968356556748393914278293951834616035357629185369742452263575860324891375178404745977097346448531150953603364545769250344128043627481692186688531406128709189071699793052878538917738078576945609276490719134028483108211468227912265893466992352353755805502605255238587337797968765105392759135350299315466028123552696286622117665550298096588623292428301451089295089463658529587945726393575994859042779555935029136229220900898745621149988444905595782448710149761565257588399941573328246058728896734441383257916996695569882059432338180839332657613183779905278530901056741609711013488904208079624629880794516251159325274579450448220720334488827415085017081736025169952910410481173567311913637881414388496979335308414388566335889051285377397958106457010157083216414222735724944431142389682016646300182697919950468078504832744723525306229348976499082078251824727015237292578843871523107125203850276937383631866363684842354687247432199348156188025118859869526739723424576605874284343930662256821222287553418614200000328866877356320531021052471816823062862201017051848543198228321855638363972956916822694485527889259730727134784826324951971051373236400993934435258243664328744836272129364869028479677632915336813095930405513815102214797126688520353127774469310545531255454287013919969655771434066729428791862417207658798438260230371842499070007681268033729654368783682539204052496947497480568673886862960833192884099368597873273609223331144278123836051455839529508465433412964327187801056824626824643934897058267513187087466674968279111086744826609970841299529718596490425377180466709200660621845264201377412631608422822366882540909161478952614685041532421509513827120714815177499104549218563547818908747822024256872195262763909861200420108767029697245987089413236634705714277571136837210006988180499392511299195799192491095144676288270833388322291456216984232804982279701944938425816071009421381641017055826670888262263313936035922544592965740552275114508227786808057418576016721671391833285825060704093203320259662101848102769261970303841549234550343819409678628972059246232107228850135601363023621380651147442742085037369131823864181142076107130189168804144404686516709127929571199686190440150830682101996667516436308139915930657920002325351359596763863172953887853547706686183334892935398207831770858270209420949709250989818213960517329772915776900045637729015078071465889985764324156462319719004129489735622931137685965940781346737363338986696845607868772218722963416494942342774779271906106348270010406028699403760771619046902122821776205899933980270268412900934580004216822940760495420619166963552477126849926596205434563584754399537095267444132018674590572897697378941544390192753829892201162844929039954133521279545490015069155864269996408990939281242660098726120017155870681674698751869050052183478884675687195191115652518047304787869568152854602948391616394503887317516496561663264857006981328240951356871065411236390836795625578044419980175333060176202537626461559122377075183343310585690108800558337976236369433593213306582872310094122735002563575474638187988203117562040706910527939158035757134595913147071087646737824137679879270938519081743150224043642687856868256503584892626863272606502215333815492107150012050696969230444651973356454899231583781397993611523890925823142343526002242008402120465207893119048116756932471689169940780886732190585610541738427474190822221162581787378890367913889354503612830757089173178432410742470785548149214621872105402073513667351845252909811934739250721389061383763471323798602063364528202654445467927410884167431296615376398241196671152705634827663920761896234759374515141226361095583133275393089412752054790834950863728309926298017698675717829626326107865247371557983028421148161881268120552330212902812952670748512205047953270459068490044756811094698790588892187761400433904715645019653239149184042018394104629057394435871166648823172048461024407757255899980233703118273985935098164948272329066894551674572530661429137755003971288745709749397616544425294060205689746339489315956535389413513242593537432929010383234193186230587971551178926092159596313792431108302936267530476547413531165815223131985369638165085497457268350575184969276939095254617065180520622027615497273006948380245584146610877034379547814058721813986859589999950290358445687367780027458937504590540093703235193879701297911736248600370038424820141069238891206593399410498404321901756634448751328998844949492383364267774978169194457804481064988842259180978550118898038391510263147662284216975908669170568094308216299063136622092328694662476446471237169845768702933497195474093144050672605662411217116492648248358983907198660579353966953212732316550300413176680769018245955575358635948019548559556945611470884212648339444789104820111053341986116919082625974642018184780389637763483148806759689136191222510013485363023098658862897171072679313857787700143615759837005515158220443224678092111313466469306053304699162103772625110024396322968087515371638907880654383400824543161159053792200264534668817563570498935721529114577835870863066372050844895052362566818614720462965141990482033885980853191583249282904892188987745778768837652551227997521116656214302197181294670639809880651413963101781723745283668036714410619359633219634307449994268406580228343918872362998559875509896247196890419049983261012751797688170690584456539028690443531772510907774646619026559321277631768500224113720547564242644884092435002324322689790075769591575263484800955679427035004830180661976884646312722120152586794104717284717197417944753521661801829126406827317798706186111413547051843829728016253204667623845731605154508655918403761967757538917711112375465582531321169601813524826183243812304752423120018628440914584753096239953541624140133183427452387740157081693712810407946794931348763288444622404437387248533253335890390489530204714184921564115695031711320465236488401249983518054257555855729523691532896874285780578712642666775558311187685972833381522235560140251329317179452951043150415078834295426090202157730930795418332099203384984307508734615678236285411108777810853256550402028694878330762549767893617806764592992050531506634736157240627995613033277286088316974228558371571724272627615290033813808589982923714446949556618154598679223223388558976935490803121899377855425375795736565165073589366379639389925771143165426333221595354519861204604740300476271677926548574027792474561757242319202608020107372554866400178315225653229367708967725044553803524339656547581630246014324895607550130981009112644393035883298354059807686968905545666889011451394500488477617770556729963418713110353297887041224165530045004002842021425097758974588393270004122126449531203016296940698379587915982893160581530941620292799672442527806765955256774524682487163748410516164523588199870685234266980658936037654579776042701709395091955917200561326495779967665285155419524711707774999273968345730634543460494462365952678423211088772702966266878183007052618076365006524179656653427074559487666384931791399466254498352939341452820819749871499201396770173468312646556628551507361095933989149220865368011676042524117017633267735912980030643950101044584704194480855651052494850051532657471997794901332770836905428088976877803145189487282992291228305050680908790201149910362564319201571256564457662196660873107513980417021656358247051538387737374222508791690577938372280673078461237836088478300543831768503714866006720558366452661515449367741374304252652523730451322947908010542428510649916336891812693590209442877678616417888837432450353871970252490876993705801735065001737027866079533600648259764062372734542909577488921464153642274464546808688623398917916572561656911104755643745505193217753297395029444660917081694190716104331949082178041545708946853534212482023225690157644854134113493164468750865072464390075040436879434004700325110202409317510943405029886231562861002730197833452238904379957576068523900108306794679436850325293223724947606807385968631800281465623350146403911767591165371120400523621367155759431968199589885662446231831693753312489985544176901056505992343105331935620948748044607726955245307577050118163491653312885679278938390504832143788845074022053816886189541310563976054767047271123655204496773458255757993827720300984470325600732506440886320036089692032151437464860434952705283489453859675804782164788172584851588002341119685126578532277749705445362497408846360393486336137989216287801017092532618744107496705459274623685765943936377672292059178714166778092171966148010489218727221537515867042804852902752613755979373584141960269802569921800559406305610738637189311172102643950167332839318989004361972299692138663139029022041030982965421573249484217286186166843578793892653104985449785502885603158254481349537098771625981642074674409426892856334485709380747007992585745257797988371614097311913426576437279052865136074303798799002823971530139630398705382182146385619111314541627547899958200967653308851642702395301616162119876404040544230064372998802914738974070757817692901073467694446068743169472782586059401709578662339945277566755749098113445124262177464489788225590405703281145431166549423274758415491443080383648840552845150809292121909828525547732724985590831838551554470972702121349386421406631656191193518791281869674221981480163815239414475438186688097686019980060965231219690674302605103994880590052078174853228764218747513450105548498831857537685663374471988633364585613873320043670069859172183317855192843337629037535274198880532316309193063837207853991050144503081663871493672797323495527504834129881292733935031491177024973620869830800235199268281886976626701445108665843638597251266649609988036011741727341929228414671772384967109282585178069023961634931178197966594667508750828387282126530775492889473883788729331372097573186936056589697574822484138178808628347686213868267608991524708634213316526378694004951332074914054669240098342954576963048769053865459976039449577490534555994548579121007588394740857604495647151502068766085821498980735711810503188644738441645172864192818674362319698068248280869285784365292314548385318309050911931383625109236081053950180533356411410710330200265591407399657617414781311254376931405480806010813670381361042481944828780489703435888699628952712594245776089233279386423466487955991136888867545068650814492841334634921709233448926927712451215233803348293497451834673834986991401392939994002620207319657073262261666009751959395903802910174492806538074014955951153923570254702125600289123696758400472015612801544347396783746853738908925984241924149723556247964941462073332205096159024504133772070148158770968172084824980023691082433635360606906100083420212004476784468941307689275129722380255240596613234425691338150293117046449578881160434838139830339030241364622695236526246890709546405241491068849564955487373765195204785715680880796741565126294417906679589023442144194778781478952225099535311914846366422322388437690054925806923651882897677532265342043660822100596677960289022037970703775286301843444602643558942465983820558841679217023595086030293146948180862664413799501693098205618068564612306753447420747401965809641633183399974448453439841145920436814740341207206051447404636987711311170913899124366091644837063983601934468698089919404997085856667977375140392669728390183372447508314461546586389222270755527861941320094171505995317529209150175182359643615842120791981830362691734147386467337132974906296228624171350323095735527738029296591662700822677408404434482899013361366555777708463097941004931109491823309632749495585656702010750470477488444658892193610367728247094202529022651754257503512438898448895582477108693015008301085402162858842521149611619500411021363623408896904882820438359265398744530516628330836848977830575517116367697847068397488915001495713452324107556952432184502653595641054870242324591456778717940809518914511662241626610190548888917606488266631450503799583415203597635891464429170913208280001521368779835899616004832566853151500360769362128000458380693435523438452083933553283435794981886228852364741004003221997272306335593182385041458758672742226313992010939134791237540596452942563445749752786940642945531132991931618071256810720891545446006335257259613726382210649165651323274014707342199163246342464539907786525410319884522554251421345029330852518549464175357533685199234339804974413981877677959367625706177392001758964270162519252456101666943286294082268362335775303194536096446032010997557719070315326843347016000753463176104526765407165791279774707451174139031687359211398928484033196214107739920734080358661795485941156435085728375687092394252520131750652344382712190082560579080521112881646069941529294869143161284614327006494784580380557070758388393445535441918486429955281145175056371258782560807185949103683656266182998513982651158352964426583642179352115261898717873391733013974324933773808080041671551868705907419242621407597832542444037504493239301977624661030515725336336143716151702005917512605062031910310759818471579724110414233791227401267103976368216301781440483148396076929217835396938557257560929518726674799252310464533274451945168924515561335146891041610720019503482343490252497115932371539354543353893279757353875081689122889671830221671603348435665368771319244839360259413063602256350611585645383555833046259858442831629343997859714964630876853631441768383649784875260570402885731229111456478479413310990481299013655305632486758463263313128158754401355574400710210328358171291563626332711958919073473002362148288744837203617171505473829428131937887368365039093722303030470657291251863737729088541056267905975712667174274581806974073051219677311914884772184379120272697402197201077180013843127884062029644848380409322714907800755438196469957809875458902999354272290061453263824013611728621585674981601298332823655580501442508422487613048595974171271852106825305252258953970425889476155549890163057137603046416374337832172745126643345506453445237882540114250066052696165003662932381591825553655434869911880392278467134920043623989294150042849528794187987174622415920391381502022141734602498942747584361488319326279065211513546417891092684815819702257009049539970732449111172607982819762158048477758615968972160247166339998337077437689036256689443049385146403375199998092702261945161528378791401455389029754407540658226208835191453478844498739640969023417126742865890745643634438710683956898367123520304934965096059585202691721402505039988085259052323582955056285966435289966552375864318915186801891423031389482577790512077462864274364307055479677944098370416231950576210200965462640608350344171802573783046902937173393714103573166619918196373793731395395848168878506507589283956657040693706655469761404712254961983990108213485195738721252579967702683348447952168796539689291850699442176219254017712235160173174828079056461432779511037622854174613638348115941011393675810591630846436293251206803234583727757628249439907218004320704218225833014721175533432826704071982802340355062642694864586283568040693385393512017448725871747322798455566074183968689952665700223562340231510646846351143317889902467758968853916435446481518180579520758906059958521467259991755839680252574771163654217739114896801616311559651592324087070605924164161537458985394887666928102348469315170989570893927928018962645329359247583493655832562675741970412736040136205282810882124719563514135575449245615349722211155241895210115141236633785302613107258801856977686085318070704866591742655977454713800048400934876455911900679044645845255892212936671207619449958925262313043963644270376622039043569218177791808191581236805074951742932929250750157122264541594729140413159902829298693982117692548803873584604521560383840238403323628693998255424310059653207481626305865632801412629262653317708737926197329612619533783008920830218422606066517845063443113191264258756276396342357721960972484403163955233426913331582315696235694779838075922062328030322996917398472191427162613658832942458726303110036591997651729753766957517150965364251803734241675261237221342003863020430820530613545716957791028233425487985539429810073039259349925687807282836524760868915679109628388770602504691888001488228585090670270690642077882088303875531417761599853185804645241342712658768094624450197396027418318488973257643505017452723925237449245187703931789725688730696041826120369248744487055050766918117653858979277358758785365836388203732103504156706196615452589964210966399900362890730721500827726462587633822922965038992978590221432751871577788312718701426135556812039534221116012142847953679391572910233290506541244986549045375577917390563021150265858421066263906375432525247884993596555576088183716997594431194881617628206526118714822380284068188599987015806387774504995005292226201139423942652641150940709644537977236540981603001504680573416034669834906907061710534669746668253213250984936578850209173716997511124629362813786950886173448346757922147653041301569298600686721331609755930993923181235174780431016147334572280276372206165167846016536125096788588923648922483317839830540104427026124626093473380108515546064416332439351520079640710479301060734299569245004249767031596566934046323919177728221796235832140392095132178512100557891801594635967544277305281342416495113699589585458335346269371307334005920208882462878438312399813904262290198698753213702408797336080030140910062518086744618686523837773705010603056363301440276413744107981927271151238075850396939049196661751944861133205624405890722790228003313422138766445310525057605299978805014212823842439576535273998239576834445994783525913241676255090243392983459090202131304032641009260074967397627573119075530799015563985787737766111395070448394365346855372953123581985438521782954020139730005175250932174736813474142068366232575324833358592702687387504291149414488246863563715351255965633195273948583657744801301647905435641144213947273279947443960556134318625946529574727769636838427097170761711960328871907015635474704074355168320834990542354834358030836284231233855844129912594555923875449804404392787118905366350172016549472100693319234219919728794677399500831247404323148465718567251159945541773254262601169229721602246352163520321941866621936912391213246471890210723834902103890942865026478240309149928164621838621722265359326570074081661202815147351822244792043577936648606148111994522106938537613974012537838541128066478799059222334499303384569453938112432553585125332899443343801278939333655567252680049423394992706000790170579041052187329110213590402404392234822229584878081558889353164897017179540372170940153747157148185777448222855495498492281109072741550082773024630745495874648053214123878354198754177808387283906923603203706095763787389202616714148441905020489841734537125023850856567983532961764070387646774183450521749980689062836740276263319568513426374162137949104896683148584538418129143284747530202966945280420802374188187475809778285620131510422732281342307438770135313286315679769055333572559703632467965693356289863732052500016323333845953352733799559025978558437694026572665080046694149992200370774800889025647829701340105623430778988409380285124348202689693473223409882098031484313127006563350336881915921693937680613146913718306249038725001611660141593691005425187546637514280882676759177701299180784392353932992311364304619293851280561082682845747546563695044090517507626595581112338120529180903516355613175361900035086426402808054525550655152722066710951206846452171009661236800175735919113726219035405189215350169537854992442199598934876845921503735476402650491051037593094915792045631896875817957831127200603047571912905201955444809631850129934330606190835823855143342153606109836120966129285990835402777989504610466735458800406015990852741744266014092551971017882095400574817571474987798275904662947366448689198413011610140026052454410385472340286411671851589050433216972316107899021179016098168761732971145500160452600762482625959954451721070016087972354794309572304673633305268007775255350291400547470374437475356994457062357186779494046233764359608605357207693857916873788435048750059109754687871275842140179845484460445891186499875839737758774695112054046523325739017508335553862554487109538320250125467267348801282023683486918629367950278587160711335244003115734086031291652339981578494683323438387060531194870247560983424624163355668011563177024931246073389916674896604631078510698489290880363864738426579583369433205058625746388929654724334419627327057371252278147014936194401505585017212370403420733288546741391421877558282939457297082933148074347071600091549121111581605675077279202322769904203422222170341348218262805848620046271666312699342154021106798845653432592407488605213196023175317580017639940582963758198685200096561836484039148186516847717466830811557905935321600513209079514733555129476135066305021589242682950524842140131987620174691668023957701639462467286116058364646725975697069220970282062009161500144923722725904386308532382441455660858371631201249110070850249902890789232229582486793847511704787441022250924759330176926823121516728477324500180424298111177160199214274121698643883537409737876470746940190134790404551711158938776156001048658599855555087854577179788856792553656761962897106608325593512375373187440246748759807700943665983507636974423542621433291393307761959560713047437941977501270798721507162607544471671167363673063118816838993235006378818282399722958278659761743701653865627809315912499836349660918503552426826108203667298522059504467745758352255507563233537783879913222766050370703818606459662300829880744155547870770926608990750394128964269283415030612969425002466430789851627992413197477813686464056128561155865905994205583915607732916852525362409012875676229765538049129997696235783009170725902988074284336822471462246522052554757599402795278395122212306608998307328713821916741277577776069685037712045667941332039830777038499616074234784571151520070838428417267931959360763530267397058662184977791278736339402645438042216472927398742916427345611582187175862940381378378691596942257530225236030148304231725688375214624558941383970082902615122190453058394624095099894203686899241614923707848408026997501931905803141680156205726405094137400853096371899755246865735043094134344343850464842692638714556930765561577946813105367616530490966382267304336808399396503331122065605386501658079537812394773901701378878240184690417518422568243730799165621044704970482274828426236097652882188266338512865852702787860581570199041673609634283181984517052683858478257754164824734016258915371897175690345802851005320695265963509620097174991112766505965834576590209623705224632339712250708027729664703495370493583582465798111504439002483568037950493574731299478484418811623337398674694513304789212201327825907797162355391432567338279620021649064875434123964997193940171394411901417622810802887596808261259493865380911795949142812383848149879833916179597017275350534202536405793022565152422353236570462791319049191637999892032906274594379382596284400430387158607587035569397909829447341216652123408831943777218744661998363541122137716212320771318612115418788822221205581655419129965178455160530936346856051031584230143028563467361037969035361870363100499398468602027777744109696640737851405965662633613947776862499835673065831543384456691083334363012119139229541951377265669053311344893047125119683207077644056796699539810388976181593555228113416177450951918415991476526001837704029489833087836248757408306377193505312224371429786872779058223639877958627013728237134507772353057043426301799897193892190206000794138658619799123884608625097253561298123337397195748065738469881126981268127866873144764955772307624005863532004882601935093377469887327969166966214200364568874421511031005816083482495128566530711845223639954058633123631482910259380780384750702769472243694143946550972655579801267387617013797641337570183307100478239258264320348762178862383055517258719822590927882631393402971293405217717419981865100165449700200984875538399292607775250498509442623950481676360745948808690865401985840753735816674106552508247890069233620842559438526417920096687173203710806211679076897917262392955276353934803667199377596037165061955012635427729378877473962770550121353700727109938957206396130554635280048521805679373049372769125717968140028019944339653916690798907159201280301043913070849396795736881386275354863548423716279096490284268971651303294616844112397466384731541215869550862991271162963592263566604658067991587848764197347594403386109411119583019105712757950224779606694429321520306202424737774610533446634900325499782332301178181024198976916692024201260328282670573410022820123500577759529641892795996128313787777239059433389957396036276998658256679954003129326595395731270762527659916761704983089964823727897914084247306731421929061888149013588362966044333412357465102725361483998243588153247810978326580942890103360026875770723934919614586808800420867944495840906571353024368752310214777822198802424880835894161484212365563571259277084467584979102855705965269383482346060388864847439936024812938109365462191387380929736338147353288922646349262575204093375457474509131912947258399414918205178380968772256514007395425275542508914405672943963848622928616591282449919651315563342598377611253329986063158056205948987090247617221205309624060145542261011660309583650302220495836710503008015454626879238513152182420968456410491180518318465300691200578900114891170679994719682711556907762424488086916505915339872681852847697659741488456573723586127441100819282515669219676869447218088057662898479923730873573891436712843646407288522603558236575402829224292896555410678497527662086744527482290296596375504167615720576412136218534267722589495458172380910087117039726546832775998315162405671123078032887642264072241076264428830437910829230404232202445713846845834427919314363325568310986422620828459725464613145437643745095960726042861836960251725107379828520371599225763065997878765018241319880719719019297675597525383817115183688061368928961943657518888178567135524600468698724859759099702292993912759256714025000545312771144646663895559592105477631663489709401334012330194348580718334075974263805961503007012083384990863743123628637292393221571846916958196526770313102066189139580884743027394943960302434989980425370214834104147962946365792672074828430546957004179912826722566878221099498982736742155721164907999956382123214996007099772915091377234795506334420542881597503680311453733063234645777396796270020922321225092016031996471802528313547206285563804357097821405108891089591675141050125233177393014567517940985566355716485224751010215189046928190697936010254688980077831318749263405006937459813557942563760710222838554382876789997089108380647056074576029352112771382480511468109339458391877182640220904915334652233062133479216706287303272112978895040794251878652159801015521523402043016647009975155722636444998759626904475235746405694772582251893669350871713054887886005112185317073005580015939847625842300142441160437805415235392230414473293446448644339954573911476295464177475234943174819048097201728317363036020280603706544522906760690618179706346846195950045055353216163955618808194102278329366798205027764362797330792246089191968236982398494689899995367154368780190615305087871047710073754939330208738910861954119620577407671394685077058525425044629798837202089918024207797652478894946399357673936292756570706262184699867629112531384915659473130323649072515311397378974902303060893142074891833827016981285462576974716962178520391214504005948857603285923456425102016328675821665587840825396292563440684476096009762724337376293899152889871374294988045324936851258687763929976815611164191744629898700050889335499552814859364486227892457076499535986435243581718012488019999618755761722737204539261454912732331163397386640154158879873951296342236014437570084043076598518704418291614802359257669436832743823047024718863935472431759676448217346717420467054218835033449097041827247540145369607658820668189807163801701284885009066903980718448930225527062730095877737541413968704425806466634328587000932113900292618500300281548468186975608475663693408394920215990937410560069480125227101906701534798501745047626356254476982465175340229568129014003770790928932562854911286185784796121538550545031733482272814230666376343583096245116423433927284848390323272142806579156710033777438570268379958575492335616572403557200262872021980810872017967350161010247955823107458833356299410308336058541690122767712899153611447802257310312267971601894561784981523910895708843104633793094519509518999605612653249168052933990665233948799522017514625549528701652405405580518250548045255887665849504719960159920586291540625056991982424285484346506110640189012737493559543550826562697489234366532890977464886532531180134110016687986926546504229487855996318999556142064144389701624331542317172666588661282560562995885555807010740337749553144146140910154287543025588043887799711754569752080909508982761775077916671122586348416803027457121112523281338864107918904048579020482585864075819707728793151424047466315515526710708825053510596926823485554466478691523372487691851207881892737102796183471327158206242259251378260666373746585365419840365730504691818246226826711758572408770051593137678325384164681572063848566426779132463642848262387547346935839774182303678236600120534379860942589473679299775906949442648510593978960875481278200660056436781508562375292368918355302183931389389830210263962176272826171283651456787056633460545267751582207130741637772110083736796359225800689188448936942609233532950073508657922175647410056019690714829327137579761454361226418069617463823348256763925331395459437968521651825105182466254262111567630236576697187199499543213763354303619812915506319628203808043891603426343971268068801417945394937195064465245307280875144939181546138447370279969737114210497850629986609226156812754907908904664018753239625879953264378159277961810468238753741972880370252697742896146478700295923708808159459954234948025867457582255849258827450886164715760825135754135480163604564345289197790920127735370797181873312435964717842553869260308184406594723374942554768281648582304928882254692204576511583159552966127153954797315472755462209902504995173924863584447618837481645387978254462445785429671858944577041423192649587376253579819324339260947324306700188275459662899365929891619932218736267461167778544101421153268556571833626209115076255431262729457684512046616877276259645357697081889047465783052382990270113980902887303084853488329935674102633704379277584416082971185176236174497834367526097000378508639315683111130094399914394942679643399924126419847213417697181469807674371756056375320187495733132451560580998617890681046765840820309998153783174678638629806083185750283356848034732873944836353421448680423840102825356107521123621028255966528421695221502732313613450467924904483112442014235074595033064597983202190961732712483895824343563633185722783598860327206840517557795068878395977622989678143769689063392472632919954445241707349192475945245521525145693714704841910394817887986500733257515886210294220312730436459388837725154494359823872776954420071613566902189174271582731883093804554391501691673195761710261670906823213111537168104380862919042122105973416556528161387896726679764869501350868738308486585776092154331179723329745596902720338169714286140414883618144508228210593303474141605573862835262346403036723773631381387126157166160966563311297078355047364178243231561285381056219721761572765188331352139631210143115268972316414865814587243712022443718691622584831870897173591697913220383777886039932621544606558887108476554589341713301491168267185968337686113043511784426702171238944539074819146370745069888237715175458584865238303607138953232239852750435997697327375541835617083652567712001738589126679113151928863749504318084610524619604711212644075445502580332234208035141678958980525159042879768578127737676695219286604588251167976024343366614883249962839117564196209015859514109922014962445136506591128941224807281158922249072188913741713422271664741164281380546959894616008986008324471055439346022231049016869830638737182586384067230172633523289609675395930072919286707174802683903117727211870786002860884090508324346485732535720500371131284849237034712323584692512378567280535847524176757862700574466686432228045540688762725667274392337987102069151471487061847176975200599839522192499343523801833746240050088552455083263466742326860332249495923984214148883755627987604564472326607450161463294346404027712950889462855133313421664533846553227561664920821285580737945871333719866693819242393208432315830359091683865292182167293749033292589656258879146383377842332678971575572927433295055296031294821409497100620351769373912266856224268393965781667235370022477202705021553442037767568822790464429714437531351807505813735580564576000039955626078820677060378076186025390061395819199145433270813156194473991102049433529888300827594106939072714230901114540581205239957033885716115041433596521517175627094590457992927772318139365214898858341341949253559324178363778753014668726833463613837704899422190458445620374041502214329935215858264770513423495399678153154658850193712765027334542571247868859794852481730011385185653678535420749556308195370752253854142803085043595647345696414477687631056624682828664133000868311470616909442322310937993904366503568158583695986011495282530307378822240129738812610979716843083157044784503533250896037801860309723983341459198419695591983348702905833730549128435983213659223353023565192370709449114450383472392582152511182517394120543796332426929093617640884894684152442365491922261031872092742830595746997627754170569541892698099664898756750389605564781806899209337448349568107336529799408504190663389408431152910979697812933418205027651143137004013890695657610338905961303054065558895685677906915537847984803927660555051255101643382461239256185864967478701734649645439939464771974037491875509911308298979010225203740476126221675759452289459838694981079652051735414554531065369096062142116070397615902362711289181328575441124290562933239503061947462590538320349971295797070055078497058791392428486224730740378249882543044752163069425572076851547561256989383745841635886838090227739830933032320944464358395799287058250964045657308826748307694949100476701858434278062035490491533973141023663879598165639847035366036709092187479692928650903345387164231022244644407126501972807785624443391763598728256029807317336441626300300658168022386340548411350076060309493649130796345062859001531870969890673581140672783882573923256196066219634214738458980754895711259814865605462414960401711256717473046253821479280318532725692108533134069504449594623125575072035579917087211210408324256353727926581030820930559654747589648915077896300875233257165530179685355048075946094207569680529454727719024155471424184650025536143972528221943722119985956899776128208225127097917607973407308699365120513953778846245769002312252349966007065709350107106700700312162021352954209662387112205957449595896334780164097544132022946141393236371834026426245636873787228569905502097349542760944701827866763125296405015798417380205512803428980817799720373094462494432384838556326452088335537597824737344367634860441691934386676931832894178554605271335509168807412087078378761332353307006498260701797887264021130809077393431609130674016726343762426454156447835286954948916996916277388690864556722327758827347015860572029505736891670586098496628031117563679991186347149424066192906760370421157406785831664383305458254013825504510366494947782055537526396308475180401561162049678335410844677984014281461460997591478095003040403693733130110226755087588899767242180366061991720179032037578904095800356957957099849011180613775787454325544119588196600997822387630382715725080919648132159198516253683632786778839344862581416917112026303339868315506051364582639860275721512927128998052697697356675351427719596400555855325146629411372858710024497115662851570115455184294608652106413024663710255641936261030615045162521335235705547944238397486050672514337630651090774371848776761683045295818316511884254177130134571676201995429496988852764637325123036819704543546714723858894506744339386852730240475786260193222614218232569176142330298701093459984227004192705298793490886337309137712578947841728729740780196955544565891106068112299235652784542710475709034850301353198639365502342438794491150103421858411434454006774971512689192494619339831854976838328332029504034151916321331656281578408961926814963952652978120860374076558752801850643982690976705223191721111136353409891070204257181192682913511722217477476240900402125345416348448070693596491687842670250129825923578884258470898060285629430089219870693222763021479972995751669956456202285117752162715980186707930438371172035346119680334902284593424800946232435607123868696822018888224142550479355972597628193980517736282142967812870000959747995848504614181130413094363177523907928947226448177863633319499194902411043038786722440172769226673901237980149368290220173564653858252878950635939856112120536670066923750460820044538278206156812181964407136222792389233791915644919001805929975486586992417858192100562167100032905197129416173444472409597855727243411297382447843513980825438438328480746547370911974385430960134355547553181719407648664205532500018422952730391203176340887697047114508776729830111913412868337509157596801447139062530971162597513505997874081596645431312259172089458690528526384681289916301889020664592646294131665170557058865365125147227493020620144713026122679135777483702434783511035924909795813616523841316087095700292488537995835391184825191234006789864678836659938065955369632110696673760537002199555317668541605476768831404768443828775640335139591487373671253586064732148626028839549659953651700825128217177205181287589804499161169223587282407723379187630195361465899273303030519471339132863572282619166187901688343734471928662551251676463336613400552155948748694444023370376421107548473708381418821013979105907760721205276872659344191430371432708713534256328980401315000220857864798466919482680338474658705222952143633454522266381792578373802863503286827960643865975982023790273800907681709435623498437238515491227299353050395984963259076714799582371601885678567521868728525887930050893057323035279041590888279613631708191828197619989957895698662880331102417523672020952050276231070326630639259607814572484327907453604781450594182097115520438101112010343116832759737294642036213721891562865887541976097883934405395205770490887964384037631351515400301831601976622694427931115533846145169622625232763194689475135818832929828376562134937565192879930780362035321373947112856613590749576811627687516991660520074748644565149580295252308231211110148716531687515956020273140653581520933152166882228453552722181855315312972791166804093141280425216622149815932716416035034634421445542852752559164489200601342673428915615183887492084359978167627983041230669041182448973863585621179722156166360142090291924144359629738070647237883275638264104395357109147264316878501757004963714017586293979344850476263921608257918434656431603164460300147771482577237294373550801206977768626456605510058609070147606109713630231520624726962571161696589999939084106726837908897187440727400306242172779534431990604403665588384565543701924634909954865754084138447633501251150910091501294190342020103637572976612697784938267787707075990707087775607579906140293864468345270447546022505178219955302711904605336792604127534542955195972134811087608769441806269820416959292706983030437534359223743251294952504691828378825298930234204972396423475541611918754056086328607512436440274138074424684065982026256261911948105672061878447994181334647356165347905822255887500642521850088074360507901306215046198707988057880308303642579554682539970822634375428766833418207538664213855948952289347383341790827353264828258238686430783285909089709227751370654297553488372239529593900417369613965978455737417722096471137070136091152150891191626126547445912191892316636035668380489689426709904984633484567128506669355521759654231143965368082635194504626342592290140628631606959258123576823113389608254454600090249800460883445409007964200910569681988849825624372008365259272156204546619497474665432324182591867645185736443694265162938567286407221771774737278909125235144625813278338089391897495572725852526560568913039611530015860573582744644794261350158063363016061834610550558077501130779796857929665731268867316538572156022244849382650533559515906122588353218112492709703352508548137061291281878728084251730425939942246228673537128844801336892685174965104812074665595647514428213663983222755181298692954524933609987714729230482831596722001294533386929246373179907103043127274425272607256775764032950693552614225696641056181583843228042927875709293447720571476069739969072085920491647795389703739024729497120121422915216134431569590227755379260171590867408705641315340677844433601118054415999428180704898029812863911360816225413658341316674472470282576862866377059407757963152889964424814208115837064430266329447843084090558534329048036783249314041405600142665015503232940068811585235179779427751653216116471174477710568444636790935078525564727118609499195005911052386894210031597245172266628499524924967320985012780532795840765213070919037941517127748021735992754549483693852549954833043897286931324505999880595487436669038797085078594705911636847202280876892426311317054164259240080017747414955951001065154690847634001326310229177318208949515424419027212960153453841655609481687523043520201693838767408037313225756185471300557789754544736843349142453476083691190870245654680697950091370663040023829363997726889792221392620651782879663180069836656966045676041838358076721295437455631973687931979418924316037789632012547789781858154982312789753343654298905048041165243748530514755204308642344666091452187957582888290385585976493735546195001827430308092764791220636319997949615673465500330431217448372587483481854288805356756476502976166876124842059642263911152764730240326627828940199388362852012556015035462217593879110322460917223814704121111763173439010297148226830158801678121620699639388321661895390905548137734177586967677211649766379251814760544428815074062015465463726317383625389614744014760613942976014955559858490690808383689691375514014690066688540799771680332531867564725956353380061901090932669691899378952739700193009647640403437482785668829062703388682196376003890253171061445819462222273741279044497103477177306955714456443587679049709929931616639667787186129050903040389154238093976656258074493018602951352525369096565212254941304675350307240722848964218466693238767592139971296653318606589839326520391189530843304402417414141196353982807603940413457991911447467648519380899019801726553398879006662319447550934490099205256732122432694761755457699359266029776694865677582686823095798885985978919854423632173192830195120074783423990957449623114425240641702060242193841813165493866627020512954085275127989562238519181973331028600351713913711253183654726391258863553297820667380007513868946611047511877606783796482294283323655208296214933298178211783875618598358829939745014835952118434787860228396776891639473891087910951520015085283191005590043874135037655253217761073999830446890331776448673683307098202907269221126255188942249886375048122709883470474293663006976347696874535678203504396600551768763257461234296604375108144757979898295707209837097785314522258663130032404477250860246682149729167763034721035042576945166089608459043430713407461686952582114113455056569526625611158749056227214448144862603530573498799831344495845636460111977961772328472562320817317674828889523700929783983969118258790740228654340969909249308221115715685727486939061795084468126777462950966590865858760339462971349189096119456150993658101043224335171847893242362514234815723136829221929915821482364481200570823310765288952578269398779483980999453864251127946697473319193032798535710404955413410942530234796931231134872790629325472779615746014330839366307195852688250144168357481784433836799666496389745364674731828548329103285865458984919139057844128322296429060420921416585027179742302921183828947763402558885350507189621886157484631496580857446542873516243401430887480834770527125413177137805699496494676416581132670866679453713839558294712704143203366744092296496126965113792360673854074224595490526216362792597095662266726733787169033450785226220115818398152684721129603527621527130444964194333983700470065691129530416171843563760345095139619581275864403350293630882220444039230997861153512890837058066381534167362905547045860289026699353601061636775366701299241757303573458230692669694783129226191253066114198721851664743694893534124349190362440074199576231874978514348902842607732584581149041207824965015184959763123221312061329872030312748049822273860505358790959741203405526906564878333684880514564061873679122129790783749247425108936177120968918523883083465771316823030530432553444482260304328963744481131834090141841828563312078975910996101294578509047203870201601325381500483671256910156678071078176935457916784599768565954892943227460017813624478471515471090389797841837622797316862687783701788729283806418053564166516092781183126054273787041131857302661461911772004179357417384774610111348811912008263387504200670514987385813088342077383154737727793913356597078489334573434319637836291009539153934911400554601603862380984709055062365018242437275200399030779146678810777570481814805489506357283373483841931189441168534594592196545141681138885481443633538504329397409066892987136842098742275615791382090375718943690994362346155118041339704378938032796720541572828317775378821648775951908712516982700203909253954948520028721826567441129416619561369434310342229330476645776142648629972552154889141366977630385061106340370267171551381792157877234275606895759622498514082964313645307689486118020500366257483599322494969976888493538031793538195947511934640016859728730526232812005111886606383340709099473014406531478218450200576578905719254574954909407213273536043284094097979133205284244024918187282908168019208856602171563319665248948180692499481268623331570290285184536311862927540146814498440811678100640524345927635890684191795616459257321241889203810405284377458617053699643475987285142435710866267484331330964497221844785675159033575662682020909330496646425992008757359548540066793382564465436950981796846295295526157065171233432224088965439649225925489011976607493361745989492902964901690430551539716201090531512254099794539443104191952882200741929335140913950953530006902133743880847515571034487395556329592989422821945687688614122597270188936049346178088624341180717491414218859572190905408491484010631267936039142739173140186288823587619913104042755119795885986653829240653093465512032112743063746038763179860122326902267532922134938795892731181782921042054355420848618040162497385505250863752431948338546555801907595116147262741800475240662089095293363223071006140124497903128538949509210249475346759849888395796649966544637313118452992607248215947786149561985625836714218645587675525485184735688696507353641883210456149711125405000495131465141355167901619638462701419082772464858089253332690526424301461077196149236962423521459258887660398874855375790265373683189196270332719839812444680785574775725222218952448678505778427659290411915939744334368753166579143162170170331394151243643607882385052169098926911567132643769319430345191437225414439432571896536460033451260429921867689657723201014930196879918664505082549355669268087104717550442631316717272995034043445502927695106675833619724539683236041103112931279161641682728713561611619330064988799642669975209229242205579303313102604755533000834275879158051619921605165614954394858566048459355463741582125981470703269891479670117670328678920202230358270735944838924423603621852407554971803638650966156992730924007292412501917478597917385782830188024517614867220878465697458315984868265986332984749910095215064634463521313655748143929795379019311564833476438223417982171024812814337368398129955752831380600469543659620655938233628214683402411146921287987246841124679412363612262913857025947707760977903621089622375424367874988167990202857477989746778093532284588683826382119751282583773263428830038905992803384163012784907123277929962386092743599724457063425453018508241576735955584130807863546882567685565901970452931442192339422736391124361999140575251752971514440312426727129915471423339362467352396367447320178140033939369732072033587668078237398883225838751287926136523533610636434736865133380229120085029334497162271973908951635399727677610147089729831576592784847540057182356389419737908413431267968017550160521987077407667477970773798607827999169031572846890192385684731584232456581607384894469055808422945749831589514946244954102253064152829380563088811705128638265925540844590009261018771022881338108453827114173061968010201402737001764233583823473849410661422588704720113485129636561185750912412871902018501961817246899027221560307335292456096736059430377682439905327284138340230329874141305464441743173576492238272846636334354946481150985780006113023163703220816205387423342874918061208038952449725733804641927801022464211448558728583346527817598514646452903956697516369047850228476715665689283289657384760663112523295178532184494428453332397611627125002457646409610966367785289754315685062272019111694716222043457220261709429097669036592080408800221762278404849112867936228780345702731093926699281286812294494898354139114361510368643455956154532943325365068500214417285754070679907799470964850394894793487732276701975476724489282957420882301591108761777215638673512936501177430522983348598626194218765083992810992043650013915220348060331860237615937118599147890373879355796988263002096243500934640355342515496737289334858396540939142414231490231511743802392050538075476726000323933680499942249145862982357613385312927336664129913593298181915531065177348470663013698272155387361616097913668079978948655065687236130132539305888972752634210534346803868843155871959928908464977376827267291653944053370599368645194262024730842836129432550718506269929112411808449330856631222688473147133739611286077369845674768619040080434132303211758237574893693959781636456460311743432869118387150638118371347008892122763336685960980144987219308865056209881757501620592612122291547382404218950115307261339064929520934126899303438280947205535116954930589754158949537972069621830568433016289317516104248448951099200198560199539659881287761414841224910489782016027372198618360019198454938724716217385795393082299114973296832002316113998123786418006778010941654019841589360973317458015463710256573455817832252065445745974159111007281408101118825806111440534578448292765784643608514339075995627922278318741471326919290918962422610163022284724458020522516109066136416449531006377540321173208598725398958539678133757568919856244042996316471029007457951277353534996204107903203405034446778377743607421048947871936890113331014798056195227035794634268648997037966138463848914152322124506525125844060398237096638061344481385911457894654817435164702569622339061851334099750440365568646011733276701851657763763029500520684764629300802188943189578394384090671813446254164858921715572643424013912611928733338494711064181968402502561592323698870665906817039822875434981944832739614166485491491970600115760610546585204714482682920282247345663007052241197457800705874163709091010590504528443720841984599133631038209496903267591326428234275075749056644098868614871045873112330028223513511382622903514355399978838577792361287800925589668619003505426733511308629398735958248771889078962020058017868887018141822508242643713555666335740820714277905290321731470901651395813461759359525192380454214752769238834596627717468230106728178214353568585999477984724737563684519183478128798370323781684723335658437400969868177836794110030848732187223481600876474724614123996388558344627108835340710650610290914830599304829375561885506821798702852890507720327025127898729381453346404824123830645502152258220744270998896378830324188091082554799417133020582828562087993879922509324909409020790072522969280722983605969720253793254453263393459684845128073059423627457214141856244826436394928017674875220451291311197549721986909488323462189801608175948768458791321648378611126965763494646300066536510302009297234691998079959788191822015154105542678253611204644308806767347827754793435671776820071190762769762211771691811749736129878157278492184791670854328022009897894567029343689721344568240009246057118126289700675768445089853588676487918197587951088295769519875944924475208303169364736030543477445161539987596414056546597651060552923033449936104701511340520920850015569357977261890563724358704493251593036987614941139377385485574537671408879590198792844846979190519317507488847078679757980858389564463441473042397891678826422857957196957918288128832241891050426074494745266026573941777901836502405479750097856664363750809682414085853458347972009225629911584780344250827585513858897857640794213166605770535816581414751960093196722338370063383511772369233833721697430266793000374744107152561937614389900921695381001448320925128800412854884309258850210179866834917034085152747757570937117307182701098767270941926942909723599469863104549413145022434723582368790041881397590690956823168148069003620846555622140234843339759362269909723582346465833817400958572755554503052765964289730492346787526017462502387085477969755381923584731741360586949645528989991128716841667965507788080243211854590541253008802079489451145565407110983149938445535571155987990755932184103696455230017367016989226309878142391374348290828935048032982257509341404784173238827688100301100829382870274821601090186038586976183498193605878464656770521874150784445159422966204221829514825153599097845392649523681664809250264233129257542313712173857205695586154862155569188114458554176034027416929118244008500834210954625011326563618136602781736526442830817871669277455387411539591877757358032030469654391031159809463946098333856835300292256468882774512676355339736825395966079015971885991390202379204739356822316154340743733335389003803498330779590611139208429781282911191678917313269417276285879888775489895047218098685718409976520159898083658387232928484039803645658264088991362679519890335147797014167596810791601248145502666553698493665133343145505289687258169550789835542901843062005843051662875784549384885173354842329245271502929695716871835773589583505003721238891581450328843671285555529863884081444377676661330478431661214475753348896619807570039019778648984582297786820980785859510338982053460235629167192642930959376693204972503681075877087549218622349841253257457887526622845108494516083292192276529021819748769142646948370517201388222649582496750091533271325209300979640721789290199267160766559582259682844269263183625468762773309977139841636190747027143548053125292898363284734680414560916686255762588126559954128428472572338389918773889198444382399662129504870039299086039968885897531474846072069320724097276370573422336839009806505143171056434264157335145315588916347473465365450592681509560262465072388696059283493384790129604765549495294300137092991291450559856902876268073844948325731384587631427675865961541853213916734688929488113937765590541602145388048150727053711048095925390137772977699644664413361457700985234166415968442578897855819089499417488975941578711486789149885706758176928538496542844284034806686744450290021824952557867702462531845912136326361325106680891525847584715043347398864808311530267828238224714872079020515743306711341087694942233857329857615747842252650544215959860064140876893243908591193382130396702644304493815125829016086879662986587581316780412783484512214746692912862117775612747491918393161680845665231177796656155263439280240073579964392560502760842027664496964487929608640541510528222860372219429388968911016170006899287642945133302850458590047653389018073685786026790631450172371905986448282502115399842939131849181426956620063142275399288123028162939872536612989411256877507419092866396294649730121785666029601678845030612107590516125482722185124151450200055527480812450877322441577780911943836701743219156531508187172152531415456509128063360964418139945170461904165358666489092448135353790892166746081366281187901351910788555070789084028044808003704471674402006804190069267262486021027488513779870621625599498740013226547277184617803928433422914051382770609050924938596637573534873133739330673856308527378930643418201322308353073053774087271472545217258943922413142500101477754153519350772059352202926545186188254217268401538226629369032625340190529689427541623929404147876205705650468113002451049588398710011669929472006070436622370782241803103248686235004764097359099875183377131524675948650363014643304261590412324991311894090222241872379623861581740947250577383750734448698880206883114222615695251994885835468442303540504040306492505878963482958106189956338235170316358903472340067887479475803812754313854172981412396003461014414994805499640547400476116769575367770355521143687081401111773489638124584936592035668584617860620418314037018413290722650483815978985735878253926273669040200751524957947722425091832093912500320954290802515313254327567071433334186430456201938247881351749171599291700451675098347898319626466074868445369028431503821635235798526541139829682299441011890264479037101361866535549291840141343208474432234399729640477312848810043807659820803984361003142309840963114191709836812353300299557554521486304487416988639478627506805444791175027413083989023444638726583539330992284521234534314564630949724059286530923985138512535359188725396100281004622336538788157829028426472618967288071124491891531744786151989681963138674449581178679015510900374456057972594566162350368536272209494176377447007237650606725238940018607268572170011550548092358636011815522460338535155799212620671124479263739048301638459015988767101971329069878233634160823355531383704853160155022826624160165369019743278702682577232954641335839751345834028931323374489949957053576069378793414271242305120069060851691546086592315751415597081169607679562951500278407565381857942055077358523468427058247764448268489549493073213763282429171992413312758356834719237966194051783529216376520130606825128060920372373349264838177277669493506762890771871202065069689425244006468044624063584539298786764161262813126970638700650427737663668023147360460768752067355591704245713090005634423397483886005312446064864502918424008956674592732698226781137973808409217864541020933343573283506731508685287603510793006462731689897976868268012796457788369297835485211711152992522899088794642657747497785628372225424947797864127912733478689016974304424203514885037187724763339655728858947978342201441062633076319954997829473816462698069637018355379002125165446266727798951059210931440610427437201009677214397960374628332055233953864298146151093400923626104211046327306150904565428222280065752993309750803062541547731615695987943066258818842051169484702247751670259745051800295825041173433188997969453680715294450225684064004543611277250724716652378060030065496749757656984374114587930987039257422648089720347973532503529547653132502521023026759696355683458304758336263737952536354103783115562945202157792495755956067901854946095845683574992798110700789263795528084848283111187334276905378547481753476077448696407508967127760335620560855120493508110639657836223097399076351380296803324210074378721387597360015642091475316626151283728950885476319053061782833149511551687357047238747471456149877055356200325906595857422299745081174253911554425957154848876851659752161460342079329932083555169871788087269525159120132312289125457641116971135864585207386835171824605770239165710193188810382113588779523296857844528346526827991743590740120324384889455542979043268338447886249337815448643053727998342663931936132655257870400805850531417144416078446269054267154976865266975380678395752103229757115899603122871582699264643151211915656874657734214135792597868034296268448619130670230590331593300974507215860532629605685921859392172478900095013788674080466407188493794855021574464767543502059530338649512424621219460091611612095626270598898100583849999626005422245116272769150148373301660334767334047580419681827233223351810898797138304155351706145770009873539721961895117344028078458861414231792240090826851798823005040970893768078930138109536149672598261359080011862605999288568586214256330150230142862111929898261124187823108837409538001106256761636792928984558896861607282613259128958926897662428268759079858854285800313921984568724104506140741696074558041716217058116020141306315967667927538076729789666742203974587607714528988928359459432863655964481757761662856548595539929624998569517847096295439178908130194043842175807888968393238128655613767388666184213511191113043618449265000401412431477191511528789915768147635801477101656278474476204164345429601731111199554623137390631808142810054553688592376516152348228857718249985782592802089955777019269281353878757226623353558429549624881765040444133236491601132595521638423412192707788576351901566837421558296135991378061659455390112858885446215603613949953279539129432000644940479210702876685072721918748547143582656159626564789335630242944630891254258278518831594184622894326161895828296546382864314114410015362830567288357530411054208069103558517109796137110018444646076487786670933383712435692222002139574406054585282327101695148966644205339250723241735271014231385395180103254935580846832062745974213054302577865888304444837007933315479605707643447959938671916882302732555208181834735421784741070055075767497444552090505326109059058145740907631562202903694616070145918520276246352698936914890377842112271010799035231618077734422588618795469383156514448019964316630751942707074865334226016196420644353712538578077390874647473025509159451892763002943673072120909141031484839663922093341591275457599033714305814908659646438011993205179439003668242277168999773871213911254470865953711750996801423538786359016075833183592005040643169231462987996047551535255770922409402534521243864408394890232874085566787451436234821379319138612455157368163105446380458609094309956896691554345686879342076533752446550118694242335754141156035024773224192116452485750993458106954673539564729963365174774260407736036896580366135604840654991479983962177283047123463590026740670574213502501705661881129905672737503056481320189122943193739154038468481465125049054619271213520935092043019695473224933037019754959525688141374505945263187029185393205685131257011344539655363773681497737931106513700867360118856608151856489923199819845868684453944103166649304697383955302621061579475988571242769689819590650757515411730720878930824633493714747067901060676749074197878571945319354981906780065222673208520320833799278578827441866596056559961379107225045049151160703879389234926866022634537937624186713256134317121242611502012750465626272548392354402796706092881387113636880109867704844972428886022319246031250566169552817866853607672755950984614821779092282932524198873216445763685355565768837889459942838207633878673978706070313090046813866146704443960327486590712409269520907275963814374071058799878822664277218257238492371229914547934317605114682116484087613331464148078400596067045320446728603250198290485575045304934466277847742199595664349514249388999867587311023496929658584209498568753836228675625588257890994980781129373852391830907062676778741411340628506752721210643449883594173647122223168882002489781002405163115957324516322388091993370415796228910741073444254927670917952754523018456429349740671661128682515242402706208365820357171109321121549961851588695435099472760634801990386599417241143041152326626438714159785862323090346424303766440290916532591738080752090798589469567611817968615108841641180449259277298264838849530549189450267344218341488312799604048045039223866455364403917030844914318084028022124808071263677486934364624897160044287437260144661033373066129468867175570505551740245633073572209589443503856901989675769210540215603219202905227929592390449649964748971345501208054013535620861400146015465962347104878962097315782678361766964180126048116475171616286965241227090247413153145489978551447013268960522464804500383036076110716321187151497219513726671689987436453518232847869998206918696520753099723581770710395534700787007682757539080077098501251827017961837383708765029570013893956568163597189406947829811545160641761192974096476148726598929837348034432418525958982201561825780548522488390093490010407259273395636820689976310404531328983666003903213847000870901922529000325610721713478263385470364678579798676005187019904505302047773739474021070662834386974656038679421702892498605121356238732732671799283915891001053345284203248487448994733695989936454946046551267333004822165794523453846634854843224275552961584521847394152088502511775686724435779143936917387625522618867424107730036476604475584526302843786647358886039295048191933139264824468469142259777402731432115334764133253552475019481622322225585583134227383508710097834512459043179015561852524323852097401372135931669246536894060832227325477193946557790342334124958279402684879788092233217483906994815760687167597662786261604059673173281005802768485519339296555180762615888426540500093702643462819563946987627983262762277088049779456834534696995927091706588386235122932993772457609664501263530731310569523617995087515555749553422496250131436518257949386891694706913225422416741657708881756509306759817049937948871915555303397914094927190074323447492885783093554115399301299683445889606956773936492397544972862068283440783150013561410884279932660862520944247573300639153424556140487602543183990820145586155562039476863358902561348140474847712434340244068700597077775532399068862437190150872589570042210339648071789220197296703690154716180044850322808610303322602142024424593255812073741960437422518137291401006109554998615430728634021862685210902131578834917463052243836068928174435546363245990533673099987834866328039216674910916847430872398910159937970619188264148692494744804885612857540610987837444942233080116580925940822277925098888945352748885500376324635322114832560613406321984242761641161195822234604149683694195891392024338337126608572139205113611806304860968608712670995649080917677275278093357340711915408255895432146179516522930657683592027095748767237107470317382890363893731939600535469410724426745830210235940295642355668897154645508894413081640668341105677170714271802102797370283360466413816116545729957115361602361868642183955254592510554137290981797547778873883686634948599903677228890231134837667160857221403057210763423661202366587831495694995903126478972610093811808294294032905652495107186755613131389975388839674125511749844246528279692991210374068281555539790410733964028401379662620437878456667325417541172473784441744336272532413115108654027810598385512644367092897764848383576794763849884764275403052156835998460413462117369378093295918300909331137944925877992885673650562297012328747760675548789230506785811897829903313327935327293756584664913008378877258569972629832157204662679953784369009777156743624551526763490875312624392127491501839831877423742998030139778543152615958501393343923472823488531014142483426039902132269251163732613909496092089974057333603135496513577372738352507158839334310513888181899090798618689731931487892215091984735817245316503601550528685196677046836741844039556502034702483619428856998731222269757459750776255173992572529191238875448805998002947268541016641342463049165467297812203460010802868794992133359689021109888078129634338353781246708676372298462141990087281590053989766597926386960080232183131061225547021713244626981975973606008769118916689982060756999072099900921926371565729823868240377426736357992193689750094578673443638621173595006583801487320961562683321952244938135502081948444640062590701661053476498240249409981658592728700384358760663498632492841536408022176408498212768143502022953494336591520821899932653071042260474776428270104969722104021434903231650409237074475138782539904742434139183596064720748282175394901553382098319334909551760700126894744628652812983646514351769504471975962012778198521399410246221216610492149780659771396679283705081674152795695737428422163852784432004530921828149658892551602752695042772340382142765116525100437558412431310362667483415541717525430995742006672489985584732443995589440749161852410748866389880303325632790608258131402755335243386905911392089550372769778025327168668945210503292307463962027668638942871390419342462116373698140336236190313047448969658310662498103390820892225611009553263865950479213104070123221742202864328316673109500344599305818744262745744039633434634095842874831196776003284109155497527186371890967364995600024568992027530462160074025106679409773967263576742380101825154654818784956024415546994332148077382413159837891666319702645899287084417714662909506419230637419996623053798255731080916657598751836649080046548647562394476414585563940677875638987209875214512966800945793637877412506397311511441766963400897774948492857552210385196143416556103934666237991531199323814296133348153271942197690522393473555239297946878409890327575221952312588888872694738256107787192738825212580024064451541964006914128851333384504505042157384759898098502538879309383286122642702452947005916961261903662613206135089452113213519507785854311087100554281879623074435925866607002360618052345521927900462423401125417955406469823693199997465711462193978213148248412725756961620979529365354231373655553097584446805257266634121449874643597913881139084989536566771570347860753171458663373802274046644940230027824516768497047041074640899871823617581773670846623169820936838194307377398180398659521488588801903214648358141028976477596303098655365075967232878595605774510403862234397055473213305476003810261426740799665147931216097372866776797786746109245182306391127827549197411892097377824592341588659707568592163214258701028843774064148979123203742804909728503665745632808436680405709862344627179026681163742041428035978934016050393335965680551564733836905614279926198907448699535991778146874110890006156464157016377399602267337106656530156466068719550549272435038049323478074986740102356636133478122769244187647933059326186532204659017584057938901761925280395399056625231914499379028177086345325310573343641468722169374417306288767968713338772600933809440422407084305314523615309274834597168902968334468106217344224681154747011213687159176748270826855237764897650596618507499063244008596328656184865568719722811622183845550287246885271416051632258191768603033741805668094092330076802503766747737893054414406466577119107824455414156200346464711504106647291529246322539908034545693125961594541753608002322520652914161745669023842288264689623261932767805274051331871409650249235017477341836630365283879802927837182114292469368657140957013344777275480800921035030636149877393699225950454751814873003194543917788830790863184805520636325209140219850534935826705945282962154294357693269413915215323657281217435713428007470314351253641948714319192778265304053281295397625108204950360382038822113899095834979408423378033334197588299719076516166317371869286400734086963872923559616595758372069400695663077912831879079997076921694144842335387709440007908449987256444171972577801518829068573417962996717914835675168050075140288013919470362940135759291873201709397259957980895025229791653409807865133724171204433690344162044700961502437397634860250231684051594981262277060223718468308256881963040051725399445024998125341981539086269427876608175143373848720466360525963235189283917005713616471984045768153714719544724615129273813397178912682874135181530582744975055316655269110612301136028699864511700486270510987232187726633470776327803037729350404516078942226158545952041703458887617819593548032810809524761139630093265984922432964057430125182445279275206639002807395133521125699035793791748605741477918309746269074806476284309958937827459654994992778060764891040309565388913104797686024655619352638335946901339214014604438648355794641176262275721775690898522006151484174831223098051364842626678042438288139802402142938001264232021362248645978887420491927711656808184811142059823132966900162807055962758771769399934812868082813382362168048216959206959460949661230091253592350590194794979114088351074000459705733845993818381967285484575278397705833115441180146784522759924920733267453588850717745717515025894211925770183389551739098868839810816776204300671354313554170236599395364032244360160592766443492674470221236315805363008019739861584367310934201712086257202413443597530393629354674778347569640687869532031595302010249293447998639980635749668803114910292900961916613446648568867691591643873871756490633422922066867911449448640009782431865542975457697061997119598901638787863485202063406536887183388008670029254382312444129857799225763851810096086133654391273022705518552902890413133093624340785866032096897323841677969649965135183092261977944426253070834044231176459828073174075581413662981098682633029002192363349508923429382484012399755900164750756588106349389160236686452625869228427261057336125514764984240250084227349230411349010150747008777768130948743923775217975125660342025870961165575560170296755986317361681826799541003408181018773963803916909871923064478022966520695674405528752140538896070540103936753445114884150403167983854162498732389766859105256453822426394748002628636775854423920913811063329984781811848542147665117974452409794404063696641743674368819832731957406331986671247684898765205942879403002803060048565690770887196841699725688547694343589050669529683809879471587002035816935387610886764092250924346890588635707389088724405692759483467421776439674518559633182819717893587057539192956658549677726210256028386848467055406440815221173230105471138344159359285998648231821562522436343361096916670347028068232747997442865964277232166492669567779099350415409316572415239338517605924889208269430627907351908371071443036898551482482522032501865192471076554879413495752016601695798658184449917362274866910231647050708964141119449824133314241019693355448249875107574795034981633811315772792363459408905787530689176381320184459134727676642982153658358253671069786160475525221249913132475468962134480118122422583842759777187412573116357442974140362852042457521714455274485455035704550300837740911255965658022540265204661878737860997961285891386136982204083510652457106342943625388619452530577330002810801876085872618351606639940098550384093099663315198298646948517208952671658083051411757178400097310760621286410057656989638855639902057302036373441968746497858014701922979807232001859252402792046829034590618881847849118129406518472341526687583725002098130219755288320817096178142595668952116223086310665938325817175388768937693508315063757779717820350060879452418631455104995748312005849718353685638578976128084641154093242349892791135688539170782030759433573761084235961288563543291725484983167294058189693616280659320791461481209952879664015520939069057762070761484425195291983057421149112059389116831085348140624298250902426511887921198179664994079776037314518027514673038843276307422318852188712316677853973662895934671056360762783642394756680386907683703862428530207596775849595283853609822179702702724166457748114400490861688413382539538342119279367585923711464684266620661929737629349462950765923535025556871969499256322750695300172110490831093167695869646159566850484106795179806250871447385069886755787978035335800722440225983767639533659820764333332588930539742928077770600624808463201559116292447629530735296043286853622640421229271239625475881626551228492815450578181195783586378654860012749579567463769108210179407643925042097346292249409235105884359335290697530318197236695991214778404659543438780417473844305316281544395504621349810588882282298981495503289209914614841514193391836953789600902839790711882988208144736320271768624780208931081422094184968680825809360574505002708192311384976185864016309012938372722309382026010204160351572800988824511904168796754904453991559080550912045646270279314531689691602647851500126767962975825065116629423974208287091801770446335146513754253811937660291088986448635565998832047117267020431558155553486588268811295632718633462683401240536061765725704992592776780173285380750309194999155639225013073680097887482483648697522574562784882187898732935622077919093232766145545025292839239880095940491386030336354254761705280187560484897073226722756787061824538022465282799497604360471346928929285361948048589302925203678770074719569501714443941697009715168380959919566030394573146009837311358899932952356095185363692175484786719828908245482525403912109909154175075391481367488871869387324836866121911024888084015289887577416494715854317833047681502260926432321847839993254889239444420141307832707298640121777416904801920850992334036939421626374601013521369447588236762594051455376417657835475014994892027215050281253497085328518868189869900533222356279727731330575320345361381645061239102508606524268114160234281141749136007822310904127175953150156463497315388267062235042533390040205875430567282142470728506772763298915467659208102479988766751243744784616635559504613832691817336128876514708949025561979207220534063019668093301371521399211385606604658412199101349942467451269611848218934204053254497602058625416709604416354993083073416573666846714979023042642943341620190350318986577634771379151716288405479177742432092056577588961605969666426805277354349134793734320655526891344251865948217405536094959745856778914117417215713513449764383974117626579335297495730063960840390049836021944641030410587443830076402588073279598937280207591226101593013889403813287323471948021282008819239844757550232399450136750402848095950386750376224867164416105208404778652861272390346370591504194540841619432872941352726314166690183271024648817616625938572066494183002191837952821035618746669922867626255692229892218357235114638435255507672528229558829364750939987467898478426027151341389934665479810203593925641053418677473537914062306975744381066823259466948467866107234073442134673967011571348581559526386550732402113075198177961660102964033890941609693914368408399567063049894465006142886557602904607050788655351886600502431996834149305023697396223539029643579896514801903104503201940499793898811365644109449340564575346510686138474277751175178444359438846588375175792803804405923817546548964853602640436336144294189663154957082305539149163265346813751835330824354591481669400099804098762204945138682921973360588481968432348565377739622731985380535777678263305468204513589424943588135400359945045400418015695815728305903903346047519464120291280146042672474139910627792011909001003766223746821119611798473098433972856834303621054544231955114384689515760828737659777994533919977609483666469784019385880824578102375658615459562447304893948201073523627250525290058488486015574964449432087781630331469822173932709860366742089160279873746003314979673513873039294481155726343711078140203193125502637617425631236488441490317009437612036688803689865357375526589171820657607153498131961646839827483767429155994429258972080491714442066973687256658801083893261223595259445367627642708524511060938883676924467377172872313951822147321721621124524360760125987742452133506947778198651851004466739684108079241362237183616607353563411545949743837317421563194829351792202254659052914263099498851279554225638732584706098196150568309054692595705016504989586889798221670910832207765430067679638236806304859205524271708327444488898818551344407405303892790544982029520106720567551580629658722726751632874660935987768966168258448931920375882856352115686043890768280884718699067443474914068974432311836118849954887400179440730858246479634449375236882886119320154295834186775683569812365203085828444283976761010654545009674486532286122014905749667390446086973967619508890380394646980106395644987947444006104936424600171658622549060385554187625589212304890357757128805928899398296096790485337505892013767629745070167058868657695714874710342579546878982687566222561532532029399343411875956370933144387781646786162837005120208540463862023525938639258907037730950409054013039289161496082113833003809791712869174556965474970098964538392818719695714264399985311380151617491724977861063738004523882087092108653969144973097462372978067062410201169103764804247767688385024524579513711559678733802701542105731689894188774047935253359941559574886713966535467009931990317026782808185801440480224873437436919472501772880436643963776288287818814430355589913018043688825307207757883300809309251704789928366104657942777594244547161599167571290444613594246338169873721160099808916887340704797564639801350175015988489618342496869388239604758965281183781227747604910102315147193236491961614348056267638371797475288436371006148673820983667711429757414308544506072360782681018264111034604241637347508357606089392953043820584470086633680298823973057040463141633660427931242175696296903875930889892930369848632041156678384488481356167688928712319885369107491351522649873532949058749466883705097351462937167823483440143281544570108596518038473200396560931778324389546610071482485340952339852040591200458451138534317174245413765375790502393832465003729414188873956687372105271655434510651670801293835624097295895888788201849738009467875495113053562394784135968738175125816313622116535376682107640883378996062068361654242781084659029892404294308796015609296397301683536440466254623117826888937333853231551607310059356184600784234840601862201988328127656959925424537439881926913584194001668447301280839135253000464737533252989751836147980310562748596564570963851239418159505959615892829659316506024643788972989469243547725067386777759605779598866180118966328099727650216409541891912543446308555664007305582389399075773478891629919352923490625215780747141955285429398819952429082118362741994872485824657544643484172667901299902663714287530136827169623108037430176254966670058077916890211751925606760460638263364240684501672534925247556000270901431926205115590236786406546855955324926750562666907909328340683810798314107278382055021132674914486424631538687461328391435240153994279776449825585643106647689139502402070993291466940932548195446094258317250306626569332472856025617267878359721729989240113721916247397220462767283922946810399437009920323433548110187251369340549223442205099776980709923293510265709201796934740454954207971568183537242445298626681117937877432798900780746656171503687893374825302947428521660485781380712204455367404045957333607446335079234856421065090652847813185255650647280727120884764071303206322860171983519433343764406691633055370804837742790335898385102478937559101650998852035279558958506429627888539998195389176382354344735348576913377601814588130032032590338544592920145016699146280760561910798912609348174160011101883122375565994175987294688322320622805031474581758370666183274062077382762762797201148177689943211830011235545806025727985508750875250114577518370689313381020214036028951407116224800999171682110587196783827676117214022083105281181761663007871177554580838961851321079935495836591956668229156535831303300081672242367854163514445311482479254320091345127160703136033806626348466475698859001339286637189454394714345904022631355990565766581526415544980025292619389859938094444261496121563255470129164729492313835671724437250873918456620922793665428308106811513418802238833353008206517776578310990309892407475302281134058880472489051087246052124958827401108699612360605807337663311601662478071322674398613605724228633257130681068894511038994977634319079598375252885999504228310091735327213841928044020043206921057017644091572542567956541343892352027063041639007974508326378439845149324183390571816644910737458543019542259780322767842984499981008159483651247291470887196616451779596403453312773896114835542654469212827757919813803390880089862278631159549954193592451014229870251787345028534526708137725927388589769667435919131612519527858815800851798111614088178822845272073753192290055271817957885465909450252068373830569157609595074793908346459062690910043650548171882522827834917233202552788170585129958570090704455992253385210021099373212146398856001612888410948608142457592816111994515734692407494331875561593685654282458146825184409627144872251014671807104952404255836317963161360357343983188873004211880688390368309398384090033274734953964087424759853666126479232575170483472496485635614018293930864862588567859135213342626638330084870862154857194972704556752660728122607888854927046846822128489568045935870068098081597760118319807366860719247666579240074988188368488267511074785913908755702811389692682020940873524941302450585141294160268308117802890283677834515134061384312502061568361497005367206057279715868124549495446574799820393953680328591044904387658268084500124023371323336638713704685172361740477177480644467766407636279567287951222717340368004733256066367166069264433830730379449406177026961039297656337873359762658817443963440067300265915996854778944807960125226110064829855667926844411943679214593576813227966643151635534614069586851120530065201777537299508230771911171387388743998689624916864524715031798023570355372802919231254363843007859415342503961260017893912196178933132358887380466816367699584411920036965917468825325433173479412093506626509423215363061659529113955386247802284919318447550875498193581538970466972307375120535127077902821860642515543121042153458185530067192111874679548023741402544088824989458108024117221459677059940487730382529178595319250321264283838196707822866440821094349839814105711511579691338297076014529448372087865774139754230104176986959555366675289904151156828691406100650132594064886954652341325137011849894750013870321225102666791854409230302027433905388066685073554265908744596748896856715612556182720333779442232058154866798685266699181048415997236358916598258621093284323856056840968078764748111174953526651414956086694755711785469410761796950753511603815341408974728355575129556155063697870030222733097338966214944725243220934543019178889004727622105940118545523021616075936053233241979915924979878963677550228378235069309489936090824581707634660091145212000692080363095232384762163486876425164104253604434733990319157615508611487556944481874103931682337428582945177396858765793389701093480752358576233078409605070937735422663398330905916278263893526780794150088929975198942948870225139245879935845002641131563651981277843721871569887659682420518994220777543775487027408729435596253998246409658201218919817493908061510658714894832826886355100276334706155732666561390331853994951841000586322151514936825812022320683993705710359976860629047545540351534197151109779330522567880738019663044793546377235156862648135796893728443372315463648288755424871917859386250525040634083954916042966365345867808830454280872942744406534143259614960325415496639308970438244930547967887666948410030978391132412788519588800149467518562701085305303561508958983978735047233593875628200975125574591004325536535367206564821749911459280895619938552576418085229387173592398667731193575140518887205341478877510118623773962789930557209594190322496631906534554796223992931590898165969186349970046177225016806625623119692848835993882176141219865730088318941421709691281391031234868339499889481485820284346741363764970101732634049579996209423466211515663340930342681374127493692844308003655921705913832546944656968895670771046286095402198920797538672631322232791752892183325979960737183037818950649816074945387826463210473799964433837903230123747900876850406319995516793362668121460679749780303272508925028036365172840583162700853348104581656262304061672362048023779031178644653567107622592248440856596177934522391175091117892532440529799054564369670532804865025933980705234413497662647764777120174715623110124593859181200132049246904017017300110476513039013646246866016067039348811375249694134369798157387133490230603505318978330247066851022394937138391380050042309751220040798901946889406389611414158278717100609894613923521156539806101150424187272528700765918623425180103739699903646175832247658646667059679518424419084991389968636680923384943242704301922950942088876680786140774931878876793275305435091874115521666696354372591687588013386194572271753376056576131667597233540743401965432228519140006981454982378642860357845131565297014885217677450179768250154955814446250228145783320657132290945700031500923115851445749246485897294895183570333415742989630950615527497553458836703528137674679997668881698453274556204089500911449834737265734330874233607096832140565976613747557723845755153019494117815870677832280420904685131150610512638499415176468501256263741696847200539502310139509129565881088917946752596645240162801719854042481793877204432862012692297595354478967067141789399923757992422979819343030616794709904647449863061015019042922127094178522168449502138629443922031796552452492019598975965498334919119699671640048229114968106684070632219333580501236808579393419127943544754804899795207952457332499620622846774243099363398322512566812849228430033590928292731430798458026852286022383144803394704980388982968651947053269720578851678055376531333868255788622022070841672196460336864022791012895226160967278955502935062368401198173067331781776923227656203163962098523095120286285321151242803700142771187096853372345204052341721602701755457318917898621068560156194775224503562171979579846084560255687220880959226693402953778809565105771746899006223894735082310648403201559961462490558674714927730555353898109263885006578958065828504238238893256070530994430620230385029911499892532079230499717396408611617157991874419573194306339471936437427672079444302210223312545175631066198869947601009422307401449114494909834406950892964570895009640183299128580434852086371865278917431171758147421545909661563454627301676613729503418161505398511784721281140793765577444343502868465511949056009813528552483994144227529866381845448481701091027804773673315137408408309453144476588848801157707551413693372603886449565170413019972800981320659208076340637427075282587724310183969720627842587258820088396133774372890204800951274616325828466285415486706078176068212721794382009224066022281473275234904535993549742894051048346978043168554945753282348868035211323680778101288257136332488694635097110206308766986929519096941105874093845016221173988719755696338068108444130599094580010953940422763235967683220138961913895274566455863696917923009913021258804402779238046645414291278186790468053782157704374217333969151638046246230268672876989780842460964500396219122758682316402887103655317057014367328164786351109646200704753765956072558846396757321506939553637572483957973058757410764534039206786654319394164553258464181180517944674696175297480401120671864981562462418512495421267323416541431320527811397270554404712522090236676722842072223415084014890861101708925375087243877697566459118407371224554333798021669786170229868244266460083194050432777233030513517348740192078938850181588315213783510491490597097860082857284828588159953842019555057176804308189486762059189479958390152845951836334704518116186805765193448051810178997969722096825665317731648031342482508327170786007324929612433017766536281966761452295959985509164367403224634386730947054280465351525073059736966134090487749995027129312761724470727629100855827930908843848841420161108334075111379550042721916060142293214545075201802586507891129053724416929947927372733344466427242990945566050190171514032770005130029851510894118050789220478561554600100886453497241551671852072059682614772344973026401116909473593903767207226599093388133377560509391886330400225315302097333343798430274456362333777759908479987100260428076044757143335194458963875883739390593915711920240218881867059106467349156095291027321824236186199373982380541091135097271325540529274418626905735947105090685704347117344894045517326680292395844299200180379089269452812870367164386382674411221947070650314648635912838223381297491558680795380235759352612679130453054595126264046462549582402806752002237926639303413106018464559904071639613036912883059867009300163617574236053916613963321919345086874994717930144937646001266525192129309670380737303576603313116821818813390425458021245997505484856535742130820818180989720513384595432882160936104246647289279887482080548326833820262167753032271925655776680653610701007443772165675589498759533310274117764498077320698568750771443911714844841966677544903175980360601834059150434432143252735270797851527587703970202020421904997245012550282261402880298241215003730955367600938657681379170845776429981781091457399450256012683284380117090647350873521101648026971852607101068263261762386057176672551067105109164053076501042364370703121624653669601024931180150943781715733473472157387276286167703322153463665660132166001278230268060018355979727895888882309258486841563380493608356020281870976819547897015406658133220903589766405715189727994848102590160757682584836641769232930626978652429703128892820851528004418144507236953051236568016936337138307562030972921635284257776204716158456547522879748856081867823561368262245175147090991359296290830891979156782199777785176106954766154249886746624045076611647538101562132157415374050448604099005697327295284804644965066637897147130035903477137690115307247732886494994691130920071128481495203333387835680260890296598528547110400757699771754605540440225381756032537774235205940209120527598658856970651829977511659473978531304078836348112919109803422707455429771639030205487859831810944767277491252588417901803683445749429839069000387731355221040741506619233306920778566719096647997835211894189939367952075018611604985004285582046143397741450530378135946785567969269770225557584576416379871612677181699105033194220966312871082673383474637506066955153003397058410703612129271298302025418650246841559480066786238293411029142152412631808394787740404515081706373328072566499040493837031258122216270603227265878730548468015610569756234326804666772000443721420449303760674182373672244401682989729703154440735580745793013376793171528391263343145049896534317442835852968009282884029821990100231108696195654247870059690728684135275181658284401217437204317611403493128011275603225373019219616935093884146991180777892865840092346048701996525840792055402873520219407998630928803526835649015348991562523604354682989705142340932136109484796583955484038698733570836973726592451301110965905008903652096129037925802262960375948903357464573042028048261353464650592440459806621556375463004005780484095395761839041860269010189464299328946409007725643968219324539792257368287032709720180469765149341675875963045899281393567482478733059145459989989865436782255046544323223847001818319195150712116581236951246130705154708470961813840921895508800728453940786521620274209580981007839933593833555742233198174389867939734282603716367831926519509335465357339114741047428386490460974365454133406397999328270746437251038039664471449577462914062643510925243438132707774317216059925077076370365910613871907632177756183658802405140145872142986497004152502298040092935080389642074570005175226486813442794198703748564336178594485054128889490765213186369743819600763015891660709783262636788398915161768476661295051849609755507865366518005627133836244740195259242071838706596689304041161120799854656033108797864353807085823336293371252658591640275640431919757829194795722207159920862628475381478893400122025361410531327948586286376448338085861249207403111372604280733989789642737222569197698825742317268334483686752381200313185196034120847970779075715624499614334695629039406787089697882336153223028785760054803263613148431325104435849625832019744964796665241206035933294705424313081593853928000915598094403097108686215669731747914604799043381894395098738118577801386218834176062237890158025575706713669092163553232033936346635606394268988663397107807900124944132955120909524957171251583056744658146669065205241667745779562922957803509636654972779281165385608621623468643648366529981348446443630508221505401774038035942987110937815038990843527510147066176825962043599179478147899623591840927665781826209614924480788764387878146000543283686666074506439966885403566265500001062202273221685075874201652906044038980651849241969997634015296043643724818283259200800110008779093944269630240199641180444372570664302278498027294561993419203913748930964055868983145234156187719171506902011028773865115932138894216559620089724380811953637936579953125243927310846377090454216563345913699571010124053443774928427533366595369157147283523676444890257144127451168582160041207961502808108826428646375196385919747844461881911389271925385603256149922463488051430534859918956376550352303773190300757128333033246572182258799500824027400329230423780148055476507812493632800887352286380664966469488182912614077953130706213143031637953302978385326890822179661160129046274177303672840971338901119204930470556414261674500915019929080276930615564755148769803404737569856962736275610029974412584652699249904111371504152041841037619496567418436996350979096116806212361996686118182267741951849228851266416743827029985752443773128242030536618958652531553736748764114096425677683712699605254083078011904391785117567256759715357606090021664947723714998968760628038739065165552066340674868219659110818776355588004559164405100559165113817882567452798699289987708263168391076528696762494693367777224985320571833337583937815797036618412349954691249513927349171882124014511660206575429563485742526436689288223776145385158755798324091474814857958047155830745812574178893700650048825913414988217670455810066822684132443556711519181730587851485094902324224358962260159512841400788611352364371067414357567278943984850626813275582843068328618671805284780790358392906161495169567519683128874394609155888167649431994716033629689414611101690767826916196415745348133313514298451296370771499534353705762490993253215179111567786790761038703975605775445515307281833143740377854897826137392147495871560779525997597820478526186789856903397415570051497938422278881527644145480913427373757974918709688122955742440173095316705082295777170229990577361318096199830864391737890717896476589068010267121219338922050439307226663353847755018812148420663397759348551697226002404148128673944975622044443499349909467526360970503418929219661675145096867660401353324815506186976896857841530936693078822123195076417082987954103810262626089784300443588609574634862673708600192320402527820091696159252976598190419202664703638245680753365313294502975055206466574832503190924650492970379501497343924312327418732116399508145003751438391557436888023036323254906063077104789592667246199487841588282201671967751386265028795435081346947271650373660892348918902009457390384213940032239371657465456941319247460546028789848679555140814498649347923944877697785101360088625855588641992394603768055418056259526052394588093074663350224038549747409634363566106362529824691103023327631706713571084918018769489789227259866316506007672362284514559518204552987961923752319831883872223970612798580757071582533867979076752045339908980691233979698119988071847336662391004399539336061169201744762414398959682294648451123519014828602990473188333342076768298895095059145169484784389050695232374951230833817591286823776152439140348014463216419076621013659013269301740693273531906119269051030412469209125277004775543989005289496630545996677077876978013214124358552490184994110384421559300982776569014493933404694831038217171579787445083655022816095607451827561086190498340580246603320788845039063054455973147545903167424892743664215463020882712574948310954291131851406506535173061505627218733749846032314390880382637421049672950855996202415848675009363684855277761415766937960662230501468567620839384303492531441816108047993409758445922287480764430417393088350696401837570507485267142654389219890442674362501447572713331275695982976598106932088694571389890511222511045980281760011539512033274906786475998568905914976384641674075650677978230266677360290661371238058853814973847220487438163912031944689653759237009137682446419014465542213026458366527386883234925283657454838386076187570037186845327672544199872819841109377771792665236753665548197189641870972545460763904280192915633626601857346650321394218911645477300089567960454341552003907526364712915955511143486122455077083091391503952706213584623702028359464215530204650094823732010753297743379234490989478489154240594442360258043686046346353359060113340475444420781496733007932715574458060173225833707495384378406754140967346950669289709581079381814831420392608877450671531684988291041927550862505349294737186171415658323905946450751420084499509822712113525114309174336255300579582667843103856653729435049777110057059962502228019413152645825167022760014155228245554182666051167189591418231301775929614468773811123471060904026634391916352216230194072976473259642771913855253556422643408787751290014684085231061200109176035952197974261676176349846887708743110471344140469413102373921166315935281920655930139135929907679218481946201205825153699980352776163275903262691468284190045621825580618988083484746271310711818582061178894083250653580154840259010100640801638420304030174802222312326655523901336834088249306309491523241986841493931157236152454342840996732511364962281842675769434314779907726927808543632354047100253498462367131584995622243029402323735348045487979789581264568913964620926732703300771836388789169666403446532776755338308078953269364840304919802905068268099058821285284239664602017808450414980864488580834779035505962208476840900049475387736194006599817129188749119585317058433273946754748321243858073265653234377420088194310083678021941794886068370551249120091531584669232974193539490020566786042811589388348928944469327794536634959850047111651054565953472192363897631884840236390242162782810592840866386096035816447433373643833100859023879748441435285136054468384294667643296901694389073863505043365642587403510033226850589601515565144235560569053521202267986201357560934230799863998146783211976308416998681728323201739070994070913055551216810867682401805090373365114388357655401742880189076154744401263635839621653266654846137265190307344113353082763576139657449206873613580539996153978366080888551329434080286619028603590270864460881281247893221081869945761124927108293616557448598751462480725660379656130095949661480054303098610658433026280943181054839828336892839813892365122444543353190497939200630781672537182340237662042943200121524725298755638538397273760777704997887232663422557168400962806580604759029821116572816985373465747183218597021216925851502732821063799588739507463974258807792831633081551724983442277708576233283292996211363862805135823269383342508289845147774009632910065546529246446792112118929986820192693061923648669659650358719863101276155949607801737849149024421800416199877611754724916852357824445876477369658079011805589307146510972777940234179251807889815259537697910100237875455160328475975748556382760078414546977390941412964708864704733940793793688229935858071150779834043825326171350337709231178069332079583096659490980559459534974183244279819157096035784419942258365942982626237873512208244246046775560419888069728915135253106522438648505935678208423597691929622421694737024255194959516245831662856949564764764886482715637972948854842573896530476970218912650097854724681332518712295354916958285769772126342911850646759542399752941266998086174613346756759555119114956714531965776710307151691591598015744563736204077004651251004313941326114515072956786784489579197023834878567249792958716493479985297365432475407099337558120662548594365591877947691448691831261711615179731939790377747375893376915643000710224189683327826159645073830688794279479576260139604864661877088504555532216235619608574270333064462020054836479987459200463852898814231713048199420697186834697829472209244233496426057039671271387972568733848575883442012406727822776078087197249275805202043070275484479794531723025400236446941611866314337781114963476757754415787350204740745062369535902473939602236442872824132290537215246490361671127833205686153415760084160964052951588258654209876716077310753791380307328964736001894167394505447267766729881123546199030147495813034940638678972262929119358082178592682691683436201358524641979674166230158734503844136344531594562877039975005344856210486368886680728751417855748426808216103246639549560155254847672396312794891335032773974551335197036809253145758772030779035450060014851803633952921457854228215659908847192998851196883057866240802835333839833168583370610666830812180313728674797816533282972846122839365970164627930170796544371155175691062324574600977401009251341673839731271704024281610779402861736159196963607776027393386906091459153369331599479373412091375828342945664497873702611202381937051474793095135956374047649300443680161440358077532814915809918172208980583093816144845318235831887005016896837238672824413247862285553362472017715139314885615535514162234927330676946346420656356280304179515292063952175532309210378783635374373380540321599224489940525980679164687226215458441025321362564726908758306788053447313686915596596370669109498553683186503462341994271628774066162933923417329314868165445780103234999201398612192917788186386620260472636880705877987360633978120553425368310513627039348939445795482236415852165797036273910916518434447367173665750539592256548295774052765171355446506855247630890602697225323043197421663055930698101678624864143936111206461145995983738949502319613715206770530720081307939247784965489840288752901005490222196834823178068005953273810308332083246114235039605863927317858201721352702478523479721729950646789707875868568074598127020933965109346199681048531196968303835913853247358865642320926423632964849135105434262767883686435641979111911470630574527556589834453268986757710902315033947776649977265068295836218523329543094604470147703226564054674076838343171452577753128282722311475005150671695095667838645661030447679165029414728572331870217428148759498644128922444137197187914045015336516176070669101309175485498996446384696240304437586400743820154583479262719050241225756667205175401203196231909227301628408612831668530264972452180717096048056419892844552066552443634112327155334812105033329541538765804788475280011520614852229733815117745114880212208618513627957393689044859491350582359665187728793546595761027206222948144111466582938342612670339302321854282674061814900025212230452679598662806102839861163901063558958110537292464974886705434726519686577552206845584324591693191948260236113141443943013837801164738406520516705418179417994277316204233214943583047847102733964083228639379769037965353526391288571349234214557118309309598169538901875597848384254555014652926882592790474085710617995021385788957163503119466073451993343335372192031930515591513671667671251922196552476773301250663287794218260821493893749788199283232429008291414305465081165070118087406635987220824299364466687233741833626502347997133784079995020946617236041715033400904229932550896200816710753512782215214800209352985416126788050450656265162740424178650731420245934907399630591204683122781339654779399705348360137953056447637175324840291149365796861708919096980824007709799506913023884501640404860299360651691939653974957332578458596643405515515496954195477265801474982297770304802917002590308395329498068317906177184823217828344378739126566272771646528856978300313361691897112804820184252883545139047651471007382066596737327442966501408487290973082211408376263983144494485593608924370364472273594650385012551165974688125831615769476266676215357646403973726639222358315191691232779402805803048803248477810569494042269545815857549360071697294524110675843956447297328817911280841439060895320386032713436555175969393187496610237005375710427346044000325890702189196605176332702669261312046180282320225167798774873512527092801032401819566619443480092325398087698058971802693174133821454280088820150271879615981347708534556261385721857124853749455983379009075554587319736885560098556989105135774145904615306144106238113009107701626522044351945378994385045502847653176216450923451566504601573421509271996932806424005683833361186689307444388476438751217549373349909324164336078295168687001553819583044046774478064857812641013800437767147183557382173507227079055839249968338651938130084756834432905702011207407342036658671236682119174918357217871568761410468474114940561486171321748734449383612867479345783462578458762375337457959838452622082706985891679827610664674012781865191152965002609870560217586433598690190620531807589253857854653100292935479892970654954817294372243216626392309665444874287749322443171920011242191355635706017941246752148889655454820089225357067519034504689985608429394246477606246571607879495463295897026128487314549120709568613346252073604258813696869680778267716519614382593375278341002023554595920558763613679248719701748063760711563709266875472057729938144094101827424033400174721099858732218307210946580449557256188282109971990523772436674587107053459462716778137978507441176405075136913496521351681499283297220124674151757667078315188228803924834420741223938094307263561118810419050383733189891030413484615556558512824725527173919894239311018014656628247958195044702194030670491559976151382336330106317602950395138738192331898411061036063436595535640863273730798739252046400813391183238194317168144755314513345314244168930096386897206821672830126892442579893675438293596990231949889212462254099439250120892361101992518714770891448905933261444722923177910193856599800310865750898518887070699755607972871643696350319886911181250202894772978852527693347814565934639593328397963857325156408044444269486911668280664115232279853116948308574464447825611080511256995482242082346397566428020038143259639200087785883387098115665080425834012946949914259020290213408872017414711552822423343204681986812128525865770009135854768242604937872574184785642652949416007663926657432151801981087414040554845634676616953594274477510999116313315286297879398807937391352955637745120603342032428542008173084624624815904414957903868873294187516271029446002238928437186407278514863808207015474263838590525975844568110055477328847016201693727248919480899340233730950818767552806925539129310291147002988810525275807754301509292988456066804165907090509042492636852251859383208397325642083766986838782842507546802619627303305551904417161984007737558767500803763654765788409241721702685997040916586699675655455207473619931349094764220927126635640768776859106135683918983467307334166578127422452719875317169715106603243400084575637263110114200162243467493392400174974451034650793075471401899503914720929164760447819174157698957962019998348018390210721680728298278594366784876386624619205746028912887668726240927661740870376090226240100620059936006594648604365853228037449598466385027177528792511728814983485374517371510965371531045081043404649872612490114130262864845295389548801073443185872567113221620911627181404861393729680264137714933833553574820553622307012467505104240693168263751648763875765998059691616953497058306678403312745833790150638294384856718618604233153715040821819314489142088279650064902609090918408806048797567104156171923559697839842207788111590823570844407579969655966761554588514835465244921771737195809020584624691218828474479281188401039117929050358904967453088747004111445883541319724477137210490496759283501122286109796007935588600453239809658941507313507224372417263667625441633294652972301484119846820683616818466694997765494022363385907299319873093799826397978970191484397555279360299461949812851092187362617494472965799502566458268016535601003567860161437715361615039667614400766281201017580301194206540381945372844130168001015811134402218790188630482011648138407039933620992777305867731121179468784776409291962577711305131084736431641495449858324963697267038374853004202924381090351601228734895732266906171579587196549998032225526421903034405544846256327415564749960155885008607898329512134038075569542071823711255543675074174585200105944061511662794731053054155417463860330091648321921476817635581418572290053751611413289085223399176513348943583073103323418603865436274631012683667604066970904666696167581907507499096869960063649837893789146225899433392621882836320141724351995467074028991866575983931682781264086633325169678825062081387498625225120870684338253109362905054718065215868029366040673765433953743699047558306213453879435608948754465306254025638237859108715155053190156155537491770427576445810389565473831207412585306517932348332185524566470167393577814088279781361861194079229949394582682820026541269219244264044529336051230367579521341034812839376788350083661190749622459885298690600126597722705800599287966151270422309837874384591971056675279314844960018389829324317012742135842927829823877956057496429533661090593918380304876755649467506705217977605043627548972065955083942552305245343233552723995435912697684864585383201886191437156900766518479079294451254003908053761566208897129223959377650397026796053955448939454078973755098943389244786654079619671847899004112775646933291064799370251700440056513482790680084164667323228242613344010805937913111640365738462081577664059179944443495598960331086099748155860613933233469365738414815587402196916342518812659212433742010019286871175939462449146035308696636755693654718441662667489526682374415685127881488960609302601924776664469427068639545202639233763715289041357004244464109652404267055254952407395535373743239568861715705983483213962081704806770668671066141317707246373718703751846101607154589338092807968752190709056155243854067917375547616580697647920462206645454580455809554804003915177315134794299677517382673092826954949211086184505560971946650815505289479381106968339808590247668823058316297876546673894118182621214801087613693998063391006564800795662437233921010239048699051366713189725461604825530402175677992918038176127260557952997665165243452012526070607730587790519700810565113403324695384113547491036004291328931946390455672557619551641445939285232862995745718958775448853347601664982217297552102272330773863991514598500041496839263893123929091038201128238877193172046296394109458504498518716828854035465190164716016362674177870581671983530113533181178240639483506639665891418718603033851021366705197865524955294281484262370721285248969075002527006220552249500074536152412756145556910927420345513655925020554002091798448659926410192059935224498408315151777154803001051387605205273093725895732479007007286332469220647781634520388594490333736927682516000900175157089187333906850326297634017477136257536401274819808579770051748993593402303411813283119298683491645971831104370475078048304652104852964706174757375370411209137292137017881371351491301115586656369398981355578573364013592311706322045220856473230925441483390108931024987541335402291388043039843832400625020201028048998349163673380252956755097077075370172098523891128208517569147741849963957979379770674021345409810213184344475751522544082092305211062200132209215519634619483724711258978247139452429316148299900890202889170751944606905767422001651974176098063312727192529440231898917312573773651899281181439461694349679960018534806158297616573251155414652825286509048790467660295342006784451961916139177380611262884870711943883349933460365022106142103884183332813650039513055686365273948960723826678230156418316135639869202251978856997470613219962200190825123388941948609818998812862656369005040877268181103665048394039908339471408608375406993828623728980239364728841818598453529761845942321438366237098775154107988813752601938994092023221910572415636014972455267214579092406077757998173356711113774038997945740919421316093535144045820737816075074540588823163985879564125717496927026229069206463288971813912935963728325724066458227182858115873274550484392875628881160392122489972386854559900241113012888420377304110134282995206204371168044465391718835080894477314273879466134494758404872458462628151485870997587686822635472894196843681586532025258833943625334719649606431093679427605493688366175261173990820437778522352646946099181816673184818758967452151964922733488881907122046784331999337178275133720686654399414429559626083024912015549269834545484790989435929818461562102840224250822584022787915808632354896006642845697446072181052124128248583148045456805155359257916676063343972319208174787208627926338498487269926448080066673460504781207285146644015090956601182191378405388849858088897952128117890775999616262777505162240176278106936627325369811165365792788292259638951659092150563431996924933359030428404216915668914991396672210735756464512946655425914625379174273278159349835744329450599246912638011672693424041951783698829884820730021627292995131833040613747427737115413296847372961618328961495380680456551993676519773503025361500494405781930944133745385697611473761246903564784409861262543170142691847385182094900365603464397808581762830089877455829608074285745214600726190964967688137212803284777103283730334447466066656788532868765591648607858380762612785704702747657963971292177303978796164857446969372925994148287377658841487872692398744437439221188295389994821804464089878752147362307011601245191453932903361539954893485637140978402868242265067312214519384749581893675858938332900931778617463713938158105888720765209703237270893812375363873282436311343950447353439725785425771902310526863201868008669417768756579460506283965509341809306142958870399672095331627006742769419709063363595712937475184174739521553033143426038491914801322763180783166055189561329942549270250291001785056468752657295611472540620932816369672531372152859082629934017336401460736147408171769015371040170532720457746771419996073410516425320640754449580062457965692535456825315696898159996112296925512207104655171960188269733018074297499801372711512442873290266448661573320718003573608889624862219797271433857983850442990547598100434112514105869997027222803059284185562217096992729643918975627068263997790883446226252153940471875936507251838378506849007890995155396502352269694903210899051069410765201043841497117265528503390036468502564493167195918779715157930527254235533263436490734788475927399816982522904429279173502382877538612880438597323712980242811122754056433266584683934321655657229940138797523922083161300640557635235561101374785313624950636331108264247827624645929131067101873037320410853140984252046111049479635185001348617750315265465775188371828026690036201569086260371606714434625750593360815132814406029455779703293553758717673674079814476709112109059750617668669626419663528030834170760936360210640596921619766944201986185261888521892614270033652554646480885642053188680235822055239966151406379123399625386087532374741833324223663457959155578531594433360788725186647199650993164393865410312009524775106542861259945771722433725749066625735156053267221281443630680861525437726559778508868436216384946712334611383484796336791277271341325190126861251690540343261564359678135373774395983010962873943355756386441329890714426727881802032057808220080362710325267635724911499131255178840582455771752661277852890241494655753461076279009709335427776591302564021548385185939972442187264905887066210080220604865556546390767694030614970440153508875801840919725936236946753435877872027027521749986436912820881233071981783951731544214651950815945483014511442637135838409007694341017250870097070752571408758394505489414086593836883789894406588274966677542671728735723852117626645958135380244061198918094209824308748550688337957272254058191348541762551130714410165820298191523771366086251608271203778773059801773763923815515154429536275520998535790902025412217188670865717358475073959137238444862238572266847268882404173600013576078461874484531942316456982778490276326178795577815264267781221854378267203886123987360518541760425593316259695245133141645290945589804587349140649207335603696007865338731875586928929110327982319850345326566031619499141984708345732450780160623370605799298180262507865464804314829927470038920716500289553934515697107092680661604972404501480262519322883315931868454438953607631576971927904248514610315582077654725205885919104733733180532675968330105216542501285045318636759846128486020488863028881391262892968609262050805774999917003243436578545247224627760362546699395776665099626766073881117301252700946924672888051691410121349473279887936888037008551261021691464394730981601686477208776761545609818585168191745912496305779150152730302534412052457878668910883786354590796277120605079896883401858085982627944170391344109274120754589103465611552099853373757489101624013136794003471766529258083192824930034770073160643216398128838512919697635739199339193486726660075673349098989377302593845468674126825950308333990661289894274294821515641485023620953988716921986704496679258267192868374967313618120200961779807719280200211836396138653149018312061343188420270168716283711647832333213921834385793688643033629459508578854505885083143353709162779586842559347150662467788702415948873719961091097852628257912057494423001881704877918019795351889290284832493240428329730156150881367665446221771932232844694353416238426938408790038639652655978671328392814745201700006228899998752647280983911028906339561284414376850636708875377034037864826040303333563828322475723665742171172011385500656134326325809115590996724948256301756394359937931604865537928838416042527651279727895015081266984186163278708849799993067948191255663530666816190640155307714270963122201085069751850960544403012873698499954026075939481531729196927071236426621174234533843791687824848436925683507636087444609801911328561427971234001753748220116772427467848106369718955836189760152317651888653995150749968482548621230797830676351458845783631083407420178385538039048582338318227148668980797529786467948711876020526775037452606267033488257565409417631172426404040812522283967988568489588544867744056356786660180693082188849275963085037257984695387579566953558857873497952582696896381368469994642043847455919576098319727824258663074873396532427796523648019127852638625577899196192781886978034228015659351171419059609532979736325860182345756372195559508169805220885826634749888137728460766704153618148968468044265454442297169406219704335909847459577782863568364942603645075983260390569708572973134682503077991849258009263721114886605952616705926170906723502514832185702713788458677968778772573401554378798136483282133782063025998180337240110607079559725524900257192048328425636240066820284683789409693989659919838392551832962302944854172907152135646771679568768493938241981411580573661912831669103038005563863175688582990202058129976531908474341003735895732169060660334231572309449686110536841174131151080962586947881045460914324866583920962910278778381216510984310904757571814398574079684396498646731281422818833284620315963515838834055862365346344904035457288713925574828026531188656541473951899090318037868842896865612913491162129842484332201385474046995646527621565601549048340405108356211317449684258238248517700984709561001914101503010322120509641621277464375697518913093511393356216387007913092021486931561654396659043441862427540435524256929131183570015144474828643322170144425374268227111405963997833173784877814769301856869983149744852796966354227048697638687340333657234247220043871512607491754063328105405093648084705028772219270596146615120497427160724538586332318091715376582989493692367609958613532159291841142283005215751037698108873583324027863398300562522511385276192659005339418214517353557136582118892347379056204744611413046668040652348647830667280186413430111175519110194081131178302785496936662067622337914650825925770300719699827434671571671121342230228121563294375626393955612548328002568583787564461799790858665409493770296974918260721067160322750826271747047797892038935889179550375341888646044012372148620141443406366889338025237874392671364653205800419868793611251853909847809871388379776090047440781563105144125940140070393282653708909602660644846782215161013318300788467798879437180931820671755771856108096564475039274147282586886675291739407914723300794113101684587054737433370237227314507709669355694779777986746608551758916136669760580322809457585030353767931004529741882051276802841469475716221626843367693682240191001529410338866187742065129893827856667456717115727346771776377097437439954128384267876904791921154545900390068268301380753772444384165920448138838318604568027515638973033559574548301340958641610463755407673472382340414250383101434626235102137539702316172400747737383443898800500788390614615103524939034683033377579268669065459153443973236437711483047213701205607886343681831184857288117850713296301413244989696670908989040898494768861594648304046171026112238670550648591639808470205101815377550942218483185295854151919918689431279869885083462693759751040228948484323048149525939709965388552382976130559238954419000318079815927828015899250054057938309659518137728929171372677670520202712570884692999194821663108041192049289705333889858719701069303872049485545169239301652323234091399746763373028447384963798023455231196886464844321524502302144807757110143152878608538156355831995049393294389275777547369588013616863988136352301841331712706095068372356915671056107296200938184603459345823763397571767270118660536994236887042681324580098040031268038998863547451098967133603528495364263324566242812488614902627292712322219291657097139514568579275911677500867554038376041491562814902411816465132815696409100658075765204172238470350300231950843114518453384452777186094224800745632422240677445221993656840086384446763036164519542148643267165157653439422598995616655878833203947270184541790793080752647955685044243827382092150140046615968341413957156819968315333498836436186572816600457549205247716675596670171862912969364950014615504215820391057344508491788438958740203995938809028037951945773890426235852639705965714390655416406589981201058402782748111202646616770220442140288467812445119782500163232191600120198988637995286340560142732710920868790463321277462687417453411934424301622616799181269818756230240500227893770997989516043845919810667468019887420323228225633113613474040120896399522152716771875359563602706605939804246748373113215331021715535773132357963072374550348616986520588968016641073935478829158638940118840528157808714356920396629720398701165133133067047972804001946794488542880999008453943206780375782830381559966311190837984612999329132652226260781984259361068267523133769914053995275757768405756793175277143543912963011646319486495486529675819284325204134208282291426130773648753484884366722714470225146946701544589300331103210734754962082392792502211179771924002190042820757116651488257071325913959864726276137221758532156300071753002108846116266059354411070856066078415171584510372537222944442222242867121769146815335319698141878136715402182879453886900579408725530485399904196477668557682251224145251927522336357508270444896499167104206491748117261730103029112116706857126329983990187925576669137563908685576579012448434186452485131533710440216015584370828463791011548504277623355906341248914326651656684060776752457005076161992840680616203279613555072622885128541756383773048561916144306336399635037168540190433425440947439404859502671433234812219937168845335351062349425566773148044574532204450960971941224832461051669471473681289189542230257602023976872330888518035354551511559095529531480052795132878058182186869239232406264215537997141726739327159441044291853976525475336186629038101775770393144013955273480163916201094386997450133815764871889271887692812857713209880469659702510591923983379397821389586513971020529713607843961636160169416018619593055657578933832391043223498716122697422737136242105721988591796470237788094476927770585922519015134364545110213299409131194638413040931422108603496470764669942934570078062893207729883985507080115851611641860313416947469621773491712962454882320874414375997715465060687816236227733644014241959419256744470299053638083708952923657170473165530453934568414328996596887650413212830703776908035355622720549447419133988710710787007268577912247787294524297421816180355553745669498909751327631174361165213632046082007829273999024015863645343353400157518144483715596520144063002760843778555722477228478050918146927753900836581860055272079136788832297838116029701172535691783933594122036160041225869146798947561984126936598186951818154568288148132220834111110154824915344813633333075218821246189962988502491866398806146635122432890269204098875665093301335640587316589566745441469357721413561966494704079006045969079882421620243669730591132306524272271126044156204392150306744317525618999071639746641245241023804843503736777287136164878105324607810817196004892927987078707548598630300928327701832760974638840996428373650415106154700392991759709527637553365254387659670842860460790979013557087236005086281551625194262728985873131882743750588929683588420125597620931161921106849831107303153539367217302814588223211751563991217997168110462593563474115486513350496421230263155896842515346376507196328225065046477632526603464641229045784932006164614907369525834984836578739906645790659390245255761225125459874991185834459039363076793199137555128915544333992489183417461081294426801647914318098045882347840890380882960728998357814778100563074847346077022357588651897734290465119808582256087400244131358129709603689986086756735028058806207028246592478687155120500388451650630107249676136009276068732456569110306056641897179618424139893576936979334677843570462970804492413124803280171366498105357085617391397249571880498912239347478355740730590973744359585689041857404249882987636695391816171176671302942844396518526083080559219108947593928304525189276271673383655389848930481707963922046522805356829571401484638890417297157476786293596670389038843354431299506539077722397564047152481416764801777577394625632038165074007011072049323832010347718944416644298101768858136260691060531930408747513467065702765226195690328262277890626543522912528971813135170759860353087745042303621224124650802099982568649862550468933626820331555806572588383081173317190323385335635593858912532735215436300445642047397165603598880690280885380892384337088494694696241561298406184509330272521054298703695324280347077562790500583002330286069869115327275199595058953635296600870405868133407992063512917554169662132599107705784453815606509011254396344285670384835841953719110602154055662411031522422449590662114211923379938020522340154481205060519825876325944504861698904581899456584842409307905110403074758782879035922553548095333478690306191243625857301937149644826293028380944245849017213815232300679013856653859164735109194452015060454309393483836292313131300991343641600099531204650100089786801541675080422366874184774770395710281980987533538260776033171329028144980698491645169644783321698965646864822574667626654116040200809066525397877700886175615012742234782620706391541938466043317746188139249084082958235126275978941824460713424665672321571227897118186288149081976161318942215909642926001438815255761393543855058951749397273959142774200275375260327825623379637354180851543301688989005112905601825333221151877985945456374137116248727876376318322659394310986286103603428823650497611151644286942201179518743894587135568805384690711684131338317136253245765779522271070434946674578833411750978132115454574779619595816786113265844235043205275075786339131830616716969417252592109195531326127321641296290688557115805114967762336730152582367567490458454411358057740485150171828400404094640364235057968774361826769549075431879077658316910019692580761321368845502448708598759663477054192191749293103103510158668573020186784039359272181391751622950217914385894077957112541423418070288083267169319773143738089375611830451036847617108944050655252215054883647305570733910298556218883863632870774582200880977274205736999256953285078513528380123240656338345348811296609899860641317746165298516476368448529027487467631748219473469470925467152798180308282594860140990791142088376836733683717878829131470244523808213224326665347140992283509211956425987953118711346230843158360929719540545712941801728393822598728206034870768644367481642049370964290845512215611531384903965136475817401396037900811203624089263046905351685635082771765294585465855373653591900112366945743525495572151490774936449439436058494739174875342306423852871460350488045810203950439699681612707860917317467802483089153329815515862984765017255132878553789028794071323280176497722072014564451611990714715313308070049269864148891142487602800621216642622845520345064736148108104087150762342150605119329484089592864724045788752385215634915692816357542258018720071421729716451179290963875924191404381114448693705883027836452923490332474641326908622852809753460146434610328172800471682924976765938272396631156250057310526584656330761335094618338764725326871224373828134176163407921944380542473132491605156154296741229644420888587018599359589733139628219207478176012401678907256662839141966295336488334999824727095623844242583945996497527594565088659801115055518636284705944061645015607096185349546476137499474494092648279923265800761314705421387941489048472384504847032586352022755234830428017495138917553569148497176760764881704413275598737789049951303846950084942328864703321382509103682118993782254968899108517645231252468275578646621632335101721721896457893072464883507292830746434030039918584996103248211263732875175435079356649411984399481022840195922582955339100677121778142661493890627584514856115590009675989229399903935271037448868525310791659254096522793530737397961111500039422930899428425533652810331074636984498730061463831694320323490884238714676991698803551529881563287468079184220191517300643501771590979325842440128639308932199770885287214021195779763075488279263014792981675221233890119720702467853829491732408333616524442453175560870389025227440704218377205584508442081059121033565011792624903040363538815873290756968099369987487403777635010261004771720424460505395240881804315544562919131452518893548790048616666396797047100563010609308028174999798076452267554847826413083603130844680342660879973734080169846776822414541466552154142265765886629481699026710861827751371318766441391330282439600958280264771057560352319803892119889703686829823789023715334524885073627833575338431353553495306723180416885629881724969554752573074730115447642837083340705233664239344660033614099090742843772021002731461357148428217807618860967285959773769181963579005381464109833106373221153182869705341096734181102916659749624585138185961024781702095963728676335800236877558699184426011161426611204708998576472000740188746203788769045305844017855334792011346123973814657435408087526093174096175826758413629125832072185341684134571393217304745974222936925901124194107524038374592399728548321439779481046280647672067982896585232663723077853677775933531158542142000655170186810768265935478107704416202594628171479491501579199183149992585587132808219675956216055084550744453666413022448142978498850064187484737296313528204518224333909280876857421384179823532337567803337399806746405300775835757502267985471731206690820670440958790745314846754065705269245226393743777540425330142503598445059963533440880341782525884802432198797624285214049955280038511531341596008946314251844090157769960053392558209677546418345556337649622622276033411680239747001828704556832469767694976554349676882787297516702703655438988831649193615317333412756476601897078974440671232704698023104355202653984540520197794969057718814444824378463404234116036647270762581218110912231106713110963232441932283862702807729577059724617301892589932894492682251867383144214605590352751064475380582735108357541949464437854877595481832343086266918444532389618073304920650384372032608591927070446532641168279260726511447396070229397931700693486124095945957838618188749217357931650710703475785649834832838723011139438184766085545786349197332795246042756501798128410943646773232546841802135395848578943114125748491561400324321288868315654220202889483135368293374674333559063159878052843241004184558727318216982994193759178754128707639869613301467828087361064541106838540640091003054253283932934261354361409353497935109807156998470434775887522342611307149372799638632621656308027170087376946861367278819445927555777091765576197634532828626018937156341812888932791525761988178793431091627221682146048386430770717266919829631477228544687412115674716892962984669767382729344185670160812382999287701791383651922367547951763289083739384736611536097360305198548972808337978800870602655586402073722320062616769581182956868989620726759798355492074076160490920389932495622873180999133733773341943774045786238665194713126178961564781806779017868128128296047053397502147373060193971364545411390864282441013282642472891425833632841173333059680936176585279955717309283309513554151957741795107890028618370621785687127470751747378459268723712996697262719360725180886176185640414856325103354826565319016209054580738773667806539991308272437957840596275143723108453464194054728664584175074606074113696200119435381797353189052864425413049760562812940857458612665588929117031630525904949400138938303090157955410823204109381584539138723028602248300450468141158971330452059591912605235662842285806909352892594581313803682163524362147755705152571136056330436265211619299033808388618478335967595002002373003854051455691977713654569875239460324801282761410505642881248917517115843096707567546666857674393300884611458081505708817189997475743335804474780876211071482311989081190662539944408883145496376650108129531387396779174589094157074939993870714411619998037787874369156181359668195274041212601019481697434862101200515886317517756378916354633923289246195045822160758417143096552761508570569488462839583990227877446170968813431711492171932456401514874415056527781751373789344759184589419990654475428253644655018395073080530310153530374265932615901658207471990122159111542590069874170120324664055029645119372161291350596489391896238654515891867404831215289011989363895910837313171584891185790266605876566117426207450839920339473261433028112718670109203044671028135430010872842270095074029229788960319004095169647494284545873286200184932201789705883602126417893797250087966164309737872280337792727012859331589701929881092485896964638836102400688373057693527638874435286545278468516841118080545191376510791315706787651449622651166517408161529512135653972562828365224133978071345747582695022772388644097800850347233496494673322608576486257358426212078363733402297238455190907455863348215555608579405253522143531445568730687255650102256107877667074701915699566197058395733258211245010074134472731490356803062696629522994611217153304347332175190230222440679470638738494083295820009531764849343294082352087701624215113363020946191126067700641811418137844652490506788760087110804196889194136317014260365330593225887272049293968329193638748232609552227344485068677777337696351027362481583431993881750748879888351922423973480088544865124391304139665703144272243991016002587275380799764311032442408171895296375475054450317921824852519965497642574318508513876946089098282996931679586696581181906442516948293658093672342050514133979497203436383605259904600782354606590574408880508301362437264768324467655214741219045589247890456586143613897941631385747391765596420529708408519244038519948463880502288407042784218074020356618700222861019709076638337897559820216818270504057389561990258612849276157736773155656014461176731138043140246509957143918982313421276023628563924671236484670650569309484779282537944494149177176736898767859594862474051145246096334177079948522711910088516421553794358818180574899193491069591002775540016453270110973898821999319888064115778031931054876735083484630419278091147339607940733846504329642845473886049638912976590516792530181671601595220650638900245446374968981379243637173653894382690105228495455217840505665747832592660377101802855084655383538336865943294511048838699423794340605858317298134584738036319915385066969804811569701697370639278252146032568161938657037464040426199279553795168101343889746258704276547607735026829019839348730316771244709457295469853395481563901194655219259653742179439617126587849666436995377008500427785123063841257297430960716335886349616975574858747211263927070914875334145937552975844863362083326831039622803586176446981074376219763526482038150271949055742183879065456313555800291472595508164903186836488992193796001644574355180357603249476613954910703129289659748567295631339389789417053660093947653047770575682613367281876060811503009648335420517164629926885370726187346930307635357648009044208730262937243811826841593358216882959223048922591582509374283106253026070988738796825888321510653991720840685479237268219157875721819599050045301153318332737666176808676369583478674795666919614134315776877536527015715625954030622589392395924259091574603566387690951560134588437142621885273859996616351690636302346670839322578602774150153157581470628726220542031595125532388447636356678443476020934659377575512176908340045454780824599692433305364614274669960291052770691237626085009814262752549742481632623939714264125882069495704583363692724285740716180097566563439925857515227986382850704154510566207251529454021473150231797080071735438027198067507373221338080475582296743144712543339930339250152399331405961959880782847498908526806456253788378899096866562899992461581003453617648357636403824385497033309065209876048643785109508148524491899989718835407720534809925980117013184891169077538012822617552584718241830504600745431669237362714127785804335853010674680696966951520293136124047618973573335185907775408671304006066400930205366209341972613704401820867869190498433410684795356326372618811819999889921203707342744882820092756971972383726658597755868795551026756559508848746918276908351770574680063718237365839547208890329782377172214089895454743218929434657284074209829472694127632768801819767315883709383825310412488199656016245705828393893071693164899223029829172874851591825705789656025574740228473092523363899557916852702974590695872024376783984454993649658550483868083580503216096093967427399425458211022046043357896451269043447986305198808867450447738989019577476104163869207013251988075906552307247725623372293711068092056426500740915830400253880943217152564908156464884314215785879459080818706178438164690900489791121479680346985254124568094622162144072350759527002294087418456527503232558809499703874759123060212245597957549386649019374500471821430063417173371323940411315878859626239815027959305023252701206001592391955093111912936050129855146033766588542493862421309932708288747778274693787945793829871683648404782525189647296888759109465285941829731466796883938548893187008116477461927128213959349448821219428479878196281011770439268104705208063673373591621240431931134669567571745847500760556019737198702781523106814668511880449763211476331239943387355632314517903974225642464532753979865359672558410128638833256195334275727809170056061205432261490272150474181193665272022674607156763457934258832792076749370698376236778919237833428156076863735368384773656436599943924776444686170651437824140746312878843448585083326676365742086976907936028135738963502499083689039172138955158446647917372993173372121580536685811012378244393935482530257627675340102684401448392770456567316233036604857442291329764495092045396037337861254361804552074025031077416557162857383561243068159824232162328357134404858344094289599689575275357260946245311522012787858036289944861141156840291009569922312428083087782384688830744243586745676610279622170202824785318010964071021044712443002632898548244411292241601550110774671256661289553235480319067126416597320306284116404083848847614429817456001367976019939779860654300195448438370295183090007011902260263812221078917742208764690448648162659468255256021860539686214461139751863135005014986588082659423693124708742847943675397637009367331577377945639331248805706514260767121774352237034190262665058193775180908851889381978197225098738744725071950684311487429211775215702824957029631837828170490077574632322068128910059300697205303198001094587819856953960247897222417014215276592913850678177381214340826166764431349270193590753465955677658176946380801081293695511450990831129358056169541162124558797373903845893184614186788288248543659602788263473819230909531799124157328815674156234368251700822357884362321630388982888878906981974203617360410884351624143875135555096768045900930221344212968271157704207443404005339693655187144043225841555978563346610435460109697057649282442300901786603012309856936159900432823364977812363387674284141478065613980227910744305529918813617249466827210018531139500287283752328883121488300012500052651606054552628816092750762215752852775429354124736362775055239085336400680277024960773137565736862520419773703721296087134194308006825181518972654726952205377116965437373198551823704653737219298650406774327235748395714122987243977758422878799893342198401470522742955908497541650555872419582024136224978817024333910419190879161334904858797824024195452525769405806196597333990497603793991717668536906403286313018767663738368962243803627864979712841180699876702633859109978920527960727389533656290522903556978121660933635944001694971210520602742268090863065771801564232529354055422608490477881488300109561211482164076255710694497915869983774541978342183280978037121209432810557913969417753719340618738950155228314654399561235000313564450006494930036054170084883887308655791897710587488691594628192314807622394583370687360868675506957680506126551326644371896261227602556734189532065079444808082758841007347504963325142178143575136811097242901999771850113349171346400031038210481612827755589927200559071880761247830572059271257479503261385075306472882346757980847285927084005629554923860287883713815173313665466453880843829492259622771721587638745034361542257601038509328283063909455310446419339017683530746357644697997582627099940368810861405730138154861212753429708611847351189366910229923040218162811064440887449654973634531095478385028747508566723204422586336986941565758327836751549949022852151609761188962488656696654040215284208177539556290059493679979207846369902218531452661919348338135536121854459728865723814071619020982934553703002694872740606706616537936169389614923612250977309791880275247201007225176388718383131653063749649264397065413217442320019581772170037458740176884428714313043654265291393719107396613765164693378114029992603212087412336178872395598198147788003739108357808752476810836131552136508363905514472786808602868488812227156045757664987125922413633442152381865176959418853116667595409377285163241131217186315879319648085704003519602018898082165005594305357968822791414305162939858424988141794399177578094505152693479322928332408798859062379829714691331342896650521337950859029591719430182742171565700399724884025183771908579417567316962009604358487443490295166857804027792082153286899882029604972879333390109630631266099551820184055846888936597237115866412937120134945375210125208426744039574367372294935872383995220068326427160730713803364292047493441655882851075966915743360106866764812991037639355939248366082900694019718507766666226649082931256982325832597143671213067392130833646553109525363398631146150626151639906001701398469144770063615597469155367741012878109255448005058059866741059296230843413061073790334661182678829662557693848824699921387549021943040182953025477951978657218206679872439661587128949700260755126677875081730812900934576657598003316896849527339002071325229000842922980709106719163880787206633196940547121274100804386137651694087554206200670953010242691230385203193916064857626311549252692889346614489791197960398785849264967279084837195299194983287877258260854230802236575583514746197315040877616727758988546221922382317621708184512042100008859513984173626248149699438078742125095430445793465134921688861365375765629547466897363890710636091603186823684067103817975903445949267045924737336371121279341714897005250022071354346007729756238356587961317906277752269109301054171326069889837337438677957940250963011188234670118009979580329833557612710896355050296586517356249450108456453803436352535394498583958827853766904948260327314402984411524287742253337791424460968225247112148874145920184320466679116391089912384129694824172510031992994087149049274735884230491183491474159153488258489212179437404596266814604091100895049082228548289755350672952046056126522820193143738865488844298370276787547866102081646232483375719991641614081118806114038312985445214084315106785857566364909483243771554074414547104747070741143687481507459411752712347391369928302835806410712051318910658983461999507473116909489123572619601036102165943800504951948274397492969084592513725262003919735514551331407123820420878682721530608298229735159327267334139199947792389070002450588869638932692527394742176152794804742457597053607147095979768504658519428711208579776477525595393351420468875788308218413348074268662583278415317156638418876487556650457798862978488067212612502109139401717167080736176724776889310290507684610448157064986158352603532842848662777877403248833203157071140768551213283635766978371981256631131135576842884724792419476111794853092559255664791335174310865922447656989155221239979351905481409395289693591640411196462020808722158202443312888624346529693394782516361108706243126882158478509363070726419775859621835390065249269980977320182190877799139979221616373526802549555360761762652177025638943249579902649437394074711225427727604284361567961184749237894959789574000582919161562200856815676490541470537804449766485966185510460011289484907941466065166649226932074555689022615856975210449893268002007244300520786935757211950931825803020738849215757866686941159880772338771813070012013283338024239515989930591307205354928692380502713622147274509904517794540964722554443423989012250860041872654083172679231266159115433768793202494989694953521865957504770861928182334209314277029547424641164418735617524472094015058248425912908217743090931191089374573599419202305767937068697975931682139537696523832788849088678697772406517032499281684134237941961315902035578605993381377436162412683998331587630185120418831731689099010055393352042578531496724985274405369825642234452740325605658485252918864155846197567478334704514336861861503871989398265662809305952163883047532321472881946500054576596914544923265678845100959701640295511108893749382672899770271498547146855520302314044419708370702704756386028246861130248202987147953922718538413746488997907262542376716268479614300990231978057044623826876267855448714897267779587998980299958680875690074666926980544213890633667207134510538898519014961301374038441235872242740600603686235166136581874037762943338836449219584020333911876705626915750477334906203559138918701474140614574585724524764690487117010290540521641066817058067009289562356418255723768263375172802880635107839783506691582711226951599842300930328899684082276131935577602802234107869115685319441232377872687310430136811429316773299303502150221158957822651510357956101877044257416235826308470459648148018739599345323185592190955429657645005761279837084553542359422081786867603502607537832337546703063255213757848642234338848236788105196219753181668093068836873700444650403944704792655363483980055572956747312562025570675417172449827062396290076105968987116955061064903344773644110064522743104571367754119534553249707334259570954827651583727801839216247720162346923058680803715856170483969710945148718184767818991078005124311172138867799644612544696948857102253357626606487335037848454186673793147010454825308198336497305323335203642416379793136162093977166736553002748105929346798462994748286826688198605992176575649563878439143977143319766311146794270863920433182856932612947752232556240939723398528067398877035809745097095152311737862541397867825061619900025722408028763373309244831593312974779241723810676142415248191937669638805872819307691544294594632079896918008572050389814211265515435319952577947340285124339237299085571803348202211115300549205138578126938244205307837712477888042196903542273964547079178320162212871706741896139195024731176259345724146937701774567873159989198180940361533226756608344859009954763890960620204549584771208648371442543866441128806254144853081951224430331357836413811303152153352490398896309728995246004955312766647172294144294819328418683419163691315682209817178584193252880552526770447848311579207143514532673270797679269484752220751732516993346759032452717140220309913911043467116109925860064790277686383836699535374185868637308057293332738196257260547152558327997895993411838967415802691215878573684594100236569032059736367625353561177698444661555498574343767253755986540970594948429935017966908609187574571469127396347012638236316916069187939006396869290964693467239310896640267386367567240148729756882962896320657443113319061466167861140085355544339726335953560729870157590233310220615429582313273046526138554677298063183503397823593472979539853782407115984959941995370432607553946627782015623127429966404750688726226319148774933834308301535612186474392919663050713414148791423887713359200735562721746081475191656430079225484339998234773522143058664998805167051644336571394555403459889440815174095905565617630733430641743905015297708351406065907589484724583372953987198949866539109157613403633939654725574061392785028307333632028354618163805286491756444986079756163827911417878229353699353890468628579099003102301187680616115146166668803947734994098007199543213947494949427683385088999447462310992090084263884739138543939664769019827302905340258937800953346207231441172384318837858117096085191550989563587968064249497082666534330932103711256836286047935860502210531044395994381062778453733143201767451113420066459574720453181371215684322475329564392931016804885035246883641883954478555882979496774482263011743868242927912481609193121811661530553066013744454843144754847956191714567209610701749224185020905808169743302449450218286435873546953692822970361742048293475448962919712309674298035269557978495422472204130727591510267672362025133947086806345298029731584532909231483898220547111962715248560384021048068136212431857714399660863186107089261794028298945538852959922962445858533861978376062318702868623400781944905938051436908493323402615790282008014066284042607670675317519051430436256551146317989254140169423345230264470922757083841508865173971479191512552204662275415259895186836084704121401962280216819520490420161366603807616247743194143741479387214114940041238975553074534658608644821345281666569451248456415068325556087791655084357290485402639641202382050997989854131531780284105465541099089838410348752694648503709939008234107411189449281597694730465176618026543983289524095127270180006372703014064022056081566683820696174507778080836436598377832113359977210666162769881597083553610383402885823908325480338186709979874695247145970352145542661732977410707153930098761449824567691773610337477941197388953954380644414771869494665295882069501211087516803330766346511734227543208258935141191351707090234375686406730876484231823494008022014573388448626188884940066237496044116501024624718912678315826864873245826634065855315453202251697887680244696568180236664950553144694740999437110435915569840709417669637464725506278874334328481222529645882221908905785558581899052576150357285406469476780076001585561247200145870666457990271088496117284650556939594014288717388032574654273435773052945770548174959825567536002344795007015394068188947836531814374120377084314165397984888979205695421448191813137400840909957801123486527910404122198849475327241110772000848608059960764212446090763229181143281305882685434139793252540579363685141151466564474289767420574238606301540922249702827578058566265209947648257997588297241851865150543289251002981327311805622021328677124144806527825232689330716744543142296806787124344996262987196716862216989785112504595075733035660418014681211779823493049762412965704802781239155424806384616036066278652842268906467485522496655469092254951294581533397646694378709197463744249444182361713705157939743762185341328555022092781236193842402796421960556067694041017903423038298200941152582972783388689421395772633825729740316303810522305649538936407508316140226039964118749885252035655072974103079051330768638784755361143413413283133130763114922541329120374190690389614093712343125593931467551144806554207345070555556888504196586383162382920937619845347765572028461975233557038291402163083530019193728319070823407794575687924987977175933252084901015164881282997526607749461542867258909864815439564491993863879336673185882181572311183941635465816161286073233412613131116269774109368819989479302419224377041248379584200218926445441790974500081676005489618582547027277015653218429639507481081715227449610721803016879959544056236329776134277326926807896446889836334856143986651678062150814428277096650880105036812903059992434849303561180711150939198743347395734060096466589646359066555906090681552425925751733266674732133586952586102920147082490903868958353010269271845885514155492458958804573658856827251046298565045412176790210697988168414391390102685761010470837449990529713577847313898329573026996131713930730702449190445786454388946827478101349653170832612519499935761763200215911151790204645232582126185097713422606772882213741046497677903113954430959879970073057893501260054677846973544609674077965786300681803680267789125396232962520675600637121952751675361259983112117070921825103117462199686318564374155409189313981254966142623553270456348016253894953095914559898084679467955880378532085103182466350883205539904946462030080352834167516099867857275984845582112470809551949792016999333101626653114162421157048208895722541356082640963508618313936159659239521686123577377913258240741740909722086678250502884817032773891866057724947568097731608975376765785255301607953702549920231609810734517086017593697073552455834819135454920541135288488958801529263175592708880350957098975790836570657615164912930107502066823431077748094391416504901820109547426000935415501052122622583741599830421331968212868697806730049227108251066049800806827173835767961087687651411028189328628765239904521731187894243971757386145668803547855267842540985322414517546175598117375277559453432458860437206915015537956031031398214742140737496030933477928682802360263287766220886584678481715034421694374738724664503814357201241621112017887790260129566685615181196625373031032783868020513490218934753295237311222704772814325605225167108804209001661539282981340573409606069488569534709304939147821993853946129379846025019869488729507444354008075520199170145756988113165193311095698004151636756617398091544827434881172408952101860084595269871111228919492266386377911679751165227562696905996651847007969186498783799077509179310771171322222864116252354887368032369419905891017362299001609874549816443436966152893855697460709163679982443286569706208121758578001306536657377905672713697670410078546501888867379055318299235338815817059027164326899094954835052319534094561780312613477999130324611051187569449863491179422243968682671681813114741127717393988290133245822472805395760540274026777853679135886940544930881913837008268026822050031456904813755170816177900521438371531497139482458947021180576305288245387703095164699242927284917111543114341255043834166677676505831048913541834190381342422636525057217776633024074731472268778020662825364665624380872286795397463384111205019159528413627387794067269086700017502379117740382913935211865461891837555902226316245259868550197935750512902534671142667469260609407053354261177865922027035895701539065795569479266252366663590948643654189844585224609843637607628641438038464734324562048021924660627935641164269321128885113230739200309437790175589700514627515702861806429830442512869300322905841427104399672190260151639065330151473515404250015035633166681582458869072829717602875525129876906158470610877341244022210717412008243871293478808232249507505676069804148998358492239535003748782659835553326292743988410376242151650860140791465993832592079778159966534287099654972039036652341281057758004729524868861007083124602453294838143447788478015339915113103746051623346886145465046716631419754043485347609967461566839060194921613983180591372943559572935152805496743147269980398864575967388820803277538352795276654933681018326323687731002194589744288546575032124651960639553097425967238290463620185069205638543340783710754522508016271847114028544747686484685514886898231689920725417358309226913306601983524294580556188217725084727743885392765214206895834513099874120899645575679677333260734947911918717249682263102578733248846992764825642502982896969996534117408980824932322048262791696059403650341636917240718391127649995123236268915387739142140859270932542928501104468969216257724690662884345347914224650189805223844515156256580277924261823897351637569712296667820829232494265045534373519736016386464527479879799022938061169531815274049074034936039812046759807912992154792444389213251482720592342765772970638695284904544005111556093358556777719753005817274016364238396315275272138325991237190750199767087932514179389368161220234249164039265728566194275384476745935406733074831322168579803846848037723225572510266910140689992449519004858276321597422313609996677455508643102249312771500234367337193235948680852033474047785459521590545704113903111575816193756435372710040972094649676929180525933741030111069087329817238918976979696061830023892777593489366828561353855107462315612169012183004674293834032896430898803896350082686363187548851524965192314593634485686792030814547386612603187873305465373925988450396676266597789806980868839908778399467803258629533933854726219805450645109986213670114845482094506562519069428944582887590990526037401820386433170307125594343557762145304279298100172544179246412670595212584861518616971016932943885763263832498807407749634123675477192444703760667695425669540848164424028509829856115902805269846756744443224795965183472019758468588811833965167103076861317696856960623799034221094179380961938643285588738199159545370792014555828704540731961177485992580505899264677236082389207199095170761131615428567013903067745996094513239760814764441422527280109271243385234254934429394832933899474396411711523637447029073713874054512078841926932575240498688362063115944762515806779436813568422349178864318137516503989698191461912559161474158052198738608789430494675541051368381745930971942148068749099266966467782643756935107378058195142628620584162987948278224641586251034395442444644036311559641630378433491166161034653583386046416006564988660507722087477810824565589946875579189665779188116390875584388060558435256178250805635853026926747091058563081030227265238494988461927533415485821832490715351709444788347304589256580428721816932838850957846047983394594822494435619587219140599973478682789924298735265811911690321490477831593513935416951622344475634038207206434805884647473200655201874800192349018970497612898550939070689628606835673633594522763204585862099106505676052003460310336399776647233326232693355081302240044580538604895862938025124517687256507235335311702676821188143260595560078425400258402279190622139026881137012997469760628297647958469072169867973341814588696978251348818400425554457503517518022969544581570614959420008321991435598054024775093305821651546259731755231428456293801146266857879807499141718825087872439515930894673276674330105539304991446383688412699291194071840431009306346905715886450989505285644349804732869492746017494789289557205062373620361935681108897918475065469952261873810742640469510558282278829871844280926637078276769394380917899657251913730248166478612449795725561855339618174444568945960034774033766262022267192364344626185305442944907738703290460730228679164038572412178079538556005754758871851913687730097118902229341731316037303237548963288664734261136189352113875125457515536278039469996065257711740202148138065533550001864893135518945318602159905073434761966778882208258000029816185870630209140527601456035395268789228208091799225778837184612708768844401611796875521254209731477663204601831870773045009388497086193003208145732098906026105965866430295406835906378787594666469158978566412653724570095476219371629238461819188576566535416618559674270174158171167324561831479325118468049953818740255849351624073448784327163814417777442459972288689985238765897517812057542374112037070309347085146985665545728657474035203580425737947246829337558453423358078375309658116694200485495229793824174456721214873947405292552084492715092727689780449195636749968858118253398460706692213120109770595396514266031021887842235310933790902884076430363714045703547389822699136390363595476036407476426559210208804835389661951806423212326101123351663340242698130710610678112627907806020477148325958829515139504144750877768602271632373763868317937270964501975089175567397142584325510145774325546665081411889626179583914300267904846891409077167951679057106212337134173556316166540559379026053027674216385111785489412662633716522140226834994380574140301415919118868195803689593183074478778746661676160574631307244619708040595715893963713854668872996373331669329557996176195058667500937618190019809015656684484172017088560349060283106725424227247988824284210583647475574232381127666328839145342835973955221194313565851030656888157536490280040264755085057063425553975199936772854889388011954428908563796562323139313830615030200681827551891135421464356330909892236958592074962552622514021792497539018991544942029723057359861313323670462659147869733025965445711871222816323309018909983724847851700149844205984649725875039089740814045944680008444542006462723380102039781618063225743820335177770075027579831009489563797136807449502443830643006634882859906216921298867316997534680031142955444550299212637159887442959838115452840804566731509445493255217866573045623999001626364686964631915806526293205476456951043013653429521653550657131445820186475319485605012725072591145866415672733093407061301970906379057845000992826465834341362256750270196199802709850814817442607814456688467111096123878704032416420051523515687898312167127070742100268138488016818361313521919045594965315555543640076578683240800729196646854081078884692104059633606748204663619895248764902303270906239909352584188575342968502528962619728369582966813667392580368740072293728907292261946301806744837976586158333163057482289053745732987166649364381703725741207089860703228773826054403071788933602176216876420581884374044043476048064127367484155262726907599240089756384637174620339541388120579757359806584822169096494900238096025821156508999983123531598756801972224697540380138352643328012366532778217919035616719902008685706349499136119325337955841842103839821010998529480135810501734212973139163390720356698539634082546462310323675316706316497476996804182347284582676602356746899824503750973004323991117992683035944715776725882974737535533335010257559086106996812066405660563458609142960179076927845347993640053692982583974508804901033678320263424613697148830518732777630173570533237111774235900079861379205790701479047561942389235784734845345741636512318204428560460470489403602514338645961167710034553735569038435117879100758978030405976090806640622359905245877143117333147212412846302719061423652961460804454051811434891039226551223075570486354086901202328502742594978031820026005691404539169698507546883843726379961430457070087840348832917345454149752498678693309228019999438287747143747926767792925162586944398465941104276994816660863618935674348755019339694385780703839567958961640811123856463648191810345529723139950988973413799374338630281073531369689949824638336179439594473608314118638528613667590337565256145046671282201068567580292321291310931332533820242102299424554300526533904411385994738291904168236281584174529780564917673665410804299378018745148135724828331807963829863251946501314636046107201513250369822655927726885759947671469729793801485201019823104446898807643883415508621649737444126112663723107875103502629187581127904941465542392357060948121329480994449318772188988493373678014319812213727217592401878487319415480914010162760815182870545741586160028961719102020557463680504109200820648982877710852715197170496403055881822026325301794994940111246484728423832779109113203322335473277165089577850397365956097673722764080689773092536393395315032370917900404456807114524537543635568967224261088191450431169714749008052591686907947211291078735935858762403794984820898784468378701913174033420224662517941483913951313502212581349592354102651602040369993849800920239411670016799570288946390993362406855906864247817624294267954679047647949716469102078047528409025882505328519755377321030220622659306586103150163458637073428941160131708752333161120619403441478066067941746453371710824276656743413823332370392458811696312631317500096577842868262108524735803436793503584840460947201762467521281132154509279542735461989130454669251332961588739684427351625035508418802263703186893676934492345285237893835720700359316817398471782231077019361838717110504617288583621180689220117698408000130193068556796611124454809873101057595143254590471939545881038073414960704542997848777079010856242231083690197592867573832344664347347333777666714643733285313273361109447854562222944030659306630710653129666061986014369210651321451621727295997563572385867680259820404358869434189445011243487095398922358286584618991966480999212068892940859586697454437593625597302450382841838151113210307698580952328985792759894628043309553672280066511828005417957649160674020598611182681170046534472654004542490009872183800580207672725688929430620055051146950765475490874530693975746319603182368128303064558996412949798787624566208090205214245405677696390406888082287077700667449273970621858708828849733341513557927800788669307773408579394498491293995735311636871377538143887948373269915213534741485721859349432154249490332991055881879317760065755433672932802949939912045760312110465120967969768341676009071476603535047280065159471422993766022479361574754488981576302774972381798324393491733429294372033460997632711897171012445422149465176000083325809971594801690026324509565615673937927242409768374496717460420166044404448583551658782098087327389971116296305403327821946132809792704619427667528376389383774185283633179563215992490000337320813829753742670098527710337846658025092190869194348501610074323689256390327728693935818968471868650894441636480458896564231980719351832840286745816605618339760422350636963564361563873065521031158537112445483233782165319356652731995576280450636228614941058482810823241526246807751783336679765855012871980579909460947961586625534015927355655286818968279254122961383308025818898313636155677185375129223263960502091342612222304611238170886567962429675900912116446115944793186997174295471992571126006513904654654736504064158088432223217348266446713642979869450860618421692074351711352304314170862929117419865218057832658941596609127147576287481993531922007250355324343535723157032921770755611035955207044178800546318857476728616906382542371595189955244422984850653330965700987044383495707927931583316004754642221945985130649606852821107389834390055838352589440120723703052958553571725664606589943050164797977712523886583068846336973318084188225653068474534898641383397725796919601648922113677330045011466348286188560919442875430604187467846906569367627026157442974808054321551368036727969584796434407333441858145956237261057946964773586669431236968300193688092552801968714743017582240923146028905192851840463702294843344549396195563738243957109851222809791882869810761271361202523756796373761090209821609968037033232779845908345050546784868382933370918082769494856228766540848004158170831694516663518813075669399387314759227137058666919286859036941031961195246060522456281929524313596431317511361611048666598848594447483062658947202826426402130706293691957215403513928988804432976251951512524463839168263225335619376946385680728528147687233051377778672923618277299164448621641706190735509925593692941765545931225153444846176057454274369551747105269557682663071251344814245207388270654188282248330718896601188225903475483931489843056473380664241925926208431348842458485733285641727637236325441545563874625598876343397229195210489112666171632942949591299277984899256581265810735940718123096342069920100041677877380830570713695787021225667946827806688774744933233829189973484634772060531264000949387945612135495850465778966816254693263928818277655026194606761389085391925561168950999821805013423020589741207560592866354398803137773952140799026790324396264163935033376615006616551694999065341931339158609034237601376155794542147393754593431586459350775605318698618977691081420312696677051063254349211277494272146474252520795520338389311416340845352519935179876235521548548728296183947935698825966939551168056121033629122454418286117728064847153986013155816541122300653964982216569678030137449939073804462461019856957195525533982792347188674513419412569217317168149853649777620306633343992377747144503185881649153557850785805024066414824367875808271178632185188982666559946653534517909443218972473678669520090233357212757818964730987093230131462326156864623983712276802303928405152959310514645428690613810203784981504746619553399413856429193121811451002263231453066255882518986065549606086733962877808003745543248379901544736214410597529119381909815364734293964243991354921609882583201191000638768997295266300029295124738118119253115709842791123961649520915884269753691226107521935788402583968008164270836660318439078466224182640629525963992480673045522597105231095937321512976768574248439208319306050561860307601212657672915096182787961073490167968346012758571546228662309331732758486540746166311501412172833162001983463359698643085462457069258434261837384462318684527958163422718017842330011308141511382363652908976050544757940320619447711656033921462340345920735777448064299608250282066181538067796298803797292741079298517660898441169030184595214652486526371103650774859533314290249865615518422303989031790085831120748947019467053761805983593374983604438422686322408961864838814376862991799174598973705104263132232524410815933737946349340022223584918099719693182736472553415025521077695220052417970242945524734049296988668060989963882708861452362580294459579174251667702688826843086488896543238262757173349779181206561262406442596257832850633513661876542102720505060284914398544004812596825262475479632061031129165815467082705607599117416937471042419436760060452663703722693536244283075605724406437752247273419042050935078371892387599426589302878889317969450052708374662938060752864025893447398015250479082708698798319354089140634293432084656078595054198091219558341689061165962109099319482483240378351431104830023342217426572617696511954400925824985804908914337126696776167524146416922221916684324471092020804594727678476092621807864982415559473598562942850892102558764267366782989047988428413513647621854146702737898467761510109910356063371102653085455707187779263735407245198952452435934258691398505838131623975829486500938174441334284653927086274648655880769651242615302820152192997829663105462055640488748988653794086783489645464317307798726245107827093588435178937567087892735918832337697350445057632761135106450279850680289946934137950078140908503403046017765660592493873827162845482068346588410451602912974642175085592818524620507911631653810398808979537087542664910292020068932642916154040669871209575951694183371924397894640751724315319966927370318569212267790971913915636135053706166818981062430844663816140748648218620607982096699769203536173550969719177831020138787280088065245087866658356818454273709401329692547471348714217861499168261170713252040982448787001896883025504118110721024547091408241971343110228849174217923706361301391257692632582087924551809028515652731889910755938935033067697015292852636968755675783190628593840750285961882360796720093495688563515450629371118778599023583172535922467761268442413928020433878340394032526975033114113989466393233137925512314935817953012978929475812515074799600858321282922269915491893622382383209164959305367805945125008610102112225682464988541859561251358362655100630670318379350293994302445977789071211789025682749099123198590481369323241694784781744315334578239837284488349987557245943166013150277531964613375926181482298918689207502373278867523623815554447934630427054301908582191087597261294472607533645163256351603037934726714825256470298111131307436379748923714541218493999717440869162627648920344278038024717340970256478362719951339540798200805130669889626208121872881721833215195176116061443289643182365888108625730515830840087109229055118391601765802129343596211445557538015947803615551314346281222609425328365300366711085122260863253469084281909299453901066031351742899559554518283959850652182392895859659651538044806572890602638705511134337985850398551291496994449008964614724559640474796722842716768721220212146173952485773257272385527844618164784754325955006718617275545187823254748921083284043016053372860174167029468600178540129487614432276914794100448768089688767810199274254085101027247661647529850833300044629422605580025411552206401184760501473969680613749934399262022355355927380049425826537115878843523447281068186925933303389037654642823329390025088228970122672694589342036846199962935315658322160732846065870609018840053946469281064157731932891216710397284925386754899033492600005745098882143959242082485897131515469304949943101142454845079225231414188040334981229314336632300551426712627957949224078784649924639314331946659851929095189206606251414721852162432236000744202189627944543450196551692605629439523443171061349671976676953729332310176696986574175647279408287245985203972785475664031509224436903173889129308432508546378296915001287930179289998960753175268966661519433835387915813638658753038949004017926211666100184620012828248777044072502675018208097940466030181537523907233292228046086382487736288324628148611201901810421180822770008468720456960768881939491472643934877853784628572936313656840576215897103821853044591186796995793661478327679801947375618140063015804771157452247150444653807676586024771901448151606635978577407898962633838593936133335729071165751214798567332091351388282762569801891751988419430463788393758709030572402486152887154625313668357496377139960553370528932090077534940713541747220828251282684898422104686141884389207780455910075542100439803644492811801378388117287459893320988176945707048144065865798497892171339575338149062463563175649732024936904067084339796491691436639418222766233605249981049711543004519474546761668551747943901867827053144694044524567254949467419304355706554199268413618571569673560288587376328720322293775745956754474321534564911741083290055601775898714166305225897378688986979956653390415280263846863838340201296581368661598788356459850127805292706697208979579134089080179729161137250914255558141241538478407730108918267802359194466810448216860080130722193561588372807169253365208305816858089297773524925971483019816117864791774799046488694375566860182511005256709833520291714763540187032927398868130330233201212385384205550589220823713715487507732720635667920826282534627923851825112315814174525970986753943453942489958736002525193894927612747815677206462506543994914102636597106348380595735080618785676197266556936800618923865267729135414706049933201485586949042020607117530981735196646653151584534674565109119484475859769520011274292591306347794846521668710268670020559616609352702481031095983743196498492462355612553520776379994485846628908265434526267075435509405222713562285057740549795168164889993063391456699121958240611506813850840492410838565709634498992644624070814876856906866406443467135294394801019459400666002773657559058366177358515435216689515554024343568960571500855764757766608649951929643335878644811554578718898175123505072693562920432976784179355404481256236412986715414054056749941350137547079177437054735522829468473085013601388194989431218557078286354045593151013320624097573712866132463053886638603750245188261564534186112691265679070665011101098062019309152304813818713925343304872570285494821600003227218597744251537150675270334637640306674921623360252863178553181274615470859665490505795419031574089545060444475826132977358268830239678431699200418993577371661704897466663164874872175062676326493484710901500065537976737032832792459047628342381116607442916713569406862370220035773059063857128151227074228581767882843593507219367020142930557600794946476953230689321888259873355515188358953435071191563713471945036344283464463049805391673751656977924184059188365672340463251560079579477481726330116712594267552424457024819924169662041668266219424219994548331590250196934041774548703677853972635346726398323173884504044039486622867973271791508555285006776684472004683624779277598032893955492849874464260498432888757399181085849504192068569437865858300030692635214899248815703644059650649307257297808204563848870163803998746910486330256555846863835995462161601710695945540227984456151613948287145842204876401930399230629913630629271529611812291251687980740887371576834031509306547316428156019639296418934875074934409614275928596044585771448930609609238863793144807397101677745301240402599883728174668712455248344940454993083528928848879106064858873634915066921206240821968993155826411301102944670740541972303495371698408576311521968195794420299316013922113155484048670457043510160032200716294419464382827978058691711361528604678532527788015222149291772955079756878978261975820998897528057174794512092281456317918946536464560050569312133342871389683654632396443373775841364216580547179259402442197592525294599626652005103282566892106797978982648902764220419727932397374446480948667893417042888110847607241133114796982967635365211236618504076888004949598933074474005008422713007928414116897829070303258951082589578103667689890786299262460537973785153922210729243031273755663118373478697830334659826441167849565893469844080944811852888503194352030947186366343263554244795714502027786518597588905495697701881657423396863498644215795333618771616482207386558716760342707979049888803479931874003948344388992921834279614910934565072812115247358329156121162024250462415815560615671232834174698415113113228089867392179893623653504598986997901487309212141212331810045539772804142940489463486022650053786757544985673289622157569882427108818140154892065907648908473226578760388711952787747926592472301099397036400656479281817397014459101544995417195861977364138870752723189495826002560822575299890888156146300378681588727008310456413271418582335836059939349734354457595729493818343885971546960753529780117365199360409113967865127817785427027111253797638567143893874936762899579676963928760323533312054713815503924803112757094549839531022450209263178618575707946700297703490303749419743392539397843649391658558440044294265878219180777199885233277936748447553808934222031289766550428003881093159027435395817927782652574126597376991545770573142214071992785086263096673976256883020212169776349451343668204277190196514206635118441109421889885670785496944727509399149179055348733462015612404749496514827112482927296538776331743820462782601733105713717355512167194646834951733376561871453233690423957836872852916075500218275601542372228071727684732867539290970694835620930858004020641982743157866282223423647744459749746926928610664852740930530280773657880851877115524513587397502191542108844282350978854060477766681851649417733125539495744605764333213308460343795887747305767723863280789665895502306514264626167948214197995581641020757815298779706064196945746508352072161804608663965039262515915993758132072347545715159765046443739220465077572555592954347699926103154846682770442775202348710441310336754837944524946974402329087964619362058575842234729648422870254515206505171302998592683211770085915272535970634671875743881210949438660318433257887735082872584273272580853829328688345084007756240552262163338131941401084147545167332875373262461338818933297647057017863315225653972972427009017010000701502246710456494279348835631105185565791937740751430394835185733783724209022925142381612830717627000867474732223020382998109583592389874901113638947367951930147877147007432534394732696889195851568840474473893998130664167286671392120819475439813909920359657696117515737155830254991331522884146163569048689316648975267815377697357907925629007905701427054034743802407319596419713925667863959167650201756856021102732431554437553013320959102167923081669778076062959953700242070098637695889333939413966065621138915057166286243417116433950595443542305970092383730664978370675769289124053214964510317661011135759261497070586487512385356091345796743934609757679250471894285304420710657617137911922708206923149773011273300450255687205449535036309337187828093147873254623747180663386931324703767585444855427058818900727160726475090179796765554108049942055109637928789792166328535366770408375921850191589083363507442058909795337503289874423000450356921439566450554626129205710655143102625083187361765431555068179001477881606400832986834367598991468274512475118895315679076931978401775140696318789503502268741674019869972309378361640286629793202457470008451131528457322749195278096240284477086215831946637880491405355392013520032042370080146679825189637701958137370088819663472801974017294607862361937909775203930718284371704402719342724144183218147896527359418247884869423597487725469898560370680492983216222728933574906959443617216245748445968109004047594788914235233631162366022683139797438342498917985898143926674086331243017732669818687111615935802162688391566406090895663909527582718010658781091502548863694633934519582161015828671604346588248405988262265653014245105981489679821927404103696832036193556021362751086688746193279449880978100531385689317013329092200820644561973555572968426525321792018232710987014353071034604697462226935659028417444660103396455294119616322977883144985235923014161806318353012859930311163845290926994834319765107639887932870508517954820929087055024406699827531042327216774334857375733853739886013242182852446727226119102200497073817397545261430579123314479379469569758290658112339507259533928542991031971845722807209859794392292362055496617307793955364452137958157429671526665990950358748666824506672457028307881613177196717939607836030298433545360365973627094911164329960290988040155517999380650939419895014381243431415310286735683063823481910463876127057464091392762250417147372324214200513836018746780791013936868038107451616023303642896738516981929622000846283656342498597257941602929822275725848639110223819641648438092607336947221160859947402215820297179718880322466832003360370647668025151898256044761720131795892145567755509109300095462004489823915444314316904352294974594971840914290015150239788146434927450672072973459315942537315191252792578074074478566539421171099257844598732101694700200001603237719730543901759381254478087474137260388623910467876918106020527567816666052978179632337390595033140952941799868245351361068645265783285674961041924621759011512602434215399732666933260841167899796796604318531463860287488900276605760193965026404506257584535198443680119501365114614751698812377118105564988809835714389493515125393195282818580147168198493643840712760260397564914601448649161026905950384228407766134515188030994764282175483403527550204504652869599841413833676811878093608912017054204144538073442069414651789722151748549051228024002517646573969699363840948194434656000738392557399767689209325629225707296851704807156359573886172948737047608319305404285491644952286808824975463628018342422222791006570172552620191873886704182240468417475179179116922723694656961449694622658877468118836538399768569980857103359806034564017421984595374783121895863980228702714599120518452485824903022254803355003615184252908975605926456777017515193822587184773128081425477745410452377366275071411101098414422100281108269700548170878800365645181671536002961862872883467876989415000334845451844018066869515746150002189550866195111012582322767363040780619347894219017022298406154937364972750597369999078333285547592097244569818792052039881435348862352093961046948497819323996677467471956650104820010556396751246674343758315480340354976798276691746455795914414873180679187075194545685161289137809680855838543135072815175064261956648769658840012752638215048909820279613886447201640977820952654149348526352751654721170071596992812082796349331243871180877293063935372819775278253025377328310350341936704123763626449704039233160664418668566480708107324008417621755201767992666318237912798151792726857063262495572004462547129993172474914902893569582151980025926783778726672241631286437819588947674828346220530209658936981467032001929138697448690143378990886434600109998315514974486655213115594193260338521552536969624474318863284830169572746845850965426332934557906341376921156798565444303673925929925710597594381023793064625779996889134163652350347524453014162971593172301884845553338634224500558099517490044964926299861007157779320669404502008326290329476389928522412771757458338045942224756569807434487428767299153031482091586618675829785458558393551411185738258189417891519904094972873349342326671357198961392233968354857531678251717520662605107778178994656691429153411184588431155913697944603289582790655243354937626088020822684201246639948278216700063649712624761449275121131860938300042609220901938110652182325224814935679532142160790412411838487037292231059799507196861937632692508175867596546384100875364788373455650259003572703485472494450446486089339655643507277248438100094660448650651705775331228994334733179685547260961029041953749216990305505376338066560771170469814380268355028796073741398469347413573477490748888478326727455606357015824110153720047754807351585853691881488620225549646834003064258408927256301427493768022965555486985121553633559621111957121073763221616168875661742093278352183147892507912786057072565548078133329551812027834629559702589524041695730054514621654481337001796035493284488926644083383395299374781964691779171836636762238698335893153837668214378447185073943033256535165074650607150969767953787687531481813338181353731840710976538282307691788705382687548997520704250593211368058039150372329925413376742555397326654862410236259290946266276711922092773620340801810040040112673012434500725038066357748912441001717385427825785310974058296446972727922174199878838604081344919215652790158149725048994524996798600100205371464110331346841392226379959524543091848175400729132983721681955429361664149496554647019192084641902043622521944597888049079969913471640170000536689447020307130322129759315576176939125170939778139543757966166769560183031805043621340753292843972518210749325137217920170996701352507390045269038668915366302370089418175027061100264812360523559037272662649978882213638552777814430603267041186389017771763461760795357881322835611598475036585414208127435509068915699169342343159682418134937176467438591572511935342622847584351044733240631112882668868403183577225724719852239691897523165499233849265270914118093661294627439174173045624401413174252927120016354682018653641128507351880983350425245733757902400775033331563369268915729993641160091667395080745293103890833695216156112549886751771064196069367589256520192908689928380008449385646245321846358163205832234607787919676333766715899050688272225007875809092784369495041400276176385384048344652588603929895571994365554952003843853080322597001988228717805958112045529416083557537594371378304792572292386687300410821197943197740881518026782453944519200872083335722761037620528631185918676358083217071174993803447652417092160294039787783862205747576382288859369779970781037958264826574121342455888944961939608759579780176243175779817638259010133625351006901458664905896827118900824853324023710696380772774578979497527719137684123168981929624795835449232495853285626730019238445402549056248911559036509184273274592838735413451066240081497449823198713367317716478524574167303901374973302517634934729592315958839103660800493443113641394853945216610143405708083513192247706219835347736160517576582253772062076122612104163165500460830419475992388401323106030434026073357081018515723487710297300342353929452848040714484834243647797729299453327081730097110239460813010494973067974447054532161144597829059446893788544230583981780447430083399179400650243592201601516245037713764082875817338172149272898934376753286137856613308806809492767972876394731061928260054273909328201312671195726739451220043858863008902420936977505898542936666188263054077788603431038703885826979373085789205652141663541189763638215753050060144103072177635833393044175820203271986510064948878884679357029804737717352919152682872529017127068460734001058854823937756287328706542173600856716746849044262421755661068241797832301680893709456340686879788490479365670838083724301474081825685124676534353371407343455870787981557155827788133229247389185468007347480733230322781105022072859884291864175829332603091646876247281660412922964246402046762429574832319980559149318556457849606171006518802977911944809781039965648914874597726941544906856865941464355814343267868152272322046151696853804277274778536902597077732932393497149828813742674345354892471380752137522175843382380492531713602173187889133759499362992077815370037572141727386086541373367098684922181193713994508868901074555088346106687887013210905603219955274473943740991783845982817689753754216641242221428915702168926880296298635417678135406120321086862740687115472812431548734595368800548604851691498065821394503074394616742079560621942609848180994453408143668139409531291296005981896180173327685725846930293397571132326365214560441735327429995472924491935073097546974283504647828202004539106970980202988256636042377290604737966223706349825122086665030669507191416493125979269016888411631875310582789036996913811368323300109496495695021943366358959536644163264198800617492522994010288504784395446604860375800463485302252071846638311310534015500880422627498070198973442141838285136691844686607537325441889526137050771373352220982662445556077562746423485209563984715676474168981368802402718466840839954132728026688536181051523680330099763752181753589773058059475304816730288506669672953239902278215310409952743079521299148671462338996893065195521077301668623132697082788990628437950033819382759466559952546399058464578406092814239764799889064088366946907888236450430401669810761083636555103412156135326767275694316667279835519182751348886524821467303652287091322571718049952489515109736181869048681602211217990446730425352600501370063970351364176734828584888854997440123198813557270693553664018211685526946665755619536530946171623240886193284198381178607767155177055925686516683870652759276855446491392235663026796113836726996507974847988119979742166545688098242067170913107467128411292926889531432804138956528473058606097287899542254209941558844045389876529350283326929520198259784290275984389462557073016487948431925493764260011997189371634529677728467521953056564595920926861804844150936470138545157568533722869405367573723964515063098558451877381154141832078901873419339590608618699080688043777610758748928595998399980396011073503657457268912996253425695907711695620349044313573440038109235840874021616327352059658821122902762062219192254052722586950699433320841024029599966514996555926369822667490861529391471581018471282250088941066425645885624013504983942237754285986255307828483655459894892996998032235666656974185582786936244333417275648091032841105784532041349609902694283825231020490860485537552526358919639798906477780005232697988013400664130094433976181894026918052158261755824358766894093546314408574555343718440975970619365531567994058229718125096127639363503317028345434908636133064126711714858553404934119983579129013140430054464005820973945376206901150119228856991460175113485438431037251177600063538367977415849457128578438465823895532325600072163473501166940347283189793964700615135737002564797602031983789777168919476946967072763308603720196295783698334268935697552141414182142174554462496877295414689705190237044730773331256523071630378768512943587730096135293842680017139904385439904302596890647747924510379644447065005172235665935194431002837471625021711152666095072729976115754666555323742788583495507162999969991777459545905438487273018929276310789967958009551189833058269377540389051692671928714222665651765899609376963172494496801020388218047947924812481896922712026680610275343652992643086947002476898161685719794957373857377621491039540517554323160981699227418180434812087307867809625297042438100041410026626632926709006305110887878477086571752938848172876867997659127114777166734015948012784296731622096295885369796480285624421726333473647290150111852340354429316923249295229913696407647348938298195760821838880718818561839382318993883080239113633903548584785466065280095409668965249447216416541140029093506917431456241107721847584623176180143722245130970988800170471684943759037508492843731525363104405260047953536513089103245440638989632121835788287376362949024800464920212891258348969607792731367597642368624862299415044976917213117013230387655105616425144720928610725651354810705021791476072616391516633959421906153095386002852092210787444022317538813695958647493366158025138084753081765045606995353749499253284249144459418569262977245925085555615056962350497572075280900204244163197256201791478833370505029924993448774602105409704333732541979212754506571756601834772425954850662759090830943273513056483487940328322295069754532296601951236287133585498220923099016046100929038682750035621085479968113759821852531094274875742966701723705290170797465978037286524013019565144498682774287679993869262221714314557444119482613894103529327059084481416018168688590761389525752093878862942551843908021639173676479866590101983590035641694603654268113885919623308274858928859891031548296655587196116624335166951562749210182071812565781258267031273364617831489514871690454611631197739298352858326415006687287838357622464603830908452136949377355620998289104986451268596979621018847556920904260341524947549759731321552264328026039705655021794531256538874136731189602301100786457710322408637398824409056409937114957124648355254484468155231517540557772532158713951685967976409502717381911866466238514903026690351402002018361954720156274513355696645274730040640591871671336238656868026636096697573669567197845486046054078872496797260994683918676953241956086332407490530345128573692468007245096951556900678298332231624030001705466585531729319804056665325082403008052240633954145657752570504718004223222159341651047078792616881635059483573427685140977539395686490708682950920875471259907761987322054973483796436460099673126011631420531836686877925027737885763816364559085078515165376890506372034685424697964085656034027560201315074559238301649558008569411661594508194169337360249555334594853292404255573003492529516564089940546304619807937794748644602820265199959721106234480431271255154612636119261583349386896453515746219347786581657177585583268040786503784058034851982782012196677693873884035230523171548546759781340608812520412653926267722535857471755208195693337362915524455595883211359972804536036285928868128957436057109769596072012223280724765528734458383761961527857389208058177768787402012841851755655274027279949529401611214075583761295354326565149062461874231302516169510198203161718222301390021849664201408581498116964922035653033583035992256575970298145587115147741859929520621908359566617453206985925004488925921921634149256574514542665115508748633555068325876683500780691634685382687672772705418036519535264448876192398533686883306122076454073863228568056258772234541390173837206238226854222164521847097526089988030915582123187728094566644550238556244248654683421132409301295330333793336473598381807277144527802482600713180240061827970774260656229060705236025577000244626506774238492633668563612589676035669743491997031164633263544138734731966030002077796281363670215288516380551609897735651975805715740482485219340809682843820795204541801861659460155873371799197806599522047683330254026510917829912891177252327764516588319413654832159843234187823309002523739806253816385075334231435538045917467836651409443634494764721159310130236391733852467259045482179792583863228694494339682266292740605919868007256589220773073898411943599519715525842831318631847618663813233818388741726272452650274323440439789297320381648087937701781458034449445450733827918090154874272904305868480384214767932310916998887222795625775233645338882719948237964513659415987008716565312556631459802980187735164602615221048486247067627518174179514317490304019200612636544126463377628684545332705515463283813267010780933149920437075484197333127980853709105541767337099580102759637259763377802656213173462204883803434528009775477254934601595543689794001539700017714565881679984461679798579330061108153527552716519213498240698125251587048386676055757867431920892137606227550142321263771817240659363620473926837245265517375408375005330447437735507246898825682668555645283276176227763826473808225298236134654394444258955488269920227359065853528199763419594358595826922703414053684168084600027894716148767299990800454978281922268801015570239651037264162980323594420307495565470012693232548845641845030408960244391179810863011830159339212331330527459988565709846150586673245955877336233315693087919245790711493834363536262447145841579708985367032207740565076469686227165107504063416235924275827242611859295674838915225002274189576857779731169183127117311160646040175785150422895576757580761246434816636156580619811358210257374007940331230018026409588043472466225668351109615729100071598241437195539346770419610662870560550560839941446065661944216483742604889688767728711839962665712556208195527665502522246171523669219280204569305219989336177809413282848835112530089987002179025614785962132216227086606009923300747598704136470617100807655390039110273745041639825242679709680197506948776365887130502312989426490014384897847470089059095313085081321375821692644825145649443491107157673763919067529821802668634483008616722016826891897984895602647738465657026000328378192138053879548895412863054220443883702935975168210992883283527115236935088763551916350258917828998233545257131710716213130780157592509320784059969218711077805522054260214485072589387727817356228499343917446711461688078099845662682230218964904940446508723024164025878728609129295316353575602378492431732662200495592829700314181486264767057806138315705198412264601790490176605678108597786624801923677136861816827594208584930575366872146986886980232948927771102760705283007955561168551089361212495451408895390254679496535645062213359294366505618005880390121754543385806242751617149284270370605447784750768932155652238940356658313373068265484595694517736526204625621251518504529083162991673737036903582618032909494186490863936514004407774319512531713253186342508871141723025970932043769305128885421205540552448407759397192262317029271321003576494289052258218654253047855801657444760878969955453901630692798636550764365415652817977347748543202570747910884180686209077821242363590348783663087511087059758393189340317425547397583676187549469192931858535543346878393494169796478568474347758131877341409039163537919903838651875974037509144574414020718771296831365206500498946343119596034035771169763445587431589648929133173638518664571970582069880519403125660841113455911072891773885525455957925334684639939815333078796429313899274441653492853952503817422225015516222419980262085592690772723768864813901714020476275923300948751656633262434960798684567060384181342694113344386877621543697084031218212920040879669474224202722131396084177469817000039514954394785968395826713054593202082170346859209763851848519639749518194391011378365203982051325601380909234049587601217595942318089178231952254090626634202264564027178586337296215583652481977420162352492237874362586747329211320242170178344931396953631607416056969580611592108734534383386095229722264336835543660795256292123802118947792003286081792161295797217625481208591741088803987792653782470471164782874778487493389700101292654194502970017892268974459427285165961886129872459378617822296961876257770401112617436289625311862857275418604944789950002972456635921534385773610295314337912231408022634052895487259377675035535794530298871569730659893076319435208603588815007552379243633985480687865442403793933815104065956373804693516077686817170191278281399194576831874559409504157388971396464014746021529644974255957165307159839494479600525924850470032284853417926589571653086074528051637453582919959356201697460303363759057202607713832968619471830601877058167069796229684804286524186565223121303954189184436177527648333564605916097637437801255015552395892999019939984279026093017811878068214582136409359072223644472262651275895158661598492831335607375925856382408784166170372045727737010221455234778498116490107687355710861009078200968997452367273019113388180990177791976213482733401864360381566058385834312010646439282879098006090628035709251597945485619102978848870617356296782473599796949836405927177314764837510724709560549781965460672863357175232888183017138862449903652805647340271177585220995754755527097312593556221407546022815703921081776013059322047857107417247549876047807495375201435103927256007050647240314584660827600203151512835015928351153512338447048789973348217255942683042328207114683287293027425055127989019559137162030774741846109278150931674245005540142824709142519386978387032053750948107121692630347701046031389428609168932445162057374841904262242237500892817138982304894174427898371879094946225056350598230413507229888342135854076079973867131348026638445137548029037020776809906413263805694041974225621615254715593318812830651387796826689959685098197349114596177247754647189957005908371937566339752826846374142820416488060427460507582724936638125720572177295204583645280664956149477216987633187261229922389952791194117616677555529977672369566409495647696076687410922553291028039983030699608780292767374533319550599900978996495674322268072566063673658188552746176281161238691333327692148702277183554029427559914290954544386395234799102123607678648747232788455388114165104724200849475227595900004681553114404034169213982102117610263707725734960465865930208699370379222908081659607294047712117628628985117376521410540357574668981272397829768405104555579991780568112125186512112679246912678256150150353398209381888856753863240947115048357899550828378828876821968757372844737724854696740623625379527059409883574345550784120862434819472733939856630086206277335162947849444803805030161088949152759861944415050205242365964482904465128775628511968675210643756238907656920577056924188663935429081688135805637021609387696247969356499202978302908229562944740216212189795031745726034778895583561712524911623113735253277117177192716936647921474545934217940667411250235346020468328627139403691719478447526259740540536459633911130007528124798217333986086194244431596931210411003256021672503825245339603765506309695614988773927136612972148029332149406074047038757130153137367053931559441638344812940562776271177152974808962360511909083688989559734058213470469311904647415140877903607678904946274607218353064341335659539791730296413742986647886891122933642984844894930629479591643803250948179126458679175023135900125906693129190662750259932078149497935038146024566858580328828298874529605481028070192608061563312991765973275548218890306341690695016605687452622270773733851930919457306309106355345076951414532983064973291709639503073028837838872791765225129623138911767212882848303096765575471582215286783893893334793545635141038194077082474073417227905811431163565389591306568085705957392389818433440529198670242138674333685822953518632778451438279716670975400718227855602164558626040824052910156179792099998352166582597452335447432954636549517766373119833864114278566885027219695952311843476238947970454779193741458249019378957636760069505141441174646196220411624860295267015891386410604509671902281350700242448870990492956020733219681771957286807023975102400954719880333435396254416723228626585532804456409439455154168544863766820686144992096382114156683073546506774191093818006339835943751737855958971086070473089603079493396516668606801567194452740895999006470701393140594011176805409889196723538941224264121140743490495192086394628162477643168616284546558375673816266738255983471588375141249266101072315503147587738294847104540109326126141215556376226539754130914014457884512914476901577658183333143112691753584171352296111677754892514555964078283798128160045320277003375713521579566727535744738821827106355589541519026969366151818824437042700419825361403777240008001441277165632942924212139784522504253267640169879172411207233681066153683154390847890104416218114349717018784658315075148168757605489849454512429588512785033602136696880801976865460992217110483655685428965924820405357818683310904532272249690734506133618025738585073800227915801916536550228964455209116504907326061152395341926337110513581045678045470066802353405016768790329535069805599820663660568549467362782859695764847234900459994239956558109825109593961132310247938308969540431707260648744587040649160860512975897842839106270142237264377237437214005760411274115815179430220374329510845779156723033613454777390533171847627676605134015043264206405313532946756322568929320257512144228019587196150452225927214425013062382446821120998649147763158268286635994839114396451310924790138084328786338952462519891663635441695018034710947067591678058763473169798254374053704584991407013929990143132663887891703235913844091746063185015190432697946142243117068357304972262730388479421087469592472213891038470701743077006569458657550655782060163974540759530940952860579893604944135371957817176256370258434582099942493390578870108453292764124006311896285378069612889456472962063365650844229579546951361434380103063496790310797639330523742586885947781519286712063686917333644801945424902203244085391300599912500777836519444815096715220812282716206492164743855989438137171378111636555031190292369964969803122030107961248028090394523210512757927194208353775115699973844557932162151823738319861832048249165458928975109949030964473333085900750595225836486882870025766364277223185866347808925463480423158277389466796913213078769253833849775854910357645174846102114555295940804316980723786892395536806008686821046724461729003688174027631255702918702476826970763371221891604803338296972758764146109656805275808447378596423366929458662919414818046054838075467163058530007414204281713948364489413833915583024605855286807493289057857879298046096136209191642106027248831110237476104989199568863400894445887808664787538998858715314116441196338878708355807032719174329045281247528482103263116155929132131825720729315408115147995924860801870246191650519851726878811495458280061802609500634428511954621940547698091396170095012151568176627850241237092588754722846213212465758884600175099629681459124355391630129882855212696868586089920806209635162957870248959742041802857102123254640770688170579106145993569642998963920446595477127761090834223460349535318823207309271454470257491628495631568472064201516359716831489429924527874231846423935441936654782810375066636973915632821063318731031948061802012509986988563602334705074984347466079793893633689523892938193027337080059006084272133345620439603043349893718890494311319377026595134341979364172227146775747214308825239780638432841985806654413337012555985692629472702835530093578498905955831352592052606921048123870763909098132749765943814389151002540710993253541224731728306746434976483566937433245067187489856362502574825151536316619766189701436225120307051292177915271490791873498407377103039722284286469976066338794898691225308101333294467129778632729758932417587252756687389822786660244424130868751780445095120771089123979496789179985172464753359383458011695587752180845039311332025236900091485217012439496049389193207302402659808190865363136090443110917835580898794810108256733921352837243503860100771452555852863157795592440712661088682981415773439045730253202826159401503410886179125286935027952042101190061035321355195574420819723409101393937389191527203163319595493674071929867319528033247505789086637272496002682909512592911379093856127571708477758305498596327819148241855609496421694026814015347968703039693022996866981783751710622541187108027667790193294163119191870909410535576071686544861013548355159873582137390597475723682949004215544145061563082923835158178651582930418074893348404495633987101822268443147797970827535408871388498278512442800192105914847411540129774776763258397599146228740136444513951483693278168707672487415305939667295313932639217276107187658844989032806047380763866195726846417525000239638167497368560095129345696151902697428231892050239150397188491464679501725492920308810064975356661853567528081570410194218656805131217210392281657038175448816556614836935575757198885908884095241763867389374940058320776561640098883472417873519208187497792416585721155259243964027043203867945736055785836483694592262520836776197447597437888767397899032804964571188257739213341921434969170387707298204457508907313173726735025261354376779360178603803436840326952560450332739271672908196772340876511761123230795731573758087872667730273870697692863780663742192926932380608666721185255071498157664983430925522041409135403685329183131580930051761175921990400446225641527640449525396827149965797902808402997242400771196395542504572526642176137003459356118743461970465444243181560640702743861753728426448991739293822677776511423843686990122521066483460136828499176823987042878898153575143426916294350280298936270991553925195923664959334311745023444883859099006978483079645918966096744770449063503752637868885170766457467593752820990244864875481913521996473605257064846624410763699223653609138847677343743661077993908919478573534781973401735733514462531706780913855114483201093213477916330264906189638537101295620711697101522234079916661362402828461127425699914996238167728483089616301035649137989395459458800747827600662108012474072799461808409719005705937601552362899761273824155304642386365389773153317611553766663150389102664810460599016089520418951724277035490838007262996813135652729211361063941991235847436751127040054867501351401516704143497189941618471775739761990791679571551495626061848289331241969053149874917714063229545171223676507499330082959798181518627367848855759963044461657903847497648048664282678699745105780870662249140849216788539288933866819534163225126559363824366160122970201266049054125327009280852717122256826082268716248913020859342459164684366063757772568041454357863894080064680308149449480509526957383639625360508402582624503386456957742336235368070277379166591385111262574327516751995743910443727341545256904139986836980661882418787405042832346977174879664850645549884970006018690626959033802740647735174510024764831037315697515603865034086200516945517845954575363140838155058040926663870686977470146723281154518610416736371524434176829487186948214400266221686018600441842178981607935617616685351695103346370302538158171754025532608628164978406204013692374549434161769259351072307593886603244058975754536421033326894547779972717622849221039439351513223407338154377557688321491224274075967957984017359229512896512398433828331083328906826582628556052531431575286271431654257572120353929617503273288905088747321604507004013878590516343635272921647675927462187857010945448019054397031850074403255211588292911942632737382448693823882315116248753780389533548488678813507145943023896334075408971455403606218937966101967416398469557095844508274064619639101423675585977903456110707050795453568386672018220676071953550490462377583667882171797359948998091817621851287789509910760825184695125658301407030174183046924033978951397230005475599405646676425743932609999387538683354504007752518621456717380497958509659985585236596644189496021091311595512526538876869268722182933391608382171126944550203586732218735733046505728686623169757300839749809421091742914953006640415049646688204780463682814227978445515168836466282293396789594227685874412302950657138438154419367641477755239151574050654935591517928352938600454533205308394244580223148957688806255775453023784792454621413393577742576845336710853800334182332145625920117095708855200074935404297130079514579654540153321973870285206557665857588368577145805512578811018830378836100465901968139530906202227405869108563533604679222427175846126593665296724185602018169394252958862597892859746796097291950035823850953379941637280183433334069452311631808684723725246705752572619090054902160137452499232078296503805088577072916028556772542818725361627967348518043182345148199466519909820959689223839491107079420647562279873296130709032851560113239304790119853459393072050620763765488158872897493455249066314622737800097433787869242390654016323007303495451728458895700751326433323807468444556400528704761598916386901903768629884607232382094421407705288418077596816524848799198343819939648305492948034421605027965094724798559245892451920222506865095665029269192237955120283080968735781787287857045873387795207253664798848922081647235418661011489186132021238963627781093221988670287902761693349794749347531363699920584266991432877844056855093701401629265275560806052302667801672229743169906282288660165738255980707425858091782659632601388691800935495514910927691193146936617805774120117097322913261119422732646028997770576749082166667249509079492675834026997926501845584006940787844622015790774337821293381449563126199851167225522044644924031305324679324075474925563206532788110929008451199531442051360723871097587229693657349005986209540830737993060611941289102286732755410518771735871265337331648026632092502047542227041444544176254053898423759850294931914193837802869417680544757082970957757918846062516959469472813416168281311994818505383699087569128114348588031891773685260027952175714979967264059869474251991790847241052658061555752476647079647137774134244330120306589271121332194663727122899960759236833108457810151069010027646145320557296758482475730520687024747485560560820491447015319832038237253395514767006833486450588350882554415040945133131419687130801379454773444588174182312544106139213896348202353322284771389917656538752884291678317822594087896623748124132079205514714404689043270180587685547636806624399834678467031235651323380078048604102131700644850813490243425903014030727765660546190400473629906491990360230532845025822703169873430656941611205814326656939934390656282338945344207962830567954869646923189286742839176701298758110987377460824065856607210115761633311262352655031569964440975860817293447623346072604410175981173338442817918841435043892074413530570151431325104297276916824020656854699114825294119831909147222011009340479185623069974289455905837699546129530643858034965170170855472222955402137559098505874113231141044371808496917578454463674210175905530329645060895542065079296507992525980189023035183140199141411378715388846176785259228885294531173158158708323801747814367573541706539619642586455056730317550138609330301510203477899686781491383173330573484463957084027263504478833844422858386375609095988316895506985160607521690534274674327478430747376296569629360029232243312172112152398082958313146431724155849783326174118484116178109347022305246424723656053525705300703030431709754017494190604939221421771062979406976699334865950333512194558765582574220546032793297432722588757336033934350265493148527010064490013067825422768804194858713621415462062759349266021706205603773834688854384032287899605491298011665245583463751361305407505488516520305553070194070083519227890060016688738401923019740357743359013790508190710800308471579574624178027096364700109849417727561163391811310940456978113829694074769851680231224433678627397852132466513338038637911235442034745777642070251647432561960409066764373360520891489678415906847467197157158712157363360138693386962935142997725683493955183799665037076520804996329290047518478411060785115995187856128082199261691794753497635488091459616902156660155102853088244792855856934426614858525107990501044975779188831185861213865848230453564663599858392478920004906600986774423487932007922676578690348756467816046844498155277556108712676081265494612786913582540925491334773248068029038090609367735972071209923140074755953329187190080322257538999355649448061415605797790537767835310799511718057393185020735597723168898748527161320213095723403117023449459362952719220926981728412240215939357726061962793551445917254597022317924148505236259150933291742455558540956683126954173932654050695986695071952720271629109073429367634807966782047608484037365302812193869777750328709078619132894950524094743583326316487169420662082409600360856789909268795647945627444895010424576212944753905242528219291931899840200033712877639596762460904675100463099984585941126097214237192871687047876472944871129937354787885922009727802542508215027665613756124544236453239566685368294578921262583008245075595540407560548661319795790021982201732017457452597015468996000065850896943965896032529433341688514128904383597057169621196169583347246567328215390114227477909444854122671234120505705344386030197275043445263550629702645828899533093303182065250894269023806506952820753535931440973246063559023765147830995093518662891929879351348699246035717880455333851815225886446083174968723584008850685878039323372691529077542539122653932564630524592008868385481361681568455871049562637088445654089505128982376987970955366987738833782761758140671944057716692765865671459032476515605911960339381277860534086149486991065285551852993123241949376253608205021715106054976385147200995493318592311382283920912513065582742640607800805096150220831381887873615368644941347700385164743528738591090127430129254978111201047116528008813134098713928867383047143098453149962896118988557847938135675700758022710090758149951180139480526686443756991381371830472967099264565560715607095265943439532477811277402996306744221103816798243867112110723356089548443980152067617451853559287609028998111488196952006418084973168063068595660979618066702086983198739942172890616041712204638903446168483277845643532899137314846832222509248932853756730288745047194952559507490942855367606967314168818519941379181616440137745020562428528214505021625493684141184581164817455701476495974802410303553292780377294081348761877702263792286261416478015192049229384517202423187376111305388562370727394871110689021479517372295116259895328634670648990490562313705441763798052386005702147370843397803404170974713015053361780034140217537980805751685756999202758267502164345263989321724476666845624604638046856558994275785770562152490778132342714090879611134199386652833435303393964975543528415708368208839768357405804652581849046311672707230530078641369511424797018555277731902647852370722291389713038890473155058333104689367750617572349939672931616295306585033049551838556501719730541491067926163502340099171356060123525686809779546152308115128764862099510328006791341136466281280993603654882300634034265915545500790212374344805386472221678275565596761702828120720425367566107590002409606248063481827204819990241023750900240141121067000007178594542837127956891478305825427669978020677505027319955694086519017857932129769161297395410488432041322114443389042062682594291308166387072453735140245813927582201108996920077773482721551941829301889881709776980785638289277328444977823450044370428764188915607714494759573902578884438492745983118096800350195411086615500835720815132378984300725233460601244112278745475046217077870240299281099656751594067777029839090302853274264766927941459908270376756643572148520668077536505985752344088745665426599143084336152862195075743634688269516298911401632250984457308080133630339063162751040303534872264005884104586864821754831278045206394330574843131616371113508634067484176110671973108302919951441079858183683845479529993517172788154496615495615078282914063623057977514057979051258434298145387563131846615593210337486483224084282015711096217065217310473947704987083324913522159576006478019400403560815862104987761320751523020819088670638072027546106546587785445597985053605387409427363850409506913787376782087921605547402695765120391444292917034375258737985519448827547399318164930401773336664745002793253908596904084893092593960102920322440267292351259496556019679483711748866495661315125175894701830572495510971941828406645393029526671739437496079295669355630509874333480872541710352178147549279743510879613028066330774029911761370220486452225748001060381604471817477216946273483859807009242703644335096119659893649609550993728308991572246992070604555037247400888394035294216431640820735629030209193473502171437975367321464606966702299170313185394685801423107956172844385953647084803209578858666697508605702474811510116328076924749772929149948272394713019527978477186809725097935703137951411633075877891449635808896425146449568324619069773918640276019647399610034429419619942929359531439171727948698305112480287841752405647552040644913964728261304838169210619038664964850220307725843136754624058520242730142423563983468817311144376703334572862888182554680883615411764169710466879320198493892013981300454423962628255415083198485453868473241540427408926791275464352494261081781291406552791546539600835946689685113196395359891370633065439591467018170022654491792102017749494005725650944260828840986440704918065017100778205274962490470071128767087876719960911632977448316931740384568748900724447593601013178255805772907943088944066394768809949118884423655843923799916564821161413368571129219654222743507777036243648856934988474675983631909803219934017073060781376878347052192164174814243780384884531487122420135158856331223797141262129020818661110735480552593516652643190740278238701732628203121991575942413632160487190845562549908688788207923029408710467850790340896809934836676382182736389550894248523055464517075662563935415423297126940057641466515074585820946673931799912126428882826048181217172888549053234086024277759187554676024197049209439479585432732861595208156270377718598431737990886258457943166150887967136953664367870327950515019309743216129777518711949656661481407839953936618709636475350628712410723430668244377873626669450860156107105017620245435423946876868798024211730010426723483022065682688465302600778883308745816430549986837211351156525463376221808246038973570859207142279751977446728754074925824156497398430785260871558034298940464786389317547794555749363585449877549116032409865665147034852368067626999645546625681635984216676175494117429654408007816258212480664805752324678951596595629596355622621298317262847818048592232817025415138672699344193568168022434993452358258256320656813084994925192353900977389271217286461483973428136551715601038672908862970599605583152111428709345689258417140379716092421393557750455742387422464412504721871086231308300030542653750492356414217907617388187790289470436606144995745549639759206357385097676115632934690481834474973424499966586531003439307763266537931579339305624279732089329391896424000506408917906584888867088059303805020847959615919011476732818589006196793613481709733934069918194161060077568608108071317265680062757052411019389991826133921313679213939466355677166973733448787885940129706210926710659144093046702180479873387419567522486011835717734977619920770227935780491736263135796485536451786702213171920148893701421628884203060783637381071421632523387356046578380279285743472641234965882938221834606716835495598216942054300173255118811463680669037918738909095709640176758403320303735001220218346402489932805606108845797680612232937605817022169455116885413238542485280776063373679106917113186839120929051918680669400318118969457483767371144397162974726916572917916699659365560144609287346732974672032758321171285971847629885485052731019341865520644332891804913072776098651800462250375905824664318945740352014521116617701088231689563981281602263085570138060598011105707076991547385848942966034885340587303204695172159797119142875738022531870684978883228570362571179278350429778539222195166570434568338133486545457551912951773851151651336902567109097784781109305143785456669447968813390984160474235363501006149326941143982258201507781830691210200852822868773008880384403856716529323805784627531340728166239060278839813265726779324804786711990329626680425797710455774260511963819660641791674649731974463977444297776738909489498006792390650530092044218500038625550590170915182352391311910056292256244066253742882362262406991316458841512331207423625493101503312698274902085561878077429155968116374005501975616751214455011716026582657191795171855841990439382686337287644036715110082372442162075441413612291613777801746257792560405497140521434424662064535630873455014110413960512992146770246487422235794892314588826145745078374283863924018620991251398849795650122574043744156182014499798176338808107045668867187390561330515805106864538503311491987457696591471886374725315352385223247966579000675621463013014067108787051334754264146014363300875537781924324363631551187931534300246047487695027314979619250391397680680756029863592716041547260876450675571843449273040904222948390572550977795879346826370179156123131131619323795618494865345400834512666415579303814720415207692630516191528869582233714030459299764589672457415158170150042757805110277297342241945379372085495058687279052628890175972998480286462317066399192513814604428113317002266349103826558280322560241809877619697317072790921026939247212881607172535669969051614498099810567010183981413285186066292247768494524701119133734232363202106708068421496768207339688904263348736921253405442252734530189876305649279118544084894411292274173309935384598860463504427747570111786604462749667261644749456852114869708541842139168529072496378889508291883192568191185388067776036013400974098445821439574134386676303705524754892347806530385119214100573336713963644597329015581071313235799084892451084917651687538873960802910512200432713593877194016163915931411138821916243202142593821443304929308638676909356003724242594210048496547672992340162988196531576529846818826731036663660634392712057132956671435517028579894777539966247984228060331515246111279732761230647148543340142161645214730979068162502926534627804468165688295738579888607741545779300430040236918437950434573242483838761566323853836099792370544821734286700676125951530151636975257981898984144545299039147871115028538520460488814948727954205000778257309651999868935153161256001275086976334087929355096950958143306812785748132956394191983468613201856431314635030857044840185487071978257030936371176724166728491112719418937124647928774845730523521842517637974918678966139702211360574624141441510055361527422150770094111826670648901162781616605209200096867935153334622166815920496976717998875391785732824848847672879226002310820136439661920551686788968737369954032778529163446020656434360317325956747828797789576544809073047344532900836830925048668655921603930941975643750727416284001162278117626467114267859685562108943264443753976340299542704390344222391172788235719287101327416627478492227118474507969586753587432099534796940124249412630219117615518962129209113938144548804348007195519204966707669144620107337516184579335945222177796241275522681956086646264493479106100873672885328746985475334003275607986535094848668436896425209776617850721825830291697136454342833266740762559744576920420701407504376673643536425383320161974395027275009102619680556429488175558841879179710105534660579975189573339148389688179422335043623176069305238100340234889001012074028237000932394598246407923566986579961999373624064404401895663520953548721878726126044304028496808058081177608022506347868282111433659251346035654511108439421702459948046813950435902326301901111212638147719104956067445901977609799340392654819573746344077931495095272535850509242996943449130782546209430955852679634053184639137452218083391020157252687912550947008708690208752810774616414331177402967930571684059541444669457652067474368800441924766622334424958272941451255963727848044829952132724624628647626777161673591540822958080024536633337264980798549349240870703660922326774414707924175878571996425606515931457410583626568765709269656469326636815223473420335685924221121535144623098367918272520656186108321097485213628955575589999278148706871565977977889544912214656517366815345783262213201900290292815423298955988239811474204511999217627618301759552934308743051977625918798470187620216437596415178434136733154151817977789455934381431148019050317060150095391508612179794121664199626603011285848166474032661745017372504288397118105453898479219633785937338332365060175015893224575223751295580063392496485516602261000740273663282432877191387836736702190424851350203425655703435518285830131411982497881632909882928149335950946251900213916992594407726570934567099281868540067929726468078947988216730712494012864113044738180813463737689530725253161446201087444176317767263098628499853412148448935189332018815982675722158822472179018627790900101793631200038167825490363050512919108111085224235262948832300935706308272701692495315388225349481497396608117543674457551948962224698970616533495079932200570450607051357861285321047357549377180533256147328231159855471784583916108495959951525447936054818470827163844114352991304499322383388693567575547004011814028405384296437873027086688157843061361657413831978068237819126419413260701526706334871176617112356267027484973508723180941591468786592483115575586174941312175219277233080526339105989783899921620980295235140646459201173297080430421900988367951552931207158830986398831685825386899137968290513806945896372810094151270042632542920927856500143738381394411060408652610586558040996034691545788992503444837868955238019245687434600607866970975001333078803558216061541302920579962419189780731603404587537805829133813366636858021967062022131165607203252400570804584236498043560133470393482798374982202568908344848269627508199838550198073482096506202406254248728913424925336974895316104181448860245004114370464938536347753120118328291029560240479800606486828816938288095583706364050420341627028777154526592012162338560961055272468805442993104602679114403079976742474413626093745685300906914573570007999727883019605701144999425459626224971908030122054458931179600768839617885445275786196014951098528707327175168078972731684046325971860632054094441996403206388527763478959336548113813923655751468799529143123736748762461405655943666971929924490275421029798322508968284162636993298336580501229811603298892328667368264151269087265523420999381950147022821329631762959338832001982816266325136601585304451132986937737593634845051267449002340773608083538993289679650032404978630081720031235463723605773864933379540959473415626443497658411753664135262615012731081542333004063701809592051732854060110561187551180531096014623535258862558499249933501606376719660731534129743425642485000293609724228217087671018979241397729357978021514876690740671321601105904379792058503347539011164944157477025507489322912506587226798921509526561807300674229096495043474850963843961348623578243869046525039715541940912745778402599656972825185833565517818948311454686179416434250708380057485578053751532891335324558820494881147457168583527483338553435334213419666752635182647050127782568109933028508236121795283470686940141882988157297343576570943538283551199022263927332077287222027230631364805739929493899539139847723972985052081978815706902865074968567578104327238152230675276596139931126620823932569495481908639087805483228571502821342946191519872077210524328417760679229153438687608249123910458305591977147170866520541622331790198873387427624956139321884322842370402020977515334812802997495526005208426435585393007285618735386525629164030918358629377322073226328010509408484085844957222010073623872029944942734538003391917656571997625863501795584813881977639690559577360417994123132982440011972324512389653563694027477056912545482482710231851425597973273919636116221845364277571086335208254357050360887292057063923801717017537579494790067809319746910567961291547416379806658744410988455632778488845947785781603701654806864157675091746242587804351228663767402861479795242340217571852125651674147340953212926078244790286073572931041455516039479765112007741659005667112576865679703403586223448322468970986589758196548382598010182605041909411029238323296031071600106706838723704866487069876358292750869807866708430223242351987210103385053334037803385325267654033710766314388269497116117221353981328791619848646386190417889185606852992542982779707925529243318738055582426808737520456253744909938107858067371694835185461581418189248692244897900083053212045159161583640951318802408261405426763939175536040151910044431816902291746117088864520780955006547805353068236201975393839197592949233528934549453627982159303425755628904278557814307754840087755744827194921388950130918740273532235292834489299021614903375655255176464479607952827559115690224974229872041360828746427474187961164251849212563429589049417307223558391671877202811529753958652269120280083779524014335422173637276742124860773097132569482579373452995900374955295412142769543105865759020864316587232029013570103063824728965811888254034339482161507151011320274766527654540419069975442967808166600316693136120364324890891314079845641024839744446521800523534422143200237294696541142653758592734202958187161001965282735526024503288451919887700751766334150118890156316427783200241041633636514995718130202725280861330508345328238822784984526962349945410136231944111612599628905543573921319063031080138697216470760455742620754521485561833174574482058692373483742764038990914871151427712608319570240350802205422916992658340602330456313620626885065842691505764468732325489565482363713972708996226772328685041081051602125253928231578305265613430164746208184650903066876282660887704390949421900636449920852508408770116868454526334327908678463671027991278550529703642236507634587059301463519409006422336822659811042093328019626019705885090273268153266807535949790943871319580992199714109206645930942188848667526511379213638273121544923812474652644218056866788036497726063277405862852020613341854996358431742245285689121635922696749325390087342862835001755634850080774974188579366320886592993045861934415848317866764631799062429500622308902213927498323393215138122288794580654600425485696752325929308318486013390201503867674175082659345599781290593576707192350531013870719163015200181192062822016239722788710463066900750244292961852866251677514571499933881794209801745077734263509983876665586575339119142952659020336685585079566769833460871240783914101315906692456169710074469168088981140834751039276425273119089137047450455945841175042333368410567198915338534915678030868722325436102185617600442889281819062461433811678189695958312505790585583799816987387365229138509095350056051269376753969389457753342446811038485913546727131427547295092468673477536981652103804531381142285278746678289027039046268059460287362395026025592863056942508304816603703136543018894622889512780111169674481232682673182636622419367776961537507108118125050282772345397346013964708234154482131781217582568368753261932963296722933006218412942458969701681819740660134891303498269325224393475330305831893561019586202089297831266629547393548314309075303715677186695647345482150115098425243174363681422619318121194209956107635922336887364962952989880905185522497564701722977250233811826716049858097413111372019220103849851099934072880147207066991967072601940641688855855069619395986975400121480230001792018637523376882651349958683817980474345640673950634309911770576100025786393764934889496195180274565211276026416012859505014300272176046449951525181339298344697414290522900322150821341040521258076054026033041848707273223881751826545231858841439235292856873004684798638396405401076583168518607489844703758891203422270834449158794480371667543647104983995713130694333718853052458467341088641605041814397206344266628346302303190957736786454082200809834302942478596461151027088463562316181557806976911437455243822318678371579177462759232197864276230131858967166600910468762352189400265433390311740149472515526835203722576686233749931789389528068768759834786566492934639588396741737487240766914397932252606711719618769624159919754113531053403955022966209631390846902637476033103868772291521345621916721051940268619420394810098230196616534552351043320286178726358058133642227016513585403079515316805294341507655800648766085854489011450933897681581860934316749873037669719588456941909407577705675322025724526514060797071724074134373426436857413662047145793851183850604829821997229622426658554620234142055828388202676497232835248132615507085044994357603096022314090593791637074070933357196442927456874736458156808953429680962244095085251949424058557622430642919166411459371871545579673560815928927301860795262086192433995613587205000396744906070890318787176202646547393048388700818461114535105330610753530788829741646396624676288353368635554054097748962696120153057205183394282086984618883597268969782308123488258357915280297754907509188840486560515744430046485803789443006697237287979059779072284855479489515269356498697492568015825188292149332861845342182672770849096120788735367040865543679875471651537389617303489480399218511322552033187119486231756049698440220229538064424388608716261693322648240083688241034247491120301372895914021784544629676744118034074314758195027141677717675750983221394669713796252736928234062602572827291305101881862295041798378590299447390813833548905950403543905573208214170616336556937288735099251866347748646200456205186294130847549999032221363763291476466572231334730094633981832353884349549015642756832550900222371993151781670976906077137897542694960692741058666002540559485049217906835339024281272491541643229671971209062759517155853201693866569655900484269327298404280974488851243589961312409673610753977244571948010435968039245163861640522189534543665490033444996456537671873526949005283485029453007593042148975380258741123117634348181647668552070876354638366431846450508678098277860960800878184581304900650746287624517355609881565067491007140159974494353425769964077389883790632656527545372515854342899210476474315826168875117482479234911709202549954006449509688371556096530428897531469280608623510682787736241898083176967844063419221670609421001608180016187651940014004818790719750639197789493252290390027944315958391532416355469247582656266162512208336308396282866520190939769785600726592153481738934914124990168401689356115492785275309072850152583502514961927363122945020895531105586416505538590810984540292535613126625035967603496658262643999168486886006575911167606098917892567514807700184240478936395707458598563776763024870198882166795131253540273315076917247233750643510708746806772586844543187063551113351951407432460168753484182380617960855287922522775418689873842432440176979664611604689573134783588332284532672034183663300363569544446033154100767293405338311221114634430131974042398507964222425721700932647792792681200722701574115361584908446472240849783917926211772798057516810378137676375970562330292799750135625504995309628206494221858250543788846528400519120115391907087809080798182297745893833020293002950436363340537731189138546399226261420841564028129421302746813642092986477026078545535317975298423270408087201771114523262105723802419930370916516803574754404512350758054045344140219573180942079648173505332356806405637806235978891086487918949494857378457406525691493461307311874781724781863080134219161732754699764174792310409753416030303307461498769848505985406292761891995369001379601316953453281695352344515175974527403343815775255527873291587525851738341086614559706303788195516608665237356782016700101006576679571484030560056265891677857420591868545182328990598975745628329106952390303238742770792341058833087659272347748327079230826352466310828358169229239111701475986847204210037682035092473985586787500974406513590815525252696068062142514936396517287414802345647983513891415090644559175873376697393748268476562944309657870338749076009437813712491743473431492954857036512547549401598159046820173258856860382821789125618826596247062767232865164348914976940518996941643717302534894036457822783210156201543330474289848148675606319592123245865877842821096581269732779233565181611047674180998997705279813186834552100303879550051810138384802184187332635903375900116376039156983245637861649396023366780845834257032694677498544075427449267551614108986158512154743155439302938382765941580123928878113572998788932734136147598901252253360838881214107701404154624785338998559241587806691039550802863501664484913070453857818022717142944046914863948870858916381788579703015135504948023662331163508807459535361506945782969414372425539868428536332102978623434147839915949269052645011973955165741048617211118111503128324443496909818743552581447261725989026604328374836073874823013524321324937745232690657384525233523271824874127537674186749543789643949014325491149236796879980593011569453653874315844679768859430469019850605903425290909324952259428989808427880242846464667845060334561490828157692490207573140259309515729805534074756985894854850184705538934583342858479425970953120342946509110128960503933441845420180673254188586713230884679766542169759986249368282640436697698915785930309942057425002593267918760629387590145669792861377961406865484325461096634904976747595787177299227197213076859836343562425425556986253105016517895428036795561739554999389675643399433525065653705506558905398693373886590447255838667488087111132859334396816856842441670795072632221749172027864926245323357501044624742619084081081979991759902548865825508454495638691293131541835572132422990127310448848521535272300433801096692416064870533507316878058353443465998554153775482247397619294282120014106800718950780951109637748251822289508149540401403075085190373984296672765322824491731277019050484662785067354680722938281007947682822712843062220476289445449693804569640734347573285327486470174274570628675787099064046566833851950511364074907510066959066757519515222530583614107104080467862903565096136274085643820816837680962469807740138321152671031889621901732892654203303407423395381675913109801544758557423820904179128235347933474066816396884961774650814892611227109782801775246471313013702160280173738670019448299655699470234209923003476166450938733700041959937079576349533856766883191730276360103034756125595880580249827327405064816902302223089479243387209328915665948368889332523790059185877321495040966428307689100985153316564263593185079510779850462249389854298856602492663131590104631200065382333590787844397476697642922868413909604453674758167928698915440870057173086586335185528376086242843825578108386368475976815807568142204358067991351812450836021513149929765342150749028775326914498940487710363976184792616448726306780008548707460860299963990696937109243414264299217376652204252167568942148227379643354778609454086204603446089776519418839493032691451236358362343182638710257738867628402333111553261428028830838994391040719851395382713464257736402872499098293584852761653131468814231035802353232034136671104360523796572656831445956997504444936455385158643497463103740424942671924005411942738891579347041667232173580281969979057977603360922119859969689810096781575115940536001239148013623552381405602042854352798082602656420567802182105536023475382993307185786425077855135731940999074297417495191578729081222592388527160444364781356665114587533046937506335075504987844630710888528167251574039198479153759230216534831227615385683752808981978915564305064875346678691120519459846498244427381956492517211953882386962353715688491285922083769199598491184237333222970785647895717810463248976598714420372450093270390053527636177036772671777108896399685657070164789189124956864003734074939068719445886543455467490445168086089703271623118325614536542140124540843008296302239035832973054495059044311807987424356699955990659852791788611902876516799484995098276585752695591535964354968933537731817754675057420374715064148340557762875772200571652257246764552724883397321235860543240376055071382335313043471977627137601509199261952490620587970366908992172601485738641573403706952352981198704534670344718653606625896749368671313941350265496429446289206738435242139294347228144096754957160192459964014384065912932478532631780731609083077197217183571053250560124446405753295054124029202760421585220153564823354413942580734200461022203462269472669346051392732102864379463186749625279455858383703415900612911723876834430713312527893419513824824309692133938182911328883365071480228967513326920143620952520044929714823815946797709689347564830044925081323868111681785230612052411417819112640166364879815690541566545134955524680844137908954001673226860192698814616951569035748307349250332646430432025609951111221047345119724772674949831745702809767541957643087386095411966852241807382290566446360328323428074911856248259864612330072009096878399623592447197858395232110384329827142692457412431237463279116377086116837034742240861676991528592524642576687063637412898307079152397374736186906741084486028855504776472662640164156285662164851766466633684884175532809589381006776247588090847307639860971728442470920219872954917107513984862110691558816495515764727904588207189761259400024474088311374555093081980928174173358719288823488838599568859891868548984408321566595251011580609296261511094374051081385731912780040217136092252781501750327103954955172927706909924051374556544360434148546315840223400514301677176045637994355624189641653820433799134287425583064648488048146801869356551563969259316678212056325238431039732552617474986626553319452637661338415887067845762665751410581489999321619105233284746366115123316302930770120663461242005013047272210882818375541617907912182158094478554741743045160983529186794768781477672882839852406015543590573170701642113658264529610835030043864095078932095420138748483078096703510155909810493229074313348352059661686570113607573937449858887695994705177713296595912840208393355230946877092357897583144573584643927159235630929791662969167695723103024181904608628729473735752076586118575203892497934065288734630362082117368794267655866650421568385254099928637165909098241324373398779497073459237617379412893301861226790300007657887022423357666431296428627627010971086134879669802756069813827251909280953158195793225588825829638982359392733399052971588635753195008730933578422883976449895712894092235105944429547708254601697840963973590210735264409299931175674177783346581158112039523024787001685508281635095025000489905783858791425265599525038412040330849323167845154509861721815689388770615247924884277147243930394354477821231334957765978503525253925259857557970934228374244591814714584653629193261345431785211817122255535480632461901757111882177911809110928428181832348853577715034556144929072622970653768386860195973937772175448320472029459232700617920132039048672306530555345891495633095802169716928024422783334248589196725366449940625356413099360270995181741397379393735756065700120010313460019291155909367583370056409199813972989283392434750695842357263944222538263252197432924896920242771409337099963312306742773100899990471449313741144127384963326515679965828077172789352965154440103303714792571964035658609048921205609462934639734293609685204383092283836778108745265320049887810381869180955487758324203354608541141700918575878656707429730958214078099687089735846564888331221860095460556130076535727731755466827405378972046333749127153905083982070268391885735622105048707463836393017825636428839164814546085870983221227501474341220758056058743880040134672436152748613505329806427860469730067407499515200551899509743097491964319455409101274516920793847559921444032093218842887822721510043861515479174250387823919343602483139508702749091715673909694256260593309891224749860699120193781121990444142985689257671705181768089372322060223770959539745713625989892095807179657586292440243720889182107679470048613959127172349615314615769137562014213779589920092478503902155626040462317434427083090854597561510502400509612304773815922617158498321871762444523504879865249351221530184766441865387518024582568153463419181409864143878245799434863381341754727092795767063242747114682902677473516665373847541835405444077743347610934404034053107860387515140980212585469215351739447146925732421852293047676895588649419723199883854768978100839171187034503381210348887215473795069406478639252942232106168080222243447092572493134035794854559376406730830068478376917931907935061272367981733116608289515273556155698569541467807544521454464474918827273552402845223945720083675241450785204890685922712630708932463587523029755649915299460190027245562482308594799688993641530282315992785273325329742527033609498364923515266765054522596149158600421690043773424795934429819923800328241014222421145022386904165729740440752356223323590354198390091416168958344904632868702157119480675854957970224653068794654479718600263878089847516882361314925937698473848666895195331955942929303689023803702104069516657016688680385665166849223247594207400080699288300513301747562152047771129491305145515182175033750357620927312758888417211696775149112226271638813712006532564582677931985749241669439473344005200102017665096658775515950087730614339157127870789623048250192064850857673376903550651135597028118894507644596056460583383095824323115956768272493989723375288855744163002095329474815358950845666106598591094197558287511417219000298001947565392515899156591882208699406816675846085222788615158800114784960945625383365304933208293857057275431154859737585024121127077498517152380228449162975496471075467276236018323847142671807958432075855573679908695412210999419680147797726087806071630183977740577472695897854039413765323617452270870709424087780964901724244901822439517562992954080873038947934600078134915096803867511949265066925231887470625656389380632345868739238118862549697621369476787521016106813702044101369741122005994996993438027264973068593734862633059367483459808255674194630152890094619396200717979748063627270661794423200908133135234042409672722702481139752419197528177734163371315515878260490501033358128166021632218398073544926531702180881173501095144973581993012631346500380731432378694591721764709514826623284610597159875118350343209086258837345711028882875851219872440027201314259520691130503965067761587880996113759285765356850469942988434239719734837316538070337465886987667908779597947840193950854106493325187640006458396717787913805751937509026816813004836445825891745478914842905941239201751205758916030390698400055042337019252329695002222444597676003553145179010643024576795529075568087397045455666630536718749575439332791278241607766908173472844922070667126371166162816935081214382164711934139935861542843964851275032132305278531878604271765490668654650349640211287013820672848213015425911333530504495974617403850247688617814303434349940194872329584040338981727509076197014357107664891994307366284249524001733068882333331077286844064042013238869955010719773851509461720199318665249648838664035900898569067290161352803356904473612939989908322944864041031638538077726346504195452636892362535426651417036721736446869987339882571994238234554647593828008285815281835767499728333014891265510205178577637090812160487838861959230648258575138380355802683747054650200596472941717594109447513526768664156717431814037820828320133655010370470256666155545397436826167162668594815297524901644481262826554475471447885241390791832028437436363055791982646546141047553634286728863235696454311754930580083282450440814355020874672367726515787939181685929871500095975186328660885712210360183761442301497981304650136102310599400345439347926838247115554000803381892385827818121110467494498268748942171213614883492042426636164070151317288573758493534967966191281791438799210422261315562131360554144477647676123231343961829074409618659844436488128923571623866817864850863980399774639105628727417828607853979920276626070391949026089470100048160125723491160546822539323239509566314976889623910742675434598652207668836494273749984402082217785350199862702424680164358772717986677683091604769888424639761982020006609981698439438764100345804485070105761189298965885649648801850777430900873232202653366374442208749075311585327782118554069943664047466015717625149488117466597329219668201668243197194535111746096723242066068749732060718777785424873375072240975578383764442776931451321178753882993229807938771327082727431088913583598729884960118080676686902492962850229671086237200833080893179711379384212560513061840278624723737119396850223033834191869462609451934096816231030940650596560788985060158553016707044059882660152799179652616520736855411189141631666993455799030783050330766912527367908900828088586225856381224819422396312166036286222398783356193463127879578732631925448588919045288543976902012516791563532672408836986027920908462454708647556528262351909308022597106489037044439013125539129400660165924830050013480751587494058540209143550700395490340792511119971137060134763628957170202173407364304870816729226845246502834821730896445732568793717045448995998256646627826294577164456203822077900420408596628437456513488305006225511002051497172247963128994205195203104712360406539115098687368528963242732059216352900986616698787794221375337315566475575468848465636893643028560167360003280648649564742653826088827190588428190928707669013758239530280696042077432659053197703211307816682040084803242559138278799080795099645245482517405526233079322664823518268090090320125561590576580808204610267222711238811331734033624180815656649495883497907086220776158299111795446105500109451621930463890868908205825587831000732694703060491547569420475753199955171530573716674101950668060839976204258174898766346354035626292287161464704003802913527709732036575598230147528611877607691606168209234057482115582042715338438236656870872263953407167591375808684926137746951331171708156249587264937051003561629757003644131374902469112014680010347264291215024332089066818606083301441453180502741634282759271430219962558413306745293828462349897181685851612794077826674825485037511618885283210008956709972246639791846918687531298545322175851355224897663178305884771298141688545864362262706695059939734581137347202084164875542389344244078350042999905074598625820207287653715388164181039982409252704633921771414732003485224222384669548241690808047282026830905863062476850902015566487851191472587207258464685882911809591909962516121121308043637572983810006897738829807351574168856998813288529488966519295056491886354147403801492491347343569348687082470662759957454588885493847853481656413925650438606662523146416975297658512840626988371262482927159746537808265593688798484344305966593541200233899169917557265192527337839921645865943013183963213646027709023442733437711857016289488209264889742553942792937828216430234111630650394279449568641337439843646732072827011179940979636638905883832109292406435272136924812496506190144116491377924562011779907997179733837463306214515068389300294369264165062695940673260923113893557548060914426409292159331639721058590664578310778062576533758627366454561074260081728713831439849167461406466916091988526057260477472626223215260324788650888644934118901256073226514885399216817285505618745341519268224785575373546699697218836838885824287442867246923141855888538693308249318237695552606467049311952686888341471528929515893213527721335382295051161070303049320831333478039583990410191653417325543365511744862995915748944336293777691280834016258923919460562700041235849891065135807967646905559431552793598361521266577591600321287046160868155804821697384720430547834617346833626167241471039239475503429759968418070237486326034716315135832343662447112302671488396303200842451588652870318931490421192374481954628629073723483727179814221738407765476260844166728601681982447313212553296269265455527319367697184147919024297699666061941530840872191633201046750484337643258996314408899576537659271032460061136040313276116206170545313495879520489165255414799610041274961684629422279342086565975599172020257709148797866279228717955240803892125067314476797329519316878003798468773743476651988646330206357814730146421972500944020382628668087757540255624620130193775131893686511411061261031076710836718675756139950247229126350160373976450923195953264302396688040295427108536235248745384019408242579649493508647282533830289210251052166210461971146719736702490749139660815912941213727956328009313608000985573744076266242312093583526063690893769863331047076858896063855357331991649623196720223928395411503068286725116563314369355666738757921769817207415381201455952837775281085560383083183512827459392959278839444209172527206144150506071560995342435196230018030574600245311504329179619751110452069984669747693006502645779900999917902947753316059353906020438671273810333318219927144501397458936151958603984354240629510311119262034125363734740313134996179173830836618012456796777799941721007502737933407989876862107942132355869520255109532283138708776792571579695629855091208523411188600811590041063106333604304322160021132682413797423090451770948812043641718105784114661889562881055101736368268934560176909079846733066905043227162870048318974127323727805879496534065499439822634046408558736729471747745577848900457171620428320432298061748650478163393966400062385612089738934521968757568513138593187590784937897353153183300970881450906263507761788582294070051393650180255051340707645581010824002402526419076261063104204458019181263859492025966394750356251082903795076613880177934709276488723524083359060494410808289395400202064209542553434533404395828328613576424579333093376302281084629599671527177846865537091083393839674214137175486478312288826964479893271229670536229337324712248696171929488078031639707062718378948331874790940448537096373544634060759887403631237967441015974455384453556166377928215753156582634529432447453823060341889227658945503483915406454092044019145103943853283846627473992212448777246433330166491241813536118564773531113460945837304261783702046705662658452139753370604040147004606260982419016618375822724988823711809886253872288034084852871134512815482692896513741330887811063054216042604646770655646287780256542154926089064554474496916086869122233207169972198040037787841892849020652304278240731134606715653092830669998754339731909353801305430382037891061784510885784486484478983421402911058805313640501082050717710340259424749843673631558568863825606170354965922527872434493268089578537157048195441823609636290227349160622367100118368975324642609347078834232636680114323229135642627627729274819237465704017065828135254979309576468008102957879553960428477143907189635004388658410518441442863850870854400517893346443491969933805955731792164956283080136626140207871289120975463872377350211241307652344946272681275530915676595523925711861118396739184216201465430263885555568741455875264691393778519562185708663261426960676497626258225250072475386024680891316375042707678173212095447506813265188457632012262719161829292678316675606737856684855626642832852925348984679368417292927033710418306862175968890461429625003804838804385916529802285445838253855435673880896487208879608993756762695771744840433773327489323793410529491294720194033007336194030565679026134367379685184343743717003507095052217133949714180347616814025773843159055012473458783414668364145882496051131757457630487063480534613365028682332588847709310796974709973261223155500829338579713964675143573448810967550597640381568513174497434820124703485104945135047624970716142046487011122300177121137788253087132671783597103158950040146208788729654639820519039625482999444104073070391396822978867277144977917293079932892773557401322873364718893003668480168581028910438779269703772009681356981085533247687321983107450586009441697248156545438112450667781869436426124620916770883151979075402775314862313310708323772897115617388556675403581548202776427562133265958284290000689414003694092338689443656078604803811971067767900586177517012953442280721589674297135431146802134482609999923137447038458051187087945667617561200842780485128485908333264841010460980474191243063519733892002961075900591073611073516642563344801260770637613942515117399866689448701541089756555358899196357943769353319966714442543303295759673798934332527328824521284132133619763099217000192349343942347243152868341940376357210849957677014003488956411358726603841987215232842133975357944059008682908594824248114764236920202433139263852298403446351723152519255631494691983963851605541847982078552323997000834392995513051933759780330003930193096299603140010724430904406251473599421952914363011253825452005388884787052004007160787525262046573819713952101034241615730234485274253445324436741904438873372773952427377502887422722453514368853975532818257565420416216449241032652458181907094601407405768536259209163879957002388182463290917024601161776341003984875852357422773100305599077118270597596070538120880103258266467260875834562649352954491896201427443405964252652209471290879890331280066065681688723437327172657070798546575794450889118370905872126298530620007244877808788189012734000939281386645356507324548755883195689525352315068921712127101178882345531129866030816602969274928601747547674902289929495805203188893001442232611792880433554282927050558973944071707299172962176112602054942555630699098066255364024892406658201301836349678693357874382794804736554069379945205219548297229777822395025150657340055353169455891407548959129141131864706350344142029701224488532801431168589362311358770591874070166837653617639464983784628664041736341179138416813955298551513351411252831563070463238198805595421957694522402295454608210812797191657388089846684713162131860397819593370753131509407482576661513195840316653095947853921511824662628498407713301610461967940097094039701612713691680443216807649819532925287422060114196986560952662198321092722433139529024988627331960499163870277996769514312548007278464701531546582314768267699960673848114877851897520666180629840838605661249857672932685756709605141068556190112495134921487703330908091651411547716630123242646090817553512154275547321023065924975252631173109312199310019247337732959861484282117678037502389362530790603043819215759238465853295106856305035407264771997813702398996111563209072297793131931730715001263133114590600794672182475690697475764793944807538056809209880573403029028869445446073307748398196062678699571334765843133529256319935184333034183748154500255104859885358739820544924061643760557799313270730562711073684437650737357259691608484197113124466519783279871406226596749842814193938285401852726234808990055624156400772214438754359367256995100858331394156575892317903903393562276946224878783129459064397802091864841454589125634251744685684715100190786581561217277580710644949978188676585826813090289675007662119697578767284280082580974691162235162782144571642912318666989428600045564943273469545318771019490277101079728851871443517552121670288428249964652279416760664039154798763312061355651856545207931795600732320469888603302450199013567849798062539663363571147123701870311708567898979022651314581925682635393024306125395258265920032349256132869081354443995699592970028002985020030269779392188685948423654334345497383711607487675512037551992868823399704373350863110711915041355891952825954582904340650428251295810798836497243079682575184196886909729782938692812656615486628383676079807489158018538540610859999767953788410146620972813563865278184966407274685320677361363881496558456761621035712983202954558006603531194151974073318399604758613219935846594311942796143547764774846860102460333844655469040079187948706117632747099474682192882593122236432187057299976970657507116900359556514762932394376238444821927479873041064811088150195661085279982103807459986475121635087380438192402151795529147024010873564924275285586267461272558902076160809207075395062199047874288638983666454901350499071883922481859879676710323961136368471784449554797387880424035439981823751062569059285743470823393807099401081485625062587644534716976368746646348989183602554429517229850104348468799595133649364997293610463603464107075238949345630682370699607943257941063312682704619945507405838991153779146282385400451152590758153644926142792469513839831103650189053828553749981065421533370991823037344278339091823597353085844641765067502707953288108646065621735490873283439863985761832317832464357257782723786885145334238986781320208530620174760285047975286607954396586607213963645783393934983433900278823941822511174537261551158341473055900228618789286044922776501505592553599015169839868654812286474264079942579331379150927662546105364155141538370972963197003173896683540896707310894809669558722469289110786610772950276898427076869751627156107685391777465632996933583440928784808560359813057952341419809805030503164602986550641769746154056235434896825411105909582237697964909343143817554650365690013511574483210587924120180042567525081470761098776885631579425069485742027660149446087682168129482383128751525562044581027964795021683893794637792907646408637218095804000133695781226418194969188959644407961263469322064538441677629269050707847048213146308373129858795799538755080383850892375726655452300072720829267046656063325050592352276949754523344737722298257244196616848667393635557548970154816371286609490641457365769011656068324152890154226198777825822328491895787555644307046282024092929722136710864632628024964786035303936266357997802090164336997151355160037237805424705691726061980270783472680946874825418156818963166055796373512870648125778477724358517604248539001971010440986381659666710308977268854131765122753183767568578568117116004584404256257165629611400957734127097647685148906830991711508245371808194350892002789610158830170078754197308598382123208149920573795326210681303696159156924608556461112334325839318371345075258107316845136939988188627689285759500579767882421214077700760766224015112915743973277433262861237156276784127360599408498847658032343428463579198321018280271677698727636082519821988350127850021935856224869912367236077495336136212925676785727723209640901268727360797048483396993493911039088814250943225305004682281074162848967978987347976893330461901990269760648980479321974274894298633956173148558792515931918172665910511298488731765733250324207759209802554299559222935662009544519725700430723800641760245185681503539574590251749151076636012730304396108200058996598493808147138212230610540073595909899953330580398626569979840669983268469475330630332986880032304463212175814741173672820700146592783349071964200398189579785853982458934175251254116130701393621232784976058063369547326544578452084381832689963148855160147017949091785184124393072446945537778430253709727670664000309657939046537779496963021963718031187593330069403949744852432197604216062760068589047356470602724223304821091125971813538178612195181424904557834395763014454287224078241513884157241480634919058199176726961327813474458529295095111477159838611073401804339456797728201915812064285442407959255421839965790341166911298769329719614042533387583201818296945518697192888791726332643484081938696111037391805504141377420923654978015184200992656420517925183850073854239782351746019260359178322044485601374929878819727259062674372951678900908380742023560783405213027871971210172125772817325258084998303680685655682687526365042369408544879002639140091727341127205317973844473828923716608043548823604513488777242369944094874835804226446974239109091714916398244139710882489417500798173219078114820934301621842638958616738900744038294924779720313371988701069361643597740772564727140205505792596080094679195319110591471633591554852624980828099789493990675117428892341741598309931107099068663692868589096130133917953670396928294284030515245236797115395742459883812097480119851191723287493500275125521859372072915693463258846328974306242676862611141810891449046926848385190575938429998391105640122972354656080283007281487064673686989697908139084855293560330743219064384352528981602231904535946859816079094797862150166349325277667213789618763266344374558612524077260242851819775081989984272336143342191710818323289754786400038051413507096780841690176256790060032786324208561387207168427063353587350577073528374442924935267254096858152134256440260301875213290903642249882966275343429840725209268702903448087239359964034074249053279335876041514444654398759308334879898894911625797900046609515945057151946909704915774941072632869029430839688909409965697639922028386762082250179704027407077700690895680557474351166133934299921048176540610701429255532140895149153256975964169325338621224042735999897721380579179397904047395393568902646451629244708538380847713035968439673857529334209210854388916679294879155798239557600393170704788349004976812166816027465877753023555867693197225252272379707411334216072983477114709241634617117459913008465432270740139953403173948795375188455645875748316819515544552305392312029435991811415142851983520786700094934316982520396600533390847324288198574041402415477129021095551197524747537806362139370503232146507668249227605907145876635708385535499694020517160484387379847679071114123660782823862825281299040222615113165242574103723334387572109326756648574578484477655251020331855633931588238971818178473944814275311084622978233803433136294872945462780246038101759512223142591921097282389170945068634364567923260730776037170264328421497089718180500458532889646727029004020255832010697655140145776819600933854418848858376126260779540317675649561725509907279449181753029958278369759371962630527229796859939035070747281056628687008926311300772895431775318536135734350715667562322384881754535663545244793339888033909919873995549031475827730959370697196634282680106258134302104782664245130015473260100230279663537572746502511556368741091322400541576381003369585665241770365654036225311779512975200109500486954245696317278608595407240872321126034711568745619463451997436030305240207720002312044505600831005689936070108523506986792095122353848922926824747304834316917893268797864575175015746392095702640826309187899225807649101576097877886520256649395301239501847260940893902006932713632230980480377697569501960143942632957430135316368286062010646394758930142173008840108196913347913685110480149857939122273912730457513310720978877700960639095252081513040518970132295749655706651310537866138099436886213095518225354367688554968089054763248733728948620164300274505644237167465293018215695928578984396801356011183808417511043642029090431548836128288358937268360699625002164635580389442125257132302800074656502945530720016064324851112717490590333557352306767269573636439443772166092865504534996580299675256579283140315906919377206904236632201613843574262374029166404818934286463057229471497986497874805597078963615359733900385200036714828534189178345833110033787065973279004631845145615112654980434065861869419283208808738055330715607866230399661917619074604888184853323104451285350701238792540569983360485487753651456403934556458353293917954612153955453512388301825953115857818010279992191304665238036441799831145531318546351922675717847136688803011039956602955531336375575707657833705943825364309244907349815025215851358315017169540879697553642907646092769237459369529458225413464880288047062288795653541702140903124857929038931326876561470331090518435206170487260639531464278558472216507503477843369766331640233756461095541861358223252190429256317199539020447407836017658181341539810213369008042111253252232644308275749094223181153589630874064808790769831008582067200621490517346943109013632383856820051738878955849106059751927544254559423341291738120149007225020630659498849679526657681146279374572194612843849315096593270715800914827030560752820761633785986896913655576030062251354765993370414245483287537221478437677928937283950836411362234063753518426604613317943118926196999027537427837958635800784562991071539990019434500272705033553862709233116854720801200809459959588048590831620647553765445145470437964560249508631397861929310139715684446616857583958199771382097435530815648880457251477876782805681919500049906403492185740515445457732579321956498270540769599436961705012213148959775025409776335843022741701387397729100911828434185000333787575339575819736114725397160906301636102478026921487406629779565410782737008618222070428395566761012252226577343137865647216314450014412917383349772705324068248493538005746575692943989810766937927906416981495459840235658326279424009424275988534832252142383015539172294749060521306383019586833397080210746204628105663192507043982982006429046441541095903908494393602422240596309039105261230840680936654443618317982697748093750557288614464980025882815069588139106724909701363925595641542787534788660271015868717807339144992733456581638095936744600221835583026145948341856462373558518055250445310790882047133243797489603277264125385952705819865366403645027525382919303737556477404801124477336634956367940230209327777252780026980745008278980260856370324766734060389289823149670373988125539468066843313468173414498572525382195598184882292734870893110105274175797745383102200931773618679585578909815417826282413496953721164503488249163751103048135109752296407884798961287437958127829816132984343645983420184350219903615888240280209139433042394747466167455639172241762860127597952437846884074619301195804005475226880051940603703494234401924402223750294674982755836214932530875671595736922234321286332419437056495478744786980535225243161419226222865628417803669214251629419384141558213000109480015369698298876381687452974571440577898424823340354535422719824925637167751424575844455059663754022464442951776827940399133271749503618969965132757377907745320397083532464950085673567660566650210919676100150728077816369972340218023179214427984316292422351502355187682838696297091883920589893848557526423602803430450761496731370844939061867913910637837438232014998682562453352948060883429742078340497488299331046648609301557958341325238200874985709572864252783898186985805786337853695713736891569811356174321093311684362220306282481917423982491569491407483173766931299709405121786018503943683608675234347247430068223166669056125518058545567177883797532428507544940801046621965789991234649861053168093406786628464942937650033882473255498428223588385493763254960099073673355111040590368728554976990557622008754989813669229336169911165204776947520979732977466215056033419429586839453028872789525894239419320016585750814322106823031064285284596001561895958418137182860216155336379662869433681259273350841230548366644037848241952463294431464920147860756781178052037332982459403443611113712287381828349413573874222902265905684255186908793447458771555386798523000763367537477188807755600337681375082185473708047256371946450412821139951327697374441165761631482806792233430334509938244405986294692203702296455810069025795458289742834595479994852574063538546716100056973100349445022380857014125695518806186702860111792861917712311299815333517916198026790407701177738437767769666126461801793051407393237026120805127320590297042659507409127261728113650539834275554103313938472792153921063145517018039600195865576006783781925284164877708873722464462415241311878748316723405663341732660405067501451167539997352038490270225413152583727602976335600881815493231497817691775659233094355109754551214372595601462982877568297074825273670696273577113793444911942673238492000286944336718056250548136197045632602374426014473495321696165041745030346230514147181601439870047119986732437066199527821234586169117137660655612282122514499335373526799637762403988246013532630290555197997236352402930696499615069184524471252604729286709700458549187404520541102575783283442301802974008130777419123099252427177329580911009837867721164981376785812418548784099992453650672626249526792037654352727069874510278662297090835533153818456171954437732504811277581709990726673830216422392081491276204432837140903657740583330378793274662304452908791225410966752152858111968842496491138275861639228851537501565662465773369647467870001460116279690878194690664204553748781454939398925975352827828387610689125186478520083193970307340501137324658930808456955800607468878915226223427244327066059889910243413365489414103182710707141967520024564762964436699537334409920084394603929504225361384126426588075619076357367188324508688613119410337114762395313499997236109857826320027970470625024204184825743450421779054037983461880542472625669765561865582302384108588129816237898212931198187479893395059688718432012092098823660731334960323209408289276662595600159310430217644212150218843537898480782486206622769941390786626709590916455766761917347034228681855598324326530002327303860579955633479354910439533732952884083066255556195125216315377573543516776956333986706236634383214023253248248662505371929058191336695678973106607054623538734605033485594871065697460139279082282936769450948134362258488580473012277068011612899424871933473488857356599406448169605466934710826779515519932854306938418231637224567239010418994426374693945830304915882563457732136330056471593424699858954970477528455823058000841750836500291781674871993388487416038756046059919764566340561267198728424712501835438372169464197326038290376621013912151827344115553054420504163941829494733530055832451863643028188898363525534212236479879617358929413177395649022092305624472584944487504511180399953918481860585812761872445957104690757720153249362479137560271377449004018435834046054676801871102885784361631707556203159901988635692639242044939948470064706305944363334439256789040286729150037358689719479147912666629923073528552701701033650524474906838816976670061527123403896440462624018255459039350967537212037551059554606719025777882952083485177257868385656087870429756010385864538102891813341949332140872436607160631798295839108219420624767919866748001742326909836839354695974058315446818193745897831089652582501625631830160544421882178939313520523606606486576001681543164374936260918056296799352020845305861473152860394171173448026061565909096951055084480528842995907595894963931557183704170686918325379624705790744939019475889395555409249283430477905323284019757961373056424898695645369170598143382376010378324282967751263582034804968452006443610761390465772256746250197045317570103543337228754542618637473651380706754749520159736303326005900413849586219093980819445063892233402877337932212087257409815484135292440717955854750112475425570081447403147477505430457071181183037917906749723287166172458740789141658811297982201504285207272810968803305108325209527376099024322125770651963936627529858208053386859015357919145275847552659229255193907992302958366610701768814353440242947289587508211532946897120334243566678898029409123491534782577598016843270080581410200764913741636762359729550326042992900447152524299006270419462509390871179969900111180055152089681468297980211338425909587313774880374500446924208383276483905338055143725146149520314414557711126231824953974049225970342579424977244630111054025874167327078583701375948249937049813398594702689038771477768221921260353717233288106409472108709163289405202295262140969724161770762526931106335340763625583285394969079084083940283097372085559199777276309504705957431194212035556582302805098717917357342738850047236871131489018041150031266850985256964339573387069869270604208361825523017332144691597285198120620358706338086847804908115548072204009331738406555748239002244273742118698974726428588426955610311015644339918187861239975292595151318517502216461810971331885704847246500540069135717238027520936858658375269838450603820223387587152039961317753281636951737126162136643664038237310358162485046935083161533546217576382332406459088310779489967211784705330404816848842945483499300031943650785903656997555365656647787761163983474362220793888836830956006084239277752650873585649786983842472629317408999694020301209434318356796231328786467381633778169370108499417417719026302546031891137349280673825145480826134211395637338166632995260564593493612319951857702212856590785351399637609189011817352975503999408368458352555276157456822858925466522447827878279507066200819044472574500700855471807479201843193724309104524479709665782888693097382982134559703390125096535515081783388502333247509337664863854332033520322159240264735928926380961507149715714034646236569819180639424845918989434478839586809147633865670432742803500480257980855654988693274885223871106379355258296541438495554185290897569914110338500981875341701696510371215694247513518344237005125207329746162730088935545141984061809846590757509459900823814867803956974676484592106467950757647162975616166587694919767191941050297016812239838484665448788428259816035834152297907761161449472217866190303926281183786303279118059525742842132933166023540856072703495684192760839965186145248107298234422054101255840898174148261681929665848272521097337376999426336869408639220393716141877191893902874572115179001093316991085528121104778699374072130034554170439908916917601880763937733494690306413820798991978484523057483769818462474793598802394038393181758836058186585902117714163569199465541551984814224667815473212233382301580142704373892810803391850049047909656624283687365735761211287888133532094887925707241341584907270883766333206033686510298797172486290413300659712456653302684399243592219273578441611788153484984613584173270672197841862647046219514574523332775275681374530782420316576374560007516705060236395713292537999124534806157545036295931667348906879657175220863926025137114193435300158368961957991406146078875688446233958248695428504695119358258907655958382967483458553492859222222054934939445796759348726140067421981303178500251220513666786815408576475950575960791968882732319051740286724319114655472292899432448093113922661314570174692512641402143378927597355338829641134946706007142862222868995676412450150059703161064887010321998965704197711907036132039966584834481279185529294931867183199070557571842715754449962113400520912501619680013622098707419778742312417916627408150573900886537236962773900173738872756378334195411994191118345859665192520446766842105535643659420592381380015636517488421703908203223609815725841166442795784971666578375579186020757699250816267113876239700053323845743094058639800943435281183368020875286852403517271118780487361275729614695916923872240461064492467171588681785465561274186178560103621998140342149945051977819867329995392216703810340951042613847658424537301825242723367866099147241240756943761155922713602591042797177988619114279560232969500698869893626839584795744587102399629563402308533401182659004352613537855847753081954849667448578866880884510167762736764136764546591541809250046599770588637247215723955452717595848362363779074460414133111025007900323840825709459404651709420189453565903309339075488277149953544955327233436166554773445698452040092631771235689160011088387584956036318705445738779314454358020028738992652633449480244601884867518408693576899079283750732485496051095402220560343871422216941113466144029228381313577954070514609654930015976828788298830817687631709036311610034183761831712090724134539890170257228746751596938080398377646440444512050584967769461389971397416728067606257148077283423318034605351322961145899030075913006161065935253572674713592923247401911665844468708016284046148290745642076553159724799470910262303578231490054183943851479298320886788133058838657089209217409044142051591317082335219874568226599987625021107637251468715041957721876643926719027670724166734440616522321475864381342816260681045857704235420050024028865079980078917344114935659762907604113963666468967463844330730585266248732118860979022344043780429502094372266110114739704914309520132066642135616756909969669964053849446672283357803268111539644419800652035289236855581445608683469076131811035732211319759382609115082688949422735045176246103680834481986006383477354343438436383795648397848843209530739988617910303072639538431453552124305210749627205241387565470034769465600646555646899116611317308645362945662099269495585332487136629510793697109894936208204708421297271545598394022723395418403294968027693241211079786206609020145612738071339789259292587324975542290930704701757263374084933053626292770345079812734281242845572746245754839302790884744974176704875684666783955629836732526785538350436348008504974339877808017302542283941350708255536702053387960071581667666339988028043937010187986023853812612879393952354172107157590195621251797494918303186727378797743815632789645074100610979753561224739230289163220147442100783004569487231396207857946215786809262384627175396401266928310088663071160583096234937777309749856682173837966370602157897372383285746125584188790707787321980415313675441879709482204224804652131913092599245864874667486219928552135316186443697100363218913831275692539211971723604508357336591265427818758392893457875542483535318036969912656750065716667558416651607928524831963053563813005301958773529425115989904931057755007154554097383406497748983012047085157881539194749836094483255989347487293527570970078918858630594035957181289678327996161045278929909369852720128053458905715550873699130232730546921306481741781666837539698377378775705657351544293419076083534940700843677653086182190712945062675950657984969200987223219804189360925498866905958225158776382806049634042342465293491327876657150165121328718003142543534666343765420360948113340348917447986657071191213878748435763977326246146702466406882326540771081126869412339496049666574795562925719191548440874828332043805449681328039492603012445254962580017978647530366239624261088284226421915826256042184987367024319803808706482997143525857606458357784240829816625051188978522029837650837523006031653771750000769681145919079820568718815988377205733826545187110958745493632830840160031017169953374622500284723037116354157361541746493197306327692756835574001603090316038234091576443322818316636129203505177580268601288473845839837029339675388553889976123465260595063680229173814281711203074223913581572967654409569680682614441013313260649734720008041309060612708758523635986822451462207687624405985846101660018849711152983286146385196160514105207921377201661547744205198363748705054430518469197636765199027918503832481663741324117740159896050997497565175263845565309133365378883459728385800509976324901514471431519577400251357054186015632654080292985491559898749986460820771484219773579810490065195445040903148895630959851473904743284876059416056706840000852443018570890874200877861213019572852070857586492248195291380975968134900217048614154207554785481622263463814475703239118818407768562409264817290389852125137036516372199249861871550785793159264918957726308724704074000669154276186847713248054465296495716744869951464282141484201167922340947923640271535732420953934261737678070265571383781248229808729213421744378670548045903270130149473110052286360586704896847904587380481151931158509864748268496994880120214401775508047581589008739924124261611392303190833744682395887538701150922115429626309052300835388512258021430825504569918074582167320276052460878663006247075462005438739038689001293823544371663108482895401185951116133425158606033262538614523663576197927297627860463276572479392049972706605030638188662579952626791581955641878868953245889655575377404357157615821602671516094582664394802506186742190937117722515229786252471283935275399050371524486921838426190573859403347284311480227600828973150458451358063278318805152975419424431830265038036614887529520738140726856345686339068945197167255416630420037525008949931186019273643969996892650988134170028087479957610147788475785955396782428370030132339685575885155958596952631532643394261421195792290639468430843400035446261294053144696960847942349889484281558141716402911340000206069983444280712444851574635644324895628639113976068197040073895414591008810274401213517012548905594743273572395492297607171078230372452746605011788929373427032942656530482813790616726341004232481987202729424778648630517826903819890574932458881573295491768187225508458994029584887002987420832490978501855746026455104492799805428769520353082438813946835962740016097266473084742769539191873039759422634791999321163121098209193747573292156865392313207785592439362074252388098390538810984571265267506877213237834904366820478459419798416338079014053446089984004272384878361740386397907943650044938536724146756023252757667991703102817300668218120424463087370758590651427275433185239172093593324157783015164214555179567112566529342627419299358639998402456160595603384134818037633697583740459681162691067262938563676231905915796667386305060014799769670894930805372937443895300848892384772314946469331940599274476605979848709542372945146669387574920826245313648190512035780871215639765209279187538550718056358467977757351906287111434989889430516403600347230480774972181701552372131854626761973629841763472941600589087065307518579590883141199955426981989889893026349501048203974952843637918977947119880413711760735212085178342399625242953290052139788293240825224813994896774886357836685796825705292020163391920561660856351007593738214364762982850663279861995783852226121994727399850276835657937041643279539633543577753662788480342769240520026176263730603260323714689524673286019395516223166578982652551266821391141497778510621238214119661259202600015941742281836735032661993471396059564854808633637520670165035901442388203568221280582601028606951654663731904585085400494205019184374455751521755204572779485250689771980805003579361015433924070149670748518897843029796042071740558038595870018182198197970353528059842033927377880856872173517294300110264497866762431996452422534708436825990277226846222756130830472942280801553616697504255604263112100592422962972068981488871353791292907431620946255251426225362360290387131291781781510063929806065986826635765168686244813277311035294963443920026141600236180025499577848712237863046756395048114308466434562186285143140659256723559613246902755901348811763841573979556998813340804647690615689069613209863705685318299322022528932818259757150691334798491541441483776691977499473404161472203823409698264912947143808414183540091508888756395904628856065006785464892625984459749836028467548357297949540346333974263246711950690507153971697541199598271808798908194166451783539919879679206951013408001196901618069210871924967996182662751368298059920619821041701657931971113925710169831807573814001026493910750354506277154563032492232043006374834847432541329807035852173721130609701593788296607936492305304954461704399754748127632355939828722492041301587016471554136822145577176714250451092019964273050100140244910134371612716722448049537748645420761373745029041007627655000472514520319980358177208123086219207832662478551443399080283904463919927695834328099521704627298994539529528148030561169491313797456846870126514386296933687425656444965052187013935639434947032418722190738387206216223112347021066997284451254632636285531744701899956918595143527097322089899546791295199891395881619946967133836354954391700579268818562019760684849684733320607462204156596139578928712690635674858873311450752012998297262645178574198057140690494896712378037135119794542994325973574452013736296033421812828147833576512360795841744668858335351506620930067865114310135350030953125780010947532586647624040856366702759920958207221890731120975005469843092234313126355647494221201021932729348704330917269217953509286763683192497719081355319076761107805300211228051068855985597466416124244397919670133914924636026972878906225869829308410997699239829428579534764874340679438922129267469619527771948793126259269613780927377650143288767020894398158557694890104487895245591248320508472108279676822929006812121879845004146659914102115117290850279395016217406580283888724940100863140576630547041307736838951065644514853768158573942444398027662428565697027524110540940506661843390449709759233019645368231024830473229150150154236412394090848937445171405327554706491886077661572369423688684908382054070108375810803683774737187930332887948731102641653530175507950515237254805650686498618626152533556591051619110062681288568998308809728760991979889196721624644699797895489700107406039664303160430511441193618187628520638135303429935107109238744996302711852075565905395202478021744110352250711683053415287578454736528570640208370913465918005762211371526409307809145308159796575727816038373200503052198205929339618938683672873616426932055998092328602636999797217992381285587042227320283246076888065176304842729308928373304695645833177965806181258813485390504062327008750810341458087557483932339053415073849746795305104698264947358291557393559770973232961433364719032604616175031386165785357850364909886291949673115042429763489329328006326410919889994009442685735415514551268585554166015872294540488455255967881984449246116607807552166114615392641367803634333812722862549452638623994283336693593663979418200240367134124599940019646457617428478159739242731003895120093247173070477495137674575968581372121454241224652403646596698686504516205985408445749293928251001585961054363465203323550081100445490242706112538736140186729855473192335350795813099701876605176410203965163764737888991604388337225007330754366269844334303289927452502907735576493987538451496193673658474621585536714424885985063858154865504025128865675131470953699681486279086465325861582529035075351490059951100135777327641105804958585820102603938556072100442401942440363794278041169315479675994023164123537430118486954698345631732450742023999474855089451472679818697873933152227283954941506930819692762002446992442731413932514405513566192417558578643169832619308793161397132076618877681135386142659583372723929311343604307613522045078280195878173433285304168753067942089331895332717763191381128394589249670421562077089129675143460505183879499061824659650902383689573448702668424297669475325103746448843965104785301184124912494336797567225205932610639329918664596360387147910868855272189438069773945000916188249974593135819542844372917927282570574830187990843805878246546607055971489007233600702009884654620479886207390194926992856728483225430588747617334349114076295514871041321856541512117546796083255635577366731295658465380009399106813548978443109722405542841075557207829796534765355218244840146447239513334016785369761554087364792544003270383381457977563260399474975785993704585530661623916358874413899866127812203419124351365658835859428316391332771704221624476275607691591400470060312666084793345369108532020394765768978018696297555804205077475896387774262135335416801866153843526561622122964671465105879270665880152692267614076808119622841784887437702112948744242471750220947037911176903509664917366842510820215524135110656910272962563107325034290571068456138430040574699664480917363328819886631689968298242717457017830946512788822548016284771828176142358064924987765313092928480548486099450224868268768650018107285231008804522388433834197200937384217053036567072707272808606074790741599613119229660670656077425290771863372266583247766234356874298481186761837579541615158133637525769463991089546948804091097886341033844582008980094343286738572748416448354391632321138682497641334828037314831169815144306816288161526956964179137240702257501778035036949207481777422519569315736491024785046080407469544293141062368386513282487654391123665393724518765316251980934559260810587988613803134649282644836815532577027287670453775136086796518229689937390899132045824669680760505405737908988553908509630830214746970560138750326603801683030689713624461135737674219208042493922795884492760466890276602215219613195811349593215076952336377893750941706981843771404862216445584839731311314578974533274638993382364527292253485853286794453434168113540678916954216331279229248343442049118547112743774820965965310521986124273804524245707861949111901144981677984024019683073579984878025500499920023971626659344438831541757671099092274433870271345428997086821502365219582377235110147471136600037639494870555981339697658551822309789293773395998110218070852818674821347790370039949342167269589710860450290224882112541906233064837780960003039827505353497340023675302596017773169500539402197435607771816771267668027522140753119272744535328410870388294524733455993775298935091271169628407440555534229525536837623200048145596933825817865963287254650535480167043771415370047153406226315464669763241284356879418487702430223564002624250509032611389920961905556920646066374993076896124096028343787856602503793366125500282176385013876047097584750268137526303209392586613733926633213246733403765900196340210176240866439185479757146677620226308886645625330218751075469187188395364202936657373480174685808373410369160797323575292031555886619841333585761416475809574021362061007834862206828995578801529344335728128213004761071074828221155489138873760397234543853319303645310363285381711072599085803188221607769966472685370083119205328929545285025763408079280173957862519796266588148008842099109663774961633600656702649778121947578853358884374334621671080270061878910291219856861702013456457139997506919081634454386845900760772273783698964805178347901644631046353166185373513748215491613391627541704700548411017049440952456988336126665342319182325395720648757475097824188576066007562267169285336391870954185818417717796720953801860701973173102724230715972526130161113530041961533335175953729656755687951555426327944927267753283255734157460299086917884979662510153207722562698923309331905642525438640453881907796739682689720826299446340091160699570139867546791166495283294630121962057595837989399626518767516690032943247551820650480973154751951015782815180625805576017640636486067492576994538065543611549674164886205788100127676407788753644667550627371247607635090796183546529166372504457090116288367266648632122008843527190729696517936291756782052018318692390867098415533649184649480114964529148635083114597836486237245887813037737525753241790913293152755575554907915029265474302248967675560550593140318461242988444158398666935944458510050124737032290352522181498338280302093455492365142972513053224444533540751017636867698961681972209771430770699134276508706354661528326083472116247210947927442405436470468622498368728801589581629950279549721615084260360623294669750523172562515213818495439642235379569472086166347557374003215072009514395408999569030858479782803359859991879205852432660631129385683770856741957373467383561313981153456739396421926136777853594021247437988740264093722573804052722290440946363274995294110821171564912804420389774048348151271504362196161564157824498551462708482026089047259463914400901536955547322626174295639311316619531838130213820334269687105273641669437531876605347428340289718831914257030197300484259292611934325567411008133386203657248269909799178905838245704364141423598846044123976299766576539525751188123001415303379533745731198897693185166368620392971663336420630171171954855151653064959952688245354424273276415119623396526844494579452099168818285384992517193019218095149994243901762722586988372504859441911618470340567932158157341311027484997220743647086665432569324189156128730665828740036391055835579337489403419144367720813361066077085346349099568741309970042483455819312177764557559637755515182644773750822339627367233477431363421678884362893535799893869886494366634351992402686557446451804083337471061908772245231586403384753912095550764917736587559649387928415032067727228472759453700378178019256370279725459190689138047894190113109920978626815560659137880926223291202702965609480679195512909330565577560909099139662473859998431151333567684500271569863431528982358166995928569433823248605385770472246988080385224242964845268431790224790803354875028090709755755470158444024502677844639976211399748020986106267422043424196699811464385935348849180117522704466778022521633201603585156783581353059565895082139172888210510483655021820557291458502476519639426753658306091957487583327778741119339351473567465333258558295936783455220202605467449790701881091532652743885269231190875219358894853753801105257051637545316599372673270756195900271309411840449691490815280888403941262117666976821087758824922851935090757142088126545468862550258763309467681939822225759060387817536154920664679313811650370923630084108291137664316453773761224578308979669802558333969586917237678769332013093154185028656048404259097270260100782332190960258392934350623913879164574712588322614730482528771536831421530423912401837133508836785585456494787015600022000429861605372687499647236835294057585127821817373780256515180775040141444445488992460186655351913445382669234562937652084944936100794211673108562941210310445515214500750732999057221204110376808284191594374032963777155490046011722272147507406561046912394377033842009740251782337752140637783498567833955631555407478946619219223764751857210877084828000172671455141638612178294315266377424031794049118330481089237458166816453310408634619228775050937015755935737320637636136200486789636909494032370139488308285276282695949302508087835823368183880309990486794066169957010840024752846829906768684616405157087551023137347367407526953138065832719325524108805856438910074961339603790004284278338631300872842867819471522175820736463907899042813963952635945654477635078903784289424060734066477106229714483696620415897275527046745128344471193389325559854919347594743554268842532381029331699533644511859637569650235663619151611895963947007005501614547945288522834262255702628295726829875417612457621766675970286007408531382818664119274106521544921963214645617280014276982078010894477910907280349343136140434868096768492363452688001442982931979332249143625316568259543490902389982209462437471779851320071988595874537055360506577564015542306203106549151368075369989156776819845820427343748419227782264455597658186683039363126826111430052479862004969675690301572951873988793387057770339063413175389374553278469187063700921834340818580247489893011511028948542319628650782945394107964839309343171449411787677416588998761146244313724879402939827902760707318253234546130883040320151641947689393163674453332460227091889308773574839280285588554216684178030829042132586615271117034198311126121267043132436332264602088848459316644694084709899857275122916313560641332038993067432532044548029156130045203326440007511360699801993919688732157756710037624984612096354678582152663607686439058825932461320332200580085733928688445968460679525395061609974186006973597686036843475240876099201028302795749584286394125508116753953962766203800566017498176829446101320847005109161135500360564333850332437681332248762088803894390907469816011708131220281890382305070006963810476459712840901645579118913734507141554944400935188719172671701729815995887131340594073711180811737479214681216214540739345121875542434462708438933613021893550151904303218026342511927772283475005408391495988298385391684310893933536190647306274214465475796219193615897487956728255085173216407404697466144824417895160120790521233237989543861201750318730659447261542071296188716407731702356446652125428697014130783139396956015035653938641275236973160282476445687468567163088306255511782758770447485159760720288443640911694106590165657269767599851601650919644788361894043212270480848688079879074175236880340790554488189344933052056781986110892145792952664233291297250492745282376672616592080363855133013819864582761904398331348267205854276761557471946507005338019338765295445920810286135445669707838380868369038557255441782458325599624164038657485816928265371188317432194684182054712715629200390920618378969870520001597174331308023471442879768655515263709892510500178014723831298261892734357694710260030974859740631282328028388400826315661885378719439524462242393821030562309634620355826959156625396855634095116839916437727383231425003624753119605908800173521638457916400489590494578691027325319415733756677553678343043335032612630119003877392700527322147139421299990379053728678856299201431458402693818311538112174005928580076103225698127615205552200342299056349616338553069991138117684419629443588318323053828558596946348572395997162391419456409472818837848176083738448856900961810239982848407595991658310329103566627497244245322791654491391504963442165280841937258200246871557969317792957523364140939866134359304240126214540955015121774484798186160478545700716807681257911634953720037194888771454094916250655627543846697109540935655289143129571201666119097282862969682521240962676487363220380316543538899888730091819955092080611862496924322883770508259881662763338555342523558711991607964782059171003055844040638684847989933804755486021971214818060078108883057627789494449644653874138107294590028451825378942956439096856516913510056718530048678601567441331575560270240369393963881874944671270916018332311079542787095370629724777164500188212804022745089933946277754073608407155007876504996632875437826416390299788303185052293071128238024852519547710346219124767557319806898715190489864388158154310898867984452239746582326786297788607308516050362142829323473210929833059634926559466888353320590486981334368354557068570062811422784512049569788359794228862298928199593757067399292067569898360657906834296624191740158762370293088541832507578016630946945643854083324664053021957782611261315400309955113782485646917501124436069973423403122431927448098153917839156000599585637582229410440544060572455515857174207800047085963188895512088125045431434319935251356094370648996489208446510945640510357835435221496111218690707710978751425850173928466755991336835187372001590960758809943756632951268825026438911043196735228318628686098767220916512471614978267479380682062141909638392360446815646015156453200730720076104851050834013859715087975440623693705818524200446962739563174579940157754728098737571960205928424107974494086266863242283120902072800529987504833635061128336767249703766172134582348038236436683802735074460221136612475523242863931894057011120881132531061603515872503494882415877113295454439214376544133384783874708404893938974619005297877369398123416763905200235255522559128961543084520646013558227999533958036951699150863652613674435051749353935306733934663489784355204112839184844390497367557057457161513284393140709446695262287165592818339022238837140419566373558705045003811415352567606811464347695534018844684133074745939194178586091643437109492190385270311550632996712021087164534059229482776512075744113765944891377257573193590691364938047445986465940383411993833834435309887872425418930669725841813959005110105914220151483217225224066279829251753168493011225102744378454531295394792694039394498525966593588515081850521193804517574740123948298147066209094900916488026093708750773522015995538856133170982562887727537367524666225660056370171379072503897539354877782097303414020375075048397646682810399126049043488349228218431138537604037642927700098296087929914352083194823884015675425418431696863015908980094887090044594203071439895626073209939708376690696928688673814487601725327823704033372013433970298865230515169100900966762072862627219759140782912997181421194420701546454459709060891539897327451938660549592080834231638640418441347904170645366797449382898727229740111913877468307102300716119517187958911043264378434065476757436273297459044067392987576058902079125004529947295728186945544824019606193308381083584002331006511549676484835978940951775924714073018369062291539788781523314052999951158696943720565351204125993978238251493112468737073561334846226829099672108725101786538180824719368147112851200046343306702115507777428624767041063741790540088523699805448654264100090620584796131776779460535712567540103386874927331827843388927466171347028686978528392680367456890678244523926368934402125827143767079559272529036894335550308011335034864842030667891110424774546976298904166629200702356848259575852043223329991676972262175905616025999153198256977815384888784398205983139031009854256514082061462480709790091042455062305542496775931952656236190329616981118993486797803007621858628976926930206014800237137507666107024688174713548258476092563280860339835171901194035127763676584696083346905609465014341212195272585719185636814093351948038806489868164045105564772668995038804312626093508954709471130095999286989367998305860526476804750460067904535450232123384540757892514788194773307774290648124148958271723909301592106080099209401046242317119903769107306694036197144848986371727729190644663532583867557726660255248977201141962421216602072473475559285991920241818868929701411683358766852612557860885893836813509193426882573564707758768503337753205875764003469888607356990719672654154783520378640537948412696753191593447235899758701355488814391088263691194348597688661608268121965246187824116037502502483836466737741987567107240899284455377923165811707211489272332767036004573057714389527024823741993824259447407507943848398219219496707721285531644591792693415882060475534006102568072149381746399748347345702758259345416769738247040933663066556378708905504455405510869149365162047562001850530807379192559988044010910139320018938593690339669639633669657891188422064881349386817686861710548554147725316329369984862386322302041180866335701673010229396967036259169650281031445619703991063302912056692503537956948987796427288570891475801244838117435245651405290723699611863118457041873471012296034095883706050932634830110819070151940314171757080678574633965827331366784319497966821725660647947713387810953242690293418554729794898047715949336594773157921118760970492251555861403111430072017288293332286952935934736668881998624478799416459651447644823798073343150633315856094834612662146763890037454238340150114693297874969700689156534542588576459881718543786770268948227183698618484109499666139662993309719738684335304390686657456910435617919507701918981303730002131197267910734407591310459853053843481089701336864296157894586747418389152127994071980791539124681145487768440661185845074664764542760138803634314047731028509707068524554796254104169915249598229237422911858970488605708055290176643209341677177264819556020742794801652303539289944120608453232358397961269901970207900122321847536600967000705557717717461782513705501605994838742426538923730503911226110148673494644391962441466092760460387209139857330471657049739019096152483886163694512541549908237167192532420611321997086595994151343853410274587666541463268137732051900468404613592597037821327365119412937861537145867684880549703216685931758455241271677741704961948029174404897917813578606767582525844688726895571997307482845410871026421893652039246454329059345841518059214438981355096975055516924635369296489647545277190649938180055862120270910308092822414438209595250568037349565346888884591761028998302483710686880952072020206046822847872479655753903874760115624198709563848647063912930112822399869060782850977195162943558358790953764023201280342034258558035091997008238262652522423242423573692694591566914361721183518656647870905320474242643496128972318708967856399821805401048709424861191837754285367734507543896676263931393882653237933638898580824126569734442994509784947648953158488598933542068691284851721331200253295216749610690119395664088901470643952193311007537379872801725584136457305232876355534879443414157186365350555914730696650378567690457612961507502683450649404355406613338441345879951695847267811771537533914387965467094023325103820747038802909689082829858347276450162137412944536636645991183337566391090389817645028242821853499765206434696963202931662067398027510940407235543182563616986952427693358151543171370712758420652523122087905023169325302176657787340399670097247110984790235175615322391742648563718305032740716716084564689212249633313046888487276250510917495623051754830355012963676851863768464234038262573652977961536746180269991747055094288040485616837934367448817147025596612461770824177218618596671559724955236611866484356663506883727631744019234462218688375868119178999969006081589817976077151583494008714142461854689621250727476273908941808637003390615743554131173240995798241365498232418867935428673994911657978054179338182549434593694135801123206797182031350418321417878928013132951286974525131826601232362855141342007057823124918104953120487450998370147303126999344891704453438890577022843107208140490705279592652037994413044983571645547106942123873466599480901398486971974617989576063034452924870894286729433470617773108036414266101568479929148335549165856803847858901592767181133911927346136940521092688961671617898842713615708425109191287558185543409460012644409813025678653499490362100063967544226467220838858574479544394038723617881043879074546836548781926075587388501830208019615033528539885894342239798188536095746272502743238490097184370878754946435737543836252166910021915385047365858785462425631863477840705341985125536598349052411346123085507055445027535467123758898242121258840914335532150602370686895405929115525654410948940900325834121532754213177576585796655355906645127780830773438887106568049472041599535477707695235788245649375016725293064051503561052790355870493651259959312690579345434337691057876405236276101105030949262073802026039575236822944267126177945878617600171570786664533876598973210979308256388901644011158700572002169417689623696541946199070317147503104816964242891453610240447660513170552052159317086661469701660170462942367326523485001090315814044061991523842355067444375204383182983107411729062346760758911477228075593369286513051929581540220327743547492464967254497597898153505212456826688302269107682798408756537736947335564138331311214528322564991076358255060928454299604454471314489987927350667561678263176226047248200224757982191908007150205745675812366509050731850547674263324216813927136117858032852593903701732868113050438053402357379068404700199824371118381134299512473331223239514249690817075377500549420826448283602520307935229396473438367677194459888662173944706929992711278640505743474301905961709654926385683674550616381173723346857483336658601134039153651828853460473588356343667232352897545716346233015946272896926705687054539579251128583468896824249219074032548505388029864985776501334743266834495602884307906254320211985137506856787542121956311994664270284721542027030817626371746558836329180031607575742485766385975487270683942613796984330913590233507723998413873603443053761134838057497106093886667284995492348933202289336952984258666874232738281440822766788719786736789046879090277764593507835446266320034027630761255797206742992705022012929939986319350923968433085785909818836527134167815006533916767706882256708633867717962403208095035511720989883564955537210822827403155409089377299483631105951580202546532327000770338666534925693306005957786932828338149793348886429082185736716408392113575349473375278267584390472871619084843419116914581103631498993680316782360463460988497791487369427948191013936029988824813392386016415635159110681694181880388272324541953746463442375706971978933623191134207649807547842559922669402846505567694151240497863878315487071023003976004648243567963168147037172742395139004804064949006350041584654213345202476780591914688869454085205711411240279417880108447405397637307002368242094763080133868209849887261685253359974408003823046909507041080426932323960216287094709265444536805086359929232649398410006416966778829214941422991279025171025662754665172712270315370483739087048796752814433653360862039898309269258569489358460708907438606040147030291593092550550076367865589928500281126652519165460830921034963453358837783636230315051958293904743887901209878715404298237457426212932765967700991987607503416469338572851196561805422091338445256067151020544209152826320591957749270288155400241477235076122464152758340848832689349769513295807151060890489786318673289340250936762094825365252046759386654514478006989188180228550472106984108769167116811326099236668006232112770207369187381609233114071393218902442263070897717916597679238701169516652562844111556860387312549611514095437726784968373390666076572175829447257738245076632966512178013943478299525923531382441233919336372426206490451010018345413634203833548781660601186850120348893191748287393273960714721959312122389204505138657636190384019212568214855849441943153998129718313860389184721667331209724154250600778698637278299901443506091643346370920034649997566265486611976913959974438730080110156928794698811482895144284305402749118948903310874912034834415726286105219970123769012956702197500958246818225379919155542672715927054746053058963786935681275975018723896726887100141600072541867409115654944232339145440332018322888104915662898252384077836694804393815463564372308060675888562808182573766073276669938246136579079397292770309379190647573075466881103955764678503527763900444878751803663153011906612019299510528225830221435319752432177952008638294690774808892671521051336069160308624678303299055354305763716330022404526406045092306995472428925061360660758140130989279580757349818944067290265920637356550162029606786241147466220686610956450936618044707665747695687044033014471793983409493071883815071414991706273090857010998049374937474281413666740582269102114948170778468181451688630270805753604105211847781234348689646904251324599014677418419159750977516530879938595886414062112413827131423398743146885725857831935616622555898338652620795205566924055247505912036967777682012240161511634839462978358937697166512257002348216801426746863372245887683099249139022488325845471732378449577455612842747265422779588005492805903214562922960239599927874769682792281370492006606957354592337372568576100873248710443935640370173359572304766974779181700914265387383525116796332733715592591657134731064920259057544724204052784784066351977334019108595599906528701319222262335257420696973468623857802151743934790290180708478804089272835466163138021431927940818955324372007084190167960610927369622588646357966894892621496650058001983266879746436435426153603045141165723592048977209826472200310725784784414779119468398160315977552181542662649500058952815992288076926239385327266000366597266005185246709229127906504028320078288622181443174692766165085850578807018328513537411534291863308696136279401379073489369806356059989420962318250400631171006689333946745244880044284289344170986561407945259763969848472178861273427607223077220977491318798539199810620919552870294999634776333760381346720867092238939367132600367996236895828436753089499908079645831292672563919499971241678208897236678744839053692082578572583917999623837084547058051517928209866642005608797464318339853304328895580092037997904815408470763014824960069646388145218677811155512082541754581826733487188955246832937321429303728333071182015629375668304220266630810640526814289717371855503682968255156764810645950134434647258616739955186078408963879498650849476633093677538019695997244978850490237920940399642304038449330989822858357168077497051081046035804268522199953560276229682672593856069022767651571128114742212091004743109528320564748077398416183584578910155493129105283295503922511625058694895562315135426051012995806720848446620520471951974407192070009698237350699879199550406694816369398462519555549557173906908917123775921918385546352132500734789109945019981598414933584187116892466960158866108377824373206171540558308357398551267577998337392906983485265534377086301843415811772480796361626994483822747941037239594213246125211905420170039197428431326319907433774311876031287255313448497487913508055600627851616490845262521747640846497536005731109391676846250810273757828731367457377182619398033994299191771437191343580617171436921380718623493432728566225439460789261854344835794308729153931667468120460232614503179932920857657949173874840547245684247683466464400768382567899818329591501745522429255180764127014318653485640292395459740317805978735376563804632140183935115283432117366470117643521117584074427015774015055909843310692122739254675263078636643586979958626594222177757535997584633653890723235664768495534231947680405731155822222044543441570412216106673447440265920063438072240574319398405864916359679569466140156482998189426907241860341731174004641603750200842989563804830363594633957715221502842020931272809131436440126195719598553444653176822814104067649386562434189981240252728743282734665403449586316689307761537368403939850600663156714484037088963000702520615842559546151729403172927186315641896912435494930857540380614250998922218026793404491936056983498304751378200568528725634408881126034181181325155373592459042462334802996326077904766877801615297653657961358037701883477413220048539439822985549528112956074917406543524770171913330388771523444077478154551586258743029753638998508356644299345282607806542864616922389259627480624236630584172620362367616114514892623179707080246218588356820334369457237061990270763495892566415160235495557429769349780335315087024154022204867368019665382662181700189613187700523585042378362680570528681163769457005393231642446041783945146465385633054171908074366235422558838722557397390136983462814395710911929304020894015683971987707422186593986815011419101389468896578737823019850766842739570860976884556034688862843054297005859098983260702476518404374586362193562626386316006544004484562516912346636110441178057580784074545414049904750755375677282703466474000329498672656596806341307382835595155748344290399085308518275646400286402402016860704954009276414349602632958797098239981942664166940221174620405851803973548087613775235487437436665333821173060583932611238571651469493990618859929715960426799723043212306751123087308832599815863516511447702943289104250460265217901423641803807021212655144904582532929571551260621796960297642816621005574104442188348833621765677299095839391402160531007707471981606166978956041491396193959932283417534677958005644142265528128332203696648850700261061650456437176323568163182820348973528244764136395217469952209601072631553078284729533298020550127128272208964679346587100067712805637566878060548046707586485410980480259459455705980557791711583614363798496279545777582959308536014368602079471201483545161778461928924220851276821067009116740136499863650826674488638713099783618873217304331669707752312951378216163544664700476259221528166443449309579757569467283662782867456856801836634916984785476481871024800563623883603161656607405832871194972152198662058268117540936317298398100377945122851278813709773805698955908936152029957239074486734675385957780217739645192444676986362693468724028687612725432808903744977740815705175400702162666528775875423519264521502247227665002948769157691529245337143857571588478909493350776173822321080111663350693576391285337058046951260432310034048079453495295080584489309437472540886694776515325105312598513053031713976797946720894352160658870245995683970720520838317097331046252098390129141191806246276535303049550297058725738871616175052094384252782358993476307197953963229819961141291862877567565112638775629504221946693655812407274522265602662383245009637498726776879548181387030624681913743177668499421584755863275891337173882378178296498904786621864577052605949270826926955224162049606018213844106757548381460191927713131899599143531069611957990078451495993281952733436498147194150493820785235818025443427062356319792269973597257782685056561978858406520449806563425110230987926952976721430826969375834997897110629748811979735754928653461658983054386250970416920869273786018116968988047580130430462039738335442701182131588366455921008985774028046858125283375344427930572611918320101318575005198229670788381568137721357749781861781330425818149481083351095279841337036969674479252047157043503224586170919485884109064242326682432731311562885847491699629136596722446611214097710232466165880890422580166576948681547146813639406777714269697279649542758824177925920049330365027296571297386181737582468690081155088908048505819713642119243127656931825305860158488966316312178999935677262507199788217854983082863162859009568301941520843845157380074761376412221554924076305657379811303583327171368349497004026196872417855455079495184406842558752224922417243663833823121801585101193187333430332040462957274407103758366722438229468527583991694746043392336511836590568850492912655225291224784076430862590416389529266068658902446763227703723571639773494004692639560372202581150471913457172931721424660718041595327753175868682048647052572197939125500851278032754578390214194420814570260164387523660149136001897935578626413206019986306437168541662523054883772816911019349402443245443851001644181959855578347808048278174510230306997708824004642472746229889566601161031598665690907828021901307046308964308884547618874475421962823745753893921473044022378009338077568329875730809791615770548018494710796781052091280966184078446528814293196527603401187417972222234352195138142964618873878831866855413657961647334135117174557125607125391086300617922023492787662293985476563361212762659544198356938059645804878287180341031533581619802990720368486262872512008485458396661877884188041319453452713388492264070141231786048606503233500158555109309269471013058160447994479760778803010579807118029292285191369100356502065635846240359597385243374824452194510791852722940393613829837601765078640638214286359320250608432339532157274205055444813838868085423608919354216660717817505484776437325887164148289260526509374203431912087379539992366660375787904920026063933865301259063706294138454091605842624240771183915863400810360668010921913902788533101421456811533686528626973178476449217317245043162576573395946915532238588788694937023422271880814282355054285479717191650679939284238169684874502047519562068438032338048091848457137005548167515074818969073476709170130496021332120597281328671639075411810553377784448407802205430256638413509803926341799383129724080713750684122355963136868798869982908479277256024313102653850873338359534132784978266506230161842817601987291203657430707019574306391421750708392498035854396070984360420440467691778718105903922246991202343091629363051174320301894348406991944033453935522893283811033890027075483616357835281160966684670150383212863322128052276807665161332030336882136263253645344100096023153881726806284271242050503833396979953161673329834003311354416959655348679322119417783335066177108607476189605307195937077266677344133210924765021880993377635714893078486581741595585451397240427396662549748332211863328405321638093600890840698918353298886638177462893566648716627499063066746675614608685210171804401392555227865625808292665788280551390034761791590455899938532985955429389804175760297985283288147590559057164059510055328337770208502724130975281332774232352387934325309955994177049226497757405088155671383870328117113695470644888179645037576006201790642069205752889660198974406331712883726415907335872815876641385402266692207293221050797930537506638588249707005879389939306797491398778944594370374986177549994776893613134027880804520966437750202224302519688701425696015189676649157584797408607688507369699026074950322295108403807461453318096317011607239864100069984305309937866754818663758746767948502791397093413124645898644721580122253199620242539348936954502240692010332211207923659517311699880316546858102119942740638608200315746745074225875887022906527691321219719527593924289824654850025183628624788204767256384358255219422271271762048096435791512641208156406537749029811964312917487633726836479053001318090364362145559556352276680420657362643253199424002382466526148495300010740787080600060376203614322778586293721476369785382288971256394892241685086463826351653453493890961358033513610203546842276309760656437180980163603634348774164326042224738065254445183182597017265329809245320560256454837502427489932082341994757313487325041962559397081782314224632550451135041169522229245159213549032145932700569366727464563209651808582563504640252269232738174569703889173882828586267403883640998822028026604176547669864157874708771216389317376008417293631916770526704504061650033881315175794461114651324216829325098828257370796826478028069743276586989040864766449472084820650348947520819955032548677481717732518367369005444852277295183570760992749979846682173001340288602112974548808692594138974544421003209366252245033422954512876951885379525688924896587551129617119733032098966602449354580672971658572872118291392922906852180406944469475357968436894853587334484499642191673492819375209489453226824015803761842774412851798352935533913714254812718378081298737969924163438905399220070077426218960829706004299535328329129497865883563615433126717507418452760473452862936966328276240629433836606396260228012132564255730123807402498293759085412589042006247089120150825003018796380614862006302333949676934423015366852573807737576643421816721350824136889112927921834901994136258127377586571270112437390039505136811040692190567368150746275713116920003261939382699195729421981446622370983395248277222271240103267407526170660409313566510872453244968123389119415561285165750775546055303147008046418133022453697653701871680439636384763377537159997164458965257464335774584578372088791008608566985447562139198170483969032272512001040260909224430943642521883879211495372772275363641096109462142695149815094116340010712532149523602875629052049309417592435480524320610037369411918819397407364406244014015664465843808496410886780955966896103023993465471892900862478090236146775946627490739490562331125768532736123789664583366535515873644258329802040282764338165182997568041813516466371739375509802333788619093313676902863639366405030287762547505094664710010561543266798728383673015063801823855017096342937669929867848452379071579015901652548694514939640748685262758841728610186829001783276037338940108409506627947141366494209385910741416014303996751252518615573103182442058014852684589864822525208140884896561253982587325063452633302943907372334091739969650398787004173493725305373817985430837189075509599328946684015117394850867646901330747632050574629617317024648678300397723266576993302654098438465481506929774874783046791451258933292296600115046917042204305998102963308438315215565347338698994489094501850436410034011703547035877794694501176624899548737875724717163605109548316686268456787158909636645861527046199268237666314609538623105226714320771102474899802632198617278121798600500803116237653545264491048196741066029454953449704886877074621016449394457042322989536008742565519029742886370784100614220687617457237518652132993704441239364872239624351108570885820294101112298515833186339721429233774351083202165017093846784358882572820445856433795920423387832550222235884950161177936555013866555679953352177491845074753603253115278861999625462015954432315317294720099073551313049309105552581574091859251824259543373635965830200140413145672917813792507150961653746060833664786345260384341573096383679640040115337943663879287214339118095192030407048826958895508540408757432618403039971122083255813937044566787970171114227076580693470525153368444158216125874152548752486342344278458790336641009207490041666019402226566467804067904651476878972840357792465457785271036164014010922351206532897734753919379329495905531890321966649678677831882122787758715649591246828782442052524790310342339486254750162489322981988923027919726579774124281547953063546840297007158119751049684012721152947770430107241416562414757287130212197119659654643189741363821585911510235631036154878149913506291619945567239557547288109600422076287575628211049132811388557856278168003680889663665590089045957992898225422642188139852674080171358474887721009598153225017286119538821143217117012429210947159167443851783697065434077764021465402724823651238741200141310587731251143991274599344569841041642527502295153070279134875715054079820529526884358820246680893341066386978458305101658607723041633065366994592238420591255215292514706540350946302693795430980300102163196433007421728558144531254855933786074937248652918676362148509708649060302686395927214644062731834055244328449189497883068946606159770560210320429667963138851057245972472299189520430588935434908904270695330766064014535056550512378542969486090973128901609561762816437372599503640438229131832507784678877984248592911684919509776504039432741437075301600900445534843632505922359649779470539788708235703866280895963074605887594968402061491731027919847794267063887179487389331973344243553737741435786256480752499297507908461116036672514087605752087194817492781777158442936507218032670996162648151582685607852254717605814916671932531298619646296679793718555269308038036410882459089643658588257035869225376988674195867937751227715274122116265651764853930617405370259248085231656511608038934752509497169619126185204643439885756345629604464360790519588341619217546011925237674385513260894146375329064198519718268174310374918856810553244999950761223893844583651601175433593730809183505943500040764094762551727170043429511848905584588679271831464019363440935740321546819762789935676096572563083522227412105083649562417161057735445827889634585386458912721294836437225524370612324010068122511846160927934654224275927518114600858770035982890865745596400156315717277234770456962154736012505418331852204075008995713204751456523853102223771550557145689039534048679098590676187188870975782338652490694204091251646387480564441907293729638928287483233808631568945003890640169158929963702967351184056210365857964766496940138588434270332110494239206108112979951216047724220909353858472475277476308121288351845377062123509658511285330592459919976229722372804035096673219626183032871299090018804589069645735717795364615790985607929787258107175965577187464686731896718710276614746765774740904133879415328364581155707678206989540366647419470500486593935252631655071795342957093138442365373340343344209233774419025760023875641775367084966200697228606413292619465779509804827965666688204592003079776521576022840898548768165836184841176913264296450921542399566691013814122588909444938185574512828150879396578857313668475865942663542754614996429508558994384348962642949653545986009195452249512077337905151384024254449207576617400825576354315520495729427928367265849831216398514792002540996382596633698090697944646950627553702205071965795762672589291978361403959343538253518434177178403686695320630839786785129292718554371934192319492339400275439655613448085066101141840327422988438728452429475654065026746359232929175656973786820443018743134297158882200476521403485989365697676685947677465825324994758929733491736020665412541598931029473819959140563298236683305035780361006861998813544131349209326884475707684500045542967949171760007224683912771736733109176152568821895408126598076215295114421056661992749294537002827177679638140032441723046848968180796107400431564939832487194341226839500053177067945975349490260286724464871614128935273432811739783695761184441752290303690637783055538527886970175994633421155462407122273592917557905442397447913707803087904692638028562973662955050319658298573949444611085097928799657447275031529149803544911897757660744007488435510677031212657115048985498565269225346364987951504668208423299558380311228526760721943297608585096852798795069713238853508868546298897068713663796420506550392660646607129688476842877573015745441212833374959840848456338876466945754642167391343027696539810354772596314440774752374369732818476171130795196913817760895511856022912645769037017577074188683565174556620460555171908926786846499098640113121789345992846106602902690423472750767675709794736911167508744643747256102501145244736634142066914213885872066216249550326634508866563480257439731481971606731794993359006418619788393826729772398354473105174047793954759535101852453354005938431224197799780056158766828417662857775439839487961212376201532817901241221291145154647113817007733522418461673297129272216408827317741072689809211562032472880550811129125055035000596980441988366925568222059767363347901422371080453347693517591531374422084439375743729226557117871523283052470098995315167700143740968311503030487553409601660903974994005035369169494793660101181537953003374993928536324728375827442527770393620410499443355178565039549628136381789967396483470328567202603201320129902334890447419718101902367289014610722814005574902917345200217317108748402595559283582192692318190311826974829994216356615973282149887302380420716455926642269868633758000493710639243632256323364346622649651715389700259868270229658090311455785655112005544977745644604792564135910103281695460576837739679950294334233611817012879193139258962877168635127101664993229751611216923057067263346352624136459889161404375071624818892570728183781600460531114411747198894388671960023615302792597906258231079271840842210055601938547605418442087627938191916741284552226347385906349920661165269092208199494827787064436545808673808378739037892499164909152362878034847755968292363488726493206079537033494066610945933399166873291868818700103788827732733608482795018031263953412996987646107392140128835135192778229156434360275721996917447771637962541895910913699865591956633087993735911222962146031746763212925974030298325706809802337071785107137280485204017996902465366807219404263387299602428994260131360737380608698961476375086040153920839356992176139466696024857389801894333090592192472450261345468128724718897821891485325327024634101927842148683761306143165063082429424994325535020439327565712272186975789470189226584592383653817436082187927441912076408028820479524425763088261959858066591090810308910512797236767267846405772633886811293035108372780526248194306169461232443578535471839536447143730773755594007323023689150779994600704169044595782562036237044858224576451168910838175030940084905990308664634037267681282960788264975419063680568831450625476327450792691969028244651145927528671529383425537109608456345062365833372777625245268820243661216924529224102505306523156451933164487976222421335897186515416128096962123383504417747278350091331471620299161630711528501950377467618472544941786622418066843368495489869471445829705946915235139417869418517584833843512895641988239116968822328887599188511820496533372340110167673438517156957145213947794362337431546437248783637579143357360053126347552159137575864515860314045283914708500476694771870292222987733418072321754939920173757440925337270335066641502803298348036915496890656490101090142192033565838285600272547376597655772262108389517355055637675351353777632001054575460696148169736993878917797871046263013946835640510983004076036974898837122663149335661788487794743119572443825677573083972490052667962035952053302851743855582896166290925687049625719056736504116517947051336582034924533535463386366170591446006937813703570208074509134434678470346895246317590350536335274262882713943454020538842057664639440413265557052389700834924821187072967799765802789406213701006671701549100062304189296103719829543511591867837419032974048882081772052253731557080662697169122448339273296794393894636507554988941638251047743405292992964663069683629135086959364103387719669742004059260693444911624721351809254802044070286806200522316479455067945424429615909427714862243279844545178706310105530168587868450318399086324809049114203768184269760969652648838466404590222506194016724432327847631269198328186930725660587914975112621276087838327799744577678822013077935393374925631180178898303755337704026419638543158267439201775539557997497719107847252123250104375993134297460130442928375167335337680860595162556275618499164688572185833584509851050207250839037894873835255542644807190975361333085220181136394686109484905967944894073174152567403237385640293251562179648047680870271398707013260253963427114001026966241888134446456445364607093985258642506595050610234276631199026696616147550330387906286055688320645719598342807275440499137975935898407415737857877462872212781408549884920378886374479968937420539324803567607091927031145688103184582613520545857053811290402983434205900206398131895653112155165120164128582895378785267832328379772130019192830908163115289832345646977625788895375348602293767085450249023494135188126326999576832081635369413801381118689008324630527497275745447005505279647386729149863030269525825888935346942252968481724487850626720583866135619721593885447962938451807025542361854244267133766906841374131519919854942915444756246687195553383358758633124528058194575073173270229664946915065399106385762391304603953601462833543890365633435143354156324439424460733708231089688004913418065408061182057755419176294146780133525703513127680039012560658830837554703281460096575165001851100910805374351903355941870330072231204900554755570794157376771726455646825307731020061591964814947695197838457519689763824197457230590036080471937944556236313053461406923822302693177798527287229452762341436899875953106206915961521127144634343352639244524300504546567057907649513966877008137021821553585624984481040505105480199866142432368157705843584375827119270851342612925445065137404577627623232701920821565868088017381592743427384431653219767922391376717037998880535258643020252279490764597392346123571380265587963293757669532671577364752055074820449050844322411229559158223519776068451127808968362572103002152372345496007268766923451855272107008467590329159363796361581105292335858467715522552582041681993825689897906581077035776784928332228230129232989400037191574570518625706134209449265205165710731634021500237272868596371643246040356398960767989440207675186649812590425853892552850246367952715498451217763959576083682427173106536055011948812742706223482544025172611551454054145627503048172559364780220949819170407664726714680949391356955416502402577633537089617485264651543747591936032679692301087657372042070869301626267185142333935191467172144048444727615924326820204666412945393597455010917608468555877378709884648366117963956365070162854783494190291308025102943759278366244211732057529166932113438158739503677632443130662076032357704422414976436444934752837925723220090509209821368634693354980068653876768802141636019209088107047416831102579528227585492061895241587330167550751818234019452749264813142453721702918028943523078365916148806523940003348681307793125149204160290478000440652005192573731994692485959798515853839297921280012055360694121118345090027658029148332933502604986012962114985924133537050351207228756983818950618255718113353656914555279203048644531283330067968498771741233248278745582057559594815106014074271598124159729583824482942096933536919601330534170727384114360064522379441757390881321038575018967865639061628042300623880450488635967038888570394536314235490879057520751848969056347608792047290539686058053316905486044847451516218418748896068573772523521830092818949722256137688623208402108146255760026922844445530154493372667508578762528859901928098637923949313965801237965058962289409352320410669905629432660084240754247448827661530381299057235419877360768662703349350487487208945200614035508508324661617433749433635144026924617634643314593537546879888256254228859286446486115436667147145275678050500124608351060034560682068069002284729595774686807503359195653719628906564294598674838580558193545346627809535914077283159283924648825008997037865490831428202599573767290416635627479383525847375758356805293113842498919626800901509685888770025583487700253584912425117838927430317890857032484880174906242847648668673025873220266354328812219115337837888846905070073423945378521208771914870121982350089008490708791748561579525324182950579023976442358676745760620281608111356130289873837934232070147995509412922838675518592707683948906542469676733323485446016730628537591229517568128235679202423145632152254994512148601538471867550652908317334142394701246031826551031600012377302681559954638469199781326393290505341135018863784568515231844626747390673371055277404338041925589152315024410429479647872677786157385366232443117448658998932200625128800119244444472711256371605477919617052647609963057783801377111457879739551527275423834709847774474588585891615774014871985076845961083537907112554709727281729412215758970620995622492366944941498461339119950308708774849190546364258670170318073269667144264652308046902586344690080174385512062978825314702645100165026148007642211587248073531741127545437127500705368339476235793744711040497788221417123980016702862736013803413358851171459523727578250929748648225014246682965567905625184577288772646237347114080895444632585735948366101941264967088705103548768460365888491121500281827337790890338977050325745635448342377659817005398441289709016820600956863158700337909204691867831651910717698874618314581785829592796115979950908389498755444493606483018220507614440715579322022773912888905934430848882400425706695684342219484812091567825867303701879573696192550368955084783015246776299210128158950908234945866630459676304653186157519153930084657941966315191960786352797917002248803162829891766034304707792619663218974701573828018678308425827703856071156442189559413892354135271898885924063828663810652955186348556208949848490652305393554036459949912960767434382520513429012178033547116045768139725450692924034642394333388148554879385983916234743111708518634125025479955570376993880418413024808029158997512302117793812555115858623740351615013261106503080071946189614257445774733862323569911506579244365892139569290079294627413907643197816377788901852353025697023671042914703214995293833502670704804447473387444058291405028040580053738257551182219862613327086872946089778412877044229488427717092251824951746565355319883270125491163798164516689884341067579049842267686475307411869636823892009441774854713270437481725792685491518797466179890213729930964714707022990502387217746905846449005838364379863777696654917884355452924095977657710669184961373739248180546560716757016463107916654683516358051381733775408504094889578870986387620598252168711888013425437723669131403259534277312386751091470709948772930400228075865256536355883208592891235246019372459203501466879918832623139470538065947305331654575252983478755963238662339516382293508569666048435626998717897291787282150186749346711890820204275777511190400912920605934901818431540071093267904430996549263340059496828326459766321191272573870875412953418120435463196456558113889755387767260067353510163510383531743037052289101922388258522753769986940927580055325052566931611817560986217307329214533663228891086057427689089017786723891334440774205512633180001924593253379761568432505636804457275104404405678274839092369219574476750966885394804729346751990414010233931700272319356983366379952287704561576254095406279850970730849048454837457871926563031138915319343290014628013093905432113094376806462095463229876722653617366699301698369079113498753520800076279887306860548392121215878132035587243991761967712847933511323329978248700276012353787438351406182253311387567682708142010641837353703979585743505025107260929473628147237025148892356594303576489592256811768023783055599378714120209959254590968051018966342508531043222714500285560947009615594552259395355467188421422270429438217638264287674354891214776522507596930416674402904353257769985908488636477995570712204899956910032942868491689280865922302122670806642734562243052500273083178177201730277402535072369511951402177415331214965607448373464762452302498722067946701496462070052490101863598437599537020329250575010045187936595938251635241517758237505643996091366766790039429868426434058627705760585930822739024930167045821684772434361498521464369029204970941044855953176667756698698392105371601298138433387795813781584098804487836835743905887475819247681318330575735986605631412379439359788605882109726685334036205114199717961697456048049113718676835406301610749715379239699095744659030681428106621577609001545700677132481009452466689795416502236369896905642055758670553953554538872590940731272919538697698641593231298910617162533168051225590290779486431844991570039520008263208628044326503980164081311555620834965253228643981292625434482497432365850241207005416516163944157260624200420759307001657570720181849049775574265495579452874847782062289376599806243118428711749233744803043104917880456261745262165664710993502741783684761115190774668632365137912665360097668976141354839287142987342455260042458765782738487429352594096277974024383962867678511657068693614603470283716020953113635545732502618599773649914631257224802304885016872994950503142260431447378280406460614722715514651018186978342964305981580794812045833595421472213128620730033483283488915598817963351767198473779395752312092165693293082903269906174150160043272493524417737471686989626182114830464118646047195034243684121069885761586987302028774599797425449625939922213020029479471331755874593686253692496652219393792183204806519915664895679514922410716342709661305771803432945615017676225795882886309132456193501529625010152036737594442092976041373807733973777402053677219734664495926592579580901698759472638323010743089609419286214545733028455567312977213339323041958756498296789696481467768429267627524239011157143572653527893819132377102808799978841211148748291159925151460722614863337943687261839089691026240577666749809644436740501203503138866163076619882967809172879437165181284244081328533905992979444676395044100952566962087876942386282095798365012052941163606144856635668560350302726602889685512919702969958171658107250045057510807291623107932222198415394415706860830288539260306389477322019325967939004869870747417777838600643191118569547266269366961209649176056042953942224084741667547596280395187621760903911955564454983490844924522151860259917612556519195120508349647564750117357324253656942126691294239661192430614438479668570239516256838108605536076304910700574349141312606501012170550787960264887010425035093220549275519571360795911141750067709550050547147762281018422417952584745993750159750004901978517283343008656612781596895880796000604340720411815269960479663931818748117564626339631723458645511674201827764144716919471033667960144558951577133607769725013674765231392740363266024665242168401179025805073480196241145201275588161535980242417901031863341675345481428697878049040391325077179044371983115106368400664929696654673304418115276905568342899515119514005628476187796166949548925833436773932791140921103395666139203129181399313644012723614060078286748564700436373243874771678270631684487376300841581587020728759938236610579790337625293328590583696443906759032482761818278567988678952373596842072719704628838745871568429123672534121721426539250281356495472652588489339338594138740958471263414896525115036224770173928831819992326851955369851783956603486143318582599011384919505126708427044202082216752645773541001549269639262485639776259991322435586321966052420633178200954304499518435453406290517002473949275607345825377569959558004189440157988161947343628093919586640959776948617107986603584145035772603847322921070726588124798336904172224201350321881192881544994943712325900177453330710213094924815754267329451958159270680564988646913285279507434156953196699228798404506059218899665638504408001481816382678393600752522264489266318095175938470458581316100125751021985461872070166577328653197146247158908271577930120540623140760991738189442590001908163199612934164714491331427579209971127529662957929694688959729969545559549918237359545690926412478859904260013252956913119781131778339115973131597116071309383849554038466186795271916017157994891852709715935687013820095321421396297013198666444252518819221744357657654875948059727239910020623402288531891271165679499174814730595984351499502707007604088080076664826784913766750939701447960288331811034777628534450633790362952435593007601881267294686370683289800831104776617409571146495476892411961132149134707910535738096598840301385766430595995294160140601300406400965056278548316075935440303304404926724870314131087115227379825981649512818369555922589772872215592246875232382065049600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.42s, Wall time 0m0.42s). '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 26 15:33:38 2006 Input: 42^42 Output: _3 = 150130937545296572356771972164254457814047970568738777235893533016064 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.131 (128.95.47.131) Time: Mon Jun 26 15:33:38 2006 Input: factorial(5000000) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 8272 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '128.95.' ************** SAGE ***************** Host 128.95.47.119 (128.95.47.119) Time: Mon Jun 26 15:33:37 2006 Input: factorial(100) Output: _3 = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.137 (128.95.47.137) Time: Mon Jun 26 15:33:37 2006 Input: factorial(1000) factorial(10000) factorial(100) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 _4 = 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 _5 = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.145 (128.95.47.145) Time: Mon Jun 26 15:33:35 2006 Input: factorial(50) log(n,10) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined _3 = 30414093201713378043612608166064768844377641568960512000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.143 (128.95.47.143) Time: Mon Jun 26 15:33:31 2006 Input: factorial(83472) Output: _3 = 1932602311462036331119069890766415201278082460440911591491848461223982619305349512565797709901791009295520794092141725578355234243024918979107451879723588105302686717005572646095906074087341239584230326587106337672426499264460346204081894243538595893814385683935279609003797533751302733594538568257426669351291852028203180214152813189284701916391342263600825682024723632272629923061626749824807361392627088375664278415865570910649775232440081419291254082947580665106150850087059873064708403276603418383371949968356556748393914278293951834616035357629185369742452263575860324891375178404745977097346448531150953603364545769250344128043627481692186688531406128709189071699793052878538917738078576945609276490719134028483108211468227912265893466992352353755805502605255238587337797968765105392759135350299315466028123552696286622117665550298096588623292428301451089295089463658529587945726393575994859042779555935029136229220900898745621149988444905595782448710149761565257588399941573328246058728896734441383257916996695569882059432338180839332657613183779905278530901056741609711013488904208079624629880794516251159325274579450448220720334488827415085017081736025169952910410481173567311913637881414388496979335308414388566335889051285377397958106457010157083216414222735724944431142389682016646300182697919950468078504832744723525306229348976499082078251824727015237292578843871523107125203850276937383631866363684842354687247432199348156188025118859869526739723424576605874284343930662256821222287553418614200000328866877356320531021052471816823062862201017051848543198228321855638363972956916822694485527889259730727134784826324951971051373236400993934435258243664328744836272129364869028479677632915336813095930405513815102214797126688520353127774469310545531255454287013919969655771434066729428791862417207658798438260230371842499070007681268033729654368783682539204052496947497480568673886862960833192884099368597873273609223331144278123836051455839529508465433412964327187801056824626824643934897058267513187087466674968279111086744826609970841299529718596490425377180466709200660621845264201377412631608422822366882540909161478952614685041532421509513827120714815177499104549218563547818908747822024256872195262763909861200420108767029697245987089413236634705714277571136837210006988180499392511299195799192491095144676288270833388322291456216984232804982279701944938425816071009421381641017055826670888262263313936035922544592965740552275114508227786808057418576016721671391833285825060704093203320259662101848102769261970303841549234550343819409678628972059246232107228850135601363023621380651147442742085037369131823864181142076107130189168804144404686516709127929571199686190440150830682101996667516436308139915930657920002325351359596763863172953887853547706686183334892935398207831770858270209420949709250989818213960517329772915776900045637729015078071465889985764324156462319719004129489735622931137685965940781346737363338986696845607868772218722963416494942342774779271906106348270010406028699403760771619046902122821776205899933980270268412900934580004216822940760495420619166963552477126849926596205434563584754399537095267444132018674590572897697378941544390192753829892201162844929039954133521279545490015069155864269996408990939281242660098726120017155870681674698751869050052183478884675687195191115652518047304787869568152854602948391616394503887317516496561663264857006981328240951356871065411236390836795625578044419980175333060176202537626461559122377075183343310585690108800558337976236369433593213306582872310094122735002563575474638187988203117562040706910527939158035757134595913147071087646737824137679879270938519081743150224043642687856868256503584892626863272606502215333815492107150012050696969230444651973356454899231583781397993611523890925823142343526002242008402120465207893119048116756932471689169940780886732190585610541738427474190822221162581787378890367913889354503612830757089173178432410742470785548149214621872105402073513667351845252909811934739250721389061383763471323798602063364528202654445467927410884167431296615376398241196671152705634827663920761896234759374515141226361095583133275393089412752054790834950863728309926298017698675717829626326107865247371557983028421148161881268120552330212902812952670748512205047953270459068490044756811094698790588892187761400433904715645019653239149184042018394104629057394435871166648823172048461024407757255899980233703118273985935098164948272329066894551674572530661429137755003971288745709749397616544425294060205689746339489315956535389413513242593537432929010383234193186230587971551178926092159596313792431108302936267530476547413531165815223131985369638165085497457268350575184969276939095254617065180520622027615497273006948380245584146610877034379547814058721813986859589999950290358445687367780027458937504590540093703235193879701297911736248600370038424820141069238891206593399410498404321901756634448751328998844949492383364267774978169194457804481064988842259180978550118898038391510263147662284216975908669170568094308216299063136622092328694662476446471237169845768702933497195474093144050672605662411217116492648248358983907198660579353966953212732316550300413176680769018245955575358635948019548559556945611470884212648339444789104820111053341986116919082625974642018184780389637763483148806759689136191222510013485363023098658862897171072679313857787700143615759837005515158220443224678092111313466469306053304699162103772625110024396322968087515371638907880654383400824543161159053792200264534668817563570498935721529114577835870863066372050844895052362566818614720462965141990482033885980853191583249282904892188987745778768837652551227997521116656214302197181294670639809880651413963101781723745283668036714410619359633219634307449994268406580228343918872362998559875509896247196890419049983261012751797688170690584456539028690443531772510907774646619026559321277631768500224113720547564242644884092435002324322689790075769591575263484800955679427035004830180661976884646312722120152586794104717284717197417944753521661801829126406827317798706186111413547051843829728016253204667623845731605154508655918403761967757538917711112375465582531321169601813524826183243812304752423120018628440914584753096239953541624140133183427452387740157081693712810407946794931348763288444622404437387248533253335890390489530204714184921564115695031711320465236488401249983518054257555855729523691532896874285780578712642666775558311187685972833381522235560140251329317179452951043150415078834295426090202157730930795418332099203384984307508734615678236285411108777810853256550402028694878330762549767893617806764592992050531506634736157240627995613033277286088316974228558371571724272627615290033813808589982923714446949556618154598679223223388558976935490803121899377855425375795736565165073589366379639389925771143165426333221595354519861204604740300476271677926548574027792474561757242319202608020107372554866400178315225653229367708967725044553803524339656547581630246014324895607550130981009112644393035883298354059807686968905545666889011451394500488477617770556729963418713110353297887041224165530045004002842021425097758974588393270004122126449531203016296940698379587915982893160581530941620292799672442527806765955256774524682487163748410516164523588199870685234266980658936037654579776042701709395091955917200561326495779967665285155419524711707774999273968345730634543460494462365952678423211088772702966266878183007052618076365006524179656653427074559487666384931791399466254498352939341452820819749871499201396770173468312646556628551507361095933989149220865368011676042524117017633267735912980030643950101044584704194480855651052494850051532657471997794901332770836905428088976877803145189487282992291228305050680908790201149910362564319201571256564457662196660873107513980417021656358247051538387737374222508791690577938372280673078461237836088478300543831768503714866006720558366452661515449367741374304252652523730451322947908010542428510649916336891812693590209442877678616417888837432450353871970252490876993705801735065001737027866079533600648259764062372734542909577488921464153642274464546808688623398917916572561656911104755643745505193217753297395029444660917081694190716104331949082178041545708946853534212482023225690157644854134113493164468750865072464390075040436879434004700325110202409317510943405029886231562861002730197833452238904379957576068523900108306794679436850325293223724947606807385968631800281465623350146403911767591165371120400523621367155759431968199589885662446231831693753312489985544176901056505992343105331935620948748044607726955245307577050118163491653312885679278938390504832143788845074022053816886189541310563976054767047271123655204496773458255757993827720300984470325600732506440886320036089692032151437464860434952705283489453859675804782164788172584851588002341119685126578532277749705445362497408846360393486336137989216287801017092532618744107496705459274623685765943936377672292059178714166778092171966148010489218727221537515867042804852902752613755979373584141960269802569921800559406305610738637189311172102643950167332839318989004361972299692138663139029022041030982965421573249484217286186166843578793892653104985449785502885603158254481349537098771625981642074674409426892856334485709380747007992585745257797988371614097311913426576437279052865136074303798799002823971530139630398705382182146385619111314541627547899958200967653308851642702395301616162119876404040544230064372998802914738974070757817692901073467694446068743169472782586059401709578662339945277566755749098113445124262177464489788225590405703281145431166549423274758415491443080383648840552845150809292121909828525547732724985590831838551554470972702121349386421406631656191193518791281869674221981480163815239414475438186688097686019980060965231219690674302605103994880590052078174853228764218747513450105548498831857537685663374471988633364585613873320043670069859172183317855192843337629037535274198880532316309193063837207853991050144503081663871493672797323495527504834129881292733935031491177024973620869830800235199268281886976626701445108665843638597251266649609988036011741727341929228414671772384967109282585178069023961634931178197966594667508750828387282126530775492889473883788729331372097573186936056589697574822484138178808628347686213868267608991524708634213316526378694004951332074914054669240098342954576963048769053865459976039449577490534555994548579121007588394740857604495647151502068766085821498980735711810503188644738441645172864192818674362319698068248280869285784365292314548385318309050911931383625109236081053950180533356411410710330200265591407399657617414781311254376931405480806010813670381361042481944828780489703435888699628952712594245776089233279386423466487955991136888867545068650814492841334634921709233448926927712451215233803348293497451834673834986991401392939994002620207319657073262261666009751959395903802910174492806538074014955951153923570254702125600289123696758400472015612801544347396783746853738908925984241924149723556247964941462073332205096159024504133772070148158770968172084824980023691082433635360606906100083420212004476784468941307689275129722380255240596613234425691338150293117046449578881160434838139830339030241364622695236526246890709546405241491068849564955487373765195204785715680880796741565126294417906679589023442144194778781478952225099535311914846366422322388437690054925806923651882897677532265342043660822100596677960289022037970703775286301843444602643558942465983820558841679217023595086030293146948180862664413799501693098205618068564612306753447420747401965809641633183399974448453439841145920436814740341207206051447404636987711311170913899124366091644837063983601934468698089919404997085856667977375140392669728390183372447508314461546586389222270755527861941320094171505995317529209150175182359643615842120791981830362691734147386467337132974906296228624171350323095735527738029296591662700822677408404434482899013361366555777708463097941004931109491823309632749495585656702010750470477488444658892193610367728247094202529022651754257503512438898448895582477108693015008301085402162858842521149611619500411021363623408896904882820438359265398744530516628330836848977830575517116367697847068397488915001495713452324107556952432184502653595641054870242324591456778717940809518914511662241626610190548888917606488266631450503799583415203597635891464429170913208280001521368779835899616004832566853151500360769362128000458380693435523438452083933553283435794981886228852364741004003221997272306335593182385041458758672742226313992010939134791237540596452942563445749752786940642945531132991931618071256810720891545446006335257259613726382210649165651323274014707342199163246342464539907786525410319884522554251421345029330852518549464175357533685199234339804974413981877677959367625706177392001758964270162519252456101666943286294082268362335775303194536096446032010997557719070315326843347016000753463176104526765407165791279774707451174139031687359211398928484033196214107739920734080358661795485941156435085728375687092394252520131750652344382712190082560579080521112881646069941529294869143161284614327006494784580380557070758388393445535441918486429955281145175056371258782560807185949103683656266182998513982651158352964426583642179352115261898717873391733013974324933773808080041671551868705907419242621407597832542444037504493239301977624661030515725336336143716151702005917512605062031910310759818471579724110414233791227401267103976368216301781440483148396076929217835396938557257560929518726674799252310464533274451945168924515561335146891041610720019503482343490252497115932371539354543353893279757353875081689122889671830221671603348435665368771319244839360259413063602256350611585645383555833046259858442831629343997859714964630876853631441768383649784875260570402885731229111456478479413310990481299013655305632486758463263313128158754401355574400710210328358171291563626332711958919073473002362148288744837203617171505473829428131937887368365039093722303030470657291251863737729088541056267905975712667174274581806974073051219677311914884772184379120272697402197201077180013843127884062029644848380409322714907800755438196469957809875458902999354272290061453263824013611728621585674981601298332823655580501442508422487613048595974171271852106825305252258953970425889476155549890163057137603046416374337832172745126643345506453445237882540114250066052696165003662932381591825553655434869911880392278467134920043623989294150042849528794187987174622415920391381502022141734602498942747584361488319326279065211513546417891092684815819702257009049539970732449111172607982819762158048477758615968972160247166339998337077437689036256689443049385146403375199998092702261945161528378791401455389029754407540658226208835191453478844498739640969023417126742865890745643634438710683956898367123520304934965096059585202691721402505039988085259052323582955056285966435289966552375864318915186801891423031389482577790512077462864274364307055479677944098370416231950576210200965462640608350344171802573783046902937173393714103573166619918196373793731395395848168878506507589283956657040693706655469761404712254961983990108213485195738721252579967702683348447952168796539689291850699442176219254017712235160173174828079056461432779511037622854174613638348115941011393675810591630846436293251206803234583727757628249439907218004320704218225833014721175533432826704071982802340355062642694864586283568040693385393512017448725871747322798455566074183968689952665700223562340231510646846351143317889902467758968853916435446481518180579520758906059958521467259991755839680252574771163654217739114896801616311559651592324087070605924164161537458985394887666928102348469315170989570893927928018962645329359247583493655832562675741970412736040136205282810882124719563514135575449245615349722211155241895210115141236633785302613107258801856977686085318070704866591742655977454713800048400934876455911900679044645845255892212936671207619449958925262313043963644270376622039043569218177791808191581236805074951742932929250750157122264541594729140413159902829298693982117692548803873584604521560383840238403323628693998255424310059653207481626305865632801412629262653317708737926197329612619533783008920830218422606066517845063443113191264258756276396342357721960972484403163955233426913331582315696235694779838075922062328030322996917398472191427162613658832942458726303110036591997651729753766957517150965364251803734241675261237221342003863020430820530613545716957791028233425487985539429810073039259349925687807282836524760868915679109628388770602504691888001488228585090670270690642077882088303875531417761599853185804645241342712658768094624450197396027418318488973257643505017452723925237449245187703931789725688730696041826120369248744487055050766918117653858979277358758785365836388203732103504156706196615452589964210966399900362890730721500827726462587633822922965038992978590221432751871577788312718701426135556812039534221116012142847953679391572910233290506541244986549045375577917390563021150265858421066263906375432525247884993596555576088183716997594431194881617628206526118714822380284068188599987015806387774504995005292226201139423942652641150940709644537977236540981603001504680573416034669834906907061710534669746668253213250984936578850209173716997511124629362813786950886173448346757922147653041301569298600686721331609755930993923181235174780431016147334572280276372206165167846016536125096788588923648922483317839830540104427026124626093473380108515546064416332439351520079640710479301060734299569245004249767031596566934046323919177728221796235832140392095132178512100557891801594635967544277305281342416495113699589585458335346269371307334005920208882462878438312399813904262290198698753213702408797336080030140910062518086744618686523837773705010603056363301440276413744107981927271151238075850396939049196661751944861133205624405890722790228003313422138766445310525057605299978805014212823842439576535273998239576834445994783525913241676255090243392983459090202131304032641009260074967397627573119075530799015563985787737766111395070448394365346855372953123581985438521782954020139730005175250932174736813474142068366232575324833358592702687387504291149414488246863563715351255965633195273948583657744801301647905435641144213947273279947443960556134318625946529574727769636838427097170761711960328871907015635474704074355168320834990542354834358030836284231233855844129912594555923875449804404392787118905366350172016549472100693319234219919728794677399500831247404323148465718567251159945541773254262601169229721602246352163520321941866621936912391213246471890210723834902103890942865026478240309149928164621838621722265359326570074081661202815147351822244792043577936648606148111994522106938537613974012537838541128066478799059222334499303384569453938112432553585125332899443343801278939333655567252680049423394992706000790170579041052187329110213590402404392234822229584878081558889353164897017179540372170940153747157148185777448222855495498492281109072741550082773024630745495874648053214123878354198754177808387283906923603203706095763787389202616714148441905020489841734537125023850856567983532961764070387646774183450521749980689062836740276263319568513426374162137949104896683148584538418129143284747530202966945280420802374188187475809778285620131510422732281342307438770135313286315679769055333572559703632467965693356289863732052500016323333845953352733799559025978558437694026572665080046694149992200370774800889025647829701340105623430778988409380285124348202689693473223409882098031484313127006563350336881915921693937680613146913718306249038725001611660141593691005425187546637514280882676759177701299180784392353932992311364304619293851280561082682845747546563695044090517507626595581112338120529180903516355613175361900035086426402808054525550655152722066710951206846452171009661236800175735919113726219035405189215350169537854992442199598934876845921503735476402650491051037593094915792045631896875817957831127200603047571912905201955444809631850129934330606190835823855143342153606109836120966129285990835402777989504610466735458800406015990852741744266014092551971017882095400574817571474987798275904662947366448689198413011610140026052454410385472340286411671851589050433216972316107899021179016098168761732971145500160452600762482625959954451721070016087972354794309572304673633305268007775255350291400547470374437475356994457062357186779494046233764359608605357207693857916873788435048750059109754687871275842140179845484460445891186499875839737758774695112054046523325739017508335553862554487109538320250125467267348801282023683486918629367950278587160711335244003115734086031291652339981578494683323438387060531194870247560983424624163355668011563177024931246073389916674896604631078510698489290880363864738426579583369433205058625746388929654724334419627327057371252278147014936194401505585017212370403420733288546741391421877558282939457297082933148074347071600091549121111581605675077279202322769904203422222170341348218262805848620046271666312699342154021106798845653432592407488605213196023175317580017639940582963758198685200096561836484039148186516847717466830811557905935321600513209079514733555129476135066305021589242682950524842140131987620174691668023957701639462467286116058364646725975697069220970282062009161500144923722725904386308532382441455660858371631201249110070850249902890789232229582486793847511704787441022250924759330176926823121516728477324500180424298111177160199214274121698643883537409737876470746940190134790404551711158938776156001048658599855555087854577179788856792553656761962897106608325593512375373187440246748759807700943665983507636974423542621433291393307761959560713047437941977501270798721507162607544471671167363673063118816838993235006378818282399722958278659761743701653865627809315912499836349660918503552426826108203667298522059504467745758352255507563233537783879913222766050370703818606459662300829880744155547870770926608990750394128964269283415030612969425002466430789851627992413197477813686464056128561155865905994205583915607732916852525362409012875676229765538049129997696235783009170725902988074284336822471462246522052554757599402795278395122212306608998307328713821916741277577776069685037712045667941332039830777038499616074234784571151520070838428417267931959360763530267397058662184977791278736339402645438042216472927398742916427345611582187175862940381378378691596942257530225236030148304231725688375214624558941383970082902615122190453058394624095099894203686899241614923707848408026997501931905803141680156205726405094137400853096371899755246865735043094134344343850464842692638714556930765561577946813105367616530490966382267304336808399396503331122065605386501658079537812394773901701378878240184690417518422568243730799165621044704970482274828426236097652882188266338512865852702787860581570199041673609634283181984517052683858478257754164824734016258915371897175690345802851005320695265963509620097174991112766505965834576590209623705224632339712250708027729664703495370493583582465798111504439002483568037950493574731299478484418811623337398674694513304789212201327825907797162355391432567338279620021649064875434123964997193940171394411901417622810802887596808261259493865380911795949142812383848149879833916179597017275350534202536405793022565152422353236570462791319049191637999892032906274594379382596284400430387158607587035569397909829447341216652123408831943777218744661998363541122137716212320771318612115418788822221205581655419129965178455160530936346856051031584230143028563467361037969035361870363100499398468602027777744109696640737851405965662633613947776862499835673065831543384456691083334363012119139229541951377265669053311344893047125119683207077644056796699539810388976181593555228113416177450951918415991476526001837704029489833087836248757408306377193505312224371429786872779058223639877958627013728237134507772353057043426301799897193892190206000794138658619799123884608625097253561298123337397195748065738469881126981268127866873144764955772307624005863532004882601935093377469887327969166966214200364568874421511031005816083482495128566530711845223639954058633123631482910259380780384750702769472243694143946550972655579801267387617013797641337570183307100478239258264320348762178862383055517258719822590927882631393402971293405217717419981865100165449700200984875538399292607775250498509442623950481676360745948808690865401985840753735816674106552508247890069233620842559438526417920096687173203710806211679076897917262392955276353934803667199377596037165061955012635427729378877473962770550121353700727109938957206396130554635280048521805679373049372769125717968140028019944339653916690798907159201280301043913070849396795736881386275354863548423716279096490284268971651303294616844112397466384731541215869550862991271162963592263566604658067991587848764197347594403386109411119583019105712757950224779606694429321520306202424737774610533446634900325499782332301178181024198976916692024201260328282670573410022820123500577759529641892795996128313787777239059433389957396036276998658256679954003129326595395731270762527659916761704983089964823727897914084247306731421929061888149013588362966044333412357465102725361483998243588153247810978326580942890103360026875770723934919614586808800420867944495840906571353024368752310214777822198802424880835894161484212365563571259277084467584979102855705965269383482346060388864847439936024812938109365462191387380929736338147353288922646349262575204093375457474509131912947258399414918205178380968772256514007395425275542508914405672943963848622928616591282449919651315563342598377611253329986063158056205948987090247617221205309624060145542261011660309583650302220495836710503008015454626879238513152182420968456410491180518318465300691200578900114891170679994719682711556907762424488086916505915339872681852847697659741488456573723586127441100819282515669219676869447218088057662898479923730873573891436712843646407288522603558236575402829224292896555410678497527662086744527482290296596375504167615720576412136218534267722589495458172380910087117039726546832775998315162405671123078032887642264072241076264428830437910829230404232202445713846845834427919314363325568310986422620828459725464613145437643745095960726042861836960251725107379828520371599225763065997878765018241319880719719019297675597525383817115183688061368928961943657518888178567135524600468698724859759099702292993912759256714025000545312771144646663895559592105477631663489709401334012330194348580718334075974263805961503007012083384990863743123628637292393221571846916958196526770313102066189139580884743027394943960302434989980425370214834104147962946365792672074828430546957004179912826722566878221099498982736742155721164907999956382123214996007099772915091377234795506334420542881597503680311453733063234645777396796270020922321225092016031996471802528313547206285563804357097821405108891089591675141050125233177393014567517940985566355716485224751010215189046928190697936010254688980077831318749263405006937459813557942563760710222838554382876789997089108380647056074576029352112771382480511468109339458391877182640220904915334652233062133479216706287303272112978895040794251878652159801015521523402043016647009975155722636444998759626904475235746405694772582251893669350871713054887886005112185317073005580015939847625842300142441160437805415235392230414473293446448644339954573911476295464177475234943174819048097201728317363036020280603706544522906760690618179706346846195950045055353216163955618808194102278329366798205027764362797330792246089191968236982398494689899995367154368780190615305087871047710073754939330208738910861954119620577407671394685077058525425044629798837202089918024207797652478894946399357673936292756570706262184699867629112531384915659473130323649072515311397378974902303060893142074891833827016981285462576974716962178520391214504005948857603285923456425102016328675821665587840825396292563440684476096009762724337376293899152889871374294988045324936851258687763929976815611164191744629898700050889335499552814859364486227892457076499535986435243581718012488019999618755761722737204539261454912732331163397386640154158879873951296342236014437570084043076598518704418291614802359257669436832743823047024718863935472431759676448217346717420467054218835033449097041827247540145369607658820668189807163801701284885009066903980718448930225527062730095877737541413968704425806466634328587000932113900292618500300281548468186975608475663693408394920215990937410560069480125227101906701534798501745047626356254476982465175340229568129014003770790928932562854911286185784796121538550545031733482272814230666376343583096245116423433927284848390323272142806579156710033777438570268379958575492335616572403557200262872021980810872017967350161010247955823107458833356299410308336058541690122767712899153611447802257310312267971601894561784981523910895708843104633793094519509518999605612653249168052933990665233948799522017514625549528701652405405580518250548045255887665849504719960159920586291540625056991982424285484346506110640189012737493559543550826562697489234366532890977464886532531180134110016687986926546504229487855996318999556142064144389701624331542317172666588661282560562995885555807010740337749553144146140910154287543025588043887799711754569752080909508982761775077916671122586348416803027457121112523281338864107918904048579020482585864075819707728793151424047466315515526710708825053510596926823485554466478691523372487691851207881892737102796183471327158206242259251378260666373746585365419840365730504691818246226826711758572408770051593137678325384164681572063848566426779132463642848262387547346935839774182303678236600120534379860942589473679299775906949442648510593978960875481278200660056436781508562375292368918355302183931389389830210263962176272826171283651456787056633460545267751582207130741637772110083736796359225800689188448936942609233532950073508657922175647410056019690714829327137579761454361226418069617463823348256763925331395459437968521651825105182466254262111567630236576697187199499543213763354303619812915506319628203808043891603426343971268068801417945394937195064465245307280875144939181546138447370279969737114210497850629986609226156812754907908904664018753239625879953264378159277961810468238753741972880370252697742896146478700295923708808159459954234948025867457582255849258827450886164715760825135754135480163604564345289197790920127735370797181873312435964717842553869260308184406594723374942554768281648582304928882254692204576511583159552966127153954797315472755462209902504995173924863584447618837481645387978254462445785429671858944577041423192649587376253579819324339260947324306700188275459662899365929891619932218736267461167778544101421153268556571833626209115076255431262729457684512046616877276259645357697081889047465783052382990270113980902887303084853488329935674102633704379277584416082971185176236174497834367526097000378508639315683111130094399914394942679643399924126419847213417697181469807674371756056375320187495733132451560580998617890681046765840820309998153783174678638629806083185750283356848034732873944836353421448680423840102825356107521123621028255966528421695221502732313613450467924904483112442014235074595033064597983202190961732712483895824343563633185722783598860327206840517557795068878395977622989678143769689063392472632919954445241707349192475945245521525145693714704841910394817887986500733257515886210294220312730436459388837725154494359823872776954420071613566902189174271582731883093804554391501691673195761710261670906823213111537168104380862919042122105973416556528161387896726679764869501350868738308486585776092154331179723329745596902720338169714286140414883618144508228210593303474141605573862835262346403036723773631381387126157166160966563311297078355047364178243231561285381056219721761572765188331352139631210143115268972316414865814587243712022443718691622584831870897173591697913220383777886039932621544606558887108476554589341713301491168267185968337686113043511784426702171238944539074819146370745069888237715175458584865238303607138953232239852750435997697327375541835617083652567712001738589126679113151928863749504318084610524619604711212644075445502580332234208035141678958980525159042879768578127737676695219286604588251167976024343366614883249962839117564196209015859514109922014962445136506591128941224807281158922249072188913741713422271664741164281380546959894616008986008324471055439346022231049016869830638737182586384067230172633523289609675395930072919286707174802683903117727211870786002860884090508324346485732535720500371131284849237034712323584692512378567280535847524176757862700574466686432228045540688762725667274392337987102069151471487061847176975200599839522192499343523801833746240050088552455083263466742326860332249495923984214148883755627987604564472326607450161463294346404027712950889462855133313421664533846553227561664920821285580737945871333719866693819242393208432315830359091683865292182167293749033292589656258879146383377842332678971575572927433295055296031294821409497100620351769373912266856224268393965781667235370022477202705021553442037767568822790464429714437531351807505813735580564576000039955626078820677060378076186025390061395819199145433270813156194473991102049433529888300827594106939072714230901114540581205239957033885716115041433596521517175627094590457992927772318139365214898858341341949253559324178363778753014668726833463613837704899422190458445620374041502214329935215858264770513423495399678153154658850193712765027334542571247868859794852481730011385185653678535420749556308195370752253854142803085043595647345696414477687631056624682828664133000868311470616909442322310937993904366503568158583695986011495282530307378822240129738812610979716843083157044784503533250896037801860309723983341459198419695591983348702905833730549128435983213659223353023565192370709449114450383472392582152511182517394120543796332426929093617640884894684152442365491922261031872092742830595746997627754170569541892698099664898756750389605564781806899209337448349568107336529799408504190663389408431152910979697812933418205027651143137004013890695657610338905961303054065558895685677906915537847984803927660555051255101643382461239256185864967478701734649645439939464771974037491875509911308298979010225203740476126221675759452289459838694981079652051735414554531065369096062142116070397615902362711289181328575441124290562933239503061947462590538320349971295797070055078497058791392428486224730740378249882543044752163069425572076851547561256989383745841635886838090227739830933032320944464358395799287058250964045657308826748307694949100476701858434278062035490491533973141023663879598165639847035366036709092187479692928650903345387164231022244644407126501972807785624443391763598728256029807317336441626300300658168022386340548411350076060309493649130796345062859001531870969890673581140672783882573923256196066219634214738458980754895711259814865605462414960401711256717473046253821479280318532725692108533134069504449594623125575072035579917087211210408324256353727926581030820930559654747589648915077896300875233257165530179685355048075946094207569680529454727719024155471424184650025536143972528221943722119985956899776128208225127097917607973407308699365120513953778846245769002312252349966007065709350107106700700312162021352954209662387112205957449595896334780164097544132022946141393236371834026426245636873787228569905502097349542760944701827866763125296405015798417380205512803428980817799720373094462494432384838556326452088335537597824737344367634860441691934386676931832894178554605271335509168807412087078378761332353307006498260701797887264021130809077393431609130674016726343762426454156447835286954948916996916277388690864556722327758827347015860572029505736891670586098496628031117563679991186347149424066192906760370421157406785831664383305458254013825504510366494947782055537526396308475180401561162049678335410844677984014281461460997591478095003040403693733130110226755087588899767242180366061991720179032037578904095800356957957099849011180613775787454325544119588196600997822387630382715725080919648132159198516253683632786778839344862581416917112026303339868315506051364582639860275721512927128998052697697356675351427719596400555855325146629411372858710024497115662851570115455184294608652106413024663710255641936261030615045162521335235705547944238397486050672514337630651090774371848776761683045295818316511884254177130134571676201995429496988852764637325123036819704543546714723858894506744339386852730240475786260193222614218232569176142330298701093459984227004192705298793490886337309137712578947841728729740780196955544565891106068112299235652784542710475709034850301353198639365502342438794491150103421858411434454006774971512689192494619339831854976838328332029504034151916321331656281578408961926814963952652978120860374076558752801850643982690976705223191721111136353409891070204257181192682913511722217477476240900402125345416348448070693596491687842670250129825923578884258470898060285629430089219870693222763021479972995751669956456202285117752162715980186707930438371172035346119680334902284593424800946232435607123868696822018888224142550479355972597628193980517736282142967812870000959747995848504614181130413094363177523907928947226448177863633319499194902411043038786722440172769226673901237980149368290220173564653858252878950635939856112120536670066923750460820044538278206156812181964407136222792389233791915644919001805929975486586992417858192100562167100032905197129416173444472409597855727243411297382447843513980825438438328480746547370911974385430960134355547553181719407648664205532500018422952730391203176340887697047114508776729830111913412868337509157596801447139062530971162597513505997874081596645431312259172089458690528526384681289916301889020664592646294131665170557058865365125147227493020620144713026122679135777483702434783511035924909795813616523841316087095700292488537995835391184825191234006789864678836659938065955369632110696673760537002199555317668541605476768831404768443828775640335139591487373671253586064732148626028839549659953651700825128217177205181287589804499161169223587282407723379187630195361465899273303030519471339132863572282619166187901688343734471928662551251676463336613400552155948748694444023370376421107548473708381418821013979105907760721205276872659344191430371432708713534256328980401315000220857864798466919482680338474658705222952143633454522266381792578373802863503286827960643865975982023790273800907681709435623498437238515491227299353050395984963259076714799582371601885678567521868728525887930050893057323035279041590888279613631708191828197619989957895698662880331102417523672020952050276231070326630639259607814572484327907453604781450594182097115520438101112010343116832759737294642036213721891562865887541976097883934405395205770490887964384037631351515400301831601976622694427931115533846145169622625232763194689475135818832929828376562134937565192879930780362035321373947112856613590749576811627687516991660520074748644565149580295252308231211110148716531687515956020273140653581520933152166882228453552722181855315312972791166804093141280425216622149815932716416035034634421445542852752559164489200601342673428915615183887492084359978167627983041230669041182448973863585621179722156166360142090291924144359629738070647237883275638264104395357109147264316878501757004963714017586293979344850476263921608257918434656431603164460300147771482577237294373550801206977768626456605510058609070147606109713630231520624726962571161696589999939084106726837908897187440727400306242172779534431990604403665588384565543701924634909954865754084138447633501251150910091501294190342020103637572976612697784938267787707075990707087775607579906140293864468345270447546022505178219955302711904605336792604127534542955195972134811087608769441806269820416959292706983030437534359223743251294952504691828378825298930234204972396423475541611918754056086328607512436440274138074424684065982026256261911948105672061878447994181334647356165347905822255887500642521850088074360507901306215046198707988057880308303642579554682539970822634375428766833418207538664213855948952289347383341790827353264828258238686430783285909089709227751370654297553488372239529593900417369613965978455737417722096471137070136091152150891191626126547445912191892316636035668380489689426709904984633484567128506669355521759654231143965368082635194504626342592290140628631606959258123576823113389608254454600090249800460883445409007964200910569681988849825624372008365259272156204546619497474665432324182591867645185736443694265162938567286407221771774737278909125235144625813278338089391897495572725852526560568913039611530015860573582744644794261350158063363016061834610550558077501130779796857929665731268867316538572156022244849382650533559515906122588353218112492709703352508548137061291281878728084251730425939942246228673537128844801336892685174965104812074665595647514428213663983222755181298692954524933609987714729230482831596722001294533386929246373179907103043127274425272607256775764032950693552614225696641056181583843228042927875709293447720571476069739969072085920491647795389703739024729497120121422915216134431569590227755379260171590867408705641315340677844433601118054415999428180704898029812863911360816225413658341316674472470282576862866377059407757963152889964424814208115837064430266329447843084090558534329048036783249314041405600142665015503232940068811585235179779427751653216116471174477710568444636790935078525564727118609499195005911052386894210031597245172266628499524924967320985012780532795840765213070919037941517127748021735992754549483693852549954833043897286931324505999880595487436669038797085078594705911636847202280876892426311317054164259240080017747414955951001065154690847634001326310229177318208949515424419027212960153453841655609481687523043520201693838767408037313225756185471300557789754544736843349142453476083691190870245654680697950091370663040023829363997726889792221392620651782879663180069836656966045676041838358076721295437455631973687931979418924316037789632012547789781858154982312789753343654298905048041165243748530514755204308642344666091452187957582888290385585976493735546195001827430308092764791220636319997949615673465500330431217448372587483481854288805356756476502976166876124842059642263911152764730240326627828940199388362852012556015035462217593879110322460917223814704121111763173439010297148226830158801678121620699639388321661895390905548137734177586967677211649766379251814760544428815074062015465463726317383625389614744014760613942976014955559858490690808383689691375514014690066688540799771680332531867564725956353380061901090932669691899378952739700193009647640403437482785668829062703388682196376003890253171061445819462222273741279044497103477177306955714456443587679049709929931616639667787186129050903040389154238093976656258074493018602951352525369096565212254941304675350307240722848964218466693238767592139971296653318606589839326520391189530843304402417414141196353982807603940413457991911447467648519380899019801726553398879006662319447550934490099205256732122432694761755457699359266029776694865677582686823095798885985978919854423632173192830195120074783423990957449623114425240641702060242193841813165493866627020512954085275127989562238519181973331028600351713913711253183654726391258863553297820667380007513868946611047511877606783796482294283323655208296214933298178211783875618598358829939745014835952118434787860228396776891639473891087910951520015085283191005590043874135037655253217761073999830446890331776448673683307098202907269221126255188942249886375048122709883470474293663006976347696874535678203504396600551768763257461234296604375108144757979898295707209837097785314522258663130032404477250860246682149729167763034721035042576945166089608459043430713407461686952582114113455056569526625611158749056227214448144862603530573498799831344495845636460111977961772328472562320817317674828889523700929783983969118258790740228654340969909249308221115715685727486939061795084468126777462950966590865858760339462971349189096119456150993658101043224335171847893242362514234815723136829221929915821482364481200570823310765288952578269398779483980999453864251127946697473319193032798535710404955413410942530234796931231134872790629325472779615746014330839366307195852688250144168357481784433836799666496389745364674731828548329103285865458984919139057844128322296429060420921416585027179742302921183828947763402558885350507189621886157484631496580857446542873516243401430887480834770527125413177137805699496494676416581132670866679453713839558294712704143203366744092296496126965113792360673854074224595490526216362792597095662266726733787169033450785226220115818398152684721129603527621527130444964194333983700470065691129530416171843563760345095139619581275864403350293630882220444039230997861153512890837058066381534167362905547045860289026699353601061636775366701299241757303573458230692669694783129226191253066114198721851664743694893534124349190362440074199576231874978514348902842607732584581149041207824965015184959763123221312061329872030312748049822273860505358790959741203405526906564878333684880514564061873679122129790783749247425108936177120968918523883083465771316823030530432553444482260304328963744481131834090141841828563312078975910996101294578509047203870201601325381500483671256910156678071078176935457916784599768565954892943227460017813624478471515471090389797841837622797316862687783701788729283806418053564166516092781183126054273787041131857302661461911772004179357417384774610111348811912008263387504200670514987385813088342077383154737727793913356597078489334573434319637836291009539153934911400554601603862380984709055062365018242437275200399030779146678810777570481814805489506357283373483841931189441168534594592196545141681138885481443633538504329397409066892987136842098742275615791382090375718943690994362346155118041339704378938032796720541572828317775378821648775951908712516982700203909253954948520028721826567441129416619561369434310342229330476645776142648629972552154889141366977630385061106340370267171551381792157877234275606895759622498514082964313645307689486118020500366257483599322494969976888493538031793538195947511934640016859728730526232812005111886606383340709099473014406531478218450200576578905719254574954909407213273536043284094097979133205284244024918187282908168019208856602171563319665248948180692499481268623331570290285184536311862927540146814498440811678100640524345927635890684191795616459257321241889203810405284377458617053699643475987285142435710866267484331330964497221844785675159033575662682020909330496646425992008757359548540066793382564465436950981796846295295526157065171233432224088965439649225925489011976607493361745989492902964901690430551539716201090531512254099794539443104191952882200741929335140913950953530006902133743880847515571034487395556329592989422821945687688614122597270188936049346178088624341180717491414218859572190905408491484010631267936039142739173140186288823587619913104042755119795885986653829240653093465512032112743063746038763179860122326902267532922134938795892731181782921042054355420848618040162497385505250863752431948338546555801907595116147262741800475240662089095293363223071006140124497903128538949509210249475346759849888395796649966544637313118452992607248215947786149561985625836714218645587675525485184735688696507353641883210456149711125405000495131465141355167901619638462701419082772464858089253332690526424301461077196149236962423521459258887660398874855375790265373683189196270332719839812444680785574775725222218952448678505778427659290411915939744334368753166579143162170170331394151243643607882385052169098926911567132643769319430345191437225414439432571896536460033451260429921867689657723201014930196879918664505082549355669268087104717550442631316717272995034043445502927695106675833619724539683236041103112931279161641682728713561611619330064988799642669975209229242205579303313102604755533000834275879158051619921605165614954394858566048459355463741582125981470703269891479670117670328678920202230358270735944838924423603621852407554971803638650966156992730924007292412501917478597917385782830188024517614867220878465697458315984868265986332984749910095215064634463521313655748143929795379019311564833476438223417982171024812814337368398129955752831380600469543659620655938233628214683402411146921287987246841124679412363612262913857025947707760977903621089622375424367874988167990202857477989746778093532284588683826382119751282583773263428830038905992803384163012784907123277929962386092743599724457063425453018508241576735955584130807863546882567685565901970452931442192339422736391124361999140575251752971514440312426727129915471423339362467352396367447320178140033939369732072033587668078237398883225838751287926136523533610636434736865133380229120085029334497162271973908951635399727677610147089729831576592784847540057182356389419737908413431267968017550160521987077407667477970773798607827999169031572846890192385684731584232456581607384894469055808422945749831589514946244954102253064152829380563088811705128638265925540844590009261018771022881338108453827114173061968010201402737001764233583823473849410661422588704720113485129636561185750912412871902018501961817246899027221560307335292456096736059430377682439905327284138340230329874141305464441743173576492238272846636334354946481150985780006113023163703220816205387423342874918061208038952449725733804641927801022464211448558728583346527817598514646452903956697516369047850228476715665689283289657384760663112523295178532184494428453332397611627125002457646409610966367785289754315685062272019111694716222043457220261709429097669036592080408800221762278404849112867936228780345702731093926699281286812294494898354139114361510368643455956154532943325365068500214417285754070679907799470964850394894793487732276701975476724489282957420882301591108761777215638673512936501177430522983348598626194218765083992810992043650013915220348060331860237615937118599147890373879355796988263002096243500934640355342515496737289334858396540939142414231490231511743802392050538075476726000323933680499942249145862982357613385312927336664129913593298181915531065177348470663013698272155387361616097913668079978948655065687236130132539305888972752634210534346803868843155871959928908464977376827267291653944053370599368645194262024730842836129432550718506269929112411808449330856631222688473147133739611286077369845674768619040080434132303211758237574893693959781636456460311743432869118387150638118371347008892122763336685960980144987219308865056209881757501620592612122291547382404218950115307261339064929520934126899303438280947205535116954930589754158949537972069621830568433016289317516104248448951099200198560199539659881287761414841224910489782016027372198618360019198454938724716217385795393082299114973296832002316113998123786418006778010941654019841589360973317458015463710256573455817832252065445745974159111007281408101118825806111440534578448292765784643608514339075995627922278318741471326919290918962422610163022284724458020522516109066136416449531006377540321173208598725398958539678133757568919856244042996316471029007457951277353534996204107903203405034446778377743607421048947871936890113331014798056195227035794634268648997037966138463848914152322124506525125844060398237096638061344481385911457894654817435164702569622339061851334099750440365568646011733276701851657763763029500520684764629300802188943189578394384090671813446254164858921715572643424013912611928733338494711064181968402502561592323698870665906817039822875434981944832739614166485491491970600115760610546585204714482682920282247345663007052241197457800705874163709091010590504528443720841984599133631038209496903267591326428234275075749056644098868614871045873112330028223513511382622903514355399978838577792361287800925589668619003505426733511308629398735958248771889078962020058017868887018141822508242643713555666335740820714277905290321731470901651395813461759359525192380454214752769238834596627717468230106728178214353568585999477984724737563684519183478128798370323781684723335658437400969868177836794110030848732187223481600876474724614123996388558344627108835340710650610290914830599304829375561885506821798702852890507720327025127898729381453346404824123830645502152258220744270998896378830324188091082554799417133020582828562087993879922509324909409020790072522969280722983605969720253793254453263393459684845128073059423627457214141856244826436394928017674875220451291311197549721986909488323462189801608175948768458791321648378611126965763494646300066536510302009297234691998079959788191822015154105542678253611204644308806767347827754793435671776820071190762769762211771691811749736129878157278492184791670854328022009897894567029343689721344568240009246057118126289700675768445089853588676487918197587951088295769519875944924475208303169364736030543477445161539987596414056546597651060552923033449936104701511340520920850015569357977261890563724358704493251593036987614941139377385485574537671408879590198792844846979190519317507488847078679757980858389564463441473042397891678826422857957196957918288128832241891050426074494745266026573941777901836502405479750097856664363750809682414085853458347972009225629911584780344250827585513858897857640794213166605770535816581414751960093196722338370063383511772369233833721697430266793000374744107152561937614389900921695381001448320925128800412854884309258850210179866834917034085152747757570937117307182701098767270941926942909723599469863104549413145022434723582368790041881397590690956823168148069003620846555622140234843339759362269909723582346465833817400958572755554503052765964289730492346787526017462502387085477969755381923584731741360586949645528989991128716841667965507788080243211854590541253008802079489451145565407110983149938445535571155987990755932184103696455230017367016989226309878142391374348290828935048032982257509341404784173238827688100301100829382870274821601090186038586976183498193605878464656770521874150784445159422966204221829514825153599097845392649523681664809250264233129257542313712173857205695586154862155569188114458554176034027416929118244008500834210954625011326563618136602781736526442830817871669277455387411539591877757358032030469654391031159809463946098333856835300292256468882774512676355339736825395966079015971885991390202379204739356822316154340743733335389003803498330779590611139208429781282911191678917313269417276285879888775489895047218098685718409976520159898083658387232928484039803645658264088991362679519890335147797014167596810791601248145502666553698493665133343145505289687258169550789835542901843062005843051662875784549384885173354842329245271502929695716871835773589583505003721238891581450328843671285555529863884081444377676661330478431661214475753348896619807570039019778648984582297786820980785859510338982053460235629167192642930959376693204972503681075877087549218622349841253257457887526622845108494516083292192276529021819748769142646948370517201388222649582496750091533271325209300979640721789290199267160766559582259682844269263183625468762773309977139841636190747027143548053125292898363284734680414560916686255762588126559954128428472572338389918773889198444382399662129504870039299086039968885897531474846072069320724097276370573422336839009806505143171056434264157335145315588916347473465365450592681509560262465072388696059283493384790129604765549495294300137092991291450559856902876268073844948325731384587631427675865961541853213916734688929488113937765590541602145388048150727053711048095925390137772977699644664413361457700985234166415968442578897855819089499417488975941578711486789149885706758176928538496542844284034806686744450290021824952557867702462531845912136326361325106680891525847584715043347398864808311530267828238224714872079020515743306711341087694942233857329857615747842252650544215959860064140876893243908591193382130396702644304493815125829016086879662986587581316780412783484512214746692912862117775612747491918393161680845665231177796656155263439280240073579964392560502760842027664496964487929608640541510528222860372219429388968911016170006899287642945133302850458590047653389018073685786026790631450172371905986448282502115399842939131849181426956620063142275399288123028162939872536612989411256877507419092866396294649730121785666029601678845030612107590516125482722185124151450200055527480812450877322441577780911943836701743219156531508187172152531415456509128063360964418139945170461904165358666489092448135353790892166746081366281187901351910788555070789084028044808003704471674402006804190069267262486021027488513779870621625599498740013226547277184617803928433422914051382770609050924938596637573534873133739330673856308527378930643418201322308353073053774087271472545217258943922413142500101477754153519350772059352202926545186188254217268401538226629369032625340190529689427541623929404147876205705650468113002451049588398710011669929472006070436622370782241803103248686235004764097359099875183377131524675948650363014643304261590412324991311894090222241872379623861581740947250577383750734448698880206883114222615695251994885835468442303540504040306492505878963482958106189956338235170316358903472340067887479475803812754313854172981412396003461014414994805499640547400476116769575367770355521143687081401111773489638124584936592035668584617860620418314037018413290722650483815978985735878253926273669040200751524957947722425091832093912500320954290802515313254327567071433334186430456201938247881351749171599291700451675098347898319626466074868445369028431503821635235798526541139829682299441011890264479037101361866535549291840141343208474432234399729640477312848810043807659820803984361003142309840963114191709836812353300299557554521486304487416988639478627506805444791175027413083989023444638726583539330992284521234534314564630949724059286530923985138512535359188725396100281004622336538788157829028426472618967288071124491891531744786151989681963138674449581178679015510900374456057972594566162350368536272209494176377447007237650606725238940018607268572170011550548092358636011815522460338535155799212620671124479263739048301638459015988767101971329069878233634160823355531383704853160155022826624160165369019743278702682577232954641335839751345834028931323374489949957053576069378793414271242305120069060851691546086592315751415597081169607679562951500278407565381857942055077358523468427058247764448268489549493073213763282429171992413312758356834719237966194051783529216376520130606825128060920372373349264838177277669493506762890771871202065069689425244006468044624063584539298786764161262813126970638700650427737663668023147360460768752067355591704245713090005634423397483886005312446064864502918424008956674592732698226781137973808409217864541020933343573283506731508685287603510793006462731689897976868268012796457788369297835485211711152992522899088794642657747497785628372225424947797864127912733478689016974304424203514885037187724763339655728858947978342201441062633076319954997829473816462698069637018355379002125165446266727798951059210931440610427437201009677214397960374628332055233953864298146151093400923626104211046327306150904565428222280065752993309750803062541547731615695987943066258818842051169484702247751670259745051800295825041173433188997969453680715294450225684064004543611277250724716652378060030065496749757656984374114587930987039257422648089720347973532503529547653132502521023026759696355683458304758336263737952536354103783115562945202157792495755956067901854946095845683574992798110700789263795528084848283111187334276905378547481753476077448696407508967127760335620560855120493508110639657836223097399076351380296803324210074378721387597360015642091475316626151283728950885476319053061782833149511551687357047238747471456149877055356200325906595857422299745081174253911554425957154848876851659752161460342079329932083555169871788087269525159120132312289125457641116971135864585207386835171824605770239165710193188810382113588779523296857844528346526827991743590740120324384889455542979043268338447886249337815448643053727998342663931936132655257870400805850531417144416078446269054267154976865266975380678395752103229757115899603122871582699264643151211915656874657734214135792597868034296268448619130670230590331593300974507215860532629605685921859392172478900095013788674080466407188493794855021574464767543502059530338649512424621219460091611612095626270598898100583849999626005422245116272769150148373301660334767334047580419681827233223351810898797138304155351706145770009873539721961895117344028078458861414231792240090826851798823005040970893768078930138109536149672598261359080011862605999288568586214256330150230142862111929898261124187823108837409538001106256761636792928984558896861607282613259128958926897662428268759079858854285800313921984568724104506140741696074558041716217058116020141306315967667927538076729789666742203974587607714528988928359459432863655964481757761662856548595539929624998569517847096295439178908130194043842175807888968393238128655613767388666184213511191113043618449265000401412431477191511528789915768147635801477101656278474476204164345429601731111199554623137390631808142810054553688592376516152348228857718249985782592802089955777019269281353878757226623353558429549624881765040444133236491601132595521638423412192707788576351901566837421558296135991378061659455390112858885446215603613949953279539129432000644940479210702876685072721918748547143582656159626564789335630242944630891254258278518831594184622894326161895828296546382864314114410015362830567288357530411054208069103558517109796137110018444646076487786670933383712435692222002139574406054585282327101695148966644205339250723241735271014231385395180103254935580846832062745974213054302577865888304444837007933315479605707643447959938671916882302732555208181834735421784741070055075767497444552090505326109059058145740907631562202903694616070145918520276246352698936914890377842112271010799035231618077734422588618795469383156514448019964316630751942707074865334226016196420644353712538578077390874647473025509159451892763002943673072120909141031484839663922093341591275457599033714305814908659646438011993205179439003668242277168999773871213911254470865953711750996801423538786359016075833183592005040643169231462987996047551535255770922409402534521243864408394890232874085566787451436234821379319138612455157368163105446380458609094309956896691554345686879342076533752446550118694242335754141156035024773224192116452485750993458106954673539564729963365174774260407736036896580366135604840654991479983962177283047123463590026740670574213502501705661881129905672737503056481320189122943193739154038468481465125049054619271213520935092043019695473224933037019754959525688141374505945263187029185393205685131257011344539655363773681497737931106513700867360118856608151856489923199819845868684453944103166649304697383955302621061579475988571242769689819590650757515411730720878930824633493714747067901060676749074197878571945319354981906780065222673208520320833799278578827441866596056559961379107225045049151160703879389234926866022634537937624186713256134317121242611502012750465626272548392354402796706092881387113636880109867704844972428886022319246031250566169552817866853607672755950984614821779092282932524198873216445763685355565768837889459942838207633878673978706070313090046813866146704443960327486590712409269520907275963814374071058799878822664277218257238492371229914547934317605114682116484087613331464148078400596067045320446728603250198290485575045304934466277847742199595664349514249388999867587311023496929658584209498568753836228675625588257890994980781129373852391830907062676778741411340628506752721210643449883594173647122223168882002489781002405163115957324516322388091993370415796228910741073444254927670917952754523018456429349740671661128682515242402706208365820357171109321121549961851588695435099472760634801990386599417241143041152326626438714159785862323090346424303766440290916532591738080752090798589469567611817968615108841641180449259277298264838849530549189450267344218341488312799604048045039223866455364403917030844914318084028022124808071263677486934364624897160044287437260144661033373066129468867175570505551740245633073572209589443503856901989675769210540215603219202905227929592390449649964748971345501208054013535620861400146015465962347104878962097315782678361766964180126048116475171616286965241227090247413153145489978551447013268960522464804500383036076110716321187151497219513726671689987436453518232847869998206918696520753099723581770710395534700787007682757539080077098501251827017961837383708765029570013893956568163597189406947829811545160641761192974096476148726598929837348034432418525958982201561825780548522488390093490010407259273395636820689976310404531328983666003903213847000870901922529000325610721713478263385470364678579798676005187019904505302047773739474021070662834386974656038679421702892498605121356238732732671799283915891001053345284203248487448994733695989936454946046551267333004822165794523453846634854843224275552961584521847394152088502511775686724435779143936917387625522618867424107730036476604475584526302843786647358886039295048191933139264824468469142259777402731432115334764133253552475019481622322225585583134227383508710097834512459043179015561852524323852097401372135931669246536894060832227325477193946557790342334124958279402684879788092233217483906994815760687167597662786261604059673173281005802768485519339296555180762615888426540500093702643462819563946987627983262762277088049779456834534696995927091706588386235122932993772457609664501263530731310569523617995087515555749553422496250131436518257949386891694706913225422416741657708881756509306759817049937948871915555303397914094927190074323447492885783093554115399301299683445889606956773936492397544972862068283440783150013561410884279932660862520944247573300639153424556140487602543183990820145586155562039476863358902561348140474847712434340244068700597077775532399068862437190150872589570042210339648071789220197296703690154716180044850322808610303322602142024424593255812073741960437422518137291401006109554998615430728634021862685210902131578834917463052243836068928174435546363245990533673099987834866328039216674910916847430872398910159937970619188264148692494744804885612857540610987837444942233080116580925940822277925098888945352748885500376324635322114832560613406321984242761641161195822234604149683694195891392024338337126608572139205113611806304860968608712670995649080917677275278093357340711915408255895432146179516522930657683592027095748767237107470317382890363893731939600535469410724426745830210235940295642355668897154645508894413081640668341105677170714271802102797370283360466413816116545729957115361602361868642183955254592510554137290981797547778873883686634948599903677228890231134837667160857221403057210763423661202366587831495694995903126478972610093811808294294032905652495107186755613131389975388839674125511749844246528279692991210374068281555539790410733964028401379662620437878456667325417541172473784441744336272532413115108654027810598385512644367092897764848383576794763849884764275403052156835998460413462117369378093295918300909331137944925877992885673650562297012328747760675548789230506785811897829903313327935327293756584664913008378877258569972629832157204662679953784369009777156743624551526763490875312624392127491501839831877423742998030139778543152615958501393343923472823488531014142483426039902132269251163732613909496092089974057333603135496513577372738352507158839334310513888181899090798618689731931487892215091984735817245316503601550528685196677046836741844039556502034702483619428856998731222269757459750776255173992572529191238875448805998002947268541016641342463049165467297812203460010802868794992133359689021109888078129634338353781246708676372298462141990087281590053989766597926386960080232183131061225547021713244626981975973606008769118916689982060756999072099900921926371565729823868240377426736357992193689750094578673443638621173595006583801487320961562683321952244938135502081948444640062590701661053476498240249409981658592728700384358760663498632492841536408022176408498212768143502022953494336591520821899932653071042260474776428270104969722104021434903231650409237074475138782539904742434139183596064720748282175394901553382098319334909551760700126894744628652812983646514351769504471975962012778198521399410246221216610492149780659771396679283705081674152795695737428422163852784432004530921828149658892551602752695042772340382142765116525100437558412431310362667483415541717525430995742006672489985584732443995589440749161852410748866389880303325632790608258131402755335243386905911392089550372769778025327168668945210503292307463962027668638942871390419342462116373698140336236190313047448969658310662498103390820892225611009553263865950479213104070123221742202864328316673109500344599305818744262745744039633434634095842874831196776003284109155497527186371890967364995600024568992027530462160074025106679409773967263576742380101825154654818784956024415546994332148077382413159837891666319702645899287084417714662909506419230637419996623053798255731080916657598751836649080046548647562394476414585563940677875638987209875214512966800945793637877412506397311511441766963400897774948492857552210385196143416556103934666237991531199323814296133348153271942197690522393473555239297946878409890327575221952312588888872694738256107787192738825212580024064451541964006914128851333384504505042157384759898098502538879309383286122642702452947005916961261903662613206135089452113213519507785854311087100554281879623074435925866607002360618052345521927900462423401125417955406469823693199997465711462193978213148248412725756961620979529365354231373655553097584446805257266634121449874643597913881139084989536566771570347860753171458663373802274046644940230027824516768497047041074640899871823617581773670846623169820936838194307377398180398659521488588801903214648358141028976477596303098655365075967232878595605774510403862234397055473213305476003810261426740799665147931216097372866776797786746109245182306391127827549197411892097377824592341588659707568592163214258701028843774064148979123203742804909728503665745632808436680405709862344627179026681163742041428035978934016050393335965680551564733836905614279926198907448699535991778146874110890006156464157016377399602267337106656530156466068719550549272435038049323478074986740102356636133478122769244187647933059326186532204659017584057938901761925280395399056625231914499379028177086345325310573343641468722169374417306288767968713338772600933809440422407084305314523615309274834597168902968334468106217344224681154747011213687159176748270826855237764897650596618507499063244008596328656184865568719722811622183845550287246885271416051632258191768603033741805668094092330076802503766747737893054414406466577119107824455414156200346464711504106647291529246322539908034545693125961594541753608002322520652914161745669023842288264689623261932767805274051331871409650249235017477341836630365283879802927837182114292469368657140957013344777275480800921035030636149877393699225950454751814873003194543917788830790863184805520636325209140219850534935826705945282962154294357693269413915215323657281217435713428007470314351253641948714319192778265304053281295397625108204950360382038822113899095834979408423378033334197588299719076516166317371869286400734086963872923559616595758372069400695663077912831879079997076921694144842335387709440007908449987256444171972577801518829068573417962996717914835675168050075140288013919470362940135759291873201709397259957980895025229791653409807865133724171204433690344162044700961502437397634860250231684051594981262277060223718468308256881963040051725399445024998125341981539086269427876608175143373848720466360525963235189283917005713616471984045768153714719544724615129273813397178912682874135181530582744975055316655269110612301136028699864511700486270510987232187726633470776327803037729350404516078942226158545952041703458887617819593548032810809524761139630093265984922432964057430125182445279275206639002807395133521125699035793791748605741477918309746269074806476284309958937827459654994992778060764891040309565388913104797686024655619352638335946901339214014604438648355794641176262275721775690898522006151484174831223098051364842626678042438288139802402142938001264232021362248645978887420491927711656808184811142059823132966900162807055962758771769399934812868082813382362168048216959206959460949661230091253592350590194794979114088351074000459705733845993818381967285484575278397705833115441180146784522759924920733267453588850717745717515025894211925770183389551739098868839810816776204300671354313554170236599395364032244360160592766443492674470221236315805363008019739861584367310934201712086257202413443597530393629354674778347569640687869532031595302010249293447998639980635749668803114910292900961916613446648568867691591643873871756490633422922066867911449448640009782431865542975457697061997119598901638787863485202063406536887183388008670029254382312444129857799225763851810096086133654391273022705518552902890413133093624340785866032096897323841677969649965135183092261977944426253070834044231176459828073174075581413662981098682633029002192363349508923429382484012399755900164750756588106349389160236686452625869228427261057336125514764984240250084227349230411349010150747008777768130948743923775217975125660342025870961165575560170296755986317361681826799541003408181018773963803916909871923064478022966520695674405528752140538896070540103936753445114884150403167983854162498732389766859105256453822426394748002628636775854423920913811063329984781811848542147665117974452409794404063696641743674368819832731957406331986671247684898765205942879403002803060048565690770887196841699725688547694343589050669529683809879471587002035816935387610886764092250924346890588635707389088724405692759483467421776439674518559633182819717893587057539192956658549677726210256028386848467055406440815221173230105471138344159359285998648231821562522436343361096916670347028068232747997442865964277232166492669567779099350415409316572415239338517605924889208269430627907351908371071443036898551482482522032501865192471076554879413495752016601695798658184449917362274866910231647050708964141119449824133314241019693355448249875107574795034981633811315772792363459408905787530689176381320184459134727676642982153658358253671069786160475525221249913132475468962134480118122422583842759777187412573116357442974140362852042457521714455274485455035704550300837740911255965658022540265204661878737860997961285891386136982204083510652457106342943625388619452530577330002810801876085872618351606639940098550384093099663315198298646948517208952671658083051411757178400097310760621286410057656989638855639902057302036373441968746497858014701922979807232001859252402792046829034590618881847849118129406518472341526687583725002098130219755288320817096178142595668952116223086310665938325817175388768937693508315063757779717820350060879452418631455104995748312005849718353685638578976128084641154093242349892791135688539170782030759433573761084235961288563543291725484983167294058189693616280659320791461481209952879664015520939069057762070761484425195291983057421149112059389116831085348140624298250902426511887921198179664994079776037314518027514673038843276307422318852188712316677853973662895934671056360762783642394756680386907683703862428530207596775849595283853609822179702702724166457748114400490861688413382539538342119279367585923711464684266620661929737629349462950765923535025556871969499256322750695300172110490831093167695869646159566850484106795179806250871447385069886755787978035335800722440225983767639533659820764333332588930539742928077770600624808463201559116292447629530735296043286853622640421229271239625475881626551228492815450578181195783586378654860012749579567463769108210179407643925042097346292249409235105884359335290697530318197236695991214778404659543438780417473844305316281544395504621349810588882282298981495503289209914614841514193391836953789600902839790711882988208144736320271768624780208931081422094184968680825809360574505002708192311384976185864016309012938372722309382026010204160351572800988824511904168796754904453991559080550912045646270279314531689691602647851500126767962975825065116629423974208287091801770446335146513754253811937660291088986448635565998832047117267020431558155553486588268811295632718633462683401240536061765725704992592776780173285380750309194999155639225013073680097887482483648697522574562784882187898732935622077919093232766145545025292839239880095940491386030336354254761705280187560484897073226722756787061824538022465282799497604360471346928929285361948048589302925203678770074719569501714443941697009715168380959919566030394573146009837311358899932952356095185363692175484786719828908245482525403912109909154175075391481367488871869387324836866121911024888084015289887577416494715854317833047681502260926432321847839993254889239444420141307832707298640121777416904801920850992334036939421626374601013521369447588236762594051455376417657835475014994892027215050281253497085328518868189869900533222356279727731330575320345361381645061239102508606524268114160234281141749136007822310904127175953150156463497315388267062235042533390040205875430567282142470728506772763298915467659208102479988766751243744784616635559504613832691817336128876514708949025561979207220534063019668093301371521399211385606604658412199101349942467451269611848218934204053254497602058625416709604416354993083073416573666846714979023042642943341620190350318986577634771379151716288405479177742432092056577588961605969666426805277354349134793734320655526891344251865948217405536094959745856778914117417215713513449764383974117626579335297495730063960840390049836021944641030410587443830076402588073279598937280207591226101593013889403813287323471948021282008819239844757550232399450136750402848095950386750376224867164416105208404778652861272390346370591504194540841619432872941352726314166690183271024648817616625938572066494183002191837952821035618746669922867626255692229892218357235114638435255507672528229558829364750939987467898478426027151341389934665479810203593925641053418677473537914062306975744381066823259466948467866107234073442134673967011571348581559526386550732402113075198177961660102964033890941609693914368408399567063049894465006142886557602904607050788655351886600502431996834149305023697396223539029643579896514801903104503201940499793898811365644109449340564575346510686138474277751175178444359438846588375175792803804405923817546548964853602640436336144294189663154957082305539149163265346813751835330824354591481669400099804098762204945138682921973360588481968432348565377739622731985380535777678263305468204513589424943588135400359945045400418015695815728305903903346047519464120291280146042672474139910627792011909001003766223746821119611798473098433972856834303621054544231955114384689515760828737659777994533919977609483666469784019385880824578102375658615459562447304893948201073523627250525290058488486015574964449432087781630331469822173932709860366742089160279873746003314979673513873039294481155726343711078140203193125502637617425631236488441490317009437612036688803689865357375526589171820657607153498131961646839827483767429155994429258972080491714442066973687256658801083893261223595259445367627642708524511060938883676924467377172872313951822147321721621124524360760125987742452133506947778198651851004466739684108079241362237183616607353563411545949743837317421563194829351792202254659052914263099498851279554225638732584706098196150568309054692595705016504989586889798221670910832207765430067679638236806304859205524271708327444488898818551344407405303892790544982029520106720567551580629658722726751632874660935987768966168258448931920375882856352115686043890768280884718699067443474914068974432311836118849954887400179440730858246479634449375236882886119320154295834186775683569812365203085828444283976761010654545009674486532286122014905749667390446086973967619508890380394646980106395644987947444006104936424600171658622549060385554187625589212304890357757128805928899398296096790485337505892013767629745070167058868657695714874710342579546878982687566222561532532029399343411875956370933144387781646786162837005120208540463862023525938639258907037730950409054013039289161496082113833003809791712869174556965474970098964538392818719695714264399985311380151617491724977861063738004523882087092108653969144973097462372978067062410201169103764804247767688385024524579513711559678733802701542105731689894188774047935253359941559574886713966535467009931990317026782808185801440480224873437436919472501772880436643963776288287818814430355589913018043688825307207757883300809309251704789928366104657942777594244547161599167571290444613594246338169873721160099808916887340704797564639801350175015988489618342496869388239604758965281183781227747604910102315147193236491961614348056267638371797475288436371006148673820983667711429757414308544506072360782681018264111034604241637347508357606089392953043820584470086633680298823973057040463141633660427931242175696296903875930889892930369848632041156678384488481356167688928712319885369107491351522649873532949058749466883705097351462937167823483440143281544570108596518038473200396560931778324389546610071482485340952339852040591200458451138534317174245413765375790502393832465003729414188873956687372105271655434510651670801293835624097295895888788201849738009467875495113053562394784135968738175125816313622116535376682107640883378996062068361654242781084659029892404294308796015609296397301683536440466254623117826888937333853231551607310059356184600784234840601862201988328127656959925424537439881926913584194001668447301280839135253000464737533252989751836147980310562748596564570963851239418159505959615892829659316506024643788972989469243547725067386777759605779598866180118966328099727650216409541891912543446308555664007305582389399075773478891629919352923490625215780747141955285429398819952429082118362741994872485824657544643484172667901299902663714287530136827169623108037430176254966670058077916890211751925606760460638263364240684501672534925247556000270901431926205115590236786406546855955324926750562666907909328340683810798314107278382055021132674914486424631538687461328391435240153994279776449825585643106647689139502402070993291466940932548195446094258317250306626569332472856025617267878359721729989240113721916247397220462767283922946810399437009920323433548110187251369340549223442205099776980709923293510265709201796934740454954207971568183537242445298626681117937877432798900780746656171503687893374825302947428521660485781380712204455367404045957333607446335079234856421065090652847813185255650647280727120884764071303206322860171983519433343764406691633055370804837742790335898385102478937559101650998852035279558958506429627888539998195389176382354344735348576913377601814588130032032590338544592920145016699146280760561910798912609348174160011101883122375565994175987294688322320622805031474581758370666183274062077382762762797201148177689943211830011235545806025727985508750875250114577518370689313381020214036028951407116224800999171682110587196783827676117214022083105281181761663007871177554580838961851321079935495836591956668229156535831303300081672242367854163514445311482479254320091345127160703136033806626348466475698859001339286637189454394714345904022631355990565766581526415544980025292619389859938094444261496121563255470129164729492313835671724437250873918456620922793665428308106811513418802238833353008206517776578310990309892407475302281134058880472489051087246052124958827401108699612360605807337663311601662478071322674398613605724228633257130681068894511038994977634319079598375252885999504228310091735327213841928044020043206921057017644091572542567956541343892352027063041639007974508326378439845149324183390571816644910737458543019542259780322767842984499981008159483651247291470887196616451779596403453312773896114835542654469212827757919813803390880089862278631159549954193592451014229870251787345028534526708137725927388589769667435919131612519527858815800851798111614088178822845272073753192290055271817957885465909450252068373830569157609595074793908346459062690910043650548171882522827834917233202552788170585129958570090704455992253385210021099373212146398856001612888410948608142457592816111994515734692407494331875561593685654282458146825184409627144872251014671807104952404255836317963161360357343983188873004211880688390368309398384090033274734953964087424759853666126479232575170483472496485635614018293930864862588567859135213342626638330084870862154857194972704556752660728122607888854927046846822128489568045935870068098081597760118319807366860719247666579240074988188368488267511074785913908755702811389692682020940873524941302450585141294160268308117802890283677834515134061384312502061568361497005367206057279715868124549495446574799820393953680328591044904387658268084500124023371323336638713704685172361740477177480644467766407636279567287951222717340368004733256066367166069264433830730379449406177026961039297656337873359762658817443963440067300265915996854778944807960125226110064829855667926844411943679214593576813227966643151635534614069586851120530065201777537299508230771911171387388743998689624916864524715031798023570355372802919231254363843007859415342503961260017893912196178933132358887380466816367699584411920036965917468825325433173479412093506626509423215363061659529113955386247802284919318447550875498193581538970466972307375120535127077902821860642515543121042153458185530067192111874679548023741402544088824989458108024117221459677059940487730382529178595319250321264283838196707822866440821094349839814105711511579691338297076014529448372087865774139754230104176986959555366675289904151156828691406100650132594064886954652341325137011849894750013870321225102666791854409230302027433905388066685073554265908744596748896856715612556182720333779442232058154866798685266699181048415997236358916598258621093284323856056840968078764748111174953526651414956086694755711785469410761796950753511603815341408974728355575129556155063697870030222733097338966214944725243220934543019178889004727622105940118545523021616075936053233241979915924979878963677550228378235069309489936090824581707634660091145212000692080363095232384762163486876425164104253604434733990319157615508611487556944481874103931682337428582945177396858765793389701093480752358576233078409605070937735422663398330905916278263893526780794150088929975198942948870225139245879935845002641131563651981277843721871569887659682420518994220777543775487027408729435596253998246409658201218919817493908061510658714894832826886355100276334706155732666561390331853994951841000586322151514936825812022320683993705710359976860629047545540351534197151109779330522567880738019663044793546377235156862648135796893728443372315463648288755424871917859386250525040634083954916042966365345867808830454280872942744406534143259614960325415496639308970438244930547967887666948410030978391132412788519588800149467518562701085305303561508958983978735047233593875628200975125574591004325536535367206564821749911459280895619938552576418085229387173592398667731193575140518887205341478877510118623773962789930557209594190322496631906534554796223992931590898165969186349970046177225016806625623119692848835993882176141219865730088318941421709691281391031234868339499889481485820284346741363764970101732634049579996209423466211515663340930342681374127493692844308003655921705913832546944656968895670771046286095402198920797538672631322232791752892183325979960737183037818950649816074945387826463210473799964433837903230123747900876850406319995516793362668121460679749780303272508925028036365172840583162700853348104581656262304061672362048023779031178644653567107622592248440856596177934522391175091117892532440529799054564369670532804865025933980705234413497662647764777120174715623110124593859181200132049246904017017300110476513039013646246866016067039348811375249694134369798157387133490230603505318978330247066851022394937138391380050042309751220040798901946889406389611414158278717100609894613923521156539806101150424187272528700765918623425180103739699903646175832247658646667059679518424419084991389968636680923384943242704301922950942088876680786140774931878876793275305435091874115521666696354372591687588013386194572271753376056576131667597233540743401965432228519140006981454982378642860357845131565297014885217677450179768250154955814446250228145783320657132290945700031500923115851445749246485897294895183570333415742989630950615527497553458836703528137674679997668881698453274556204089500911449834737265734330874233607096832140565976613747557723845755153019494117815870677832280420904685131150610512638499415176468501256263741696847200539502310139509129565881088917946752596645240162801719854042481793877204432862012692297595354478967067141789399923757992422979819343030616794709904647449863061015019042922127094178522168449502138629443922031796552452492019598975965498334919119699671640048229114968106684070632219333580501236808579393419127943544754804899795207952457332499620622846774243099363398322512566812849228430033590928292731430798458026852286022383144803394704980388982968651947053269720578851678055376531333868255788622022070841672196460336864022791012895226160967278955502935062368401198173067331781776923227656203163962098523095120286285321151242803700142771187096853372345204052341721602701755457318917898621068560156194775224503562171979579846084560255687220880959226693402953778809565105771746899006223894735082310648403201559961462490558674714927730555353898109263885006578958065828504238238893256070530994430620230385029911499892532079230499717396408611617157991874419573194306339471936437427672079444302210223312545175631066198869947601009422307401449114494909834406950892964570895009640183299128580434852086371865278917431171758147421545909661563454627301676613729503418161505398511784721281140793765577444343502868465511949056009813528552483994144227529866381845448481701091027804773673315137408408309453144476588848801157707551413693372603886449565170413019972800981320659208076340637427075282587724310183969720627842587258820088396133774372890204800951274616325828466285415486706078176068212721794382009224066022281473275234904535993549742894051048346978043168554945753282348868035211323680778101288257136332488694635097110206308766986929519096941105874093845016221173988719755696338068108444130599094580010953940422763235967683220138961913895274566455863696917923009913021258804402779238046645414291278186790468053782157704374217333969151638046246230268672876989780842460964500396219122758682316402887103655317057014367328164786351109646200704753765956072558846396757321506939553637572483957973058757410764534039206786654319394164553258464181180517944674696175297480401120671864981562462418512495421267323416541431320527811397270554404712522090236676722842072223415084014890861101708925375087243877697566459118407371224554333798021669786170229868244266460083194050432777233030513517348740192078938850181588315213783510491490597097860082857284828588159953842019555057176804308189486762059189479958390152845951836334704518116186805765193448051810178997969722096825665317731648031342482508327170786007324929612433017766536281966761452295959985509164367403224634386730947054280465351525073059736966134090487749995027129312761724470727629100855827930908843848841420161108334075111379550042721916060142293214545075201802586507891129053724416929947927372733344466427242990945566050190171514032770005130029851510894118050789220478561554600100886453497241551671852072059682614772344973026401116909473593903767207226599093388133377560509391886330400225315302097333343798430274456362333777759908479987100260428076044757143335194458963875883739390593915711920240218881867059106467349156095291027321824236186199373982380541091135097271325540529274418626905735947105090685704347117344894045517326680292395844299200180379089269452812870367164386382674411221947070650314648635912838223381297491558680795380235759352612679130453054595126264046462549582402806752002237926639303413106018464559904071639613036912883059867009300163617574236053916613963321919345086874994717930144937646001266525192129309670380737303576603313116821818813390425458021245997505484856535742130820818180989720513384595432882160936104246647289279887482080548326833820262167753032271925655776680653610701007443772165675589498759533310274117764498077320698568750771443911714844841966677544903175980360601834059150434432143252735270797851527587703970202020421904997245012550282261402880298241215003730955367600938657681379170845776429981781091457399450256012683284380117090647350873521101648026971852607101068263261762386057176672551067105109164053076501042364370703121624653669601024931180150943781715733473472157387276286167703322153463665660132166001278230268060018355979727895888882309258486841563380493608356020281870976819547897015406658133220903589766405715189727994848102590160757682584836641769232930626978652429703128892820851528004418144507236953051236568016936337138307562030972921635284257776204716158456547522879748856081867823561368262245175147090991359296290830891979156782199777785176106954766154249886746624045076611647538101562132157415374050448604099005697327295284804644965066637897147130035903477137690115307247732886494994691130920071128481495203333387835680260890296598528547110400757699771754605540440225381756032537774235205940209120527598658856970651829977511659473978531304078836348112919109803422707455429771639030205487859831810944767277491252588417901803683445749429839069000387731355221040741506619233306920778566719096647997835211894189939367952075018611604985004285582046143397741450530378135946785567969269770225557584576416379871612677181699105033194220966312871082673383474637506066955153003397058410703612129271298302025418650246841559480066786238293411029142152412631808394787740404515081706373328072566499040493837031258122216270603227265878730548468015610569756234326804666772000443721420449303760674182373672244401682989729703154440735580745793013376793171528391263343145049896534317442835852968009282884029821990100231108696195654247870059690728684135275181658284401217437204317611403493128011275603225373019219616935093884146991180777892865840092346048701996525840792055402873520219407998630928803526835649015348991562523604354682989705142340932136109484796583955484038698733570836973726592451301110965905008903652096129037925802262960375948903357464573042028048261353464650592440459806621556375463004005780484095395761839041860269010189464299328946409007725643968219324539792257368287032709720180469765149341675875963045899281393567482478733059145459989989865436782255046544323223847001818319195150712116581236951246130705154708470961813840921895508800728453940786521620274209580981007839933593833555742233198174389867939734282603716367831926519509335465357339114741047428386490460974365454133406397999328270746437251038039664471449577462914062643510925243438132707774317216059925077076370365910613871907632177756183658802405140145872142986497004152502298040092935080389642074570005175226486813442794198703748564336178594485054128889490765213186369743819600763015891660709783262636788398915161768476661295051849609755507865366518005627133836244740195259242071838706596689304041161120799854656033108797864353807085823336293371252658591640275640431919757829194795722207159920862628475381478893400122025361410531327948586286376448338085861249207403111372604280733989789642737222569197698825742317268334483686752381200313185196034120847970779075715624499614334695629039406787089697882336153223028785760054803263613148431325104435849625832019744964796665241206035933294705424313081593853928000915598094403097108686215669731747914604799043381894395098738118577801386218834176062237890158025575706713669092163553232033936346635606394268988663397107807900124944132955120909524957171251583056744658146669065205241667745779562922957803509636654972779281165385608621623468643648366529981348446443630508221505401774038035942987110937815038990843527510147066176825962043599179478147899623591840927665781826209614924480788764387878146000543283686666074506439966885403566265500001062202273221685075874201652906044038980651849241969997634015296043643724818283259200800110008779093944269630240199641180444372570664302278498027294561993419203913748930964055868983145234156187719171506902011028773865115932138894216559620089724380811953637936579953125243927310846377090454216563345913699571010124053443774928427533366595369157147283523676444890257144127451168582160041207961502808108826428646375196385919747844461881911389271925385603256149922463488051430534859918956376550352303773190300757128333033246572182258799500824027400329230423780148055476507812493632800887352286380664966469488182912614077953130706213143031637953302978385326890822179661160129046274177303672840971338901119204930470556414261674500915019929080276930615564755148769803404737569856962736275610029974412584652699249904111371504152041841037619496567418436996350979096116806212361996686118182267741951849228851266416743827029985752443773128242030536618958652531553736748764114096425677683712699605254083078011904391785117567256759715357606090021664947723714998968760628038739065165552066340674868219659110818776355588004559164405100559165113817882567452798699289987708263168391076528696762494693367777224985320571833337583937815797036618412349954691249513927349171882124014511660206575429563485742526436689288223776145385158755798324091474814857958047155830745812574178893700650048825913414988217670455810066822684132443556711519181730587851485094902324224358962260159512841400788611352364371067414357567278943984850626813275582843068328618671805284780790358392906161495169567519683128874394609155888167649431994716033629689414611101690767826916196415745348133313514298451296370771499534353705762490993253215179111567786790761038703975605775445515307281833143740377854897826137392147495871560779525997597820478526186789856903397415570051497938422278881527644145480913427373757974918709688122955742440173095316705082295777170229990577361318096199830864391737890717896476589068010267121219338922050439307226663353847755018812148420663397759348551697226002404148128673944975622044443499349909467526360970503418929219661675145096867660401353324815506186976896857841530936693078822123195076417082987954103810262626089784300443588609574634862673708600192320402527820091696159252976598190419202664703638245680753365313294502975055206466574832503190924650492970379501497343924312327418732116399508145003751438391557436888023036323254906063077104789592667246199487841588282201671967751386265028795435081346947271650373660892348918902009457390384213940032239371657465456941319247460546028789848679555140814498649347923944877697785101360088625855588641992394603768055418056259526052394588093074663350224038549747409634363566106362529824691103023327631706713571084918018769489789227259866316506007672362284514559518204552987961923752319831883872223970612798580757071582533867979076752045339908980691233979698119988071847336662391004399539336061169201744762414398959682294648451123519014828602990473188333342076768298895095059145169484784389050695232374951230833817591286823776152439140348014463216419076621013659013269301740693273531906119269051030412469209125277004775543989005289496630545996677077876978013214124358552490184994110384421559300982776569014493933404694831038217171579787445083655022816095607451827561086190498340580246603320788845039063054455973147545903167424892743664215463020882712574948310954291131851406506535173061505627218733749846032314390880382637421049672950855996202415848675009363684855277761415766937960662230501468567620839384303492531441816108047993409758445922287480764430417393088350696401837570507485267142654389219890442674362501447572713331275695982976598106932088694571389890511222511045980281760011539512033274906786475998568905914976384641674075650677978230266677360290661371238058853814973847220487438163912031944689653759237009137682446419014465542213026458366527386883234925283657454838386076187570037186845327672544199872819841109377771792665236753665548197189641870972545460763904280192915633626601857346650321394218911645477300089567960454341552003907526364712915955511143486122455077083091391503952706213584623702028359464215530204650094823732010753297743379234490989478489154240594442360258043686046346353359060113340475444420781496733007932715574458060173225833707495384378406754140967346950669289709581079381814831420392608877450671531684988291041927550862505349294737186171415658323905946450751420084499509822712113525114309174336255300579582667843103856653729435049777110057059962502228019413152645825167022760014155228245554182666051167189591418231301775929614468773811123471060904026634391916352216230194072976473259642771913855253556422643408787751290014684085231061200109176035952197974261676176349846887708743110471344140469413102373921166315935281920655930139135929907679218481946201205825153699980352776163275903262691468284190045621825580618988083484746271310711818582061178894083250653580154840259010100640801638420304030174802222312326655523901336834088249306309491523241986841493931157236152454342840996732511364962281842675769434314779907726927808543632354047100253498462367131584995622243029402323735348045487979789581264568913964620926732703300771836388789169666403446532776755338308078953269364840304919802905068268099058821285284239664602017808450414980864488580834779035505962208476840900049475387736194006599817129188749119585317058433273946754748321243858073265653234377420088194310083678021941794886068370551249120091531584669232974193539490020566786042811589388348928944469327794536634959850047111651054565953472192363897631884840236390242162782810592840866386096035816447433373643833100859023879748441435285136054468384294667643296901694389073863505043365642587403510033226850589601515565144235560569053521202267986201357560934230799863998146783211976308416998681728323201739070994070913055551216810867682401805090373365114388357655401742880189076154744401263635839621653266654846137265190307344113353082763576139657449206873613580539996153978366080888551329434080286619028603590270864460881281247893221081869945761124927108293616557448598751462480725660379656130095949661480054303098610658433026280943181054839828336892839813892365122444543353190497939200630781672537182340237662042943200121524725298755638538397273760777704997887232663422557168400962806580604759029821116572816985373465747183218597021216925851502732821063799588739507463974258807792831633081551724983442277708576233283292996211363862805135823269383342508289845147774009632910065546529246446792112118929986820192693061923648669659650358719863101276155949607801737849149024421800416199877611754724916852357824445876477369658079011805589307146510972777940234179251807889815259537697910100237875455160328475975748556382760078414546977390941412964708864704733940793793688229935858071150779834043825326171350337709231178069332079583096659490980559459534974183244279819157096035784419942258365942982626237873512208244246046775560419888069728915135253106522438648505935678208423597691929622421694737024255194959516245831662856949564764764886482715637972948854842573896530476970218912650097854724681332518712295354916958285769772126342911850646759542399752941266998086174613346756759555119114956714531965776710307151691591598015744563736204077004651251004313941326114515072956786784489579197023834878567249792958716493479985297365432475407099337558120662548594365591877947691448691831261711615179731939790377747375893376915643000710224189683327826159645073830688794279479576260139604864661877088504555532216235619608574270333064462020054836479987459200463852898814231713048199420697186834697829472209244233496426057039671271387972568733848575883442012406727822776078087197249275805202043070275484479794531723025400236446941611866314337781114963476757754415787350204740745062369535902473939602236442872824132290537215246490361671127833205686153415760084160964052951588258654209876716077310753791380307328964736001894167394505447267766729881123546199030147495813034940638678972262929119358082178592682691683436201358524641979674166230158734503844136344531594562877039975005344856210486368886680728751417855748426808216103246639549560155254847672396312794891335032773974551335197036809253145758772030779035450060014851803633952921457854228215659908847192998851196883057866240802835333839833168583370610666830812180313728674797816533282972846122839365970164627930170796544371155175691062324574600977401009251341673839731271704024281610779402861736159196963607776027393386906091459153369331599479373412091375828342945664497873702611202381937051474793095135956374047649300443680161440358077532814915809918172208980583093816144845318235831887005016896837238672824413247862285553362472017715139314885615535514162234927330676946346420656356280304179515292063952175532309210378783635374373380540321599224489940525980679164687226215458441025321362564726908758306788053447313686915596596370669109498553683186503462341994271628774066162933923417329314868165445780103234999201398612192917788186386620260472636880705877987360633978120553425368310513627039348939445795482236415852165797036273910916518434447367173665750539592256548295774052765171355446506855247630890602697225323043197421663055930698101678624864143936111206461145995983738949502319613715206770530720081307939247784965489840288752901005490222196834823178068005953273810308332083246114235039605863927317858201721352702478523479721729950646789707875868568074598127020933965109346199681048531196968303835913853247358865642320926423632964849135105434262767883686435641979111911470630574527556589834453268986757710902315033947776649977265068295836218523329543094604470147703226564054674076838343171452577753128282722311475005150671695095667838645661030447679165029414728572331870217428148759498644128922444137197187914045015336516176070669101309175485498996446384696240304437586400743820154583479262719050241225756667205175401203196231909227301628408612831668530264972452180717096048056419892844552066552443634112327155334812105033329541538765804788475280011520614852229733815117745114880212208618513627957393689044859491350582359665187728793546595761027206222948144111466582938342612670339302321854282674061814900025212230452679598662806102839861163901063558958110537292464974886705434726519686577552206845584324591693191948260236113141443943013837801164738406520516705418179417994277316204233214943583047847102733964083228639379769037965353526391288571349234214557118309309598169538901875597848384254555014652926882592790474085710617995021385788957163503119466073451993343335372192031930515591513671667671251922196552476773301250663287794218260821493893749788199283232429008291414305465081165070118087406635987220824299364466687233741833626502347997133784079995020946617236041715033400904229932550896200816710753512782215214800209352985416126788050450656265162740424178650731420245934907399630591204683122781339654779399705348360137953056447637175324840291149365796861708919096980824007709799506913023884501640404860299360651691939653974957332578458596643405515515496954195477265801474982297770304802917002590308395329498068317906177184823217828344378739126566272771646528856978300313361691897112804820184252883545139047651471007382066596737327442966501408487290973082211408376263983144494485593608924370364472273594650385012551165974688125831615769476266676215357646403973726639222358315191691232779402805803048803248477810569494042269545815857549360071697294524110675843956447297328817911280841439060895320386032713436555175969393187496610237005375710427346044000325890702189196605176332702669261312046180282320225167798774873512527092801032401819566619443480092325398087698058971802693174133821454280088820150271879615981347708534556261385721857124853749455983379009075554587319736885560098556989105135774145904615306144106238113009107701626522044351945378994385045502847653176216450923451566504601573421509271996932806424005683833361186689307444388476438751217549373349909324164336078295168687001553819583044046774478064857812641013800437767147183557382173507227079055839249968338651938130084756834432905702011207407342036658671236682119174918357217871568761410468474114940561486171321748734449383612867479345783462578458762375337457959838452622082706985891679827610664674012781865191152965002609870560217586433598690190620531807589253857854653100292935479892970654954817294372243216626392309665444874287749322443171920011242191355635706017941246752148889655454820089225357067519034504689985608429394246477606246571607879495463295897026128487314549120709568613346252073604258813696869680778267716519614382593375278341002023554595920558763613679248719701748063760711563709266875472057729938144094101827424033400174721099858732218307210946580449557256188282109971990523772436674587107053459462716778137978507441176405075136913496521351681499283297220124674151757667078315188228803924834420741223938094307263561118810419050383733189891030413484615556558512824725527173919894239311018014656628247958195044702194030670491559976151382336330106317602950395138738192331898411061036063436595535640863273730798739252046400813391183238194317168144755314513345314244168930096386897206821672830126892442579893675438293596990231949889212462254099439250120892361101992518714770891448905933261444722923177910193856599800310865750898518887070699755607972871643696350319886911181250202894772978852527693347814565934639593328397963857325156408044444269486911668280664115232279853116948308574464447825611080511256995482242082346397566428020038143259639200087785883387098115665080425834012946949914259020290213408872017414711552822423343204681986812128525865770009135854768242604937872574184785642652949416007663926657432151801981087414040554845634676616953594274477510999116313315286297879398807937391352955637745120603342032428542008173084624624815904414957903868873294187516271029446002238928437186407278514863808207015474263838590525975844568110055477328847016201693727248919480899340233730950818767552806925539129310291147002988810525275807754301509292988456066804165907090509042492636852251859383208397325642083766986838782842507546802619627303305551904417161984007737558767500803763654765788409241721702685997040916586699675655455207473619931349094764220927126635640768776859106135683918983467307334166578127422452719875317169715106603243400084575637263110114200162243467493392400174974451034650793075471401899503914720929164760447819174157698957962019998348018390210721680728298278594366784876386624619205746028912887668726240927661740870376090226240100620059936006594648604365853228037449598466385027177528792511728814983485374517371510965371531045081043404649872612490114130262864845295389548801073443185872567113221620911627181404861393729680264137714933833553574820553622307012467505104240693168263751648763875765998059691616953497058306678403312745833790150638294384856718618604233153715040821819314489142088279650064902609090918408806048797567104156171923559697839842207788111590823570844407579969655966761554588514835465244921771737195809020584624691218828474479281188401039117929050358904967453088747004111445883541319724477137210490496759283501122286109796007935588600453239809658941507313507224372417263667625441633294652972301484119846820683616818466694997765494022363385907299319873093799826397978970191484397555279360299461949812851092187362617494472965799502566458268016535601003567860161437715361615039667614400766281201017580301194206540381945372844130168001015811134402218790188630482011648138407039933620992777305867731121179468784776409291962577711305131084736431641495449858324963697267038374853004202924381090351601228734895732266906171579587196549998032225526421903034405544846256327415564749960155885008607898329512134038075569542071823711255543675074174585200105944061511662794731053054155417463860330091648321921476817635581418572290053751611413289085223399176513348943583073103323418603865436274631012683667604066970904666696167581907507499096869960063649837893789146225899433392621882836320141724351995467074028991866575983931682781264086633325169678825062081387498625225120870684338253109362905054718065215868029366040673765433953743699047558306213453879435608948754465306254025638237859108715155053190156155537491770427576445810389565473831207412585306517932348332185524566470167393577814088279781361861194079229949394582682820026541269219244264044529336051230367579521341034812839376788350083661190749622459885298690600126597722705800599287966151270422309837874384591971056675279314844960018389829324317012742135842927829823877956057496429533661090593918380304876755649467506705217977605043627548972065955083942552305245343233552723995435912697684864585383201886191437156900766518479079294451254003908053761566208897129223959377650397026796053955448939454078973755098943389244786654079619671847899004112775646933291064799370251700440056513482790680084164667323228242613344010805937913111640365738462081577664059179944443495598960331086099748155860613933233469365738414815587402196916342518812659212433742010019286871175939462449146035308696636755693654718441662667489526682374415685127881488960609302601924776664469427068639545202639233763715289041357004244464109652404267055254952407395535373743239568861715705983483213962081704806770668671066141317707246373718703751846101607154589338092807968752190709056155243854067917375547616580697647920462206645454580455809554804003915177315134794299677517382673092826954949211086184505560971946650815505289479381106968339808590247668823058316297876546673894118182621214801087613693998063391006564800795662437233921010239048699051366713189725461604825530402175677992918038176127260557952997665165243452012526070607730587790519700810565113403324695384113547491036004291328931946390455672557619551641445939285232862995745718958775448853347601664982217297552102272330773863991514598500041496839263893123929091038201128238877193172046296394109458504498518716828854035465190164716016362674177870581671983530113533181178240639483506639665891418718603033851021366705197865524955294281484262370721285248969075002527006220552249500074536152412756145556910927420345513655925020554002091798448659926410192059935224498408315151777154803001051387605205273093725895732479007007286332469220647781634520388594490333736927682516000900175157089187333906850326297634017477136257536401274819808579770051748993593402303411813283119298683491645971831104370475078048304652104852964706174757375370411209137292137017881371351491301115586656369398981355578573364013592311706322045220856473230925441483390108931024987541335402291388043039843832400625020201028048998349163673380252956755097077075370172098523891128208517569147741849963957979379770674021345409810213184344475751522544082092305211062200132209215519634619483724711258978247139452429316148299900890202889170751944606905767422001651974176098063312727192529440231898917312573773651899281181439461694349679960018534806158297616573251155414652825286509048790467660295342006784451961916139177380611262884870711943883349933460365022106142103884183332813650039513055686365273948960723826678230156418316135639869202251978856997470613219962200190825123388941948609818998812862656369005040877268181103665048394039908339471408608375406993828623728980239364728841818598453529761845942321438366237098775154107988813752601938994092023221910572415636014972455267214579092406077757998173356711113774038997945740919421316093535144045820737816075074540588823163985879564125717496927026229069206463288971813912935963728325724066458227182858115873274550484392875628881160392122489972386854559900241113012888420377304110134282995206204371168044465391718835080894477314273879466134494758404872458462628151485870997587686822635472894196843681586532025258833943625334719649606431093679427605493688366175261173990820437778522352646946099181816673184818758967452151964922733488881907122046784331999337178275133720686654399414429559626083024912015549269834545484790989435929818461562102840224250822584022787915808632354896006642845697446072181052124128248583148045456805155359257916676063343972319208174787208627926338498487269926448080066673460504781207285146644015090956601182191378405388849858088897952128117890775999616262777505162240176278106936627325369811165365792788292259638951659092150563431996924933359030428404216915668914991396672210735756464512946655425914625379174273278159349835744329450599246912638011672693424041951783698829884820730021627292995131833040613747427737115413296847372961618328961495380680456551993676519773503025361500494405781930944133745385697611473761246903564784409861262543170142691847385182094900365603464397808581762830089877455829608074285745214600726190964967688137212803284777103283730334447466066656788532868765591648607858380762612785704702747657963971292177303978796164857446969372925994148287377658841487872692398744437439221188295389994821804464089878752147362307011601245191453932903361539954893485637140978402868242265067312214519384749581893675858938332900931778617463713938158105888720765209703237270893812375363873282436311343950447353439725785425771902310526863201868008669417768756579460506283965509341809306142958870399672095331627006742769419709063363595712937475184174739521553033143426038491914801322763180783166055189561329942549270250291001785056468752657295611472540620932816369672531372152859082629934017336401460736147408171769015371040170532720457746771419996073410516425320640754449580062457965692535456825315696898159996112296925512207104655171960188269733018074297499801372711512442873290266448661573320718003573608889624862219797271433857983850442990547598100434112514105869997027222803059284185562217096992729643918975627068263997790883446226252153940471875936507251838378506849007890995155396502352269694903210899051069410765201043841497117265528503390036468502564493167195918779715157930527254235533263436490734788475927399816982522904429279173502382877538612880438597323712980242811122754056433266584683934321655657229940138797523922083161300640557635235561101374785313624950636331108264247827624645929131067101873037320410853140984252046111049479635185001348617750315265465775188371828026690036201569086260371606714434625750593360815132814406029455779703293553758717673674079814476709112109059750617668669626419663528030834170760936360210640596921619766944201986185261888521892614270033652554646480885642053188680235822055239966151406379123399625386087532374741833324223663457959155578531594433360788725186647199650993164393865410312009524775106542861259945771722433725749066625735156053267221281443630680861525437726559778508868436216384946712334611383484796336791277271341325190126861251690540343261564359678135373774395983010962873943355756386441329890714426727881802032057808220080362710325267635724911499131255178840582455771752661277852890241494655753461076279009709335427776591302564021548385185939972442187264905887066210080220604865556546390767694030614970440153508875801840919725936236946753435877872027027521749986436912820881233071981783951731544214651950815945483014511442637135838409007694341017250870097070752571408758394505489414086593836883789894406588274966677542671728735723852117626645958135380244061198918094209824308748550688337957272254058191348541762551130714410165820298191523771366086251608271203778773059801773763923815515154429536275520998535790902025412217188670865717358475073959137238444862238572266847268882404173600013576078461874484531942316456982778490276326178795577815264267781221854378267203886123987360518541760425593316259695245133141645290945589804587349140649207335603696007865338731875586928929110327982319850345326566031619499141984708345732450780160623370605799298180262507865464804314829927470038920716500289553934515697107092680661604972404501480262519322883315931868454438953607631576971927904248514610315582077654725205885919104733733180532675968330105216542501285045318636759846128486020488863028881391262892968609262050805774999917003243436578545247224627760362546699395776665099626766073881117301252700946924672888051691410121349473279887936888037008551261021691464394730981601686477208776761545609818585168191745912496305779150152730302534412052457878668910883786354590796277120605079896883401858085982627944170391344109274120754589103465611552099853373757489101624013136794003471766529258083192824930034770073160643216398128838512919697635739199339193486726660075673349098989377302593845468674126825950308333990661289894274294821515641485023620953988716921986704496679258267192868374967313618120200961779807719280200211836396138653149018312061343188420270168716283711647832333213921834385793688643033629459508578854505885083143353709162779586842559347150662467788702415948873719961091097852628257912057494423001881704877918019795351889290284832493240428329730156150881367665446221771932232844694353416238426938408790038639652655978671328392814745201700006228899998752647280983911028906339561284414376850636708875377034037864826040303333563828322475723665742171172011385500656134326325809115590996724948256301756394359937931604865537928838416042527651279727895015081266984186163278708849799993067948191255663530666816190640155307714270963122201085069751850960544403012873698499954026075939481531729196927071236426621174234533843791687824848436925683507636087444609801911328561427971234001753748220116772427467848106369718955836189760152317651888653995150749968482548621230797830676351458845783631083407420178385538039048582338318227148668980797529786467948711876020526775037452606267033488257565409417631172426404040812522283967988568489588544867744056356786660180693082188849275963085037257984695387579566953558857873497952582696896381368469994642043847455919576098319727824258663074873396532427796523648019127852638625577899196192781886978034228015659351171419059609532979736325860182345756372195559508169805220885826634749888137728460766704153618148968468044265454442297169406219704335909847459577782863568364942603645075983260390569708572973134682503077991849258009263721114886605952616705926170906723502514832185702713788458677968778772573401554378798136483282133782063025998180337240110607079559725524900257192048328425636240066820284683789409693989659919838392551832962302944854172907152135646771679568768493938241981411580573661912831669103038005563863175688582990202058129976531908474341003735895732169060660334231572309449686110536841174131151080962586947881045460914324866583920962910278778381216510984310904757571814398574079684396498646731281422818833284620315963515838834055862365346344904035457288713925574828026531188656541473951899090318037868842896865612913491162129842484332201385474046995646527621565601549048340405108356211317449684258238248517700984709561001914101503010322120509641621277464375697518913093511393356216387007913092021486931561654396659043441862427540435524256929131183570015144474828643322170144425374268227111405963997833173784877814769301856869983149744852796966354227048697638687340333657234247220043871512607491754063328105405093648084705028772219270596146615120497427160724538586332318091715376582989493692367609958613532159291841142283005215751037698108873583324027863398300562522511385276192659005339418214517353557136582118892347379056204744611413046668040652348647830667280186413430111175519110194081131178302785496936662067622337914650825925770300719699827434671571671121342230228121563294375626393955612548328002568583787564461799790858665409493770296974918260721067160322750826271747047797892038935889179550375341888646044012372148620141443406366889338025237874392671364653205800419868793611251853909847809871388379776090047440781563105144125940140070393282653708909602660644846782215161013318300788467798879437180931820671755771856108096564475039274147282586886675291739407914723300794113101684587054737433370237227314507709669355694779777986746608551758916136669760580322809457585030353767931004529741882051276802841469475716221626843367693682240191001529410338866187742065129893827856667456717115727346771776377097437439954128384267876904791921154545900390068268301380753772444384165920448138838318604568027515638973033559574548301340958641610463755407673472382340414250383101434626235102137539702316172400747737383443898800500788390614615103524939034683033377579268669065459153443973236437711483047213701205607886343681831184857288117850713296301413244989696670908989040898494768861594648304046171026112238670550648591639808470205101815377550942218483185295854151919918689431279869885083462693759751040228948484323048149525939709965388552382976130559238954419000318079815927828015899250054057938309659518137728929171372677670520202712570884692999194821663108041192049289705333889858719701069303872049485545169239301652323234091399746763373028447384963798023455231196886464844321524502302144807757110143152878608538156355831995049393294389275777547369588013616863988136352301841331712706095068372356915671056107296200938184603459345823763397571767270118660536994236887042681324580098040031268038998863547451098967133603528495364263324566242812488614902627292712322219291657097139514568579275911677500867554038376041491562814902411816465132815696409100658075765204172238470350300231950843114518453384452777186094224800745632422240677445221993656840086384446763036164519542148643267165157653439422598995616655878833203947270184541790793080752647955685044243827382092150140046615968341413957156819968315333498836436186572816600457549205247716675596670171862912969364950014615504215820391057344508491788438958740203995938809028037951945773890426235852639705965714390655416406589981201058402782748111202646616770220442140288467812445119782500163232191600120198988637995286340560142732710920868790463321277462687417453411934424301622616799181269818756230240500227893770997989516043845919810667468019887420323228225633113613474040120896399522152716771875359563602706605939804246748373113215331021715535773132357963072374550348616986520588968016641073935478829158638940118840528157808714356920396629720398701165133133067047972804001946794488542880999008453943206780375782830381559966311190837984612999329132652226260781984259361068267523133769914053995275757768405756793175277143543912963011646319486495486529675819284325204134208282291426130773648753484884366722714470225146946701544589300331103210734754962082392792502211179771924002190042820757116651488257071325913959864726276137221758532156300071753002108846116266059354411070856066078415171584510372537222944442222242867121769146815335319698141878136715402182879453886900579408725530485399904196477668557682251224145251927522336357508270444896499167104206491748117261730103029112116706857126329983990187925576669137563908685576579012448434186452485131533710440216015584370828463791011548504277623355906341248914326651656684060776752457005076161992840680616203279613555072622885128541756383773048561916144306336399635037168540190433425440947439404859502671433234812219937168845335351062349425566773148044574532204450960971941224832461051669471473681289189542230257602023976872330888518035354551511559095529531480052795132878058182186869239232406264215537997141726739327159441044291853976525475336186629038101775770393144013955273480163916201094386997450133815764871889271887692812857713209880469659702510591923983379397821389586513971020529713607843961636160169416018619593055657578933832391043223498716122697422737136242105721988591796470237788094476927770585922519015134364545110213299409131194638413040931422108603496470764669942934570078062893207729883985507080115851611641860313416947469621773491712962454882320874414375997715465060687816236227733644014241959419256744470299053638083708952923657170473165530453934568414328996596887650413212830703776908035355622720549447419133988710710787007268577912247787294524297421816180355553745669498909751327631174361165213632046082007829273999024015863645343353400157518144483715596520144063002760843778555722477228478050918146927753900836581860055272079136788832297838116029701172535691783933594122036160041225869146798947561984126936598186951818154568288148132220834111110154824915344813633333075218821246189962988502491866398806146635122432890269204098875665093301335640587316589566745441469357721413561966494704079006045969079882421620243669730591132306524272271126044156204392150306744317525618999071639746641245241023804843503736777287136164878105324607810817196004892927987078707548598630300928327701832760974638840996428373650415106154700392991759709527637553365254387659670842860460790979013557087236005086281551625194262728985873131882743750588929683588420125597620931161921106849831107303153539367217302814588223211751563991217997168110462593563474115486513350496421230263155896842515346376507196328225065046477632526603464641229045784932006164614907369525834984836578739906645790659390245255761225125459874991185834459039363076793199137555128915544333992489183417461081294426801647914318098045882347840890380882960728998357814778100563074847346077022357588651897734290465119808582256087400244131358129709603689986086756735028058806207028246592478687155120500388451650630107249676136009276068732456569110306056641897179618424139893576936979334677843570462970804492413124803280171366498105357085617391397249571880498912239347478355740730590973744359585689041857404249882987636695391816171176671302942844396518526083080559219108947593928304525189276271673383655389848930481707963922046522805356829571401484638890417297157476786293596670389038843354431299506539077722397564047152481416764801777577394625632038165074007011072049323832010347718944416644298101768858136260691060531930408747513467065702765226195690328262277890626543522912528971813135170759860353087745042303621224124650802099982568649862550468933626820331555806572588383081173317190323385335635593858912532735215436300445642047397165603598880690280885380892384337088494694696241561298406184509330272521054298703695324280347077562790500583002330286069869115327275199595058953635296600870405868133407992063512917554169662132599107705784453815606509011254396344285670384835841953719110602154055662411031522422449590662114211923379938020522340154481205060519825876325944504861698904581899456584842409307905110403074758782879035922553548095333478690306191243625857301937149644826293028380944245849017213815232300679013856653859164735109194452015060454309393483836292313131300991343641600099531204650100089786801541675080422366874184774770395710281980987533538260776033171329028144980698491645169644783321698965646864822574667626654116040200809066525397877700886175615012742234782620706391541938466043317746188139249084082958235126275978941824460713424665672321571227897118186288149081976161318942215909642926001438815255761393543855058951749397273959142774200275375260327825623379637354180851543301688989005112905601825333221151877985945456374137116248727876376318322659394310986286103603428823650497611151644286942201179518743894587135568805384690711684131338317136253245765779522271070434946674578833411750978132115454574779619595816786113265844235043205275075786339131830616716969417252592109195531326127321641296290688557115805114967762336730152582367567490458454411358057740485150171828400404094640364235057968774361826769549075431879077658316910019692580761321368845502448708598759663477054192191749293103103510158668573020186784039359272181391751622950217914385894077957112541423418070288083267169319773143738089375611830451036847617108944050655252215054883647305570733910298556218883863632870774582200880977274205736999256953285078513528380123240656338345348811296609899860641317746165298516476368448529027487467631748219473469470925467152798180308282594860140990791142088376836733683717878829131470244523808213224326665347140992283509211956425987953118711346230843158360929719540545712941801728393822598728206034870768644367481642049370964290845512215611531384903965136475817401396037900811203624089263046905351685635082771765294585465855373653591900112366945743525495572151490774936449439436058494739174875342306423852871460350488045810203950439699681612707860917317467802483089153329815515862984765017255132878553789028794071323280176497722072014564451611990714715313308070049269864148891142487602800621216642622845520345064736148108104087150762342150605119329484089592864724045788752385215634915692816357542258018720071421729716451179290963875924191404381114448693705883027836452923490332474641326908622852809753460146434610328172800471682924976765938272396631156250057310526584656330761335094618338764725326871224373828134176163407921944380542473132491605156154296741229644420888587018599359589733139628219207478176012401678907256662839141966295336488334999824727095623844242583945996497527594565088659801115055518636284705944061645015607096185349546476137499474494092648279923265800761314705421387941489048472384504847032586352022755234830428017495138917553569148497176760764881704413275598737789049951303846950084942328864703321382509103682118993782254968899108517645231252468275578646621632335101721721896457893072464883507292830746434030039918584996103248211263732875175435079356649411984399481022840195922582955339100677121778142661493890627584514856115590009675989229399903935271037448868525310791659254096522793530737397961111500039422930899428425533652810331074636984498730061463831694320323490884238714676991698803551529881563287468079184220191517300643501771590979325842440128639308932199770885287214021195779763075488279263014792981675221233890119720702467853829491732408333616524442453175560870389025227440704218377205584508442081059121033565011792624903040363538815873290756968099369987487403777635010261004771720424460505395240881804315544562919131452518893548790048616666396797047100563010609308028174999798076452267554847826413083603130844680342660879973734080169846776822414541466552154142265765886629481699026710861827751371318766441391330282439600958280264771057560352319803892119889703686829823789023715334524885073627833575338431353553495306723180416885629881724969554752573074730115447642837083340705233664239344660033614099090742843772021002731461357148428217807618860967285959773769181963579005381464109833106373221153182869705341096734181102916659749624585138185961024781702095963728676335800236877558699184426011161426611204708998576472000740188746203788769045305844017855334792011346123973814657435408087526093174096175826758413629125832072185341684134571393217304745974222936925901124194107524038374592399728548321439779481046280647672067982896585232663723077853677775933531158542142000655170186810768265935478107704416202594628171479491501579199183149992585587132808219675956216055084550744453666413022448142978498850064187484737296313528204518224333909280876857421384179823532337567803337399806746405300775835757502267985471731206690820670440958790745314846754065705269245226393743777540425330142503598445059963533440880341782525884802432198797624285214049955280038511531341596008946314251844090157769960053392558209677546418345556337649622622276033411680239747001828704556832469767694976554349676882787297516702703655438988831649193615317333412756476601897078974440671232704698023104355202653984540520197794969057718814444824378463404234116036647270762581218110912231106713110963232441932283862702807729577059724617301892589932894492682251867383144214605590352751064475380582735108357541949464437854877595481832343086266918444532389618073304920650384372032608591927070446532641168279260726511447396070229397931700693486124095945957838618188749217357931650710703475785649834832838723011139438184766085545786349197332795246042756501798128410943646773232546841802135395848578943114125748491561400324321288868315654220202889483135368293374674333559063159878052843241004184558727318216982994193759178754128707639869613301467828087361064541106838540640091003054253283932934261354361409353497935109807156998470434775887522342611307149372799638632621656308027170087376946861367278819445927555777091765576197634532828626018937156341812888932791525761988178793431091627221682146048386430770717266919829631477228544687412115674716892962984669767382729344185670160812382999287701791383651922367547951763289083739384736611536097360305198548972808337978800870602655586402073722320062616769581182956868989620726759798355492074076160490920389932495622873180999133733773341943774045786238665194713126178961564781806779017868128128296047053397502147373060193971364545411390864282441013282642472891425833632841173333059680936176585279955717309283309513554151957741795107890028618370621785687127470751747378459268723712996697262719360725180886176185640414856325103354826565319016209054580738773667806539991308272437957840596275143723108453464194054728664584175074606074113696200119435381797353189052864425413049760562812940857458612665588929117031630525904949400138938303090157955410823204109381584539138723028602248300450468141158971330452059591912605235662842285806909352892594581313803682163524362147755705152571136056330436265211619299033808388618478335967595002002373003854051455691977713654569875239460324801282761410505642881248917517115843096707567546666857674393300884611458081505708817189997475743335804474780876211071482311989081190662539944408883145496376650108129531387396779174589094157074939993870714411619998037787874369156181359668195274041212601019481697434862101200515886317517756378916354633923289246195045822160758417143096552761508570569488462839583990227877446170968813431711492171932456401514874415056527781751373789344759184589419990654475428253644655018395073080530310153530374265932615901658207471990122159111542590069874170120324664055029645119372161291350596489391896238654515891867404831215289011989363895910837313171584891185790266605876566117426207450839920339473261433028112718670109203044671028135430010872842270095074029229788960319004095169647494284545873286200184932201789705883602126417893797250087966164309737872280337792727012859331589701929881092485896964638836102400688373057693527638874435286545278468516841118080545191376510791315706787651449622651166517408161529512135653972562828365224133978071345747582695022772388644097800850347233496494673322608576486257358426212078363733402297238455190907455863348215555608579405253522143531445568730687255650102256107877667074701915699566197058395733258211245010074134472731490356803062696629522994611217153304347332175190230222440679470638738494083295820009531764849343294082352087701624215113363020946191126067700641811418137844652490506788760087110804196889194136317014260365330593225887272049293968329193638748232609552227344485068677777337696351027362481583431993881750748879888351922423973480088544865124391304139665703144272243991016002587275380799764311032442408171895296375475054450317921824852519965497642574318508513876946089098282996931679586696581181906442516948293658093672342050514133979497203436383605259904600782354606590574408880508301362437264768324467655214741219045589247890456586143613897941631385747391765596420529708408519244038519948463880502288407042784218074020356618700222861019709076638337897559820216818270504057389561990258612849276157736773155656014461176731138043140246509957143918982313421276023628563924671236484670650569309484779282537944494149177176736898767859594862474051145246096334177079948522711910088516421553794358818180574899193491069591002775540016453270110973898821999319888064115778031931054876735083484630419278091147339607940733846504329642845473886049638912976590516792530181671601595220650638900245446374968981379243637173653894382690105228495455217840505665747832592660377101802855084655383538336865943294511048838699423794340605858317298134584738036319915385066969804811569701697370639278252146032568161938657037464040426199279553795168101343889746258704276547607735026829019839348730316771244709457295469853395481563901194655219259653742179439617126587849666436995377008500427785123063841257297430960716335886349616975574858747211263927070914875334145937552975844863362083326831039622803586176446981074376219763526482038150271949055742183879065456313555800291472595508164903186836488992193796001644574355180357603249476613954910703129289659748567295631339389789417053660093947653047770575682613367281876060811503009648335420517164629926885370726187346930307635357648009044208730262937243811826841593358216882959223048922591582509374283106253026070988738796825888321510653991720840685479237268219157875721819599050045301153318332737666176808676369583478674795666919614134315776877536527015715625954030622589392395924259091574603566387690951560134588437142621885273859996616351690636302346670839322578602774150153157581470628726220542031595125532388447636356678443476020934659377575512176908340045454780824599692433305364614274669960291052770691237626085009814262752549742481632623939714264125882069495704583363692724285740716180097566563439925857515227986382850704154510566207251529454021473150231797080071735438027198067507373221338080475582296743144712543339930339250152399331405961959880782847498908526806456253788378899096866562899992461581003453617648357636403824385497033309065209876048643785109508148524491899989718835407720534809925980117013184891169077538012822617552584718241830504600745431669237362714127785804335853010674680696966951520293136124047618973573335185907775408671304006066400930205366209341972613704401820867869190498433410684795356326372618811819999889921203707342744882820092756971972383726658597755868795551026756559508848746918276908351770574680063718237365839547208890329782377172214089895454743218929434657284074209829472694127632768801819767315883709383825310412488199656016245705828393893071693164899223029829172874851591825705789656025574740228473092523363899557916852702974590695872024376783984454993649658550483868083580503216096093967427399425458211022046043357896451269043447986305198808867450447738989019577476104163869207013251988075906552307247725623372293711068092056426500740915830400253880943217152564908156464884314215785879459080818706178438164690900489791121479680346985254124568094622162144072350759527002294087418456527503232558809499703874759123060212245597957549386649019374500471821430063417173371323940411315878859626239815027959305023252701206001592391955093111912936050129855146033766588542493862421309932708288747778274693787945793829871683648404782525189647296888759109465285941829731466796883938548893187008116477461927128213959349448821219428479878196281011770439268104705208063673373591621240431931134669567571745847500760556019737198702781523106814668511880449763211476331239943387355632314517903974225642464532753979865359672558410128638833256195334275727809170056061205432261490272150474181193665272022674607156763457934258832792076749370698376236778919237833428156076863735368384773656436599943924776444686170651437824140746312878843448585083326676365742086976907936028135738963502499083689039172138955158446647917372993173372121580536685811012378244393935482530257627675340102684401448392770456567316233036604857442291329764495092045396037337861254361804552074025031077416557162857383561243068159824232162328357134404858344094289599689575275357260946245311522012787858036289944861141156840291009569922312428083087782384688830744243586745676610279622170202824785318010964071021044712443002632898548244411292241601550110774671256661289553235480319067126416597320306284116404083848847614429817456001367976019939779860654300195448438370295183090007011902260263812221078917742208764690448648162659468255256021860539686214461139751863135005014986588082659423693124708742847943675397637009367331577377945639331248805706514260767121774352237034190262665058193775180908851889381978197225098738744725071950684311487429211775215702824957029631837828170490077574632322068128910059300697205303198001094587819856953960247897222417014215276592913850678177381214340826166764431349270193590753465955677658176946380801081293695511450990831129358056169541162124558797373903845893184614186788288248543659602788263473819230909531799124157328815674156234368251700822357884362321630388982888878906981974203617360410884351624143875135555096768045900930221344212968271157704207443404005339693655187144043225841555978563346610435460109697057649282442300901786603012309856936159900432823364977812363387674284141478065613980227910744305529918813617249466827210018531139500287283752328883121488300012500052651606054552628816092750762215752852775429354124736362775055239085336400680277024960773137565736862520419773703721296087134194308006825181518972654726952205377116965437373198551823704653737219298650406774327235748395714122987243977758422878799893342198401470522742955908497541650555872419582024136224978817024333910419190879161334904858797824024195452525769405806196597333990497603793991717668536906403286313018767663738368962243803627864979712841180699876702633859109978920527960727389533656290522903556978121660933635944001694971210520602742268090863065771801564232529354055422608490477881488300109561211482164076255710694497915869983774541978342183280978037121209432810557913969417753719340618738950155228314654399561235000313564450006494930036054170084883887308655791897710587488691594628192314807622394583370687360868675506957680506126551326644371896261227602556734189532065079444808082758841007347504963325142178143575136811097242901999771850113349171346400031038210481612827755589927200559071880761247830572059271257479503261385075306472882346757980847285927084005629554923860287883713815173313665466453880843829492259622771721587638745034361542257601038509328283063909455310446419339017683530746357644697997582627099940368810861405730138154861212753429708611847351189366910229923040218162811064440887449654973634531095478385028747508566723204422586336986941565758327836751549949022852151609761188962488656696654040215284208177539556290059493679979207846369902218531452661919348338135536121854459728865723814071619020982934553703002694872740606706616537936169389614923612250977309791880275247201007225176388718383131653063749649264397065413217442320019581772170037458740176884428714313043654265291393719107396613765164693378114029992603212087412336178872395598198147788003739108357808752476810836131552136508363905514472786808602868488812227156045757664987125922413633442152381865176959418853116667595409377285163241131217186315879319648085704003519602018898082165005594305357968822791414305162939858424988141794399177578094505152693479322928332408798859062379829714691331342896650521337950859029591719430182742171565700399724884025183771908579417567316962009604358487443490295166857804027792082153286899882029604972879333390109630631266099551820184055846888936597237115866412937120134945375210125208426744039574367372294935872383995220068326427160730713803364292047493441655882851075966915743360106866764812991037639355939248366082900694019718507766666226649082931256982325832597143671213067392130833646553109525363398631146150626151639906001701398469144770063615597469155367741012878109255448005058059866741059296230843413061073790334661182678829662557693848824699921387549021943040182953025477951978657218206679872439661587128949700260755126677875081730812900934576657598003316896849527339002071325229000842922980709106719163880787206633196940547121274100804386137651694087554206200670953010242691230385203193916064857626311549252692889346614489791197960398785849264967279084837195299194983287877258260854230802236575583514746197315040877616727758988546221922382317621708184512042100008859513984173626248149699438078742125095430445793465134921688861365375765629547466897363890710636091603186823684067103817975903445949267045924737336371121279341714897005250022071354346007729756238356587961317906277752269109301054171326069889837337438677957940250963011188234670118009979580329833557612710896355050296586517356249450108456453803436352535394498583958827853766904948260327314402984411524287742253337791424460968225247112148874145920184320466679116391089912384129694824172510031992994087149049274735884230491183491474159153488258489212179437404596266814604091100895049082228548289755350672952046056126522820193143738865488844298370276787547866102081646232483375719991641614081118806114038312985445214084315106785857566364909483243771554074414547104747070741143687481507459411752712347391369928302835806410712051318910658983461999507473116909489123572619601036102165943800504951948274397492969084592513725262003919735514551331407123820420878682721530608298229735159327267334139199947792389070002450588869638932692527394742176152794804742457597053607147095979768504658519428711208579776477525595393351420468875788308218413348074268662583278415317156638418876487556650457798862978488067212612502109139401717167080736176724776889310290507684610448157064986158352603532842848662777877403248833203157071140768551213283635766978371981256631131135576842884724792419476111794853092559255664791335174310865922447656989155221239979351905481409395289693591640411196462020808722158202443312888624346529693394782516361108706243126882158478509363070726419775859621835390065249269980977320182190877799139979221616373526802549555360761762652177025638943249579902649437394074711225427727604284361567961184749237894959789574000582919161562200856815676490541470537804449766485966185510460011289484907941466065166649226932074555689022615856975210449893268002007244300520786935757211950931825803020738849215757866686941159880772338771813070012013283338024239515989930591307205354928692380502713622147274509904517794540964722554443423989012250860041872654083172679231266159115433768793202494989694953521865957504770861928182334209314277029547424641164418735617524472094015058248425912908217743090931191089374573599419202305767937068697975931682139537696523832788849088678697772406517032499281684134237941961315902035578605993381377436162412683998331587630185120418831731689099010055393352042578531496724985274405369825642234452740325605658485252918864155846197567478334704514336861861503871989398265662809305952163883047532321472881946500054576596914544923265678845100959701640295511108893749382672899770271498547146855520302314044419708370702704756386028246861130248202987147953922718538413746488997907262542376716268479614300990231978057044623826876267855448714897267779587998980299958680875690074666926980544213890633667207134510538898519014961301374038441235872242740600603686235166136581874037762943338836449219584020333911876705626915750477334906203559138918701474140614574585724524764690487117010290540521641066817058067009289562356418255723768263375172802880635107839783506691582711226951599842300930328899684082276131935577602802234107869115685319441232377872687310430136811429316773299303502150221158957822651510357956101877044257416235826308470459648148018739599345323185592190955429657645005761279837084553542359422081786867603502607537832337546703063255213757848642234338848236788105196219753181668093068836873700444650403944704792655363483980055572956747312562025570675417172449827062396290076105968987116955061064903344773644110064522743104571367754119534553249707334259570954827651583727801839216247720162346923058680803715856170483969710945148718184767818991078005124311172138867799644612544696948857102253357626606487335037848454186673793147010454825308198336497305323335203642416379793136162093977166736553002748105929346798462994748286826688198605992176575649563878439143977143319766311146794270863920433182856932612947752232556240939723398528067398877035809745097095152311737862541397867825061619900025722408028763373309244831593312974779241723810676142415248191937669638805872819307691544294594632079896918008572050389814211265515435319952577947340285124339237299085571803348202211115300549205138578126938244205307837712477888042196903542273964547079178320162212871706741896139195024731176259345724146937701774567873159989198180940361533226756608344859009954763890960620204549584771208648371442543866441128806254144853081951224430331357836413811303152153352490398896309728995246004955312766647172294144294819328418683419163691315682209817178584193252880552526770447848311579207143514532673270797679269484752220751732516993346759032452717140220309913911043467116109925860064790277686383836699535374185868637308057293332738196257260547152558327997895993411838967415802691215878573684594100236569032059736367625353561177698444661555498574343767253755986540970594948429935017966908609187574571469127396347012638236316916069187939006396869290964693467239310896640267386367567240148729756882962896320657443113319061466167861140085355544339726335953560729870157590233310220615429582313273046526138554677298063183503397823593472979539853782407115984959941995370432607553946627782015623127429966404750688726226319148774933834308301535612186474392919663050713414148791423887713359200735562721746081475191656430079225484339998234773522143058664998805167051644336571394555403459889440815174095905565617630733430641743905015297708351406065907589484724583372953987198949866539109157613403633939654725574061392785028307333632028354618163805286491756444986079756163827911417878229353699353890468628579099003102301187680616115146166668803947734994098007199543213947494949427683385088999447462310992090084263884739138543939664769019827302905340258937800953346207231441172384318837858117096085191550989563587968064249497082666534330932103711256836286047935860502210531044395994381062778453733143201767451113420066459574720453181371215684322475329564392931016804885035246883641883954478555882979496774482263011743868242927912481609193121811661530553066013744454843144754847956191714567209610701749224185020905808169743302449450218286435873546953692822970361742048293475448962919712309674298035269557978495422472204130727591510267672362025133947086806345298029731584532909231483898220547111962715248560384021048068136212431857714399660863186107089261794028298945538852959922962445858533861978376062318702868623400781944905938051436908493323402615790282008014066284042607670675317519051430436256551146317989254140169423345230264470922757083841508865173971479191512552204662275415259895186836084704121401962280216819520490420161366603807616247743194143741479387214114940041238975553074534658608644821345281666569451248456415068325556087791655084357290485402639641202382050997989854131531780284105465541099089838410348752694648503709939008234107411189449281597694730465176618026543983289524095127270180006372703014064022056081566683820696174507778080836436598377832113359977210666162769881597083553610383402885823908325480338186709979874695247145970352145542661732977410707153930098761449824567691773610337477941197388953954380644414771869494665295882069501211087516803330766346511734227543208258935141191351707090234375686406730876484231823494008022014573388448626188884940066237496044116501024624718912678315826864873245826634065855315453202251697887680244696568180236664950553144694740999437110435915569840709417669637464725506278874334328481222529645882221908905785558581899052576150357285406469476780076001585561247200145870666457990271088496117284650556939594014288717388032574654273435773052945770548174959825567536002344795007015394068188947836531814374120377084314165397984888979205695421448191813137400840909957801123486527910404122198849475327241110772000848608059960764212446090763229181143281305882685434139793252540579363685141151466564474289767420574238606301540922249702827578058566265209947648257997588297241851865150543289251002981327311805622021328677124144806527825232689330716744543142296806787124344996262987196716862216989785112504595075733035660418014681211779823493049762412965704802781239155424806384616036066278652842268906467485522496655469092254951294581533397646694378709197463744249444182361713705157939743762185341328555022092781236193842402796421960556067694041017903423038298200941152582972783388689421395772633825729740316303810522305649538936407508316140226039964118749885252035655072974103079051330768638784755361143413413283133130763114922541329120374190690389614093712343125593931467551144806554207345070555556888504196586383162382920937619845347765572028461975233557038291402163083530019193728319070823407794575687924987977175933252084901015164881282997526607749461542867258909864815439564491993863879336673185882181572311183941635465816161286073233412613131116269774109368819989479302419224377041248379584200218926445441790974500081676005489618582547027277015653218429639507481081715227449610721803016879959544056236329776134277326926807896446889836334856143986651678062150814428277096650880105036812903059992434849303561180711150939198743347395734060096466589646359066555906090681552425925751733266674732133586952586102920147082490903868958353010269271845885514155492458958804573658856827251046298565045412176790210697988168414391390102685761010470837449990529713577847313898329573026996131713930730702449190445786454388946827478101349653170832612519499935761763200215911151790204645232582126185097713422606772882213741046497677903113954430959879970073057893501260054677846973544609674077965786300681803680267789125396232962520675600637121952751675361259983112117070921825103117462199686318564374155409189313981254966142623553270456348016253894953095914559898084679467955880378532085103182466350883205539904946462030080352834167516099867857275984845582112470809551949792016999333101626653114162421157048208895722541356082640963508618313936159659239521686123577377913258240741740909722086678250502884817032773891866057724947568097731608975376765785255301607953702549920231609810734517086017593697073552455834819135454920541135288488958801529263175592708880350957098975790836570657615164912930107502066823431077748094391416504901820109547426000935415501052122622583741599830421331968212868697806730049227108251066049800806827173835767961087687651411028189328628765239904521731187894243971757386145668803547855267842540985322414517546175598117375277559453432458860437206915015537956031031398214742140737496030933477928682802360263287766220886584678481715034421694374738724664503814357201241621112017887790260129566685615181196625373031032783868020513490218934753295237311222704772814325605225167108804209001661539282981340573409606069488569534709304939147821993853946129379846025019869488729507444354008075520199170145756988113165193311095698004151636756617398091544827434881172408952101860084595269871111228919492266386377911679751165227562696905996651847007969186498783799077509179310771171322222864116252354887368032369419905891017362299001609874549816443436966152893855697460709163679982443286569706208121758578001306536657377905672713697670410078546501888867379055318299235338815817059027164326899094954835052319534094561780312613477999130324611051187569449863491179422243968682671681813114741127717393988290133245822472805395760540274026777853679135886940544930881913837008268026822050031456904813755170816177900521438371531497139482458947021180576305288245387703095164699242927284917111543114341255043834166677676505831048913541834190381342422636525057217776633024074731472268778020662825364665624380872286795397463384111205019159528413627387794067269086700017502379117740382913935211865461891837555902226316245259868550197935750512902534671142667469260609407053354261177865922027035895701539065795569479266252366663590948643654189844585224609843637607628641438038464734324562048021924660627935641164269321128885113230739200309437790175589700514627515702861806429830442512869300322905841427104399672190260151639065330151473515404250015035633166681582458869072829717602875525129876906158470610877341244022210717412008243871293478808232249507505676069804148998358492239535003748782659835553326292743988410376242151650860140791465993832592079778159966534287099654972039036652341281057758004729524868861007083124602453294838143447788478015339915113103746051623346886145465046716631419754043485347609967461566839060194921613983180591372943559572935152805496743147269980398864575967388820803277538352795276654933681018326323687731002194589744288546575032124651960639553097425967238290463620185069205638543340783710754522508016271847114028544747686484685514886898231689920725417358309226913306601983524294580556188217725084727743885392765214206895834513099874120899645575679677333260734947911918717249682263102578733248846992764825642502982896969996534117408980824932322048262791696059403650341636917240718391127649995123236268915387739142140859270932542928501104468969216257724690662884345347914224650189805223844515156256580277924261823897351637569712296667820829232494265045534373519736016386464527479879799022938061169531815274049074034936039812046759807912992154792444389213251482720592342765772970638695284904544005111556093358556777719753005817274016364238396315275272138325991237190750199767087932514179389368161220234249164039265728566194275384476745935406733074831322168579803846848037723225572510266910140689992449519004858276321597422313609996677455508643102249312771500234367337193235948680852033474047785459521590545704113903111575816193756435372710040972094649676929180525933741030111069087329817238918976979696061830023892777593489366828561353855107462315612169012183004674293834032896430898803896350082686363187548851524965192314593634485686792030814547386612603187873305465373925988450396676266597789806980868839908778399467803258629533933854726219805450645109986213670114845482094506562519069428944582887590990526037401820386433170307125594343557762145304279298100172544179246412670595212584861518616971016932943885763263832498807407749634123675477192444703760667695425669540848164424028509829856115902805269846756744443224795965183472019758468588811833965167103076861317696856960623799034221094179380961938643285588738199159545370792014555828704540731961177485992580505899264677236082389207199095170761131615428567013903067745996094513239760814764441422527280109271243385234254934429394832933899474396411711523637447029073713874054512078841926932575240498688362063115944762515806779436813568422349178864318137516503989698191461912559161474158052198738608789430494675541051368381745930971942148068749099266966467782643756935107378058195142628620584162987948278224641586251034395442444644036311559641630378433491166161034653583386046416006564988660507722087477810824565589946875579189665779188116390875584388060558435256178250805635853026926747091058563081030227265238494988461927533415485821832490715351709444788347304589256580428721816932838850957846047983394594822494435619587219140599973478682789924298735265811911690321490477831593513935416951622344475634038207206434805884647473200655201874800192349018970497612898550939070689628606835673633594522763204585862099106505676052003460310336399776647233326232693355081302240044580538604895862938025124517687256507235335311702676821188143260595560078425400258402279190622139026881137012997469760628297647958469072169867973341814588696978251348818400425554457503517518022969544581570614959420008321991435598054024775093305821651546259731755231428456293801146266857879807499141718825087872439515930894673276674330105539304991446383688412699291194071840431009306346905715886450989505285644349804732869492746017494789289557205062373620361935681108897918475065469952261873810742640469510558282278829871844280926637078276769394380917899657251913730248166478612449795725561855339618174444568945960034774033766262022267192364344626185305442944907738703290460730228679164038572412178079538556005754758871851913687730097118902229341731316037303237548963288664734261136189352113875125457515536278039469996065257711740202148138065533550001864893135518945318602159905073434761966778882208258000029816185870630209140527601456035395268789228208091799225778837184612708768844401611796875521254209731477663204601831870773045009388497086193003208145732098906026105965866430295406835906378787594666469158978566412653724570095476219371629238461819188576566535416618559674270174158171167324561831479325118468049953818740255849351624073448784327163814417777442459972288689985238765897517812057542374112037070309347085146985665545728657474035203580425737947246829337558453423358078375309658116694200485495229793824174456721214873947405292552084492715092727689780449195636749968858118253398460706692213120109770595396514266031021887842235310933790902884076430363714045703547389822699136390363595476036407476426559210208804835389661951806423212326101123351663340242698130710610678112627907806020477148325958829515139504144750877768602271632373763868317937270964501975089175567397142584325510145774325546665081411889626179583914300267904846891409077167951679057106212337134173556316166540559379026053027674216385111785489412662633716522140226834994380574140301415919118868195803689593183074478778746661676160574631307244619708040595715893963713854668872996373331669329557996176195058667500937618190019809015656684484172017088560349060283106725424227247988824284210583647475574232381127666328839145342835973955221194313565851030656888157536490280040264755085057063425553975199936772854889388011954428908563796562323139313830615030200681827551891135421464356330909892236958592074962552622514021792497539018991544942029723057359861313323670462659147869733025965445711871222816323309018909983724847851700149844205984649725875039089740814045944680008444542006462723380102039781618063225743820335177770075027579831009489563797136807449502443830643006634882859906216921298867316997534680031142955444550299212637159887442959838115452840804566731509445493255217866573045623999001626364686964631915806526293205476456951043013653429521653550657131445820186475319485605012725072591145866415672733093407061301970906379057845000992826465834341362256750270196199802709850814817442607814456688467111096123878704032416420051523515687898312167127070742100268138488016818361313521919045594965315555543640076578683240800729196646854081078884692104059633606748204663619895248764902303270906239909352584188575342968502528962619728369582966813667392580368740072293728907292261946301806744837976586158333163057482289053745732987166649364381703725741207089860703228773826054403071788933602176216876420581884374044043476048064127367484155262726907599240089756384637174620339541388120579757359806584822169096494900238096025821156508999983123531598756801972224697540380138352643328012366532778217919035616719902008685706349499136119325337955841842103839821010998529480135810501734212973139163390720356698539634082546462310323675316706316497476996804182347284582676602356746899824503750973004323991117992683035944715776725882974737535533335010257559086106996812066405660563458609142960179076927845347993640053692982583974508804901033678320263424613697148830518732777630173570533237111774235900079861379205790701479047561942389235784734845345741636512318204428560460470489403602514338645961167710034553735569038435117879100758978030405976090806640622359905245877143117333147212412846302719061423652961460804454051811434891039226551223075570486354086901202328502742594978031820026005691404539169698507546883843726379961430457070087840348832917345454149752498678693309228019999438287747143747926767792925162586944398465941104276994816660863618935674348755019339694385780703839567958961640811123856463648191810345529723139950988973413799374338630281073531369689949824638336179439594473608314118638528613667590337565256145046671282201068567580292321291310931332533820242102299424554300526533904411385994738291904168236281584174529780564917673665410804299378018745148135724828331807963829863251946501314636046107201513250369822655927726885759947671469729793801485201019823104446898807643883415508621649737444126112663723107875103502629187581127904941465542392357060948121329480994449318772188988493373678014319812213727217592401878487319415480914010162760815182870545741586160028961719102020557463680504109200820648982877710852715197170496403055881822026325301794994940111246484728423832779109113203322335473277165089577850397365956097673722764080689773092536393395315032370917900404456807114524537543635568967224261088191450431169714749008052591686907947211291078735935858762403794984820898784468378701913174033420224662517941483913951313502212581349592354102651602040369993849800920239411670016799570288946390993362406855906864247817624294267954679047647949716469102078047528409025882505328519755377321030220622659306586103150163458637073428941160131708752333161120619403441478066067941746453371710824276656743413823332370392458811696312631317500096577842868262108524735803436793503584840460947201762467521281132154509279542735461989130454669251332961588739684427351625035508418802263703186893676934492345285237893835720700359316817398471782231077019361838717110504617288583621180689220117698408000130193068556796611124454809873101057595143254590471939545881038073414960704542997848777079010856242231083690197592867573832344664347347333777666714643733285313273361109447854562222944030659306630710653129666061986014369210651321451621727295997563572385867680259820404358869434189445011243487095398922358286584618991966480999212068892940859586697454437593625597302450382841838151113210307698580952328985792759894628043309553672280066511828005417957649160674020598611182681170046534472654004542490009872183800580207672725688929430620055051146950765475490874530693975746319603182368128303064558996412949798787624566208090205214245405677696390406888082287077700667449273970621858708828849733341513557927800788669307773408579394498491293995735311636871377538143887948373269915213534741485721859349432154249490332991055881879317760065755433672932802949939912045760312110465120967969768341676009071476603535047280065159471422993766022479361574754488981576302774972381798324393491733429294372033460997632711897171012445422149465176000083325809971594801690026324509565615673937927242409768374496717460420166044404448583551658782098087327389971116296305403327821946132809792704619427667528376389383774185283633179563215992490000337320813829753742670098527710337846658025092190869194348501610074323689256390327728693935818968471868650894441636480458896564231980719351832840286745816605618339760422350636963564361563873065521031158537112445483233782165319356652731995576280450636228614941058482810823241526246807751783336679765855012871980579909460947961586625534015927355655286818968279254122961383308025818898313636155677185375129223263960502091342612222304611238170886567962429675900912116446115944793186997174295471992571126006513904654654736504064158088432223217348266446713642979869450860618421692074351711352304314170862929117419865218057832658941596609127147576287481993531922007250355324343535723157032921770755611035955207044178800546318857476728616906382542371595189955244422984850653330965700987044383495707927931583316004754642221945985130649606852821107389834390055838352589440120723703052958553571725664606589943050164797977712523886583068846336973318084188225653068474534898641383397725796919601648922113677330045011466348286188560919442875430604187467846906569367627026157442974808054321551368036727969584796434407333441858145956237261057946964773586669431236968300193688092552801968714743017582240923146028905192851840463702294843344549396195563738243957109851222809791882869810761271361202523756796373761090209821609968037033232779845908345050546784868382933370918082769494856228766540848004158170831694516663518813075669399387314759227137058666919286859036941031961195246060522456281929524313596431317511361611048666598848594447483062658947202826426402130706293691957215403513928988804432976251951512524463839168263225335619376946385680728528147687233051377778672923618277299164448621641706190735509925593692941765545931225153444846176057454274369551747105269557682663071251344814245207388270654188282248330718896601188225903475483931489843056473380664241925926208431348842458485733285641727637236325441545563874625598876343397229195210489112666171632942949591299277984899256581265810735940718123096342069920100041677877380830570713695787021225667946827806688774744933233829189973484634772060531264000949387945612135495850465778966816254693263928818277655026194606761389085391925561168950999821805013423020589741207560592866354398803137773952140799026790324396264163935033376615006616551694999065341931339158609034237601376155794542147393754593431586459350775605318698618977691081420312696677051063254349211277494272146474252520795520338389311416340845352519935179876235521548548728296183947935698825966939551168056121033629122454418286117728064847153986013155816541122300653964982216569678030137449939073804462461019856957195525533982792347188674513419412569217317168149853649777620306633343992377747144503185881649153557850785805024066414824367875808271178632185188982666559946653534517909443218972473678669520090233357212757818964730987093230131462326156864623983712276802303928405152959310514645428690613810203784981504746619553399413856429193121811451002263231453066255882518986065549606086733962877808003745543248379901544736214410597529119381909815364734293964243991354921609882583201191000638768997295266300029295124738118119253115709842791123961649520915884269753691226107521935788402583968008164270836660318439078466224182640629525963992480673045522597105231095937321512976768574248439208319306050561860307601212657672915096182787961073490167968346012758571546228662309331732758486540746166311501412172833162001983463359698643085462457069258434261837384462318684527958163422718017842330011308141511382363652908976050544757940320619447711656033921462340345920735777448064299608250282066181538067796298803797292741079298517660898441169030184595214652486526371103650774859533314290249865615518422303989031790085831120748947019467053761805983593374983604438422686322408961864838814376862991799174598973705104263132232524410815933737946349340022223584918099719693182736472553415025521077695220052417970242945524734049296988668060989963882708861452362580294459579174251667702688826843086488896543238262757173349779181206561262406442596257832850633513661876542102720505060284914398544004812596825262475479632061031129165815467082705607599117416937471042419436760060452663703722693536244283075605724406437752247273419042050935078371892387599426589302878889317969450052708374662938060752864025893447398015250479082708698798319354089140634293432084656078595054198091219558341689061165962109099319482483240378351431104830023342217426572617696511954400925824985804908914337126696776167524146416922221916684324471092020804594727678476092621807864982415559473598562942850892102558764267366782989047988428413513647621854146702737898467761510109910356063371102653085455707187779263735407245198952452435934258691398505838131623975829486500938174441334284653927086274648655880769651242615302820152192997829663105462055640488748988653794086783489645464317307798726245107827093588435178937567087892735918832337697350445057632761135106450279850680289946934137950078140908503403046017765660592493873827162845482068346588410451602912974642175085592818524620507911631653810398808979537087542664910292020068932642916154040669871209575951694183371924397894640751724315319966927370318569212267790971913915636135053706166818981062430844663816140748648218620607982096699769203536173550969719177831020138787280088065245087866658356818454273709401329692547471348714217861499168261170713252040982448787001896883025504118110721024547091408241971343110228849174217923706361301391257692632582087924551809028515652731889910755938935033067697015292852636968755675783190628593840750285961882360796720093495688563515450629371118778599023583172535922467761268442413928020433878340394032526975033114113989466393233137925512314935817953012978929475812515074799600858321282922269915491893622382383209164959305367805945125008610102112225682464988541859561251358362655100630670318379350293994302445977789071211789025682749099123198590481369323241694784781744315334578239837284488349987557245943166013150277531964613375926181482298918689207502373278867523623815554447934630427054301908582191087597261294472607533645163256351603037934726714825256470298111131307436379748923714541218493999717440869162627648920344278038024717340970256478362719951339540798200805130669889626208121872881721833215195176116061443289643182365888108625730515830840087109229055118391601765802129343596211445557538015947803615551314346281222609425328365300366711085122260863253469084281909299453901066031351742899559554518283959850652182392895859659651538044806572890602638705511134337985850398551291496994449008964614724559640474796722842716768721220212146173952485773257272385527844618164784754325955006718617275545187823254748921083284043016053372860174167029468600178540129487614432276914794100448768089688767810199274254085101027247661647529850833300044629422605580025411552206401184760501473969680613749934399262022355355927380049425826537115878843523447281068186925933303389037654642823329390025088228970122672694589342036846199962935315658322160732846065870609018840053946469281064157731932891216710397284925386754899033492600005745098882143959242082485897131515469304949943101142454845079225231414188040334981229314336632300551426712627957949224078784649924639314331946659851929095189206606251414721852162432236000744202189627944543450196551692605629439523443171061349671976676953729332310176696986574175647279408287245985203972785475664031509224436903173889129308432508546378296915001287930179289998960753175268966661519433835387915813638658753038949004017926211666100184620012828248777044072502675018208097940466030181537523907233292228046086382487736288324628148611201901810421180822770008468720456960768881939491472643934877853784628572936313656840576215897103821853044591186796995793661478327679801947375618140063015804771157452247150444653807676586024771901448151606635978577407898962633838593936133335729071165751214798567332091351388282762569801891751988419430463788393758709030572402486152887154625313668357496377139960553370528932090077534940713541747220828251282684898422104686141884389207780455910075542100439803644492811801378388117287459893320988176945707048144065865798497892171339575338149062463563175649732024936904067084339796491691436639418222766233605249981049711543004519474546761668551747943901867827053144694044524567254949467419304355706554199268413618571569673560288587376328720322293775745956754474321534564911741083290055601775898714166305225897378688986979956653390415280263846863838340201296581368661598788356459850127805292706697208979579134089080179729161137250914255558141241538478407730108918267802359194466810448216860080130722193561588372807169253365208305816858089297773524925971483019816117864791774799046488694375566860182511005256709833520291714763540187032927398868130330233201212385384205550589220823713715487507732720635667920826282534627923851825112315814174525970986753943453942489958736002525193894927612747815677206462506543994914102636597106348380595735080618785676197266556936800618923865267729135414706049933201485586949042020607117530981735196646653151584534674565109119484475859769520011274292591306347794846521668710268670020559616609352702481031095983743196498492462355612553520776379994485846628908265434526267075435509405222713562285057740549795168164889993063391456699121958240611506813850840492410838565709634498992644624070814876856906866406443467135294394801019459400666002773657559058366177358515435216689515554024343568960571500855764757766608649951929643335878644811554578718898175123505072693562920432976784179355404481256236412986715414054056749941350137547079177437054735522829468473085013601388194989431218557078286354045593151013320624097573712866132463053886638603750245188261564534186112691265679070665011101098062019309152304813818713925343304872570285494821600003227218597744251537150675270334637640306674921623360252863178553181274615470859665490505795419031574089545060444475826132977358268830239678431699200418993577371661704897466663164874872175062676326493484710901500065537976737032832792459047628342381116607442916713569406862370220035773059063857128151227074228581767882843593507219367020142930557600794946476953230689321888259873355515188358953435071191563713471945036344283464463049805391673751656977924184059188365672340463251560079579477481726330116712594267552424457024819924169662041668266219424219994548331590250196934041774548703677853972635346726398323173884504044039486622867973271791508555285006776684472004683624779277598032893955492849874464260498432888757399181085849504192068569437865858300030692635214899248815703644059650649307257297808204563848870163803998746910486330256555846863835995462161601710695945540227984456151613948287145842204876401930399230629913630629271529611812291251687980740887371576834031509306547316428156019639296418934875074934409614275928596044585771448930609609238863793144807397101677745301240402599883728174668712455248344940454993083528928848879106064858873634915066921206240821968993155826411301102944670740541972303495371698408576311521968195794420299316013922113155484048670457043510160032200716294419464382827978058691711361528604678532527788015222149291772955079756878978261975820998897528057174794512092281456317918946536464560050569312133342871389683654632396443373775841364216580547179259402442197592525294599626652005103282566892106797978982648902764220419727932397374446480948667893417042888110847607241133114796982967635365211236618504076888004949598933074474005008422713007928414116897829070303258951082589578103667689890786299262460537973785153922210729243031273755663118373478697830334659826441167849565893469844080944811852888503194352030947186366343263554244795714502027786518597588905495697701881657423396863498644215795333618771616482207386558716760342707979049888803479931874003948344388992921834279614910934565072812115247358329156121162024250462415815560615671232834174698415113113228089867392179893623653504598986997901487309212141212331810045539772804142940489463486022650053786757544985673289622157569882427108818140154892065907648908473226578760388711952787747926592472301099397036400656479281817397014459101544995417195861977364138870752723189495826002560822575299890888156146300378681588727008310456413271418582335836059939349734354457595729493818343885971546960753529780117365199360409113967865127817785427027111253797638567143893874936762899579676963928760323533312054713815503924803112757094549839531022450209263178618575707946700297703490303749419743392539397843649391658558440044294265878219180777199885233277936748447553808934222031289766550428003881093159027435395817927782652574126597376991545770573142214071992785086263096673976256883020212169776349451343668204277190196514206635118441109421889885670785496944727509399149179055348733462015612404749496514827112482927296538776331743820462782601733105713717355512167194646834951733376561871453233690423957836872852916075500218275601542372228071727684732867539290970694835620930858004020641982743157866282223423647744459749746926928610664852740930530280773657880851877115524513587397502191542108844282350978854060477766681851649417733125539495744605764333213308460343795887747305767723863280789665895502306514264626167948214197995581641020757815298779706064196945746508352072161804608663965039262515915993758132072347545715159765046443739220465077572555592954347699926103154846682770442775202348710441310336754837944524946974402329087964619362058575842234729648422870254515206505171302998592683211770085915272535970634671875743881210949438660318433257887735082872584273272580853829328688345084007756240552262163338131941401084147545167332875373262461338818933297647057017863315225653972972427009017010000701502246710456494279348835631105185565791937740751430394835185733783724209022925142381612830717627000867474732223020382998109583592389874901113638947367951930147877147007432534394732696889195851568840474473893998130664167286671392120819475439813909920359657696117515737155830254991331522884146163569048689316648975267815377697357907925629007905701427054034743802407319596419713925667863959167650201756856021102732431554437553013320959102167923081669778076062959953700242070098637695889333939413966065621138915057166286243417116433950595443542305970092383730664978370675769289124053214964510317661011135759261497070586487512385356091345796743934609757679250471894285304420710657617137911922708206923149773011273300450255687205449535036309337187828093147873254623747180663386931324703767585444855427058818900727160726475090179796765554108049942055109637928789792166328535366770408375921850191589083363507442058909795337503289874423000450356921439566450554626129205710655143102625083187361765431555068179001477881606400832986834367598991468274512475118895315679076931978401775140696318789503502268741674019869972309378361640286629793202457470008451131528457322749195278096240284477086215831946637880491405355392013520032042370080146679825189637701958137370088819663472801974017294607862361937909775203930718284371704402719342724144183218147896527359418247884869423597487725469898560370680492983216222728933574906959443617216245748445968109004047594788914235233631162366022683139797438342498917985898143926674086331243017732669818687111615935802162688391566406090895663909527582718010658781091502548863694633934519582161015828671604346588248405988262265653014245105981489679821927404103696832036193556021362751086688746193279449880978100531385689317013329092200820644561973555572968426525321792018232710987014353071034604697462226935659028417444660103396455294119616322977883144985235923014161806318353012859930311163845290926994834319765107639887932870508517954820929087055024406699827531042327216774334857375733853739886013242182852446727226119102200497073817397545261430579123314479379469569758290658112339507259533928542991031971845722807209859794392292362055496617307793955364452137958157429671526665990950358748666824506672457028307881613177196717939607836030298433545360365973627094911164329960290988040155517999380650939419895014381243431415310286735683063823481910463876127057464091392762250417147372324214200513836018746780791013936868038107451616023303642896738516981929622000846283656342498597257941602929822275725848639110223819641648438092607336947221160859947402215820297179718880322466832003360370647668025151898256044761720131795892145567755509109300095462004489823915444314316904352294974594971840914290015150239788146434927450672072973459315942537315191252792578074074478566539421171099257844598732101694700200001603237719730543901759381254478087474137260388623910467876918106020527567816666052978179632337390595033140952941799868245351361068645265783285674961041924621759011512602434215399732666933260841167899796796604318531463860287488900276605760193965026404506257584535198443680119501365114614751698812377118105564988809835714389493515125393195282818580147168198493643840712760260397564914601448649161026905950384228407766134515188030994764282175483403527550204504652869599841413833676811878093608912017054204144538073442069414651789722151748549051228024002517646573969699363840948194434656000738392557399767689209325629225707296851704807156359573886172948737047608319305404285491644952286808824975463628018342422222791006570172552620191873886704182240468417475179179116922723694656961449694622658877468118836538399768569980857103359806034564017421984595374783121895863980228702714599120518452485824903022254803355003615184252908975605926456777017515193822587184773128081425477745410452377366275071411101098414422100281108269700548170878800365645181671536002961862872883467876989415000334845451844018066869515746150002189550866195111012582322767363040780619347894219017022298406154937364972750597369999078333285547592097244569818792052039881435348862352093961046948497819323996677467471956650104820010556396751246674343758315480340354976798276691746455795914414873180679187075194545685161289137809680855838543135072815175064261956648769658840012752638215048909820279613886447201640977820952654149348526352751654721170071596992812082796349331243871180877293063935372819775278253025377328310350341936704123763626449704039233160664418668566480708107324008417621755201767992666318237912798151792726857063262495572004462547129993172474914902893569582151980025926783778726672241631286437819588947674828346220530209658936981467032001929138697448690143378990886434600109998315514974486655213115594193260338521552536969624474318863284830169572746845850965426332934557906341376921156798565444303673925929925710597594381023793064625779996889134163652350347524453014162971593172301884845553338634224500558099517490044964926299861007157779320669404502008326290329476389928522412771757458338045942224756569807434487428767299153031482091586618675829785458558393551411185738258189417891519904094972873349342326671357198961392233968354857531678251717520662605107778178994656691429153411184588431155913697944603289582790655243354937626088020822684201246639948278216700063649712624761449275121131860938300042609220901938110652182325224814935679532142160790412411838487037292231059799507196861937632692508175867596546384100875364788373455650259003572703485472494450446486089339655643507277248438100094660448650651705775331228994334733179685547260961029041953749216990305505376338066560771170469814380268355028796073741398469347413573477490748888478326727455606357015824110153720047754807351585853691881488620225549646834003064258408927256301427493768022965555486985121553633559621111957121073763221616168875661742093278352183147892507912786057072565548078133329551812027834629559702589524041695730054514621654481337001796035493284488926644083383395299374781964691779171836636762238698335893153837668214378447185073943033256535165074650607150969767953787687531481813338181353731840710976538282307691788705382687548997520704250593211368058039150372329925413376742555397326654862410236259290946266276711922092773620340801810040040112673012434500725038066357748912441001717385427825785310974058296446972727922174199878838604081344919215652790158149725048994524996798600100205371464110331346841392226379959524543091848175400729132983721681955429361664149496554647019192084641902043622521944597888049079969913471640170000536689447020307130322129759315576176939125170939778139543757966166769560183031805043621340753292843972518210749325137217920170996701352507390045269038668915366302370089418175027061100264812360523559037272662649978882213638552777814430603267041186389017771763461760795357881322835611598475036585414208127435509068915699169342343159682418134937176467438591572511935342622847584351044733240631112882668868403183577225724719852239691897523165499233849265270914118093661294627439174173045624401413174252927120016354682018653641128507351880983350425245733757902400775033331563369268915729993641160091667395080745293103890833695216156112549886751771064196069367589256520192908689928380008449385646245321846358163205832234607787919676333766715899050688272225007875809092784369495041400276176385384048344652588603929895571994365554952003843853080322597001988228717805958112045529416083557537594371378304792572292386687300410821197943197740881518026782453944519200872083335722761037620528631185918676358083217071174993803447652417092160294039787783862205747576382288859369779970781037958264826574121342455888944961939608759579780176243175779817638259010133625351006901458664905896827118900824853324023710696380772774578979497527719137684123168981929624795835449232495853285626730019238445402549056248911559036509184273274592838735413451066240081497449823198713367317716478524574167303901374973302517634934729592315958839103660800493443113641394853945216610143405708083513192247706219835347736160517576582253772062076122612104163165500460830419475992388401323106030434026073357081018515723487710297300342353929452848040714484834243647797729299453327081730097110239460813010494973067974447054532161144597829059446893788544230583981780447430083399179400650243592201601516245037713764082875817338172149272898934376753286137856613308806809492767972876394731061928260054273909328201312671195726739451220043858863008902420936977505898542936666188263054077788603431038703885826979373085789205652141663541189763638215753050060144103072177635833393044175820203271986510064948878884679357029804737717352919152682872529017127068460734001058854823937756287328706542173600856716746849044262421755661068241797832301680893709456340686879788490479365670838083724301474081825685124676534353371407343455870787981557155827788133229247389185468007347480733230322781105022072859884291864175829332603091646876247281660412922964246402046762429574832319980559149318556457849606171006518802977911944809781039965648914874597726941544906856865941464355814343267868152272322046151696853804277274778536902597077732932393497149828813742674345354892471380752137522175843382380492531713602173187889133759499362992077815370037572141727386086541373367098684922181193713994508868901074555088346106687887013210905603219955274473943740991783845982817689753754216641242221428915702168926880296298635417678135406120321086862740687115472812431548734595368800548604851691498065821394503074394616742079560621942609848180994453408143668139409531291296005981896180173327685725846930293397571132326365214560441735327429995472924491935073097546974283504647828202004539106970980202988256636042377290604737966223706349825122086665030669507191416493125979269016888411631875310582789036996913811368323300109496495695021943366358959536644163264198800617492522994010288504784395446604860375800463485302252071846638311310534015500880422627498070198973442141838285136691844686607537325441889526137050771373352220982662445556077562746423485209563984715676474168981368802402718466840839954132728026688536181051523680330099763752181753589773058059475304816730288506669672953239902278215310409952743079521299148671462338996893065195521077301668623132697082788990628437950033819382759466559952546399058464578406092814239764799889064088366946907888236450430401669810761083636555103412156135326767275694316667279835519182751348886524821467303652287091322571718049952489515109736181869048681602211217990446730425352600501370063970351364176734828584888854997440123198813557270693553664018211685526946665755619536530946171623240886193284198381178607767155177055925686516683870652759276855446491392235663026796113836726996507974847988119979742166545688098242067170913107467128411292926889531432804138956528473058606097287899542254209941558844045389876529350283326929520198259784290275984389462557073016487948431925493764260011997189371634529677728467521953056564595920926861804844150936470138545157568533722869405367573723964515063098558451877381154141832078901873419339590608618699080688043777610758748928595998399980396011073503657457268912996253425695907711695620349044313573440038109235840874021616327352059658821122902762062219192254052722586950699433320841024029599966514996555926369822667490861529391471581018471282250088941066425645885624013504983942237754285986255307828483655459894892996998032235666656974185582786936244333417275648091032841105784532041349609902694283825231020490860485537552526358919639798906477780005232697988013400664130094433976181894026918052158261755824358766894093546314408574555343718440975970619365531567994058229718125096127639363503317028345434908636133064126711714858553404934119983579129013140430054464005820973945376206901150119228856991460175113485438431037251177600063538367977415849457128578438465823895532325600072163473501166940347283189793964700615135737002564797602031983789777168919476946967072763308603720196295783698334268935697552141414182142174554462496877295414689705190237044730773331256523071630378768512943587730096135293842680017139904385439904302596890647747924510379644447065005172235665935194431002837471625021711152666095072729976115754666555323742788583495507162999969991777459545905438487273018929276310789967958009551189833058269377540389051692671928714222665651765899609376963172494496801020388218047947924812481896922712026680610275343652992643086947002476898161685719794957373857377621491039540517554323160981699227418180434812087307867809625297042438100041410026626632926709006305110887878477086571752938848172876867997659127114777166734015948012784296731622096295885369796480285624421726333473647290150111852340354429316923249295229913696407647348938298195760821838880718818561839382318993883080239113633903548584785466065280095409668965249447216416541140029093506917431456241107721847584623176180143722245130970988800170471684943759037508492843731525363104405260047953536513089103245440638989632121835788287376362949024800464920212891258348969607792731367597642368624862299415044976917213117013230387655105616425144720928610725651354810705021791476072616391516633959421906153095386002852092210787444022317538813695958647493366158025138084753081765045606995353749499253284249144459418569262977245925085555615056962350497572075280900204244163197256201791478833370505029924993448774602105409704333732541979212754506571756601834772425954850662759090830943273513056483487940328322295069754532296601951236287133585498220923099016046100929038682750035621085479968113759821852531094274875742966701723705290170797465978037286524013019565144498682774287679993869262221714314557444119482613894103529327059084481416018168688590761389525752093878862942551843908021639173676479866590101983590035641694603654268113885919623308274858928859891031548296655587196116624335166951562749210182071812565781258267031273364617831489514871690454611631197739298352858326415006687287838357622464603830908452136949377355620998289104986451268596979621018847556920904260341524947549759731321552264328026039705655021794531256538874136731189602301100786457710322408637398824409056409937114957124648355254484468155231517540557772532158713951685967976409502717381911866466238514903026690351402002018361954720156274513355696645274730040640591871671336238656868026636096697573669567197845486046054078872496797260994683918676953241956086332407490530345128573692468007245096951556900678298332231624030001705466585531729319804056665325082403008052240633954145657752570504718004223222159341651047078792616881635059483573427685140977539395686490708682950920875471259907761987322054973483796436460099673126011631420531836686877925027737885763816364559085078515165376890506372034685424697964085656034027560201315074559238301649558008569411661594508194169337360249555334594853292404255573003492529516564089940546304619807937794748644602820265199959721106234480431271255154612636119261583349386896453515746219347786581657177585583268040786503784058034851982782012196677693873884035230523171548546759781340608812520412653926267722535857471755208195693337362915524455595883211359972804536036285928868128957436057109769596072012223280724765528734458383761961527857389208058177768787402012841851755655274027279949529401611214075583761295354326565149062461874231302516169510198203161718222301390021849664201408581498116964922035653033583035992256575970298145587115147741859929520621908359566617453206985925004488925921921634149256574514542665115508748633555068325876683500780691634685382687672772705418036519535264448876192398533686883306122076454073863228568056258772234541390173837206238226854222164521847097526089988030915582123187728094566644550238556244248654683421132409301295330333793336473598381807277144527802482600713180240061827970774260656229060705236025577000244626506774238492633668563612589676035669743491997031164633263544138734731966030002077796281363670215288516380551609897735651975805715740482485219340809682843820795204541801861659460155873371799197806599522047683330254026510917829912891177252327764516588319413654832159843234187823309002523739806253816385075334231435538045917467836651409443634494764721159310130236391733852467259045482179792583863228694494339682266292740605919868007256589220773073898411943599519715525842831318631847618663813233818388741726272452650274323440439789297320381648087937701781458034449445450733827918090154874272904305868480384214767932310916998887222795625775233645338882719948237964513659415987008716565312556631459802980187735164602615221048486247067627518174179514317490304019200612636544126463377628684545332705515463283813267010780933149920437075484197333127980853709105541767337099580102759637259763377802656213173462204883803434528009775477254934601595543689794001539700017714565881679984461679798579330061108153527552716519213498240698125251587048386676055757867431920892137606227550142321263771817240659363620473926837245265517375408375005330447437735507246898825682668555645283276176227763826473808225298236134654394444258955488269920227359065853528199763419594358595826922703414053684168084600027894716148767299990800454978281922268801015570239651037264162980323594420307495565470012693232548845641845030408960244391179810863011830159339212331330527459988565709846150586673245955877336233315693087919245790711493834363536262447145841579708985367032207740565076469686227165107504063416235924275827242611859295674838915225002274189576857779731169183127117311160646040175785150422895576757580761246434816636156580619811358210257374007940331230018026409588043472466225668351109615729100071598241437195539346770419610662870560550560839941446065661944216483742604889688767728711839962665712556208195527665502522246171523669219280204569305219989336177809413282848835112530089987002179025614785962132216227086606009923300747598704136470617100807655390039110273745041639825242679709680197506948776365887130502312989426490014384897847470089059095313085081321375821692644825145649443491107157673763919067529821802668634483008616722016826891897984895602647738465657026000328378192138053879548895412863054220443883702935975168210992883283527115236935088763551916350258917828998233545257131710716213130780157592509320784059969218711077805522054260214485072589387727817356228499343917446711461688078099845662682230218964904940446508723024164025878728609129295316353575602378492431732662200495592829700314181486264767057806138315705198412264601790490176605678108597786624801923677136861816827594208584930575366872146986886980232948927771102760705283007955561168551089361212495451408895390254679496535645062213359294366505618005880390121754543385806242751617149284270370605447784750768932155652238940356658313373068265484595694517736526204625621251518504529083162991673737036903582618032909494186490863936514004407774319512531713253186342508871141723025970932043769305128885421205540552448407759397192262317029271321003576494289052258218654253047855801657444760878969955453901630692798636550764365415652817977347748543202570747910884180686209077821242363590348783663087511087059758393189340317425547397583676187549469192931858535543346878393494169796478568474347758131877341409039163537919903838651875974037509144574414020718771296831365206500498946343119596034035771169763445587431589648929133173638518664571970582069880519403125660841113455911072891773885525455957925334684639939815333078796429313899274441653492853952503817422225015516222419980262085592690772723768864813901714020476275923300948751656633262434960798684567060384181342694113344386877621543697084031218212920040879669474224202722131396084177469817000039514954394785968395826713054593202082170346859209763851848519639749518194391011378365203982051325601380909234049587601217595942318089178231952254090626634202264564027178586337296215583652481977420162352492237874362586747329211320242170178344931396953631607416056969580611592108734534383386095229722264336835543660795256292123802118947792003286081792161295797217625481208591741088803987792653782470471164782874778487493389700101292654194502970017892268974459427285165961886129872459378617822296961876257770401112617436289625311862857275418604944789950002972456635921534385773610295314337912231408022634052895487259377675035535794530298871569730659893076319435208603588815007552379243633985480687865442403793933815104065956373804693516077686817170191278281399194576831874559409504157388971396464014746021529644974255957165307159839494479600525924850470032284853417926589571653086074528051637453582919959356201697460303363759057202607713832968619471830601877058167069796229684804286524186565223121303954189184436177527648333564605916097637437801255015552395892999019939984279026093017811878068214582136409359072223644472262651275895158661598492831335607375925856382408784166170372045727737010221455234778498116490107687355710861009078200968997452367273019113388180990177791976213482733401864360381566058385834312010646439282879098006090628035709251597945485619102978848870617356296782473599796949836405927177314764837510724709560549781965460672863357175232888183017138862449903652805647340271177585220995754755527097312593556221407546022815703921081776013059322047857107417247549876047807495375201435103927256007050647240314584660827600203151512835015928351153512338447048789973348217255942683042328207114683287293027425055127989019559137162030774741846109278150931674245005540142824709142519386978387032053750948107121692630347701046031389428609168932445162057374841904262242237500892817138982304894174427898371879094946225056350598230413507229888342135854076079973867131348026638445137548029037020776809906413263805694041974225621615254715593318812830651387796826689959685098197349114596177247754647189957005908371937566339752826846374142820416488060427460507582724936638125720572177295204583645280664956149477216987633187261229922389952791194117616677555529977672369566409495647696076687410922553291028039983030699608780292767374533319550599900978996495674322268072566063673658188552746176281161238691333327692148702277183554029427559914290954544386395234799102123607678648747232788455388114165104724200849475227595900004681553114404034169213982102117610263707725734960465865930208699370379222908081659607294047712117628628985117376521410540357574668981272397829768405104555579991780568112125186512112679246912678256150150353398209381888856753863240947115048357899550828378828876821968757372844737724854696740623625379527059409883574345550784120862434819472733939856630086206277335162947849444803805030161088949152759861944415050205242365964482904465128775628511968675210643756238907656920577056924188663935429081688135805637021609387696247969356499202978302908229562944740216212189795031745726034778895583561712524911623113735253277117177192716936647921474545934217940667411250235346020468328627139403691719478447526259740540536459633911130007528124798217333986086194244431596931210411003256021672503825245339603765506309695614988773927136612972148029332149406074047038757130153137367053931559441638344812940562776271177152974808962360511909083688989559734058213470469311904647415140877903607678904946274607218353064341335659539791730296413742986647886891122933642984844894930629479591643803250948179126458679175023135900125906693129190662750259932078149497935038146024566858580328828298874529605481028070192608061563312991765973275548218890306341690695016605687452622270773733851930919457306309106355345076951414532983064973291709639503073028837838872791765225129623138911767212882848303096765575471582215286783893893334793545635141038194077082474073417227905811431163565389591306568085705957392389818433440529198670242138674333685822953518632778451438279716670975400718227855602164558626040824052910156179792099998352166582597452335447432954636549517766373119833864114278566885027219695952311843476238947970454779193741458249019378957636760069505141441174646196220411624860295267015891386410604509671902281350700242448870990492956020733219681771957286807023975102400954719880333435396254416723228626585532804456409439455154168544863766820686144992096382114156683073546506774191093818006339835943751737855958971086070473089603079493396516668606801567194452740895999006470701393140594011176805409889196723538941224264121140743490495192086394628162477643168616284546558375673816266738255983471588375141249266101072315503147587738294847104540109326126141215556376226539754130914014457884512914476901577658183333143112691753584171352296111677754892514555964078283798128160045320277003375713521579566727535744738821827106355589541519026969366151818824437042700419825361403777240008001441277165632942924212139784522504253267640169879172411207233681066153683154390847890104416218114349717018784658315075148168757605489849454512429588512785033602136696880801976865460992217110483655685428965924820405357818683310904532272249690734506133618025738585073800227915801916536550228964455209116504907326061152395341926337110513581045678045470066802353405016768790329535069805599820663660568549467362782859695764847234900459994239956558109825109593961132310247938308969540431707260648744587040649160860512975897842839106270142237264377237437214005760411274115815179430220374329510845779156723033613454777390533171847627676605134015043264206405313532946756322568929320257512144228019587196150452225927214425013062382446821120998649147763158268286635994839114396451310924790138084328786338952462519891663635441695018034710947067591678058763473169798254374053704584991407013929990143132663887891703235913844091746063185015190432697946142243117068357304972262730388479421087469592472213891038470701743077006569458657550655782060163974540759530940952860579893604944135371957817176256370258434582099942493390578870108453292764124006311896285378069612889456472962063365650844229579546951361434380103063496790310797639330523742586885947781519286712063686917333644801945424902203244085391300599912500777836519444815096715220812282716206492164743855989438137171378111636555031190292369964969803122030107961248028090394523210512757927194208353775115699973844557932162151823738319861832048249165458928975109949030964473333085900750595225836486882870025766364277223185866347808925463480423158277389466796913213078769253833849775854910357645174846102114555295940804316980723786892395536806008686821046724461729003688174027631255702918702476826970763371221891604803338296972758764146109656805275808447378596423366929458662919414818046054838075467163058530007414204281713948364489413833915583024605855286807493289057857879298046096136209191642106027248831110237476104989199568863400894445887808664787538998858715314116441196338878708355807032719174329045281247528482103263116155929132131825720729315408115147995924860801870246191650519851726878811495458280061802609500634428511954621940547698091396170095012151568176627850241237092588754722846213212465758884600175099629681459124355391630129882855212696868586089920806209635162957870248959742041802857102123254640770688170579106145993569642998963920446595477127761090834223460349535318823207309271454470257491628495631568472064201516359716831489429924527874231846423935441936654782810375066636973915632821063318731031948061802012509986988563602334705074984347466079793893633689523892938193027337080059006084272133345620439603043349893718890494311319377026595134341979364172227146775747214308825239780638432841985806654413337012555985692629472702835530093578498905955831352592052606921048123870763909098132749765943814389151002540710993253541224731728306746434976483566937433245067187489856362502574825151536316619766189701436225120307051292177915271490791873498407377103039722284286469976066338794898691225308101333294467129778632729758932417587252756687389822786660244424130868751780445095120771089123979496789179985172464753359383458011695587752180845039311332025236900091485217012439496049389193207302402659808190865363136090443110917835580898794810108256733921352837243503860100771452555852863157795592440712661088682981415773439045730253202826159401503410886179125286935027952042101190061035321355195574420819723409101393937389191527203163319595493674071929867319528033247505789086637272496002682909512592911379093856127571708477758305498596327819148241855609496421694026814015347968703039693022996866981783751710622541187108027667790193294163119191870909410535576071686544861013548355159873582137390597475723682949004215544145061563082923835158178651582930418074893348404495633987101822268443147797970827535408871388498278512442800192105914847411540129774776763258397599146228740136444513951483693278168707672487415305939667295313932639217276107187658844989032806047380763866195726846417525000239638167497368560095129345696151902697428231892050239150397188491464679501725492920308810064975356661853567528081570410194218656805131217210392281657038175448816556614836935575757198885908884095241763867389374940058320776561640098883472417873519208187497792416585721155259243964027043203867945736055785836483694592262520836776197447597437888767397899032804964571188257739213341921434969170387707298204457508907313173726735025261354376779360178603803436840326952560450332739271672908196772340876511761123230795731573758087872667730273870697692863780663742192926932380608666721185255071498157664983430925522041409135403685329183131580930051761175921990400446225641527640449525396827149965797902808402997242400771196395542504572526642176137003459356118743461970465444243181560640702743861753728426448991739293822677776511423843686990122521066483460136828499176823987042878898153575143426916294350280298936270991553925195923664959334311745023444883859099006978483079645918966096744770449063503752637868885170766457467593752820990244864875481913521996473605257064846624410763699223653609138847677343743661077993908919478573534781973401735733514462531706780913855114483201093213477916330264906189638537101295620711697101522234079916661362402828461127425699914996238167728483089616301035649137989395459458800747827600662108012474072799461808409719005705937601552362899761273824155304642386365389773153317611553766663150389102664810460599016089520418951724277035490838007262996813135652729211361063941991235847436751127040054867501351401516704143497189941618471775739761990791679571551495626061848289331241969053149874917714063229545171223676507499330082959798181518627367848855759963044461657903847497648048664282678699745105780870662249140849216788539288933866819534163225126559363824366160122970201266049054125327009280852717122256826082268716248913020859342459164684366063757772568041454357863894080064680308149449480509526957383639625360508402582624503386456957742336235368070277379166591385111262574327516751995743910443727341545256904139986836980661882418787405042832346977174879664850645549884970006018690626959033802740647735174510024764831037315697515603865034086200516945517845954575363140838155058040926663870686977470146723281154518610416736371524434176829487186948214400266221686018600441842178981607935617616685351695103346370302538158171754025532608628164978406204013692374549434161769259351072307593886603244058975754536421033326894547779972717622849221039439351513223407338154377557688321491224274075967957984017359229512896512398433828331083328906826582628556052531431575286271431654257572120353929617503273288905088747321604507004013878590516343635272921647675927462187857010945448019054397031850074403255211588292911942632737382448693823882315116248753780389533548488678813507145943023896334075408971455403606218937966101967416398469557095844508274064619639101423675585977903456110707050795453568386672018220676071953550490462377583667882171797359948998091817621851287789509910760825184695125658301407030174183046924033978951397230005475599405646676425743932609999387538683354504007752518621456717380497958509659985585236596644189496021091311595512526538876869268722182933391608382171126944550203586732218735733046505728686623169757300839749809421091742914953006640415049646688204780463682814227978445515168836466282293396789594227685874412302950657138438154419367641477755239151574050654935591517928352938600454533205308394244580223148957688806255775453023784792454621413393577742576845336710853800334182332145625920117095708855200074935404297130079514579654540153321973870285206557665857588368577145805512578811018830378836100465901968139530906202227405869108563533604679222427175846126593665296724185602018169394252958862597892859746796097291950035823850953379941637280183433334069452311631808684723725246705752572619090054902160137452499232078296503805088577072916028556772542818725361627967348518043182345148199466519909820959689223839491107079420647562279873296130709032851560113239304790119853459393072050620763765488158872897493455249066314622737800097433787869242390654016323007303495451728458895700751326433323807468444556400528704761598916386901903768629884607232382094421407705288418077596816524848799198343819939648305492948034421605027965094724798559245892451920222506865095665029269192237955120283080968735781787287857045873387795207253664798848922081647235418661011489186132021238963627781093221988670287902761693349794749347531363699920584266991432877844056855093701401629265275560806052302667801672229743169906282288660165738255980707425858091782659632601388691800935495514910927691193146936617805774120117097322913261119422732646028997770576749082166667249509079492675834026997926501845584006940787844622015790774337821293381449563126199851167225522044644924031305324679324075474925563206532788110929008451199531442051360723871097587229693657349005986209540830737993060611941289102286732755410518771735871265337331648026632092502047542227041444544176254053898423759850294931914193837802869417680544757082970957757918846062516959469472813416168281311994818505383699087569128114348588031891773685260027952175714979967264059869474251991790847241052658061555752476647079647137774134244330120306589271121332194663727122899960759236833108457810151069010027646145320557296758482475730520687024747485560560820491447015319832038237253395514767006833486450588350882554415040945133131419687130801379454773444588174182312544106139213896348202353322284771389917656538752884291678317822594087896623748124132079205514714404689043270180587685547636806624399834678467031235651323380078048604102131700644850813490243425903014030727765660546190400473629906491990360230532845025822703169873430656941611205814326656939934390656282338945344207962830567954869646923189286742839176701298758110987377460824065856607210115761633311262352655031569964440975860817293447623346072604410175981173338442817918841435043892074413530570151431325104297276916824020656854699114825294119831909147222011009340479185623069974289455905837699546129530643858034965170170855472222955402137559098505874113231141044371808496917578454463674210175905530329645060895542065079296507992525980189023035183140199141411378715388846176785259228885294531173158158708323801747814367573541706539619642586455056730317550138609330301510203477899686781491383173330573484463957084027263504478833844422858386375609095988316895506985160607521690534274674327478430747376296569629360029232243312172112152398082958313146431724155849783326174118484116178109347022305246424723656053525705300703030431709754017494190604939221421771062979406976699334865950333512194558765582574220546032793297432722588757336033934350265493148527010064490013067825422768804194858713621415462062759349266021706205603773834688854384032287899605491298011665245583463751361305407505488516520305553070194070083519227890060016688738401923019740357743359013790508190710800308471579574624178027096364700109849417727561163391811310940456978113829694074769851680231224433678627397852132466513338038637911235442034745777642070251647432561960409066764373360520891489678415906847467197157158712157363360138693386962935142997725683493955183799665037076520804996329290047518478411060785115995187856128082199261691794753497635488091459616902156660155102853088244792855856934426614858525107990501044975779188831185861213865848230453564663599858392478920004906600986774423487932007922676578690348756467816046844498155277556108712676081265494612786913582540925491334773248068029038090609367735972071209923140074755953329187190080322257538999355649448061415605797790537767835310799511718057393185020735597723168898748527161320213095723403117023449459362952719220926981728412240215939357726061962793551445917254597022317924148505236259150933291742455558540956683126954173932654050695986695071952720271629109073429367634807966782047608484037365302812193869777750328709078619132894950524094743583326316487169420662082409600360856789909268795647945627444895010424576212944753905242528219291931899840200033712877639596762460904675100463099984585941126097214237192871687047876472944871129937354787885922009727802542508215027665613756124544236453239566685368294578921262583008245075595540407560548661319795790021982201732017457452597015468996000065850896943965896032529433341688514128904383597057169621196169583347246567328215390114227477909444854122671234120505705344386030197275043445263550629702645828899533093303182065250894269023806506952820753535931440973246063559023765147830995093518662891929879351348699246035717880455333851815225886446083174968723584008850685878039323372691529077542539122653932564630524592008868385481361681568455871049562637088445654089505128982376987970955366987738833782761758140671944057716692765865671459032476515605911960339381277860534086149486991065285551852993123241949376253608205021715106054976385147200995493318592311382283920912513065582742640607800805096150220831381887873615368644941347700385164743528738591090127430129254978111201047116528008813134098713928867383047143098453149962896118988557847938135675700758022710090758149951180139480526686443756991381371830472967099264565560715607095265943439532477811277402996306744221103816798243867112110723356089548443980152067617451853559287609028998111488196952006418084973168063068595660979618066702086983198739942172890616041712204638903446168483277845643532899137314846832222509248932853756730288745047194952559507490942855367606967314168818519941379181616440137745020562428528214505021625493684141184581164817455701476495974802410303553292780377294081348761877702263792286261416478015192049229384517202423187376111305388562370727394871110689021479517372295116259895328634670648990490562313705441763798052386005702147370843397803404170974713015053361780034140217537980805751685756999202758267502164345263989321724476666845624604638046856558994275785770562152490778132342714090879611134199386652833435303393964975543528415708368208839768357405804652581849046311672707230530078641369511424797018555277731902647852370722291389713038890473155058333104689367750617572349939672931616295306585033049551838556501719730541491067926163502340099171356060123525686809779546152308115128764862099510328006791341136466281280993603654882300634034265915545500790212374344805386472221678275565596761702828120720425367566107590002409606248063481827204819990241023750900240141121067000007178594542837127956891478305825427669978020677505027319955694086519017857932129769161297395410488432041322114443389042062682594291308166387072453735140245813927582201108996920077773482721551941829301889881709776980785638289277328444977823450044370428764188915607714494759573902578884438492745983118096800350195411086615500835720815132378984300725233460601244112278745475046217077870240299281099656751594067777029839090302853274264766927941459908270376756643572148520668077536505985752344088745665426599143084336152862195075743634688269516298911401632250984457308080133630339063162751040303534872264005884104586864821754831278045206394330574843131616371113508634067484176110671973108302919951441079858183683845479529993517172788154496615495615078282914063623057977514057979051258434298145387563131846615593210337486483224084282015711096217065217310473947704987083324913522159576006478019400403560815862104987761320751523020819088670638072027546106546587785445597985053605387409427363850409506913787376782087921605547402695765120391444292917034375258737985519448827547399318164930401773336664745002793253908596904084893092593960102920322440267292351259496556019679483711748866495661315125175894701830572495510971941828406645393029526671739437496079295669355630509874333480872541710352178147549279743510879613028066330774029911761370220486452225748001060381604471817477216946273483859807009242703644335096119659893649609550993728308991572246992070604555037247400888394035294216431640820735629030209193473502171437975367321464606966702299170313185394685801423107956172844385953647084803209578858666697508605702474811510116328076924749772929149948272394713019527978477186809725097935703137951411633075877891449635808896425146449568324619069773918640276019647399610034429419619942929359531439171727948698305112480287841752405647552040644913964728261304838169210619038664964850220307725843136754624058520242730142423563983468817311144376703334572862888182554680883615411764169710466879320198493892013981300454423962628255415083198485453868473241540427408926791275464352494261081781291406552791546539600835946689685113196395359891370633065439591467018170022654491792102017749494005725650944260828840986440704918065017100778205274962490470071128767087876719960911632977448316931740384568748900724447593601013178255805772907943088944066394768809949118884423655843923799916564821161413368571129219654222743507777036243648856934988474675983631909803219934017073060781376878347052192164174814243780384884531487122420135158856331223797141262129020818661110735480552593516652643190740278238701732628203121991575942413632160487190845562549908688788207923029408710467850790340896809934836676382182736389550894248523055464517075662563935415423297126940057641466515074585820946673931799912126428882826048181217172888549053234086024277759187554676024197049209439479585432732861595208156270377718598431737990886258457943166150887967136953664367870327950515019309743216129777518711949656661481407839953936618709636475350628712410723430668244377873626669450860156107105017620245435423946876868798024211730010426723483022065682688465302600778883308745816430549986837211351156525463376221808246038973570859207142279751977446728754074925824156497398430785260871558034298940464786389317547794555749363585449877549116032409865665147034852368067626999645546625681635984216676175494117429654408007816258212480664805752324678951596595629596355622621298317262847818048592232817025415138672699344193568168022434993452358258256320656813084994925192353900977389271217286461483973428136551715601038672908862970599605583152111428709345689258417140379716092421393557750455742387422464412504721871086231308300030542653750492356414217907617388187790289470436606144995745549639759206357385097676115632934690481834474973424499966586531003439307763266537931579339305624279732089329391896424000506408917906584888867088059303805020847959615919011476732818589006196793613481709733934069918194161060077568608108071317265680062757052411019389991826133921313679213939466355677166973733448787885940129706210926710659144093046702180479873387419567522486011835717734977619920770227935780491736263135796485536451786702213171920148893701421628884203060783637381071421632523387356046578380279285743472641234965882938221834606716835495598216942054300173255118811463680669037918738909095709640176758403320303735001220218346402489932805606108845797680612232937605817022169455116885413238542485280776063373679106917113186839120929051918680669400318118969457483767371144397162974726916572917916699659365560144609287346732974672032758321171285971847629885485052731019341865520644332891804913072776098651800462250375905824664318945740352014521116617701088231689563981281602263085570138060598011105707076991547385848942966034885340587303204695172159797119142875738022531870684978883228570362571179278350429778539222195166570434568338133486545457551912951773851151651336902567109097784781109305143785456669447968813390984160474235363501006149326941143982258201507781830691210200852822868773008880384403856716529323805784627531340728166239060278839813265726779324804786711990329626680425797710455774260511963819660641791674649731974463977444297776738909489498006792390650530092044218500038625550590170915182352391311910056292256244066253742882362262406991316458841512331207423625493101503312698274902085561878077429155968116374005501975616751214455011716026582657191795171855841990439382686337287644036715110082372442162075441413612291613777801746257792560405497140521434424662064535630873455014110413960512992146770246487422235794892314588826145745078374283863924018620991251398849795650122574043744156182014499798176338808107045668867187390561330515805106864538503311491987457696591471886374725315352385223247966579000675621463013014067108787051334754264146014363300875537781924324363631551187931534300246047487695027314979619250391397680680756029863592716041547260876450675571843449273040904222948390572550977795879346826370179156123131131619323795618494865345400834512666415579303814720415207692630516191528869582233714030459299764589672457415158170150042757805110277297342241945379372085495058687279052628890175972998480286462317066399192513814604428113317002266349103826558280322560241809877619697317072790921026939247212881607172535669969051614498099810567010183981413285186066292247768494524701119133734232363202106708068421496768207339688904263348736921253405442252734530189876305649279118544084894411292274173309935384598860463504427747570111786604462749667261644749456852114869708541842139168529072496378889508291883192568191185388067776036013400974098445821439574134386676303705524754892347806530385119214100573336713963644597329015581071313235799084892451084917651687538873960802910512200432713593877194016163915931411138821916243202142593821443304929308638676909356003724242594210048496547672992340162988196531576529846818826731036663660634392712057132956671435517028579894777539966247984228060331515246111279732761230647148543340142161645214730979068162502926534627804468165688295738579888607741545779300430040236918437950434573242483838761566323853836099792370544821734286700676125951530151636975257981898984144545299039147871115028538520460488814948727954205000778257309651999868935153161256001275086976334087929355096950958143306812785748132956394191983468613201856431314635030857044840185487071978257030936371176724166728491112719418937124647928774845730523521842517637974918678966139702211360574624141441510055361527422150770094111826670648901162781616605209200096867935153334622166815920496976717998875391785732824848847672879226002310820136439661920551686788968737369954032778529163446020656434360317325956747828797789576544809073047344532900836830925048668655921603930941975643750727416284001162278117626467114267859685562108943264443753976340299542704390344222391172788235719287101327416627478492227118474507969586753587432099534796940124249412630219117615518962129209113938144548804348007195519204966707669144620107337516184579335945222177796241275522681956086646264493479106100873672885328746985475334003275607986535094848668436896425209776617850721825830291697136454342833266740762559744576920420701407504376673643536425383320161974395027275009102619680556429488175558841879179710105534660579975189573339148389688179422335043623176069305238100340234889001012074028237000932394598246407923566986579961999373624064404401895663520953548721878726126044304028496808058081177608022506347868282111433659251346035654511108439421702459948046813950435902326301901111212638147719104956067445901977609799340392654819573746344077931495095272535850509242996943449130782546209430955852679634053184639137452218083391020157252687912550947008708690208752810774616414331177402967930571684059541444669457652067474368800441924766622334424958272941451255963727848044829952132724624628647626777161673591540822958080024536633337264980798549349240870703660922326774414707924175878571996425606515931457410583626568765709269656469326636815223473420335685924221121535144623098367918272520656186108321097485213628955575589999278148706871565977977889544912214656517366815345783262213201900290292815423298955988239811474204511999217627618301759552934308743051977625918798470187620216437596415178434136733154151817977789455934381431148019050317060150095391508612179794121664199626603011285848166474032661745017372504288397118105453898479219633785937338332365060175015893224575223751295580063392496485516602261000740273663282432877191387836736702190424851350203425655703435518285830131411982497881632909882928149335950946251900213916992594407726570934567099281868540067929726468078947988216730712494012864113044738180813463737689530725253161446201087444176317767263098628499853412148448935189332018815982675722158822472179018627790900101793631200038167825490363050512919108111085224235262948832300935706308272701692495315388225349481497396608117543674457551948962224698970616533495079932200570450607051357861285321047357549377180533256147328231159855471784583916108495959951525447936054818470827163844114352991304499322383388693567575547004011814028405384296437873027086688157843061361657413831978068237819126419413260701526706334871176617112356267027484973508723180941591468786592483115575586174941312175219277233080526339105989783899921620980295235140646459201173297080430421900988367951552931207158830986398831685825386899137968290513806945896372810094151270042632542920927856500143738381394411060408652610586558040996034691545788992503444837868955238019245687434600607866970975001333078803558216061541302920579962419189780731603404587537805829133813366636858021967062022131165607203252400570804584236498043560133470393482798374982202568908344848269627508199838550198073482096506202406254248728913424925336974895316104181448860245004114370464938536347753120118328291029560240479800606486828816938288095583706364050420341627028777154526592012162338560961055272468805442993104602679114403079976742474413626093745685300906914573570007999727883019605701144999425459626224971908030122054458931179600768839617885445275786196014951098528707327175168078972731684046325971860632054094441996403206388527763478959336548113813923655751468799529143123736748762461405655943666971929924490275421029798322508968284162636993298336580501229811603298892328667368264151269087265523420999381950147022821329631762959338832001982816266325136601585304451132986937737593634845051267449002340773608083538993289679650032404978630081720031235463723605773864933379540959473415626443497658411753664135262615012731081542333004063701809592051732854060110561187551180531096014623535258862558499249933501606376719660731534129743425642485000293609724228217087671018979241397729357978021514876690740671321601105904379792058503347539011164944157477025507489322912506587226798921509526561807300674229096495043474850963843961348623578243869046525039715541940912745778402599656972825185833565517818948311454686179416434250708380057485578053751532891335324558820494881147457168583527483338553435334213419666752635182647050127782568109933028508236121795283470686940141882988157297343576570943538283551199022263927332077287222027230631364805739929493899539139847723972985052081978815706902865074968567578104327238152230675276596139931126620823932569495481908639087805483228571502821342946191519872077210524328417760679229153438687608249123910458305591977147170866520541622331790198873387427624956139321884322842370402020977515334812802997495526005208426435585393007285618735386525629164030918358629377322073226328010509408484085844957222010073623872029944942734538003391917656571997625863501795584813881977639690559577360417994123132982440011972324512389653563694027477056912545482482710231851425597973273919636116221845364277571086335208254357050360887292057063923801717017537579494790067809319746910567961291547416379806658744410988455632778488845947785781603701654806864157675091746242587804351228663767402861479795242340217571852125651674147340953212926078244790286073572931041455516039479765112007741659005667112576865679703403586223448322468970986589758196548382598010182605041909411029238323296031071600106706838723704866487069876358292750869807866708430223242351987210103385053334037803385325267654033710766314388269497116117221353981328791619848646386190417889185606852992542982779707925529243318738055582426808737520456253744909938107858067371694835185461581418189248692244897900083053212045159161583640951318802408261405426763939175536040151910044431816902291746117088864520780955006547805353068236201975393839197592949233528934549453627982159303425755628904278557814307754840087755744827194921388950130918740273532235292834489299021614903375655255176464479607952827559115690224974229872041360828746427474187961164251849212563429589049417307223558391671877202811529753958652269120280083779524014335422173637276742124860773097132569482579373452995900374955295412142769543105865759020864316587232029013570103063824728965811888254034339482161507151011320274766527654540419069975442967808166600316693136120364324890891314079845641024839744446521800523534422143200237294696541142653758592734202958187161001965282735526024503288451919887700751766334150118890156316427783200241041633636514995718130202725280861330508345328238822784984526962349945410136231944111612599628905543573921319063031080138697216470760455742620754521485561833174574482058692373483742764038990914871151427712608319570240350802205422916992658340602330456313620626885065842691505764468732325489565482363713972708996226772328685041081051602125253928231578305265613430164746208184650903066876282660887704390949421900636449920852508408770116868454526334327908678463671027991278550529703642236507634587059301463519409006422336822659811042093328019626019705885090273268153266807535949790943871319580992199714109206645930942188848667526511379213638273121544923812474652644218056866788036497726063277405862852020613341854996358431742245285689121635922696749325390087342862835001755634850080774974188579366320886592993045861934415848317866764631799062429500622308902213927498323393215138122288794580654600425485696752325929308318486013390201503867674175082659345599781290593576707192350531013870719163015200181192062822016239722788710463066900750244292961852866251677514571499933881794209801745077734263509983876665586575339119142952659020336685585079566769833460871240783914101315906692456169710074469168088981140834751039276425273119089137047450455945841175042333368410567198915338534915678030868722325436102185617600442889281819062461433811678189695958312505790585583799816987387365229138509095350056051269376753969389457753342446811038485913546727131427547295092468673477536981652103804531381142285278746678289027039046268059460287362395026025592863056942508304816603703136543018894622889512780111169674481232682673182636622419367776961537507108118125050282772345397346013964708234154482131781217582568368753261932963296722933006218412942458969701681819740660134891303498269325224393475330305831893561019586202089297831266629547393548314309075303715677186695647345482150115098425243174363681422619318121194209956107635922336887364962952989880905185522497564701722977250233811826716049858097413111372019220103849851099934072880147207066991967072601940641688855855069619395986975400121480230001792018637523376882651349958683817980474345640673950634309911770576100025786393764934889496195180274565211276026416012859505014300272176046449951525181339298344697414290522900322150821341040521258076054026033041848707273223881751826545231858841439235292856873004684798638396405401076583168518607489844703758891203422270834449158794480371667543647104983995713130694333718853052458467341088641605041814397206344266628346302303190957736786454082200809834302942478596461151027088463562316181557806976911437455243822318678371579177462759232197864276230131858967166600910468762352189400265433390311740149472515526835203722576686233749931789389528068768759834786566492934639588396741737487240766914397932252606711719618769624159919754113531053403955022966209631390846902637476033103868772291521345621916721051940268619420394810098230196616534552351043320286178726358058133642227016513585403079515316805294341507655800648766085854489011450933897681581860934316749873037669719588456941909407577705675322025724526514060797071724074134373426436857413662047145793851183850604829821997229622426658554620234142055828388202676497232835248132615507085044994357603096022314090593791637074070933357196442927456874736458156808953429680962244095085251949424058557622430642919166411459371871545579673560815928927301860795262086192433995613587205000396744906070890318787176202646547393048388700818461114535105330610753530788829741646396624676288353368635554054097748962696120153057205183394282086984618883597268969782308123488258357915280297754907509188840486560515744430046485803789443006697237287979059779072284855479489515269356498697492568015825188292149332861845342182672770849096120788735367040865543679875471651537389617303489480399218511322552033187119486231756049698440220229538064424388608716261693322648240083688241034247491120301372895914021784544629676744118034074314758195027141677717675750983221394669713796252736928234062602572827291305101881862295041798378590299447390813833548905950403543905573208214170616336556937288735099251866347748646200456205186294130847549999032221363763291476466572231334730094633981832353884349549015642756832550900222371993151781670976906077137897542694960692741058666002540559485049217906835339024281272491541643229671971209062759517155853201693866569655900484269327298404280974488851243589961312409673610753977244571948010435968039245163861640522189534543665490033444996456537671873526949005283485029453007593042148975380258741123117634348181647668552070876354638366431846450508678098277860960800878184581304900650746287624517355609881565067491007140159974494353425769964077389883790632656527545372515854342899210476474315826168875117482479234911709202549954006449509688371556096530428897531469280608623510682787736241898083176967844063419221670609421001608180016187651940014004818790719750639197789493252290390027944315958391532416355469247582656266162512208336308396282866520190939769785600726592153481738934914124990168401689356115492785275309072850152583502514961927363122945020895531105586416505538590810984540292535613126625035967603496658262643999168486886006575911167606098917892567514807700184240478936395707458598563776763024870198882166795131253540273315076917247233750643510708746806772586844543187063551113351951407432460168753484182380617960855287922522775418689873842432440176979664611604689573134783588332284532672034183663300363569544446033154100767293405338311221114634430131974042398507964222425721700932647792792681200722701574115361584908446472240849783917926211772798057516810378137676375970562330292799750135625504995309628206494221858250543788846528400519120115391907087809080798182297745893833020293002950436363340537731189138546399226261420841564028129421302746813642092986477026078545535317975298423270408087201771114523262105723802419930370916516803574754404512350758054045344140219573180942079648173505332356806405637806235978891086487918949494857378457406525691493461307311874781724781863080134219161732754699764174792310409753416030303307461498769848505985406292761891995369001379601316953453281695352344515175974527403343815775255527873291587525851738341086614559706303788195516608665237356782016700101006576679571484030560056265891677857420591868545182328990598975745628329106952390303238742770792341058833087659272347748327079230826352466310828358169229239111701475986847204210037682035092473985586787500974406513590815525252696068062142514936396517287414802345647983513891415090644559175873376697393748268476562944309657870338749076009437813712491743473431492954857036512547549401598159046820173258856860382821789125618826596247062767232865164348914976940518996941643717302534894036457822783210156201543330474289848148675606319592123245865877842821096581269732779233565181611047674180998997705279813186834552100303879550051810138384802184187332635903375900116376039156983245637861649396023366780845834257032694677498544075427449267551614108986158512154743155439302938382765941580123928878113572998788932734136147598901252253360838881214107701404154624785338998559241587806691039550802863501664484913070453857818022717142944046914863948870858916381788579703015135504948023662331163508807459535361506945782969414372425539868428536332102978623434147839915949269052645011973955165741048617211118111503128324443496909818743552581447261725989026604328374836073874823013524321324937745232690657384525233523271824874127537674186749543789643949014325491149236796879980593011569453653874315844679768859430469019850605903425290909324952259428989808427880242846464667845060334561490828157692490207573140259309515729805534074756985894854850184705538934583342858479425970953120342946509110128960503933441845420180673254188586713230884679766542169759986249368282640436697698915785930309942057425002593267918760629387590145669792861377961406865484325461096634904976747595787177299227197213076859836343562425425556986253105016517895428036795561739554999389675643399433525065653705506558905398693373886590447255838667488087111132859334396816856842441670795072632221749172027864926245323357501044624742619084081081979991759902548865825508454495638691293131541835572132422990127310448848521535272300433801096692416064870533507316878058353443465998554153775482247397619294282120014106800718950780951109637748251822289508149540401403075085190373984296672765322824491731277019050484662785067354680722938281007947682822712843062220476289445449693804569640734347573285327486470174274570628675787099064046566833851950511364074907510066959066757519515222530583614107104080467862903565096136274085643820816837680962469807740138321152671031889621901732892654203303407423395381675913109801544758557423820904179128235347933474066816396884961774650814892611227109782801775246471313013702160280173738670019448299655699470234209923003476166450938733700041959937079576349533856766883191730276360103034756125595880580249827327405064816902302223089479243387209328915665948368889332523790059185877321495040966428307689100985153316564263593185079510779850462249389854298856602492663131590104631200065382333590787844397476697642922868413909604453674758167928698915440870057173086586335185528376086242843825578108386368475976815807568142204358067991351812450836021513149929765342150749028775326914498940487710363976184792616448726306780008548707460860299963990696937109243414264299217376652204252167568942148227379643354778609454086204603446089776519418839493032691451236358362343182638710257738867628402333111553261428028830838994391040719851395382713464257736402872499098293584852761653131468814231035802353232034136671104360523796572656831445956997504444936455385158643497463103740424942671924005411942738891579347041667232173580281969979057977603360922119859969689810096781575115940536001239148013623552381405602042854352798082602656420567802182105536023475382993307185786425077855135731940999074297417495191578729081222592388527160444364781356665114587533046937506335075504987844630710888528167251574039198479153759230216534831227615385683752808981978915564305064875346678691120519459846498244427381956492517211953882386962353715688491285922083769199598491184237333222970785647895717810463248976598714420372450093270390053527636177036772671777108896399685657070164789189124956864003734074939068719445886543455467490445168086089703271623118325614536542140124540843008296302239035832973054495059044311807987424356699955990659852791788611902876516799484995098276585752695591535964354968933537731817754675057420374715064148340557762875772200571652257246764552724883397321235860543240376055071382335313043471977627137601509199261952490620587970366908992172601485738641573403706952352981198704534670344718653606625896749368671313941350265496429446289206738435242139294347228144096754957160192459964014384065912932478532631780731609083077197217183571053250560124446405753295054124029202760421585220153564823354413942580734200461022203462269472669346051392732102864379463186749625279455858383703415900612911723876834430713312527893419513824824309692133938182911328883365071480228967513326920143620952520044929714823815946797709689347564830044925081323868111681785230612052411417819112640166364879815690541566545134955524680844137908954001673226860192698814616951569035748307349250332646430432025609951111221047345119724772674949831745702809767541957643087386095411966852241807382290566446360328323428074911856248259864612330072009096878399623592447197858395232110384329827142692457412431237463279116377086116837034742240861676991528592524642576687063637412898307079152397374736186906741084486028855504776472662640164156285662164851766466633684884175532809589381006776247588090847307639860971728442470920219872954917107513984862110691558816495515764727904588207189761259400024474088311374555093081980928174173358719288823488838599568859891868548984408321566595251011580609296261511094374051081385731912780040217136092252781501750327103954955172927706909924051374556544360434148546315840223400514301677176045637994355624189641653820433799134287425583064648488048146801869356551563969259316678212056325238431039732552617474986626553319452637661338415887067845762665751410581489999321619105233284746366115123316302930770120663461242005013047272210882818375541617907912182158094478554741743045160983529186794768781477672882839852406015543590573170701642113658264529610835030043864095078932095420138748483078096703510155909810493229074313348352059661686570113607573937449858887695994705177713296595912840208393355230946877092357897583144573584643927159235630929791662969167695723103024181904608628729473735752076586118575203892497934065288734630362082117368794267655866650421568385254099928637165909098241324373398779497073459237617379412893301861226790300007657887022423357666431296428627627010971086134879669802756069813827251909280953158195793225588825829638982359392733399052971588635753195008730933578422883976449895712894092235105944429547708254601697840963973590210735264409299931175674177783346581158112039523024787001685508281635095025000489905783858791425265599525038412040330849323167845154509861721815689388770615247924884277147243930394354477821231334957765978503525253925259857557970934228374244591814714584653629193261345431785211817122255535480632461901757111882177911809110928428181832348853577715034556144929072622970653768386860195973937772175448320472029459232700617920132039048672306530555345891495633095802169716928024422783334248589196725366449940625356413099360270995181741397379393735756065700120010313460019291155909367583370056409199813972989283392434750695842357263944222538263252197432924896920242771409337099963312306742773100899990471449313741144127384963326515679965828077172789352965154440103303714792571964035658609048921205609462934639734293609685204383092283836778108745265320049887810381869180955487758324203354608541141700918575878656707429730958214078099687089735846564888331221860095460556130076535727731755466827405378972046333749127153905083982070268391885735622105048707463836393017825636428839164814546085870983221227501474341220758056058743880040134672436152748613505329806427860469730067407499515200551899509743097491964319455409101274516920793847559921444032093218842887822721510043861515479174250387823919343602483139508702749091715673909694256260593309891224749860699120193781121990444142985689257671705181768089372322060223770959539745713625989892095807179657586292440243720889182107679470048613959127172349615314615769137562014213779589920092478503902155626040462317434427083090854597561510502400509612304773815922617158498321871762444523504879865249351221530184766441865387518024582568153463419181409864143878245799434863381341754727092795767063242747114682902677473516665373847541835405444077743347610934404034053107860387515140980212585469215351739447146925732421852293047676895588649419723199883854768978100839171187034503381210348887215473795069406478639252942232106168080222243447092572493134035794854559376406730830068478376917931907935061272367981733116608289515273556155698569541467807544521454464474918827273552402845223945720083675241450785204890685922712630708932463587523029755649915299460190027245562482308594799688993641530282315992785273325329742527033609498364923515266765054522596149158600421690043773424795934429819923800328241014222421145022386904165729740440752356223323590354198390091416168958344904632868702157119480675854957970224653068794654479718600263878089847516882361314925937698473848666895195331955942929303689023803702104069516657016688680385665166849223247594207400080699288300513301747562152047771129491305145515182175033750357620927312758888417211696775149112226271638813712006532564582677931985749241669439473344005200102017665096658775515950087730614339157127870789623048250192064850857673376903550651135597028118894507644596056460583383095824323115956768272493989723375288855744163002095329474815358950845666106598591094197558287511417219000298001947565392515899156591882208699406816675846085222788615158800114784960945625383365304933208293857057275431154859737585024121127077498517152380228449162975496471075467276236018323847142671807958432075855573679908695412210999419680147797726087806071630183977740577472695897854039413765323617452270870709424087780964901724244901822439517562992954080873038947934600078134915096803867511949265066925231887470625656389380632345868739238118862549697621369476787521016106813702044101369741122005994996993438027264973068593734862633059367483459808255674194630152890094619396200717979748063627270661794423200908133135234042409672722702481139752419197528177734163371315515878260490501033358128166021632218398073544926531702180881173501095144973581993012631346500380731432378694591721764709514826623284610597159875118350343209086258837345711028882875851219872440027201314259520691130503965067761587880996113759285765356850469942988434239719734837316538070337465886987667908779597947840193950854106493325187640006458396717787913805751937509026816813004836445825891745478914842905941239201751205758916030390698400055042337019252329695002222444597676003553145179010643024576795529075568087397045455666630536718749575439332791278241607766908173472844922070667126371166162816935081214382164711934139935861542843964851275032132305278531878604271765490668654650349640211287013820672848213015425911333530504495974617403850247688617814303434349940194872329584040338981727509076197014357107664891994307366284249524001733068882333331077286844064042013238869955010719773851509461720199318665249648838664035900898569067290161352803356904473612939989908322944864041031638538077726346504195452636892362535426651417036721736446869987339882571994238234554647593828008285815281835767499728333014891265510205178577637090812160487838861959230648258575138380355802683747054650200596472941717594109447513526768664156717431814037820828320133655010370470256666155545397436826167162668594815297524901644481262826554475471447885241390791832028437436363055791982646546141047553634286728863235696454311754930580083282450440814355020874672367726515787939181685929871500095975186328660885712210360183761442301497981304650136102310599400345439347926838247115554000803381892385827818121110467494498268748942171213614883492042426636164070151317288573758493534967966191281791438799210422261315562131360554144477647676123231343961829074409618659844436488128923571623866817864850863980399774639105628727417828607853979920276626070391949026089470100048160125723491160546822539323239509566314976889623910742675434598652207668836494273749984402082217785350199862702424680164358772717986677683091604769888424639761982020006609981698439438764100345804485070105761189298965885649648801850777430900873232202653366374442208749075311585327782118554069943664047466015717625149488117466597329219668201668243197194535111746096723242066068749732060718777785424873375072240975578383764442776931451321178753882993229807938771327082727431088913583598729884960118080676686902492962850229671086237200833080893179711379384212560513061840278624723737119396850223033834191869462609451934096816231030940650596560788985060158553016707044059882660152799179652616520736855411189141631666993455799030783050330766912527367908900828088586225856381224819422396312166036286222398783356193463127879578732631925448588919045288543976902012516791563532672408836986027920908462454708647556528262351909308022597106489037044439013125539129400660165924830050013480751587494058540209143550700395490340792511119971137060134763628957170202173407364304870816729226845246502834821730896445732568793717045448995998256646627826294577164456203822077900420408596628437456513488305006225511002051497172247963128994205195203104712360406539115098687368528963242732059216352900986616698787794221375337315566475575468848465636893643028560167360003280648649564742653826088827190588428190928707669013758239530280696042077432659053197703211307816682040084803242559138278799080795099645245482517405526233079322664823518268090090320125561590576580808204610267222711238811331734033624180815656649495883497907086220776158299111795446105500109451621930463890868908205825587831000732694703060491547569420475753199955171530573716674101950668060839976204258174898766346354035626292287161464704003802913527709732036575598230147528611877607691606168209234057482115582042715338438236656870872263953407167591375808684926137746951331171708156249587264937051003561629757003644131374902469112014680010347264291215024332089066818606083301441453180502741634282759271430219962558413306745293828462349897181685851612794077826674825485037511618885283210008956709972246639791846918687531298545322175851355224897663178305884771298141688545864362262706695059939734581137347202084164875542389344244078350042999905074598625820207287653715388164181039982409252704633921771414732003485224222384669548241690808047282026830905863062476850902015566487851191472587207258464685882911809591909962516121121308043637572983810006897738829807351574168856998813288529488966519295056491886354147403801492491347343569348687082470662759957454588885493847853481656413925650438606662523146416975297658512840626988371262482927159746537808265593688798484344305966593541200233899169917557265192527337839921645865943013183963213646027709023442733437711857016289488209264889742553942792937828216430234111630650394279449568641337439843646732072827011179940979636638905883832109292406435272136924812496506190144116491377924562011779907997179733837463306214515068389300294369264165062695940673260923113893557548060914426409292159331639721058590664578310778062576533758627366454561074260081728713831439849167461406466916091988526057260477472626223215260324788650888644934118901256073226514885399216817285505618745341519268224785575373546699697218836838885824287442867246923141855888538693308249318237695552606467049311952686888341471528929515893213527721335382295051161070303049320831333478039583990410191653417325543365511744862995915748944336293777691280834016258923919460562700041235849891065135807967646905559431552793598361521266577591600321287046160868155804821697384720430547834617346833626167241471039239475503429759968418070237486326034716315135832343662447112302671488396303200842451588652870318931490421192374481954628629073723483727179814221738407765476260844166728601681982447313212553296269265455527319367697184147919024297699666061941530840872191633201046750484337643258996314408899576537659271032460061136040313276116206170545313495879520489165255414799610041274961684629422279342086565975599172020257709148797866279228717955240803892125067314476797329519316878003798468773743476651988646330206357814730146421972500944020382628668087757540255624620130193775131893686511411061261031076710836718675756139950247229126350160373976450923195953264302396688040295427108536235248745384019408242579649493508647282533830289210251052166210461971146719736702490749139660815912941213727956328009313608000985573744076266242312093583526063690893769863331047076858896063855357331991649623196720223928395411503068286725116563314369355666738757921769817207415381201455952837775281085560383083183512827459392959278839444209172527206144150506071560995342435196230018030574600245311504329179619751110452069984669747693006502645779900999917902947753316059353906020438671273810333318219927144501397458936151958603984354240629510311119262034125363734740313134996179173830836618012456796777799941721007502737933407989876862107942132355869520255109532283138708776792571579695629855091208523411188600811590041063106333604304322160021132682413797423090451770948812043641718105784114661889562881055101736368268934560176909079846733066905043227162870048318974127323727805879496534065499439822634046408558736729471747745577848900457171620428320432298061748650478163393966400062385612089738934521968757568513138593187590784937897353153183300970881450906263507761788582294070051393650180255051340707645581010824002402526419076261063104204458019181263859492025966394750356251082903795076613880177934709276488723524083359060494410808289395400202064209542553434533404395828328613576424579333093376302281084629599671527177846865537091083393839674214137175486478312288826964479893271229670536229337324712248696171929488078031639707062718378948331874790940448537096373544634060759887403631237967441015974455384453556166377928215753156582634529432447453823060341889227658945503483915406454092044019145103943853283846627473992212448777246433330166491241813536118564773531113460945837304261783702046705662658452139753370604040147004606260982419016618375822724988823711809886253872288034084852871134512815482692896513741330887811063054216042604646770655646287780256542154926089064554474496916086869122233207169972198040037787841892849020652304278240731134606715653092830669998754339731909353801305430382037891061784510885784486484478983421402911058805313640501082050717710340259424749843673631558568863825606170354965922527872434493268089578537157048195441823609636290227349160622367100118368975324642609347078834232636680114323229135642627627729274819237465704017065828135254979309576468008102957879553960428477143907189635004388658410518441442863850870854400517893346443491969933805955731792164956283080136626140207871289120975463872377350211241307652344946272681275530915676595523925711861118396739184216201465430263885555568741455875264691393778519562185708663261426960676497626258225250072475386024680891316375042707678173212095447506813265188457632012262719161829292678316675606737856684855626642832852925348984679368417292927033710418306862175968890461429625003804838804385916529802285445838253855435673880896487208879608993756762695771744840433773327489323793410529491294720194033007336194030565679026134367379685184343743717003507095052217133949714180347616814025773843159055012473458783414668364145882496051131757457630487063480534613365028682332588847709310796974709973261223155500829338579713964675143573448810967550597640381568513174497434820124703485104945135047624970716142046487011122300177121137788253087132671783597103158950040146208788729654639820519039625482999444104073070391396822978867277144977917293079932892773557401322873364718893003668480168581028910438779269703772009681356981085533247687321983107450586009441697248156545438112450667781869436426124620916770883151979075402775314862313310708323772897115617388556675403581548202776427562133265958284290000689414003694092338689443656078604803811971067767900586177517012953442280721589674297135431146802134482609999923137447038458051187087945667617561200842780485128485908333264841010460980474191243063519733892002961075900591073611073516642563344801260770637613942515117399866689448701541089756555358899196357943769353319966714442543303295759673798934332527328824521284132133619763099217000192349343942347243152868341940376357210849957677014003488956411358726603841987215232842133975357944059008682908594824248114764236920202433139263852298403446351723152519255631494691983963851605541847982078552323997000834392995513051933759780330003930193096299603140010724430904406251473599421952914363011253825452005388884787052004007160787525262046573819713952101034241615730234485274253445324436741904438873372773952427377502887422722453514368853975532818257565420416216449241032652458181907094601407405768536259209163879957002388182463290917024601161776341003984875852357422773100305599077118270597596070538120880103258266467260875834562649352954491896201427443405964252652209471290879890331280066065681688723437327172657070798546575794450889118370905872126298530620007244877808788189012734000939281386645356507324548755883195689525352315068921712127101178882345531129866030816602969274928601747547674902289929495805203188893001442232611792880433554282927050558973944071707299172962176112602054942555630699098066255364024892406658201301836349678693357874382794804736554069379945205219548297229777822395025150657340055353169455891407548959129141131864706350344142029701224488532801431168589362311358770591874070166837653617639464983784628664041736341179138416813955298551513351411252831563070463238198805595421957694522402295454608210812797191657388089846684713162131860397819593370753131509407482576661513195840316653095947853921511824662628498407713301610461967940097094039701612713691680443216807649819532925287422060114196986560952662198321092722433139529024988627331960499163870277996769514312548007278464701531546582314768267699960673848114877851897520666180629840838605661249857672932685756709605141068556190112495134921487703330908091651411547716630123242646090817553512154275547321023065924975252631173109312199310019247337732959861484282117678037502389362530790603043819215759238465853295106856305035407264771997813702398996111563209072297793131931730715001263133114590600794672182475690697475764793944807538056809209880573403029028869445446073307748398196062678699571334765843133529256319935184333034183748154500255104859885358739820544924061643760557799313270730562711073684437650737357259691608484197113124466519783279871406226596749842814193938285401852726234808990055624156400772214438754359367256995100858331394156575892317903903393562276946224878783129459064397802091864841454589125634251744685684715100190786581561217277580710644949978188676585826813090289675007662119697578767284280082580974691162235162782144571642912318666989428600045564943273469545318771019490277101079728851871443517552121670288428249964652279416760664039154798763312061355651856545207931795600732320469888603302450199013567849798062539663363571147123701870311708567898979022651314581925682635393024306125395258265920032349256132869081354443995699592970028002985020030269779392188685948423654334345497383711607487675512037551992868823399704373350863110711915041355891952825954582904340650428251295810798836497243079682575184196886909729782938692812656615486628383676079807489158018538540610859999767953788410146620972813563865278184966407274685320677361363881496558456761621035712983202954558006603531194151974073318399604758613219935846594311942796143547764774846860102460333844655469040079187948706117632747099474682192882593122236432187057299976970657507116900359556514762932394376238444821927479873041064811088150195661085279982103807459986475121635087380438192402151795529147024010873564924275285586267461272558902076160809207075395062199047874288638983666454901350499071883922481859879676710323961136368471784449554797387880424035439981823751062569059285743470823393807099401081485625062587644534716976368746646348989183602554429517229850104348468799595133649364997293610463603464107075238949345630682370699607943257941063312682704619945507405838991153779146282385400451152590758153644926142792469513839831103650189053828553749981065421533370991823037344278339091823597353085844641765067502707953288108646065621735490873283439863985761832317832464357257782723786885145334238986781320208530620174760285047975286607954396586607213963645783393934983433900278823941822511174537261551158341473055900228618789286044922776501505592553599015169839868654812286474264079942579331379150927662546105364155141538370972963197003173896683540896707310894809669558722469289110786610772950276898427076869751627156107685391777465632996933583440928784808560359813057952341419809805030503164602986550641769746154056235434896825411105909582237697964909343143817554650365690013511574483210587924120180042567525081470761098776885631579425069485742027660149446087682168129482383128751525562044581027964795021683893794637792907646408637218095804000133695781226418194969188959644407961263469322064538441677629269050707847048213146308373129858795799538755080383850892375726655452300072720829267046656063325050592352276949754523344737722298257244196616848667393635557548970154816371286609490641457365769011656068324152890154226198777825822328491895787555644307046282024092929722136710864632628024964786035303936266357997802090164336997151355160037237805424705691726061980270783472680946874825418156818963166055796373512870648125778477724358517604248539001971010440986381659666710308977268854131765122753183767568578568117116004584404256257165629611400957734127097647685148906830991711508245371808194350892002789610158830170078754197308598382123208149920573795326210681303696159156924608556461112334325839318371345075258107316845136939988188627689285759500579767882421214077700760766224015112915743973277433262861237156276784127360599408498847658032343428463579198321018280271677698727636082519821988350127850021935856224869912367236077495336136212925676785727723209640901268727360797048483396993493911039088814250943225305004682281074162848967978987347976893330461901990269760648980479321974274894298633956173148558792515931918172665910511298488731765733250324207759209802554299559222935662009544519725700430723800641760245185681503539574590251749151076636012730304396108200058996598493808147138212230610540073595909899953330580398626569979840669983268469475330630332986880032304463212175814741173672820700146592783349071964200398189579785853982458934175251254116130701393621232784976058063369547326544578452084381832689963148855160147017949091785184124393072446945537778430253709727670664000309657939046537779496963021963718031187593330069403949744852432197604216062760068589047356470602724223304821091125971813538178612195181424904557834395763014454287224078241513884157241480634919058199176726961327813474458529295095111477159838611073401804339456797728201915812064285442407959255421839965790341166911298769329719614042533387583201818296945518697192888791726332643484081938696111037391805504141377420923654978015184200992656420517925183850073854239782351746019260359178322044485601374929878819727259062674372951678900908380742023560783405213027871971210172125772817325258084998303680685655682687526365042369408544879002639140091727341127205317973844473828923716608043548823604513488777242369944094874835804226446974239109091714916398244139710882489417500798173219078114820934301621842638958616738900744038294924779720313371988701069361643597740772564727140205505792596080094679195319110591471633591554852624980828099789493990675117428892341741598309931107099068663692868589096130133917953670396928294284030515245236797115395742459883812097480119851191723287493500275125521859372072915693463258846328974306242676862611141810891449046926848385190575938429998391105640122972354656080283007281487064673686989697908139084855293560330743219064384352528981602231904535946859816079094797862150166349325277667213789618763266344374558612524077260242851819775081989984272336143342191710818323289754786400038051413507096780841690176256790060032786324208561387207168427063353587350577073528374442924935267254096858152134256440260301875213290903642249882966275343429840725209268702903448087239359964034074249053279335876041514444654398759308334879898894911625797900046609515945057151946909704915774941072632869029430839688909409965697639922028386762082250179704027407077700690895680557474351166133934299921048176540610701429255532140895149153256975964169325338621224042735999897721380579179397904047395393568902646451629244708538380847713035968439673857529334209210854388916679294879155798239557600393170704788349004976812166816027465877753023555867693197225252272379707411334216072983477114709241634617117459913008465432270740139953403173948795375188455645875748316819515544552305392312029435991811415142851983520786700094934316982520396600533390847324288198574041402415477129021095551197524747537806362139370503232146507668249227605907145876635708385535499694020517160484387379847679071114123660782823862825281299040222615113165242574103723334387572109326756648574578484477655251020331855633931588238971818178473944814275311084622978233803433136294872945462780246038101759512223142591921097282389170945068634364567923260730776037170264328421497089718180500458532889646727029004020255832010697655140145776819600933854418848858376126260779540317675649561725509907279449181753029958278369759371962630527229796859939035070747281056628687008926311300772895431775318536135734350715667562322384881754535663545244793339888033909919873995549031475827730959370697196634282680106258134302104782664245130015473260100230279663537572746502511556368741091322400541576381003369585665241770365654036225311779512975200109500486954245696317278608595407240872321126034711568745619463451997436030305240207720002312044505600831005689936070108523506986792095122353848922926824747304834316917893268797864575175015746392095702640826309187899225807649101576097877886520256649395301239501847260940893902006932713632230980480377697569501960143942632957430135316368286062010646394758930142173008840108196913347913685110480149857939122273912730457513310720978877700960639095252081513040518970132295749655706651310537866138099436886213095518225354367688554968089054763248733728948620164300274505644237167465293018215695928578984396801356011183808417511043642029090431548836128288358937268360699625002164635580389442125257132302800074656502945530720016064324851112717490590333557352306767269573636439443772166092865504534996580299675256579283140315906919377206904236632201613843574262374029166404818934286463057229471497986497874805597078963615359733900385200036714828534189178345833110033787065973279004631845145615112654980434065861869419283208808738055330715607866230399661917619074604888184853323104451285350701238792540569983360485487753651456403934556458353293917954612153955453512388301825953115857818010279992191304665238036441799831145531318546351922675717847136688803011039956602955531336375575707657833705943825364309244907349815025215851358315017169540879697553642907646092769237459369529458225413464880288047062288795653541702140903124857929038931326876561470331090518435206170487260639531464278558472216507503477843369766331640233756461095541861358223252190429256317199539020447407836017658181341539810213369008042111253252232644308275749094223181153589630874064808790769831008582067200621490517346943109013632383856820051738878955849106059751927544254559423341291738120149007225020630659498849679526657681146279374572194612843849315096593270715800914827030560752820761633785986896913655576030062251354765993370414245483287537221478437677928937283950836411362234063753518426604613317943118926196999027537427837958635800784562991071539990019434500272705033553862709233116854720801200809459959588048590831620647553765445145470437964560249508631397861929310139715684446616857583958199771382097435530815648880457251477876782805681919500049906403492185740515445457732579321956498270540769599436961705012213148959775025409776335843022741701387397729100911828434185000333787575339575819736114725397160906301636102478026921487406629779565410782737008618222070428395566761012252226577343137865647216314450014412917383349772705324068248493538005746575692943989810766937927906416981495459840235658326279424009424275988534832252142383015539172294749060521306383019586833397080210746204628105663192507043982982006429046441541095903908494393602422240596309039105261230840680936654443618317982697748093750557288614464980025882815069588139106724909701363925595641542787534788660271015868717807339144992733456581638095936744600221835583026145948341856462373558518055250445310790882047133243797489603277264125385952705819865366403645027525382919303737556477404801124477336634956367940230209327777252780026980745008278980260856370324766734060389289823149670373988125539468066843313468173414498572525382195598184882292734870893110105274175797745383102200931773618679585578909815417826282413496953721164503488249163751103048135109752296407884798961287437958127829816132984343645983420184350219903615888240280209139433042394747466167455639172241762860127597952437846884074619301195804005475226880051940603703494234401924402223750294674982755836214932530875671595736922234321286332419437056495478744786980535225243161419226222865628417803669214251629419384141558213000109480015369698298876381687452974571440577898424823340354535422719824925637167751424575844455059663754022464442951776827940399133271749503618969965132757377907745320397083532464950085673567660566650210919676100150728077816369972340218023179214427984316292422351502355187682838696297091883920589893848557526423602803430450761496731370844939061867913910637837438232014998682562453352948060883429742078340497488299331046648609301557958341325238200874985709572864252783898186985805786337853695713736891569811356174321093311684362220306282481917423982491569491407483173766931299709405121786018503943683608675234347247430068223166669056125518058545567177883797532428507544940801046621965789991234649861053168093406786628464942937650033882473255498428223588385493763254960099073673355111040590368728554976990557622008754989813669229336169911165204776947520979732977466215056033419429586839453028872789525894239419320016585750814322106823031064285284596001561895958418137182860216155336379662869433681259273350841230548366644037848241952463294431464920147860756781178052037332982459403443611113712287381828349413573874222902265905684255186908793447458771555386798523000763367537477188807755600337681375082185473708047256371946450412821139951327697374441165761631482806792233430334509938244405986294692203702296455810069025795458289742834595479994852574063538546716100056973100349445022380857014125695518806186702860111792861917712311299815333517916198026790407701177738437767769666126461801793051407393237026120805127320590297042659507409127261728113650539834275554103313938472792153921063145517018039600195865576006783781925284164877708873722464462415241311878748316723405663341732660405067501451167539997352038490270225413152583727602976335600881815493231497817691775659233094355109754551214372595601462982877568297074825273670696273577113793444911942673238492000286944336718056250548136197045632602374426014473495321696165041745030346230514147181601439870047119986732437066199527821234586169117137660655612282122514499335373526799637762403988246013532630290555197997236352402930696499615069184524471252604729286709700458549187404520541102575783283442301802974008130777419123099252427177329580911009837867721164981376785812418548784099992453650672626249526792037654352727069874510278662297090835533153818456171954437732504811277581709990726673830216422392081491276204432837140903657740583330378793274662304452908791225410966752152858111968842496491138275861639228851537501565662465773369647467870001460116279690878194690664204553748781454939398925975352827828387610689125186478520083193970307340501137324658930808456955800607468878915226223427244327066059889910243413365489414103182710707141967520024564762964436699537334409920084394603929504225361384126426588075619076357367188324508688613119410337114762395313499997236109857826320027970470625024204184825743450421779054037983461880542472625669765561865582302384108588129816237898212931198187479893395059688718432012092098823660731334960323209408289276662595600159310430217644212150218843537898480782486206622769941390786626709590916455766761917347034228681855598324326530002327303860579955633479354910439533732952884083066255556195125216315377573543516776956333986706236634383214023253248248662505371929058191336695678973106607054623538734605033485594871065697460139279082282936769450948134362258488580473012277068011612899424871933473488857356599406448169605466934710826779515519932854306938418231637224567239010418994426374693945830304915882563457732136330056471593424699858954970477528455823058000841750836500291781674871993388487416038756046059919764566340561267198728424712501835438372169464197326038290376621013912151827344115553054420504163941829494733530055832451863643028188898363525534212236479879617358929413177395649022092305624472584944487504511180399953918481860585812761872445957104690757720153249362479137560271377449004018435834046054676801871102885784361631707556203159901988635692639242044939948470064706305944363334439256789040286729150037358689719479147912666629923073528552701701033650524474906838816976670061527123403896440462624018255459039350967537212037551059554606719025777882952083485177257868385656087870429756010385864538102891813341949332140872436607160631798295839108219420624767919866748001742326909836839354695974058315446818193745897831089652582501625631830160544421882178939313520523606606486576001681543164374936260918056296799352020845305861473152860394171173448026061565909096951055084480528842995907595894963931557183704170686918325379624705790744939019475889395555409249283430477905323284019757961373056424898695645369170598143382376010378324282967751263582034804968452006443610761390465772256746250197045317570103543337228754542618637473651380706754749520159736303326005900413849586219093980819445063892233402877337932212087257409815484135292440717955854750112475425570081447403147477505430457071181183037917906749723287166172458740789141658811297982201504285207272810968803305108325209527376099024322125770651963936627529858208053386859015357919145275847552659229255193907992302958366610701768814353440242947289587508211532946897120334243566678898029409123491534782577598016843270080581410200764913741636762359729550326042992900447152524299006270419462509390871179969900111180055152089681468297980211338425909587313774880374500446924208383276483905338055143725146149520314414557711126231824953974049225970342579424977244630111054025874167327078583701375948249937049813398594702689038771477768221921260353717233288106409472108709163289405202295262140969724161770762526931106335340763625583285394969079084083940283097372085559199777276309504705957431194212035556582302805098717917357342738850047236871131489018041150031266850985256964339573387069869270604208361825523017332144691597285198120620358706338086847804908115548072204009331738406555748239002244273742118698974726428588426955610311015644339918187861239975292595151318517502216461810971331885704847246500540069135717238027520936858658375269838450603820223387587152039961317753281636951737126162136643664038237310358162485046935083161533546217576382332406459088310779489967211784705330404816848842945483499300031943650785903656997555365656647787761163983474362220793888836830956006084239277752650873585649786983842472629317408999694020301209434318356796231328786467381633778169370108499417417719026302546031891137349280673825145480826134211395637338166632995260564593493612319951857702212856590785351399637609189011817352975503999408368458352555276157456822858925466522447827878279507066200819044472574500700855471807479201843193724309104524479709665782888693097382982134559703390125096535515081783388502333247509337664863854332033520322159240264735928926380961507149715714034646236569819180639424845918989434478839586809147633865670432742803500480257980855654988693274885223871106379355258296541438495554185290897569914110338500981875341701696510371215694247513518344237005125207329746162730088935545141984061809846590757509459900823814867803956974676484592106467950757647162975616166587694919767191941050297016812239838484665448788428259816035834152297907761161449472217866190303926281183786303279118059525742842132933166023540856072703495684192760839965186145248107298234422054101255840898174148261681929665848272521097337376999426336869408639220393716141877191893902874572115179001093316991085528121104778699374072130034554170439908916917601880763937733494690306413820798991978484523057483769818462474793598802394038393181758836058186585902117714163569199465541551984814224667815473212233382301580142704373892810803391850049047909656624283687365735761211287888133532094887925707241341584907270883766333206033686510298797172486290413300659712456653302684399243592219273578441611788153484984613584173270672197841862647046219514574523332775275681374530782420316576374560007516705060236395713292537999124534806157545036295931667348906879657175220863926025137114193435300158368961957991406146078875688446233958248695428504695119358258907655958382967483458553492859222222054934939445796759348726140067421981303178500251220513666786815408576475950575960791968882732319051740286724319114655472292899432448093113922661314570174692512641402143378927597355338829641134946706007142862222868995676412450150059703161064887010321998965704197711907036132039966584834481279185529294931867183199070557571842715754449962113400520912501619680013622098707419778742312417916627408150573900886537236962773900173738872756378334195411994191118345859665192520446766842105535643659420592381380015636517488421703908203223609815725841166442795784971666578375579186020757699250816267113876239700053323845743094058639800943435281183368020875286852403517271118780487361275729614695916923872240461064492467171588681785465561274186178560103621998140342149945051977819867329995392216703810340951042613847658424537301825242723367866099147241240756943761155922713602591042797177988619114279560232969500698869893626839584795744587102399629563402308533401182659004352613537855847753081954849667448578866880884510167762736764136764546591541809250046599770588637247215723955452717595848362363779074460414133111025007900323840825709459404651709420189453565903309339075488277149953544955327233436166554773445698452040092631771235689160011088387584956036318705445738779314454358020028738992652633449480244601884867518408693576899079283750732485496051095402220560343871422216941113466144029228381313577954070514609654930015976828788298830817687631709036311610034183761831712090724134539890170257228746751596938080398377646440444512050584967769461389971397416728067606257148077283423318034605351322961145899030075913006161065935253572674713592923247401911665844468708016284046148290745642076553159724799470910262303578231490054183943851479298320886788133058838657089209217409044142051591317082335219874568226599987625021107637251468715041957721876643926719027670724166734440616522321475864381342816260681045857704235420050024028865079980078917344114935659762907604113963666468967463844330730585266248732118860979022344043780429502094372266110114739704914309520132066642135616756909969669964053849446672283357803268111539644419800652035289236855581445608683469076131811035732211319759382609115082688949422735045176246103680834481986006383477354343438436383795648397848843209530739988617910303072639538431453552124305210749627205241387565470034769465600646555646899116611317308645362945662099269495585332487136629510793697109894936208204708421297271545598394022723395418403294968027693241211079786206609020145612738071339789259292587324975542290930704701757263374084933053626292770345079812734281242845572746245754839302790884744974176704875684666783955629836732526785538350436348008504974339877808017302542283941350708255536702053387960071581667666339988028043937010187986023853812612879393952354172107157590195621251797494918303186727378797743815632789645074100610979753561224739230289163220147442100783004569487231396207857946215786809262384627175396401266928310088663071160583096234937777309749856682173837966370602157897372383285746125584188790707787321980415313675441879709482204224804652131913092599245864874667486219928552135316186443697100363218913831275692539211971723604508357336591265427818758392893457875542483535318036969912656750065716667558416651607928524831963053563813005301958773529425115989904931057755007154554097383406497748983012047085157881539194749836094483255989347487293527570970078918858630594035957181289678327996161045278929909369852720128053458905715550873699130232730546921306481741781666837539698377378775705657351544293419076083534940700843677653086182190712945062675950657984969200987223219804189360925498866905958225158776382806049634042342465293491327876657150165121328718003142543534666343765420360948113340348917447986657071191213878748435763977326246146702466406882326540771081126869412339496049666574795562925719191548440874828332043805449681328039492603012445254962580017978647530366239624261088284226421915826256042184987367024319803808706482997143525857606458357784240829816625051188978522029837650837523006031653771750000769681145919079820568718815988377205733826545187110958745493632830840160031017169953374622500284723037116354157361541746493197306327692756835574001603090316038234091576443322818316636129203505177580268601288473845839837029339675388553889976123465260595063680229173814281711203074223913581572967654409569680682614441013313260649734720008041309060612708758523635986822451462207687624405985846101660018849711152983286146385196160514105207921377201661547744205198363748705054430518469197636765199027918503832481663741324117740159896050997497565175263845565309133365378883459728385800509976324901514471431519577400251357054186015632654080292985491559898749986460820771484219773579810490065195445040903148895630959851473904743284876059416056706840000852443018570890874200877861213019572852070857586492248195291380975968134900217048614154207554785481622263463814475703239118818407768562409264817290389852125137036516372199249861871550785793159264918957726308724704074000669154276186847713248054465296495716744869951464282141484201167922340947923640271535732420953934261737678070265571383781248229808729213421744378670548045903270130149473110052286360586704896847904587380481151931158509864748268496994880120214401775508047581589008739924124261611392303190833744682395887538701150922115429626309052300835388512258021430825504569918074582167320276052460878663006247075462005438739038689001293823544371663108482895401185951116133425158606033262538614523663576197927297627860463276572479392049972706605030638188662579952626791581955641878868953245889655575377404357157615821602671516094582664394802506186742190937117722515229786252471283935275399050371524486921838426190573859403347284311480227600828973150458451358063278318805152975419424431830265038036614887529520738140726856345686339068945197167255416630420037525008949931186019273643969996892650988134170028087479957610147788475785955396782428370030132339685575885155958596952631532643394261421195792290639468430843400035446261294053144696960847942349889484281558141716402911340000206069983444280712444851574635644324895628639113976068197040073895414591008810274401213517012548905594743273572395492297607171078230372452746605011788929373427032942656530482813790616726341004232481987202729424778648630517826903819890574932458881573295491768187225508458994029584887002987420832490978501855746026455104492799805428769520353082438813946835962740016097266473084742769539191873039759422634791999321163121098209193747573292156865392313207785592439362074252388098390538810984571265267506877213237834904366820478459419798416338079014053446089984004272384878361740386397907943650044938536724146756023252757667991703102817300668218120424463087370758590651427275433185239172093593324157783015164214555179567112566529342627419299358639998402456160595603384134818037633697583740459681162691067262938563676231905915796667386305060014799769670894930805372937443895300848892384772314946469331940599274476605979848709542372945146669387574920826245313648190512035780871215639765209279187538550718056358467977757351906287111434989889430516403600347230480774972181701552372131854626761973629841763472941600589087065307518579590883141199955426981989889893026349501048203974952843637918977947119880413711760735212085178342399625242953290052139788293240825224813994896774886357836685796825705292020163391920561660856351007593738214364762982850663279861995783852226121994727399850276835657937041643279539633543577753662788480342769240520026176263730603260323714689524673286019395516223166578982652551266821391141497778510621238214119661259202600015941742281836735032661993471396059564854808633637520670165035901442388203568221280582601028606951654663731904585085400494205019184374455751521755204572779485250689771980805003579361015433924070149670748518897843029796042071740558038595870018182198197970353528059842033927377880856872173517294300110264497866762431996452422534708436825990277226846222756130830472942280801553616697504255604263112100592422962972068981488871353791292907431620946255251426225362360290387131291781781510063929806065986826635765168686244813277311035294963443920026141600236180025499577848712237863046756395048114308466434562186285143140659256723559613246902755901348811763841573979556998813340804647690615689069613209863705685318299322022528932818259757150691334798491541441483776691977499473404161472203823409698264912947143808414183540091508888756395904628856065006785464892625984459749836028467548357297949540346333974263246711950690507153971697541199598271808798908194166451783539919879679206951013408001196901618069210871924967996182662751368298059920619821041701657931971113925710169831807573814001026493910750354506277154563032492232043006374834847432541329807035852173721130609701593788296607936492305304954461704399754748127632355939828722492041301587016471554136822145577176714250451092019964273050100140244910134371612716722448049537748645420761373745029041007627655000472514520319980358177208123086219207832662478551443399080283904463919927695834328099521704627298994539529528148030561169491313797456846870126514386296933687425656444965052187013935639434947032418722190738387206216223112347021066997284451254632636285531744701899956918595143527097322089899546791295199891395881619946967133836354954391700579268818562019760684849684733320607462204156596139578928712690635674858873311450752012998297262645178574198057140690494896712378037135119794542994325973574452013736296033421812828147833576512360795841744668858335351506620930067865114310135350030953125780010947532586647624040856366702759920958207221890731120975005469843092234313126355647494221201021932729348704330917269217953509286763683192497719081355319076761107805300211228051068855985597466416124244397919670133914924636026972878906225869829308410997699239829428579534764874340679438922129267469619527771948793126259269613780927377650143288767020894398158557694890104487895245591248320508472108279676822929006812121879845004146659914102115117290850279395016217406580283888724940100863140576630547041307736838951065644514853768158573942444398027662428565697027524110540940506661843390449709759233019645368231024830473229150150154236412394090848937445171405327554706491886077661572369423688684908382054070108375810803683774737187930332887948731102641653530175507950515237254805650686498618626152533556591051619110062681288568998308809728760991979889196721624644699797895489700107406039664303160430511441193618187628520638135303429935107109238744996302711852075565905395202478021744110352250711683053415287578454736528570640208370913465918005762211371526409307809145308159796575727816038373200503052198205929339618938683672873616426932055998092328602636999797217992381285587042227320283246076888065176304842729308928373304695645833177965806181258813485390504062327008750810341458087557483932339053415073849746795305104698264947358291557393559770973232961433364719032604616175031386165785357850364909886291949673115042429763489329328006326410919889994009442685735415514551268585554166015872294540488455255967881984449246116607807552166114615392641367803634333812722862549452638623994283336693593663979418200240367134124599940019646457617428478159739242731003895120093247173070477495137674575968581372121454241224652403646596698686504516205985408445749293928251001585961054363465203323550081100445490242706112538736140186729855473192335350795813099701876605176410203965163764737888991604388337225007330754366269844334303289927452502907735576493987538451496193673658474621585536714424885985063858154865504025128865675131470953699681486279086465325861582529035075351490059951100135777327641105804958585820102603938556072100442401942440363794278041169315479675994023164123537430118486954698345631732450742023999474855089451472679818697873933152227283954941506930819692762002446992442731413932514405513566192417558578643169832619308793161397132076618877681135386142659583372723929311343604307613522045078280195878173433285304168753067942089331895332717763191381128394589249670421562077089129675143460505183879499061824659650902383689573448702668424297669475325103746448843965104785301184124912494336797567225205932610639329918664596360387147910868855272189438069773945000916188249974593135819542844372917927282570574830187990843805878246546607055971489007233600702009884654620479886207390194926992856728483225430588747617334349114076295514871041321856541512117546796083255635577366731295658465380009399106813548978443109722405542841075557207829796534765355218244840146447239513334016785369761554087364792544003270383381457977563260399474975785993704585530661623916358874413899866127812203419124351365658835859428316391332771704221624476275607691591400470060312666084793345369108532020394765768978018696297555804205077475896387774262135335416801866153843526561622122964671465105879270665880152692267614076808119622841784887437702112948744242471750220947037911176903509664917366842510820215524135110656910272962563107325034290571068456138430040574699664480917363328819886631689968298242717457017830946512788822548016284771828176142358064924987765313092928480548486099450224868268768650018107285231008804522388433834197200937384217053036567072707272808606074790741599613119229660670656077425290771863372266583247766234356874298481186761837579541615158133637525769463991089546948804091097886341033844582008980094343286738572748416448354391632321138682497641334828037314831169815144306816288161526956964179137240702257501778035036949207481777422519569315736491024785046080407469544293141062368386513282487654391123665393724518765316251980934559260810587988613803134649282644836815532577027287670453775136086796518229689937390899132045824669680760505405737908988553908509630830214746970560138750326603801683030689713624461135737674219208042493922795884492760466890276602215219613195811349593215076952336377893750941706981843771404862216445584839731311314578974533274638993382364527292253485853286794453434168113540678916954216331279229248343442049118547112743774820965965310521986124273804524245707861949111901144981677984024019683073579984878025500499920023971626659344438831541757671099092274433870271345428997086821502365219582377235110147471136600037639494870555981339697658551822309789293773395998110218070852818674821347790370039949342167269589710860450290224882112541906233064837780960003039827505353497340023675302596017773169500539402197435607771816771267668027522140753119272744535328410870388294524733455993775298935091271169628407440555534229525536837623200048145596933825817865963287254650535480167043771415370047153406226315464669763241284356879418487702430223564002624250509032611389920961905556920646066374993076896124096028343787856602503793366125500282176385013876047097584750268137526303209392586613733926633213246733403765900196340210176240866439185479757146677620226308886645625330218751075469187188395364202936657373480174685808373410369160797323575292031555886619841333585761416475809574021362061007834862206828995578801529344335728128213004761071074828221155489138873760397234543853319303645310363285381711072599085803188221607769966472685370083119205328929545285025763408079280173957862519796266588148008842099109663774961633600656702649778121947578853358884374334621671080270061878910291219856861702013456457139997506919081634454386845900760772273783698964805178347901644631046353166185373513748215491613391627541704700548411017049440952456988336126665342319182325395720648757475097824188576066007562267169285336391870954185818417717796720953801860701973173102724230715972526130161113530041961533335175953729656755687951555426327944927267753283255734157460299086917884979662510153207722562698923309331905642525438640453881907796739682689720826299446340091160699570139867546791166495283294630121962057595837989399626518767516690032943247551820650480973154751951015782815180625805576017640636486067492576994538065543611549674164886205788100127676407788753644667550627371247607635090796183546529166372504457090116288367266648632122008843527190729696517936291756782052018318692390867098415533649184649480114964529148635083114597836486237245887813037737525753241790913293152755575554907915029265474302248967675560550593140318461242988444158398666935944458510050124737032290352522181498338280302093455492365142972513053224444533540751017636867698961681972209771430770699134276508706354661528326083472116247210947927442405436470468622498368728801589581629950279549721615084260360623294669750523172562515213818495439642235379569472086166347557374003215072009514395408999569030858479782803359859991879205852432660631129385683770856741957373467383561313981153456739396421926136777853594021247437988740264093722573804052722290440946363274995294110821171564912804420389774048348151271504362196161564157824498551462708482026089047259463914400901536955547322626174295639311316619531838130213820334269687105273641669437531876605347428340289718831914257030197300484259292611934325567411008133386203657248269909799178905838245704364141423598846044123976299766576539525751188123001415303379533745731198897693185166368620392971663336420630171171954855151653064959952688245354424273276415119623396526844494579452099168818285384992517193019218095149994243901762722586988372504859441911618470340567932158157341311027484997220743647086665432569324189156128730665828740036391055835579337489403419144367720813361066077085346349099568741309970042483455819312177764557559637755515182644773750822339627367233477431363421678884362893535799893869886494366634351992402686557446451804083337471061908772245231586403384753912095550764917736587559649387928415032067727228472759453700378178019256370279725459190689138047894190113109920978626815560659137880926223291202702965609480679195512909330565577560909099139662473859998431151333567684500271569863431528982358166995928569433823248605385770472246988080385224242964845268431790224790803354875028090709755755470158444024502677844639976211399748020986106267422043424196699811464385935348849180117522704466778022521633201603585156783581353059565895082139172888210510483655021820557291458502476519639426753658306091957487583327778741119339351473567465333258558295936783455220202605467449790701881091532652743885269231190875219358894853753801105257051637545316599372673270756195900271309411840449691490815280888403941262117666976821087758824922851935090757142088126545468862550258763309467681939822225759060387817536154920664679313811650370923630084108291137664316453773761224578308979669802558333969586917237678769332013093154185028656048404259097270260100782332190960258392934350623913879164574712588322614730482528771536831421530423912401837133508836785585456494787015600022000429861605372687499647236835294057585127821817373780256515180775040141444445488992460186655351913445382669234562937652084944936100794211673108562941210310445515214500750732999057221204110376808284191594374032963777155490046011722272147507406561046912394377033842009740251782337752140637783498567833955631555407478946619219223764751857210877084828000172671455141638612178294315266377424031794049118330481089237458166816453310408634619228775050937015755935737320637636136200486789636909494032370139488308285276282695949302508087835823368183880309990486794066169957010840024752846829906768684616405157087551023137347367407526953138065832719325524108805856438910074961339603790004284278338631300872842867819471522175820736463907899042813963952635945654477635078903784289424060734066477106229714483696620415897275527046745128344471193389325559854919347594743554268842532381029331699533644511859637569650235663619151611895963947007005501614547945288522834262255702628295726829875417612457621766675970286007408531382818664119274106521544921963214645617280014276982078010894477910907280349343136140434868096768492363452688001442982931979332249143625316568259543490902389982209462437471779851320071988595874537055360506577564015542306203106549151368075369989156776819845820427343748419227782264455597658186683039363126826111430052479862004969675690301572951873988793387057770339063413175389374553278469187063700921834340818580247489893011511028948542319628650782945394107964839309343171449411787677416588998761146244313724879402939827902760707318253234546130883040320151641947689393163674453332460227091889308773574839280285588554216684178030829042132586615271117034198311126121267043132436332264602088848459316644694084709899857275122916313560641332038993067432532044548029156130045203326440007511360699801993919688732157756710037624984612096354678582152663607686439058825932461320332200580085733928688445968460679525395061609974186006973597686036843475240876099201028302795749584286394125508116753953962766203800566017498176829446101320847005109161135500360564333850332437681332248762088803894390907469816011708131220281890382305070006963810476459712840901645579118913734507141554944400935188719172671701729815995887131340594073711180811737479214681216214540739345121875542434462708438933613021893550151904303218026342511927772283475005408391495988298385391684310893933536190647306274214465475796219193615897487956728255085173216407404697466144824417895160120790521233237989543861201750318730659447261542071296188716407731702356446652125428697014130783139396956015035653938641275236973160282476445687468567163088306255511782758770447485159760720288443640911694106590165657269767599851601650919644788361894043212270480848688079879074175236880340790554488189344933052056781986110892145792952664233291297250492745282376672616592080363855133013819864582761904398331348267205854276761557471946507005338019338765295445920810286135445669707838380868369038557255441782458325599624164038657485816928265371188317432194684182054712715629200390920618378969870520001597174331308023471442879768655515263709892510500178014723831298261892734357694710260030974859740631282328028388400826315661885378719439524462242393821030562309634620355826959156625396855634095116839916437727383231425003624753119605908800173521638457916400489590494578691027325319415733756677553678343043335032612630119003877392700527322147139421299990379053728678856299201431458402693818311538112174005928580076103225698127615205552200342299056349616338553069991138117684419629443588318323053828558596946348572395997162391419456409472818837848176083738448856900961810239982848407595991658310329103566627497244245322791654491391504963442165280841937258200246871557969317792957523364140939866134359304240126214540955015121774484798186160478545700716807681257911634953720037194888771454094916250655627543846697109540935655289143129571201666119097282862969682521240962676487363220380316543538899888730091819955092080611862496924322883770508259881662763338555342523558711991607964782059171003055844040638684847989933804755486021971214818060078108883057627789494449644653874138107294590028451825378942956439096856516913510056718530048678601567441331575560270240369393963881874944671270916018332311079542787095370629724777164500188212804022745089933946277754073608407155007876504996632875437826416390299788303185052293071128238024852519547710346219124767557319806898715190489864388158154310898867984452239746582326786297788607308516050362142829323473210929833059634926559466888353320590486981334368354557068570062811422784512049569788359794228862298928199593757067399292067569898360657906834296624191740158762370293088541832507578016630946945643854083324664053021957782611261315400309955113782485646917501124436069973423403122431927448098153917839156000599585637582229410440544060572455515857174207800047085963188895512088125045431434319935251356094370648996489208446510945640510357835435221496111218690707710978751425850173928466755991336835187372001590960758809943756632951268825026438911043196735228318628686098767220916512471614978267479380682062141909638392360446815646015156453200730720076104851050834013859715087975440623693705818524200446962739563174579940157754728098737571960205928424107974494086266863242283120902072800529987504833635061128336767249703766172134582348038236436683802735074460221136612475523242863931894057011120881132531061603515872503494882415877113295454439214376544133384783874708404893938974619005297877369398123416763905200235255522559128961543084520646013558227999533958036951699150863652613674435051749353935306733934663489784355204112839184844390497367557057457161513284393140709446695262287165592818339022238837140419566373558705045003811415352567606811464347695534018844684133074745939194178586091643437109492190385270311550632996712021087164534059229482776512075744113765944891377257573193590691364938047445986465940383411993833834435309887872425418930669725841813959005110105914220151483217225224066279829251753168493011225102744378454531295394792694039394498525966593588515081850521193804517574740123948298147066209094900916488026093708750773522015995538856133170982562887727537367524666225660056370171379072503897539354877782097303414020375075048397646682810399126049043488349228218431138537604037642927700098296087929914352083194823884015675425418431696863015908980094887090044594203071439895626073209939708376690696928688673814487601725327823704033372013433970298865230515169100900966762072862627219759140782912997181421194420701546454459709060891539897327451938660549592080834231638640418441347904170645366797449382898727229740111913877468307102300716119517187958911043264378434065476757436273297459044067392987576058902079125004529947295728186945544824019606193308381083584002331006511549676484835978940951775924714073018369062291539788781523314052999951158696943720565351204125993978238251493112468737073561334846226829099672108725101786538180824719368147112851200046343306702115507777428624767041063741790540088523699805448654264100090620584796131776779460535712567540103386874927331827843388927466171347028686978528392680367456890678244523926368934402125827143767079559272529036894335550308011335034864842030667891110424774546976298904166629200702356848259575852043223329991676972262175905616025999153198256977815384888784398205983139031009854256514082061462480709790091042455062305542496775931952656236190329616981118993486797803007621858628976926930206014800237137507666107024688174713548258476092563280860339835171901194035127763676584696083346905609465014341212195272585719185636814093351948038806489868164045105564772668995038804312626093508954709471130095999286989367998305860526476804750460067904535450232123384540757892514788194773307774290648124148958271723909301592106080099209401046242317119903769107306694036197144848986371727729190644663532583867557726660255248977201141962421216602072473475559285991920241818868929701411683358766852612557860885893836813509193426882573564707758768503337753205875764003469888607356990719672654154783520378640537948412696753191593447235899758701355488814391088263691194348597688661608268121965246187824116037502502483836466737741987567107240899284455377923165811707211489272332767036004573057714389527024823741993824259447407507943848398219219496707721285531644591792693415882060475534006102568072149381746399748347345702758259345416769738247040933663066556378708905504455405510869149365162047562001850530807379192559988044010910139320018938593690339669639633669657891188422064881349386817686861710548554147725316329369984862386322302041180866335701673010229396967036259169650281031445619703991063302912056692503537956948987796427288570891475801244838117435245651405290723699611863118457041873471012296034095883706050932634830110819070151940314171757080678574633965827331366784319497966821725660647947713387810953242690293418554729794898047715949336594773157921118760970492251555861403111430072017288293332286952935934736668881998624478799416459651447644823798073343150633315856094834612662146763890037454238340150114693297874969700689156534542588576459881718543786770268948227183698618484109499666139662993309719738684335304390686657456910435617919507701918981303730002131197267910734407591310459853053843481089701336864296157894586747418389152127994071980791539124681145487768440661185845074664764542760138803634314047731028509707068524554796254104169915249598229237422911858970488605708055290176643209341677177264819556020742794801652303539289944120608453232358397961269901970207900122321847536600967000705557717717461782513705501605994838742426538923730503911226110148673494644391962441466092760460387209139857330471657049739019096152483886163694512541549908237167192532420611321997086595994151343853410274587666541463268137732051900468404613592597037821327365119412937861537145867684880549703216685931758455241271677741704961948029174404897917813578606767582525844688726895571997307482845410871026421893652039246454329059345841518059214438981355096975055516924635369296489647545277190649938180055862120270910308092822414438209595250568037349565346888884591761028998302483710686880952072020206046822847872479655753903874760115624198709563848647063912930112822399869060782850977195162943558358790953764023201280342034258558035091997008238262652522423242423573692694591566914361721183518656647870905320474242643496128972318708967856399821805401048709424861191837754285367734507543896676263931393882653237933638898580824126569734442994509784947648953158488598933542068691284851721331200253295216749610690119395664088901470643952193311007537379872801725584136457305232876355534879443414157186365350555914730696650378567690457612961507502683450649404355406613338441345879951695847267811771537533914387965467094023325103820747038802909689082829858347276450162137412944536636645991183337566391090389817645028242821853499765206434696963202931662067398027510940407235543182563616986952427693358151543171370712758420652523122087905023169325302176657787340399670097247110984790235175615322391742648563718305032740716716084564689212249633313046888487276250510917495623051754830355012963676851863768464234038262573652977961536746180269991747055094288040485616837934367448817147025596612461770824177218618596671559724955236611866484356663506883727631744019234462218688375868119178999969006081589817976077151583494008714142461854689621250727476273908941808637003390615743554131173240995798241365498232418867935428673994911657978054179338182549434593694135801123206797182031350418321417878928013132951286974525131826601232362855141342007057823124918104953120487450998370147303126999344891704453438890577022843107208140490705279592652037994413044983571645547106942123873466599480901398486971974617989576063034452924870894286729433470617773108036414266101568479929148335549165856803847858901592767181133911927346136940521092688961671617898842713615708425109191287558185543409460012644409813025678653499490362100063967544226467220838858574479544394038723617881043879074546836548781926075587388501830208019615033528539885894342239798188536095746272502743238490097184370878754946435737543836252166910021915385047365858785462425631863477840705341985125536598349052411346123085507055445027535467123758898242121258840914335532150602370686895405929115525654410948940900325834121532754213177576585796655355906645127780830773438887106568049472041599535477707695235788245649375016725293064051503561052790355870493651259959312690579345434337691057876405236276101105030949262073802026039575236822944267126177945878617600171570786664533876598973210979308256388901644011158700572002169417689623696541946199070317147503104816964242891453610240447660513170552052159317086661469701660170462942367326523485001090315814044061991523842355067444375204383182983107411729062346760758911477228075593369286513051929581540220327743547492464967254497597898153505212456826688302269107682798408756537736947335564138331311214528322564991076358255060928454299604454471314489987927350667561678263176226047248200224757982191908007150205745675812366509050731850547674263324216813927136117858032852593903701732868113050438053402357379068404700199824371118381134299512473331223239514249690817075377500549420826448283602520307935229396473438367677194459888662173944706929992711278640505743474301905961709654926385683674550616381173723346857483336658601134039153651828853460473588356343667232352897545716346233015946272896926705687054539579251128583468896824249219074032548505388029864985776501334743266834495602884307906254320211985137506856787542121956311994664270284721542027030817626371746558836329180031607575742485766385975487270683942613796984330913590233507723998413873603443053761134838057497106093886667284995492348933202289336952984258666874232738281440822766788719786736789046879090277764593507835446266320034027630761255797206742992705022012929939986319350923968433085785909818836527134167815006533916767706882256708633867717962403208095035511720989883564955537210822827403155409089377299483631105951580202546532327000770338666534925693306005957786932828338149793348886429082185736716408392113575349473375278267584390472871619084843419116914581103631498993680316782360463460988497791487369427948191013936029988824813392386016415635159110681694181880388272324541953746463442375706971978933623191134207649807547842559922669402846505567694151240497863878315487071023003976004648243567963168147037172742395139004804064949006350041584654213345202476780591914688869454085205711411240279417880108447405397637307002368242094763080133868209849887261685253359974408003823046909507041080426932323960216287094709265444536805086359929232649398410006416966778829214941422991279025171025662754665172712270315370483739087048796752814433653360862039898309269258569489358460708907438606040147030291593092550550076367865589928500281126652519165460830921034963453358837783636230315051958293904743887901209878715404298237457426212932765967700991987607503416469338572851196561805422091338445256067151020544209152826320591957749270288155400241477235076122464152758340848832689349769513295807151060890489786318673289340250936762094825365252046759386654514478006989188180228550472106984108769167116811326099236668006232112770207369187381609233114071393218902442263070897717916597679238701169516652562844111556860387312549611514095437726784968373390666076572175829447257738245076632966512178013943478299525923531382441233919336372426206490451010018345413634203833548781660601186850120348893191748287393273960714721959312122389204505138657636190384019212568214855849441943153998129718313860389184721667331209724154250600778698637278299901443506091643346370920034649997566265486611976913959974438730080110156928794698811482895144284305402749118948903310874912034834415726286105219970123769012956702197500958246818225379919155542672715927054746053058963786935681275975018723896726887100141600072541867409115654944232339145440332018322888104915662898252384077836694804393815463564372308060675888562808182573766073276669938246136579079397292770309379190647573075466881103955764678503527763900444878751803663153011906612019299510528225830221435319752432177952008638294690774808892671521051336069160308624678303299055354305763716330022404526406045092306995472428925061360660758140130989279580757349818944067290265920637356550162029606786241147466220686610956450936618044707665747695687044033014471793983409493071883815071414991706273090857010998049374937474281413666740582269102114948170778468181451688630270805753604105211847781234348689646904251324599014677418419159750977516530879938595886414062112413827131423398743146885725857831935616622555898338652620795205566924055247505912036967777682012240161511634839462978358937697166512257002348216801426746863372245887683099249139022488325845471732378449577455612842747265422779588005492805903214562922960239599927874769682792281370492006606957354592337372568576100873248710443935640370173359572304766974779181700914265387383525116796332733715592591657134731064920259057544724204052784784066351977334019108595599906528701319222262335257420696973468623857802151743934790290180708478804089272835466163138021431927940818955324372007084190167960610927369622588646357966894892621496650058001983266879746436435426153603045141165723592048977209826472200310725784784414779119468398160315977552181542662649500058952815992288076926239385327266000366597266005185246709229127906504028320078288622181443174692766165085850578807018328513537411534291863308696136279401379073489369806356059989420962318250400631171006689333946745244880044284289344170986561407945259763969848472178861273427607223077220977491318798539199810620919552870294999634776333760381346720867092238939367132600367996236895828436753089499908079645831292672563919499971241678208897236678744839053692082578572583917999623837084547058051517928209866642005608797464318339853304328895580092037997904815408470763014824960069646388145218677811155512082541754581826733487188955246832937321429303728333071182015629375668304220266630810640526814289717371855503682968255156764810645950134434647258616739955186078408963879498650849476633093677538019695997244978850490237920940399642304038449330989822858357168077497051081046035804268522199953560276229682672593856069022767651571128114742212091004743109528320564748077398416183584578910155493129105283295503922511625058694895562315135426051012995806720848446620520471951974407192070009698237350699879199550406694816369398462519555549557173906908917123775921918385546352132500734789109945019981598414933584187116892466960158866108377824373206171540558308357398551267577998337392906983485265534377086301843415811772480796361626994483822747941037239594213246125211905420170039197428431326319907433774311876031287255313448497487913508055600627851616490845262521747640846497536005731109391676846250810273757828731367457377182619398033994299191771437191343580617171436921380718623493432728566225439460789261854344835794308729153931667468120460232614503179932920857657949173874840547245684247683466464400768382567899818329591501745522429255180764127014318653485640292395459740317805978735376563804632140183935115283432117366470117643521117584074427015774015055909843310692122739254675263078636643586979958626594222177757535997584633653890723235664768495534231947680405731155822222044543441570412216106673447440265920063438072240574319398405864916359679569466140156482998189426907241860341731174004641603750200842989563804830363594633957715221502842020931272809131436440126195719598553444653176822814104067649386562434189981240252728743282734665403449586316689307761537368403939850600663156714484037088963000702520615842559546151729403172927186315641896912435494930857540380614250998922218026793404491936056983498304751378200568528725634408881126034181181325155373592459042462334802996326077904766877801615297653657961358037701883477413220048539439822985549528112956074917406543524770171913330388771523444077478154551586258743029753638998508356644299345282607806542864616922389259627480624236630584172620362367616114514892623179707080246218588356820334369457237061990270763495892566415160235495557429769349780335315087024154022204867368019665382662181700189613187700523585042378362680570528681163769457005393231642446041783945146465385633054171908074366235422558838722557397390136983462814395710911929304020894015683971987707422186593986815011419101389468896578737823019850766842739570860976884556034688862843054297005859098983260702476518404374586362193562626386316006544004484562516912346636110441178057580784074545414049904750755375677282703466474000329498672656596806341307382835595155748344290399085308518275646400286402402016860704954009276414349602632958797098239981942664166940221174620405851803973548087613775235487437436665333821173060583932611238571651469493990618859929715960426799723043212306751123087308832599815863516511447702943289104250460265217901423641803807021212655144904582532929571551260621796960297642816621005574104442188348833621765677299095839391402160531007707471981606166978956041491396193959932283417534677958005644142265528128332203696648850700261061650456437176323568163182820348973528244764136395217469952209601072631553078284729533298020550127128272208964679346587100067712805637566878060548046707586485410980480259459455705980557791711583614363798496279545777582959308536014368602079471201483545161778461928924220851276821067009116740136499863650826674488638713099783618873217304331669707752312951378216163544664700476259221528166443449309579757569467283662782867456856801836634916984785476481871024800563623883603161656607405832871194972152198662058268117540936317298398100377945122851278813709773805698955908936152029957239074486734675385957780217739645192444676986362693468724028687612725432808903744977740815705175400702162666528775875423519264521502247227665002948769157691529245337143857571588478909493350776173822321080111663350693576391285337058046951260432310034048079453495295080584489309437472540886694776515325105312598513053031713976797946720894352160658870245995683970720520838317097331046252098390129141191806246276535303049550297058725738871616175052094384252782358993476307197953963229819961141291862877567565112638775629504221946693655812407274522265602662383245009637498726776879548181387030624681913743177668499421584755863275891337173882378178296498904786621864577052605949270826926955224162049606018213844106757548381460191927713131899599143531069611957990078451495993281952733436498147194150493820785235818025443427062356319792269973597257782685056561978858406520449806563425110230987926952976721430826969375834997897110629748811979735754928653461658983054386250970416920869273786018116968988047580130430462039738335442701182131588366455921008985774028046858125283375344427930572611918320101318575005198229670788381568137721357749781861781330425818149481083351095279841337036969674479252047157043503224586170919485884109064242326682432731311562885847491699629136596722446611214097710232466165880890422580166576948681547146813639406777714269697279649542758824177925920049330365027296571297386181737582468690081155088908048505819713642119243127656931825305860158488966316312178999935677262507199788217854983082863162859009568301941520843845157380074761376412221554924076305657379811303583327171368349497004026196872417855455079495184406842558752224922417243663833823121801585101193187333430332040462957274407103758366722438229468527583991694746043392336511836590568850492912655225291224784076430862590416389529266068658902446763227703723571639773494004692639560372202581150471913457172931721424660718041595327753175868682048647052572197939125500851278032754578390214194420814570260164387523660149136001897935578626413206019986306437168541662523054883772816911019349402443245443851001644181959855578347808048278174510230306997708824004642472746229889566601161031598665690907828021901307046308964308884547618874475421962823745753893921473044022378009338077568329875730809791615770548018494710796781052091280966184078446528814293196527603401187417972222234352195138142964618873878831866855413657961647334135117174557125607125391086300617922023492787662293985476563361212762659544198356938059645804878287180341031533581619802990720368486262872512008485458396661877884188041319453452713388492264070141231786048606503233500158555109309269471013058160447994479760778803010579807118029292285191369100356502065635846240359597385243374824452194510791852722940393613829837601765078640638214286359320250608432339532157274205055444813838868085423608919354216660717817505484776437325887164148289260526509374203431912087379539992366660375787904920026063933865301259063706294138454091605842624240771183915863400810360668010921913902788533101421456811533686528626973178476449217317245043162576573395946915532238588788694937023422271880814282355054285479717191650679939284238169684874502047519562068438032338048091848457137005548167515074818969073476709170130496021332120597281328671639075411810553377784448407802205430256638413509803926341799383129724080713750684122355963136868798869982908479277256024313102653850873338359534132784978266506230161842817601987291203657430707019574306391421750708392498035854396070984360420440467691778718105903922246991202343091629363051174320301894348406991944033453935522893283811033890027075483616357835281160966684670150383212863322128052276807665161332030336882136263253645344100096023153881726806284271242050503833396979953161673329834003311354416959655348679322119417783335066177108607476189605307195937077266677344133210924765021880993377635714893078486581741595585451397240427396662549748332211863328405321638093600890840698918353298886638177462893566648716627499063066746675614608685210171804401392555227865625808292665788280551390034761791590455899938532985955429389804175760297985283288147590559057164059510055328337770208502724130975281332774232352387934325309955994177049226497757405088155671383870328117113695470644888179645037576006201790642069205752889660198974406331712883726415907335872815876641385402266692207293221050797930537506638588249707005879389939306797491398778944594370374986177549994776893613134027880804520966437750202224302519688701425696015189676649157584797408607688507369699026074950322295108403807461453318096317011607239864100069984305309937866754818663758746767948502791397093413124645898644721580122253199620242539348936954502240692010332211207923659517311699880316546858102119942740638608200315746745074225875887022906527691321219719527593924289824654850025183628624788204767256384358255219422271271762048096435791512641208156406537749029811964312917487633726836479053001318090364362145559556352276680420657362643253199424002382466526148495300010740787080600060376203614322778586293721476369785382288971256394892241685086463826351653453493890961358033513610203546842276309760656437180980163603634348774164326042224738065254445183182597017265329809245320560256454837502427489932082341994757313487325041962559397081782314224632550451135041169522229245159213549032145932700569366727464563209651808582563504640252269232738174569703889173882828586267403883640998822028026604176547669864157874708771216389317376008417293631916770526704504061650033881315175794461114651324216829325098828257370796826478028069743276586989040864766449472084820650348947520819955032548677481717732518367369005444852277295183570760992749979846682173001340288602112974548808692594138974544421003209366252245033422954512876951885379525688924896587551129617119733032098966602449354580672971658572872118291392922906852180406944469475357968436894853587334484499642191673492819375209489453226824015803761842774412851798352935533913714254812718378081298737969924163438905399220070077426218960829706004299535328329129497865883563615433126717507418452760473452862936966328276240629433836606396260228012132564255730123807402498293759085412589042006247089120150825003018796380614862006302333949676934423015366852573807737576643421816721350824136889112927921834901994136258127377586571270112437390039505136811040692190567368150746275713116920003261939382699195729421981446622370983395248277222271240103267407526170660409313566510872453244968123389119415561285165750775546055303147008046418133022453697653701871680439636384763377537159997164458965257464335774584578372088791008608566985447562139198170483969032272512001040260909224430943642521883879211495372772275363641096109462142695149815094116340010712532149523602875629052049309417592435480524320610037369411918819397407364406244014015664465843808496410886780955966896103023993465471892900862478090236146775946627490739490562331125768532736123789664583366535515873644258329802040282764338165182997568041813516466371739375509802333788619093313676902863639366405030287762547505094664710010561543266798728383673015063801823855017096342937669929867848452379071579015901652548694514939640748685262758841728610186829001783276037338940108409506627947141366494209385910741416014303996751252518615573103182442058014852684589864822525208140884896561253982587325063452633302943907372334091739969650398787004173493725305373817985430837189075509599328946684015117394850867646901330747632050574629617317024648678300397723266576993302654098438465481506929774874783046791451258933292296600115046917042204305998102963308438315215565347338698994489094501850436410034011703547035877794694501176624899548737875724717163605109548316686268456787158909636645861527046199268237666314609538623105226714320771102474899802632198617278121798600500803116237653545264491048196741066029454953449704886877074621016449394457042322989536008742565519029742886370784100614220687617457237518652132993704441239364872239624351108570885820294101112298515833186339721429233774351083202165017093846784358882572820445856433795920423387832550222235884950161177936555013866555679953352177491845074753603253115278861999625462015954432315317294720099073551313049309105552581574091859251824259543373635965830200140413145672917813792507150961653746060833664786345260384341573096383679640040115337943663879287214339118095192030407048826958895508540408757432618403039971122083255813937044566787970171114227076580693470525153368444158216125874152548752486342344278458790336641009207490041666019402226566467804067904651476878972840357792465457785271036164014010922351206532897734753919379329495905531890321966649678677831882122787758715649591246828782442052524790310342339486254750162489322981988923027919726579774124281547953063546840297007158119751049684012721152947770430107241416562414757287130212197119659654643189741363821585911510235631036154878149913506291619945567239557547288109600422076287575628211049132811388557856278168003680889663665590089045957992898225422642188139852674080171358474887721009598153225017286119538821143217117012429210947159167443851783697065434077764021465402724823651238741200141310587731251143991274599344569841041642527502295153070279134875715054079820529526884358820246680893341066386978458305101658607723041633065366994592238420591255215292514706540350946302693795430980300102163196433007421728558144531254855933786074937248652918676362148509708649060302686395927214644062731834055244328449189497883068946606159770560210320429667963138851057245972472299189520430588935434908904270695330766064014535056550512378542969486090973128901609561762816437372599503640438229131832507784678877984248592911684919509776504039432741437075301600900445534843632505922359649779470539788708235703866280895963074605887594968402061491731027919847794267063887179487389331973344243553737741435786256480752499297507908461116036672514087605752087194817492781777158442936507218032670996162648151582685607852254717605814916671932531298619646296679793718555269308038036410882459089643658588257035869225376988674195867937751227715274122116265651764853930617405370259248085231656511608038934752509497169619126185204643439885756345629604464360790519588341619217546011925237674385513260894146375329064198519718268174310374918856810553244999950761223893844583651601175433593730809183505943500040764094762551727170043429511848905584588679271831464019363440935740321546819762789935676096572563083522227412105083649562417161057735445827889634585386458912721294836437225524370612324010068122511846160927934654224275927518114600858770035982890865745596400156315717277234770456962154736012505418331852204075008995713204751456523853102223771550557145689039534048679098590676187188870975782338652490694204091251646387480564441907293729638928287483233808631568945003890640169158929963702967351184056210365857964766496940138588434270332110494239206108112979951216047724220909353858472475277476308121288351845377062123509658511285330592459919976229722372804035096673219626183032871299090018804589069645735717795364615790985607929787258107175965577187464686731896718710276614746765774740904133879415328364581155707678206989540366647419470500486593935252631655071795342957093138442365373340343344209233774419025760023875641775367084966200697228606413292619465779509804827965666688204592003079776521576022840898548768165836184841176913264296450921542399566691013814122588909444938185574512828150879396578857313668475865942663542754614996429508558994384348962642949653545986009195452249512077337905151384024254449207576617400825576354315520495729427928367265849831216398514792002540996382596633698090697944646950627553702205071965795762672589291978361403959343538253518434177178403686695320630839786785129292718554371934192319492339400275439655613448085066101141840327422988438728452429475654065026746359232929175656973786820443018743134297158882200476521403485989365697676685947677465825324994758929733491736020665412541598931029473819959140563298236683305035780361006861998813544131349209326884475707684500045542967949171760007224683912771736733109176152568821895408126598076215295114421056661992749294537002827177679638140032441723046848968180796107400431564939832487194341226839500053177067945975349490260286724464871614128935273432811739783695761184441752290303690637783055538527886970175994633421155462407122273592917557905442397447913707803087904692638028562973662955050319658298573949444611085097928799657447275031529149803544911897757660744007488435510677031212657115048985498565269225346364987951504668208423299558380311228526760721943297608585096852798795069713238853508868546298897068713663796420506550392660646607129688476842877573015745441212833374959840848456338876466945754642167391343027696539810354772596314440774752374369732818476171130795196913817760895511856022912645769037017577074188683565174556620460555171908926786846499098640113121789345992846106602902690423472750767675709794736911167508744643747256102501145244736634142066914213885872066216249550326634508866563480257439731481971606731794993359006418619788393826729772398354473105174047793954759535101852453354005938431224197799780056158766828417662857775439839487961212376201532817901241221291145154647113817007733522418461673297129272216408827317741072689809211562032472880550811129125055035000596980441988366925568222059767363347901422371080453347693517591531374422084439375743729226557117871523283052470098995315167700143740968311503030487553409601660903974994005035369169494793660101181537953003374993928536324728375827442527770393620410499443355178565039549628136381789967396483470328567202603201320129902334890447419718101902367289014610722814005574902917345200217317108748402595559283582192692318190311826974829994216356615973282149887302380420716455926642269868633758000493710639243632256323364346622649651715389700259868270229658090311455785655112005544977745644604792564135910103281695460576837739679950294334233611817012879193139258962877168635127101664993229751611216923057067263346352624136459889161404375071624818892570728183781600460531114411747198894388671960023615302792597906258231079271840842210055601938547605418442087627938191916741284552226347385906349920661165269092208199494827787064436545808673808378739037892499164909152362878034847755968292363488726493206079537033494066610945933399166873291868818700103788827732733608482795018031263953412996987646107392140128835135192778229156434360275721996917447771637962541895910913699865591956633087993735911222962146031746763212925974030298325706809802337071785107137280485204017996902465366807219404263387299602428994260131360737380608698961476375086040153920839356992176139466696024857389801894333090592192472450261345468128724718897821891485325327024634101927842148683761306143165063082429424994325535020439327565712272186975789470189226584592383653817436082187927441912076408028820479524425763088261959858066591090810308910512797236767267846405772633886811293035108372780526248194306169461232443578535471839536447143730773755594007323023689150779994600704169044595782562036237044858224576451168910838175030940084905990308664634037267681282960788264975419063680568831450625476327450792691969028244651145927528671529383425537109608456345062365833372777625245268820243661216924529224102505306523156451933164487976222421335897186515416128096962123383504417747278350091331471620299161630711528501950377467618472544941786622418066843368495489869471445829705946915235139417869418517584833843512895641988239116968822328887599188511820496533372340110167673438517156957145213947794362337431546437248783637579143357360053126347552159137575864515860314045283914708500476694771870292222987733418072321754939920173757440925337270335066641502803298348036915496890656490101090142192033565838285600272547376597655772262108389517355055637675351353777632001054575460696148169736993878917797871046263013946835640510983004076036974898837122663149335661788487794743119572443825677573083972490052667962035952053302851743855582896166290925687049625719056736504116517947051336582034924533535463386366170591446006937813703570208074509134434678470346895246317590350536335274262882713943454020538842057664639440413265557052389700834924821187072967799765802789406213701006671701549100062304189296103719829543511591867837419032974048882081772052253731557080662697169122448339273296794393894636507554988941638251047743405292992964663069683629135086959364103387719669742004059260693444911624721351809254802044070286806200522316479455067945424429615909427714862243279844545178706310105530168587868450318399086324809049114203768184269760969652648838466404590222506194016724432327847631269198328186930725660587914975112621276087838327799744577678822013077935393374925631180178898303755337704026419638543158267439201775539557997497719107847252123250104375993134297460130442928375167335337680860595162556275618499164688572185833584509851050207250839037894873835255542644807190975361333085220181136394686109484905967944894073174152567403237385640293251562179648047680870271398707013260253963427114001026966241888134446456445364607093985258642506595050610234276631199026696616147550330387906286055688320645719598342807275440499137975935898407415737857877462872212781408549884920378886374479968937420539324803567607091927031145688103184582613520545857053811290402983434205900206398131895653112155165120164128582895378785267832328379772130019192830908163115289832345646977625788895375348602293767085450249023494135188126326999576832081635369413801381118689008324630527497275745447005505279647386729149863030269525825888935346942252968481724487850626720583866135619721593885447962938451807025542361854244267133766906841374131519919854942915444756246687195553383358758633124528058194575073173270229664946915065399106385762391304603953601462833543890365633435143354156324439424460733708231089688004913418065408061182057755419176294146780133525703513127680039012560658830837554703281460096575165001851100910805374351903355941870330072231204900554755570794157376771726455646825307731020061591964814947695197838457519689763824197457230590036080471937944556236313053461406923822302693177798527287229452762341436899875953106206915961521127144634343352639244524300504546567057907649513966877008137021821553585624984481040505105480199866142432368157705843584375827119270851342612925445065137404577627623232701920821565868088017381592743427384431653219767922391376717037998880535258643020252279490764597392346123571380265587963293757669532671577364752055074820449050844322411229559158223519776068451127808968362572103002152372345496007268766923451855272107008467590329159363796361581105292335858467715522552582041681993825689897906581077035776784928332228230129232989400037191574570518625706134209449265205165710731634021500237272868596371643246040356398960767989440207675186649812590425853892552850246367952715498451217763959576083682427173106536055011948812742706223482544025172611551454054145627503048172559364780220949819170407664726714680949391356955416502402577633537089617485264651543747591936032679692301087657372042070869301626267185142333935191467172144048444727615924326820204666412945393597455010917608468555877378709884648366117963956365070162854783494190291308025102943759278366244211732057529166932113438158739503677632443130662076032357704422414976436444934752837925723220090509209821368634693354980068653876768802141636019209088107047416831102579528227585492061895241587330167550751818234019452749264813142453721702918028943523078365916148806523940003348681307793125149204160290478000440652005192573731994692485959798515853839297921280012055360694121118345090027658029148332933502604986012962114985924133537050351207228756983818950618255718113353656914555279203048644531283330067968498771741233248278745582057559594815106014074271598124159729583824482942096933536919601330534170727384114360064522379441757390881321038575018967865639061628042300623880450488635967038888570394536314235490879057520751848969056347608792047290539686058053316905486044847451516218418748896068573772523521830092818949722256137688623208402108146255760026922844445530154493372667508578762528859901928098637923949313965801237965058962289409352320410669905629432660084240754247448827661530381299057235419877360768662703349350487487208945200614035508508324661617433749433635144026924617634643314593537546879888256254228859286446486115436667147145275678050500124608351060034560682068069002284729595774686807503359195653719628906564294598674838580558193545346627809535914077283159283924648825008997037865490831428202599573767290416635627479383525847375758356805293113842498919626800901509685888770025583487700253584912425117838927430317890857032484880174906242847648668673025873220266354328812219115337837888846905070073423945378521208771914870121982350089008490708791748561579525324182950579023976442358676745760620281608111356130289873837934232070147995509412922838675518592707683948906542469676733323485446016730628537591229517568128235679202423145632152254994512148601538471867550652908317334142394701246031826551031600012377302681559954638469199781326393290505341135018863784568515231844626747390673371055277404338041925589152315024410429479647872677786157385366232443117448658998932200625128800119244444472711256371605477919617052647609963057783801377111457879739551527275423834709847774474588585891615774014871985076845961083537907112554709727281729412215758970620995622492366944941498461339119950308708774849190546364258670170318073269667144264652308046902586344690080174385512062978825314702645100165026148007642211587248073531741127545437127500705368339476235793744711040497788221417123980016702862736013803413358851171459523727578250929748648225014246682965567905625184577288772646237347114080895444632585735948366101941264967088705103548768460365888491121500281827337790890338977050325745635448342377659817005398441289709016820600956863158700337909204691867831651910717698874618314581785829592796115979950908389498755444493606483018220507614440715579322022773912888905934430848882400425706695684342219484812091567825867303701879573696192550368955084783015246776299210128158950908234945866630459676304653186157519153930084657941966315191960786352797917002248803162829891766034304707792619663218974701573828018678308425827703856071156442189559413892354135271898885924063828663810652955186348556208949848490652305393554036459949912960767434382520513429012178033547116045768139725450692924034642394333388148554879385983916234743111708518634125025479955570376993880418413024808029158997512302117793812555115858623740351615013261106503080071946189614257445774733862323569911506579244365892139569290079294627413907643197816377788901852353025697023671042914703214995293833502670704804447473387444058291405028040580053738257551182219862613327086872946089778412877044229488427717092251824951746565355319883270125491163798164516689884341067579049842267686475307411869636823892009441774854713270437481725792685491518797466179890213729930964714707022990502387217746905846449005838364379863777696654917884355452924095977657710669184961373739248180546560716757016463107916654683516358051381733775408504094889578870986387620598252168711888013425437723669131403259534277312386751091470709948772930400228075865256536355883208592891235246019372459203501466879918832623139470538065947305331654575252983478755963238662339516382293508569666048435626998717897291787282150186749346711890820204275777511190400912920605934901818431540071093267904430996549263340059496828326459766321191272573870875412953418120435463196456558113889755387767260067353510163510383531743037052289101922388258522753769986940927580055325052566931611817560986217307329214533663228891086057427689089017786723891334440774205512633180001924593253379761568432505636804457275104404405678274839092369219574476750966885394804729346751990414010233931700272319356983366379952287704561576254095406279850970730849048454837457871926563031138915319343290014628013093905432113094376806462095463229876722653617366699301698369079113498753520800076279887306860548392121215878132035587243991761967712847933511323329978248700276012353787438351406182253311387567682708142010641837353703979585743505025107260929473628147237025148892356594303576489592256811768023783055599378714120209959254590968051018966342508531043222714500285560947009615594552259395355467188421422270429438217638264287674354891214776522507596930416674402904353257769985908488636477995570712204899956910032942868491689280865922302122670806642734562243052500273083178177201730277402535072369511951402177415331214965607448373464762452302498722067946701496462070052490101863598437599537020329250575010045187936595938251635241517758237505643996091366766790039429868426434058627705760585930822739024930167045821684772434361498521464369029204970941044855953176667756698698392105371601298138433387795813781584098804487836835743905887475819247681318330575735986605631412379439359788605882109726685334036205114199717961697456048049113718676835406301610749715379239699095744659030681428106621577609001545700677132481009452466689795416502236369896905642055758670553953554538872590940731272919538697698641593231298910617162533168051225590290779486431844991570039520008263208628044326503980164081311555620834965253228643981292625434482497432365850241207005416516163944157260624200420759307001657570720181849049775574265495579452874847782062289376599806243118428711749233744803043104917880456261745262165664710993502741783684761115190774668632365137912665360097668976141354839287142987342455260042458765782738487429352594096277974024383962867678511657068693614603470283716020953113635545732502618599773649914631257224802304885016872994950503142260431447378280406460614722715514651018186978342964305981580794812045833595421472213128620730033483283488915598817963351767198473779395752312092165693293082903269906174150160043272493524417737471686989626182114830464118646047195034243684121069885761586987302028774599797425449625939922213020029479471331755874593686253692496652219393792183204806519915664895679514922410716342709661305771803432945615017676225795882886309132456193501529625010152036737594442092976041373807733973777402053677219734664495926592579580901698759472638323010743089609419286214545733028455567312977213339323041958756498296789696481467768429267627524239011157143572653527893819132377102808799978841211148748291159925151460722614863337943687261839089691026240577666749809644436740501203503138866163076619882967809172879437165181284244081328533905992979444676395044100952566962087876942386282095798365012052941163606144856635668560350302726602889685512919702969958171658107250045057510807291623107932222198415394415706860830288539260306389477322019325967939004869870747417777838600643191118569547266269366961209649176056042953942224084741667547596280395187621760903911955564454983490844924522151860259917612556519195120508349647564750117357324253656942126691294239661192430614438479668570239516256838108605536076304910700574349141312606501012170550787960264887010425035093220549275519571360795911141750067709550050547147762281018422417952584745993750159750004901978517283343008656612781596895880796000604340720411815269960479663931818748117564626339631723458645511674201827764144716919471033667960144558951577133607769725013674765231392740363266024665242168401179025805073480196241145201275588161535980242417901031863341675345481428697878049040391325077179044371983115106368400664929696654673304418115276905568342899515119514005628476187796166949548925833436773932791140921103395666139203129181399313644012723614060078286748564700436373243874771678270631684487376300841581587020728759938236610579790337625293328590583696443906759032482761818278567988678952373596842072719704628838745871568429123672534121721426539250281356495472652588489339338594138740958471263414896525115036224770173928831819992326851955369851783956603486143318582599011384919505126708427044202082216752645773541001549269639262485639776259991322435586321966052420633178200954304499518435453406290517002473949275607345825377569959558004189440157988161947343628093919586640959776948617107986603584145035772603847322921070726588124798336904172224201350321881192881544994943712325900177453330710213094924815754267329451958159270680564988646913285279507434156953196699228798404506059218899665638504408001481816382678393600752522264489266318095175938470458581316100125751021985461872070166577328653197146247158908271577930120540623140760991738189442590001908163199612934164714491331427579209971127529662957929694688959729969545559549918237359545690926412478859904260013252956913119781131778339115973131597116071309383849554038466186795271916017157994891852709715935687013820095321421396297013198666444252518819221744357657654875948059727239910020623402288531891271165679499174814730595984351499502707007604088080076664826784913766750939701447960288331811034777628534450633790362952435593007601881267294686370683289800831104776617409571146495476892411961132149134707910535738096598840301385766430595995294160140601300406400965056278548316075935440303304404926724870314131087115227379825981649512818369555922589772872215592246875232382065049600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.41s, Wall time 0m0.41s). '128.95.' ************** SAGE ***************** Host 128.95.47.142 (128.95.47.142) Time: Mon Jun 26 15:33:30 2006 Input: 2^5 Output: _3 = 32 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.134 (128.95.47.134) Time: Mon Jun 26 15:33:26 2006 Input: 7+13 Output: _3 = 20 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 26 15:33:19 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.11s, Wall time 0m6.80s). '128.95.' ************** SAGE ***************** Host 128.95.47.122 (128.95.47.122) Time: Mon Jun 26 15:33:17 2006 Input: factorial 1000 Output: Errors: ------------------------------------------------------------ File "", line 1 factorial ZZ(1000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:33:16 2006 Input: factorial(100000) Output: _3 = 2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.55s, Wall time 0m1.34s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:33:16 2006 Input: factorial (100000) Output: _3 = 2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.53s, Wall time 0m1.54s). '128.95.' ************** SAGE ***************** Host 128.95.47.137 (128.95.47.137) Time: Mon Jun 26 15:33:15 2006 Input: factorial(1000) factorial(10000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 _4 = 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.06s). '128.95.' ************** SAGE ***************** Host 128.95.47.122 (128.95.47.122) Time: Mon Jun 26 15:33:13 2006 Input: factorial 1000 Output: Errors: ------------------------------------------------------------ File "", line 1 factorial ZZ(1000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.123 (128.95.47.123) Time: Mon Jun 26 15:33:11 2006 Input: factorial(1001) Output: _3 = 402789647337170867317246136356926989705094239074925347176343710340368450911027649612636252695456374205280468598807393254690298539867803367460225153499614535588421928591160833678742451354915921252299285456946271396995850437959540645019696372741142787347450281325324373824456300226871609431497826989489109522725791691167945698509282421538632966523376679891823696900982075223188279465194065489111498586522997573307838057934994706212934291477882221464914058745808179795130018969175605739824237247684512790169648013778158661520384916357285547219660337504067910087936301580874662367543921288988208261944834178369169805682489420504038334529389177845089679546075023305854006141256288633820079940395329251563788399404652902154519302928365169452383531030755684578503851488154092323576150311569325891190105926118761607100286827930472944913272420825078912158741589850136017030887975452922434889688775883386977825215904423682478943313806072144097432418695807412571292308739802481089407002523955080148184062810447564594783139830113821372260474145316521647368313934670783858482781506915288378941348078689691815657785305896912277993200639858696294199549107738635599538328374931258525869323348477334798827676297868823693023377418942304272267800509765805435653787530370118261219994752588866451072715583785495394684524593296728611334955079882857173250037068541860372512693170819259309411027837176612444692649174536429745421086287708588130082168792750697158901737130221751430550976429258055277255676893874108456870904122902259417224707137723406125811549952159629766771063079472679280213882978523785424760309678138268708239764925768714349554665438389311198715040908077757086900159389712443987670244241787904585093011546861502058550090914877900852701619648229332192401075747543562989953271508977501771085759521631427816116191761031257454497039673414248149210836002497114107565960458576525212556159634975715552638678172137468172843066451093984443636560722213668172225585711566558134467392654185460222589723312097599987253417831473939565071006344352518096564427781204200068323913056897090916602712260306869786107237077572445866572945760977721639408338430009976028970539150822336553856613962747814621747092348996915755983464741082000337526945990059365493439921937093368896754791416759604324895514660325913157843796039917819613717350380997781225472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.143 (128.95.47.143) Time: Mon Jun 26 15:33:08 2006 Input: factorial(10000000000000) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 7351 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:33:04 2006 Input: factorial(1000000) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 7743 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '128.95.' ************** SAGE ***************** Host 128.95.47.131 (128.95.47.131) Time: Mon Jun 26 15:33:04 2006 Input: factorial(-1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 219, in factorial ValueError: factorial -- n = (-1) must be nonnegative Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.139 (128.95.47.139) Time: Mon Jun 26 15:33:00 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '128.95.' ************** SAGE ***************** Host 128.95.47.131 (128.95.47.131) Time: Mon Jun 26 15:32:57 2006 Input: factorial(1) Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 26 15:32:57 2006 Input: factorial (100) Output: _3 = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.141 (128.95.47.141) Time: Mon Jun 26 15:32:56 2006 Input: 56+25 Output: _3 = 81 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 26 15:32:56 2006 Input: 42^42^42 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.121 (128.95.47.121) Time: Mon Jun 26 15:32:54 2006 Input: factorial (10^4) Output: _3 = 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.06s). '128.95.' ************** SAGE ***************** Host 128.95.47.130 (128.95.47.130) Time: Mon Jun 26 15:32:54 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.122 (128.95.47.122) Time: Mon Jun 26 15:32:52 2006 Input: 1000 factorial Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1000) factorial ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.128 (128.95.47.128) Time: Mon Jun 26 15:32:49 2006 Input: 34*34 whatever you want in Output: Errors: ------------------------------------------------------------ File "", line 1 whatever you want in ^ SyntaxError: invalid syntax _3 = 1156 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.120 (128.95.47.120) Time: Mon Jun 26 15:32:49 2006 Input: factorial(610) Output: _3 = 83826160990316653882862988443391267190206704514369366239959262845808616271019302063844780283986411640516049649319606454251565946173459983677527230372847467574319899062060444464682132812526971645908888073731400794646098061235405731639210841114991372956370937804083319861037348765631387426181517619369367855867851715139135878078975885036384253099126541511411609027176159775699281765939102326857676736962175034881909723863409137147099789710373127609215658209442154692378786081479993248886872892822221044640148422580954221195742243391905139576234768569004619275499131453549134717108877587132561410785513201135804851425306953453581644314165912074858892409668115911432368839846869376622116399974475034465470515294967002119507147902054460630550898214109924754252831862976316287872006307929496807545615759686476609498054049815173888948778231418733487005253592623888778807231563628378309268804276229144278483182346648951893066046477094743555682365673407474004518482459607672698223241352194611636991433608748190099572071551202032202041885863557905513864649834787160119538411404552988156813663546342711708022119520513724445629502544970612633093076245249082386691561540185348682547689423986490868731988681770671703084674012187922444258405610417334245933241422032257261808718937224635681542229721088000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '128.95.' ************** SAGE ***************** Host 128.95.47.137 (128.95.47.137) Time: Mon Jun 26 15:32:48 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.139 (128.95.47.139) Time: Mon Jun 26 15:32:48 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 26 15:32:47 2006 Input: 42^42^42 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). '128.95.' ************** SAGE ***************** Host 128.95.47.138 (128.95.47.138) Time: Mon Jun 26 15:32:47 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '128.95.' ************** SAGE ***************** Host 128.95.47.140 (128.95.47.140) Time: Mon Jun 26 15:32:46 2006 Input: 3+3 Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.136 (128.95.47.136) Time: Mon Jun 26 15:32:44 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.123 (128.95.47.123) Time: Mon Jun 26 15:32:43 2006 Input: 102030405060708090(102030405060708091)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.129 (128.95.47.129) Time: Mon Jun 26 15:32:42 2006 Input: factorial(10000000) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 7070 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '128.95.' ************** SAGE ***************** Host 128.95.47.141 (128.95.47.141) Time: Mon Jun 26 15:32:41 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.135 (128.95.47.135) Time: Mon Jun 26 15:32:39 2006 Input: factorial(100000) Output: _3 = 2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.55s, Wall time 0m1.86s). '128.95.' ************** SAGE ***************** Host 128.95.47.121 (128.95.47.121) Time: Mon Jun 26 15:32:39 2006 Input: factorial (10^6) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 7224 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '128.95.' ************** SAGE ***************** Host 128.95.47.131 (128.95.47.131) Time: Mon Jun 26 15:32:39 2006 Input: 2+222 Output: _3 = 224 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '128.95.' ************** SAGE ***************** Host 128.95.47.142 (128.95.47.142) Time: Mon Jun 26 15:32:39 2006 Input: 2+2 factorial(1000) Output: _3 = 4 _4 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '128.95.' ************** SAGE ***************** Host 128.95.47.133 (128.95.47.133) Time: Mon Jun 26 15:32:37 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '128.95.' ************** SAGE ***************** Host 128.95.47.136 (128.95.47.136) Time: Mon Jun 26 15:32:37 2006 Input: Factorial(1000) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Factorial' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.131 (128.95.47.131) Time: Mon Jun 26 15:32:34 2006 Input: 2+22 Output: _3 = 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:32:32 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.145 (128.95.47.145) Time: Mon Jun 26 15:32:31 2006 Input: factorial(50) Output: _3 = 30414093201713378043612608166064768844377641568960512000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 26 15:32:29 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.135 (128.95.47.135) Time: Mon Jun 26 15:32:28 2006 Input: factorial(20) Output: _3 = 2432902008176640000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '128.95.' ************** SAGE ***************** Host 128.95.47.144 (128.95.47.144) Time: Mon Jun 26 15:32:26 2006 Input: factorial(1000) Output: _3 = 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.131 (128.95.47.131) Time: Mon Jun 26 15:32:24 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.132 (128.95.47.132) Time: Mon Jun 26 15:32:23 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 26 15:32:21 2006 Input: 42^42 Output: _3 = 150130937545296572356771972164254457814047970568738777235893533016064 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.128 (128.95.47.128) Time: Mon Jun 26 15:32:20 2006 Input: 34*34 Output: _3 = 1156 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.122 (128.95.47.122) Time: Mon Jun 26 15:23:22 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.143 (128.95.47.143) Time: Mon Jun 26 14:51:39 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.143 (128.95.47.143) Time: Mon Jun 26 14:51:25 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.6.82' ************** SAGE ***************** Host 24.6.82.113 (24.6.82.113) Time: Mon Jun 26 14:42:15 2006 Input: 1695+1695+1695 Output: _3 = 5085 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '204.102' ************** SAGE ***************** Host 204.102.210.1 (204.102.210.1) Time: Mon Jun 26 13:59:57 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.53.' ************** SAGE ***************** Host 134.53.25.50 (134.53.25.50) Time: Mon Jun 26 12:44:22 2006 Input: lim(f,100000000, sqrt(2*6.6742e-11*5.9742e24*f)/(6.3783e6+f)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'lim' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.53.' ************** SAGE ***************** Host 134.53.25.50 (134.53.25.50) Time: Mon Jun 26 12:41:55 2006 Input: 9+8 Output: _3 = 17 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '151.198' ************** SAGE ***************** Host 151.198.23.169 (151.198.23.169) Time: Mon Jun 26 12:23:22 2006 Input: 9+9= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(9)+ZZ(9)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '151.198' ************** SAGE ***************** Host 151.198.23.169 (151.198.23.169) Time: Mon Jun 26 12:22:57 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.107.' ************** SAGE ***************** Host 69.107.12.62 (69.107.12.62) Time: Mon Jun 26 11:21:10 2006 Input: 1060/2400 Output: _3 = 53/120 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '200.140' ************** SAGE ***************** Host 200.140.162.10 (200.140.162.10) Time: Mon Jun 26 11:12:17 2006 Input: print dir(gap('SymmetricGroup(7)')) Output: ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'db', 'dump', 'dumps', 'gen', 'hasattr', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'order', 'parent', 'rename', 'reset_name', 'sage', 'save', 'trait_names', 'version'] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.20s). '200.140' ************** SAGE ***************** Host 200.140.162.10 (200.140.162.10) Time: Mon Jun 26 11:12:02 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.21s). '24.58.2' ************** SAGE ***************** Host 24.58.247.182 (24.58.247.182) Time: Mon Jun 26 10:58:47 2006 Input: 7170-6850 Output: _3 = 320 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.129.' ************** SAGE ***************** Host 71.129.174.198 (71.129.174.198) Time: Mon Jun 26 10:26:05 2006 Input: x^3+x^4 Output: _3 = x^4 + x^3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '166.82.' ************** SAGE ***************** Host 166.82.28.133 (166.82.28.133) Time: Mon Jun 26 09:34:40 2006 Input: 181 11/16" divided by 7 3/4" Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(181) ZZ(11)/ZZ(16)" divided by 7 3/4" ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '166.82.' ************** SAGE ***************** Host 166.82.28.133 (166.82.28.133) Time: Mon Jun 26 09:33:55 2006 Input: divide 181 11/16" by 7 3/4" Output: Errors: ------------------------------------------------------------ File "", line 1 divide ZZ(181) ZZ(11)/ZZ(16)" by 7 3/4" ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '166.82.' ************** SAGE ***************** Host 166.82.28.133 (166.82.28.133) Time: Mon Jun 26 09:32:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.186.' ************** SAGE ***************** Host 70.186.69.229 (70.186.69.229) Time: Mon Jun 26 08:45:05 2006 Input: 2 + 2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '162.83.' ************** SAGE ***************** Host 162.83.178.184 (162.83.178.184) Time: Mon Jun 26 08:42:36 2006 Input: print singular.ring(0, '(x,y,z)', 'dp') Output: // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.43s). '162.83.' ************** SAGE ***************** Host 162.83.178.184 (162.83.178.184) Time: Mon Jun 26 08:41:18 2006 Input: gap('Factorial(23)') Output: _3 = 25852016738884976640000 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.16s). '162.83.' ************** SAGE ***************** Host 162.83.178.184 (162.83.178.184) Time: Mon Jun 26 08:40:45 2006 Input: gap(Factorial(23)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Factorial' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '162.83.' ************** SAGE ***************** Host 162.83.178.184 (162.83.178.184) Time: Mon Jun 26 08:40:28 2006 Input: Factorial(23) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Factorial' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '162.83.' ************** SAGE ***************** Host 162.83.178.184 (162.83.178.184) Time: Mon Jun 26 08:39:53 2006 Input: gap(23!) Output: Errors: ------------------------------------------------------------ File "", line 1 gap(ZZ(23)!) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '162.83.' ************** SAGE ***************** Host 162.83.178.184 (162.83.178.184) Time: Mon Jun 26 08:39:35 2006 Input: 23! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(23)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '162.83.' ************** SAGE ***************** Host 162.83.178.184 (162.83.178.184) Time: Mon Jun 26 08:38:50 2006 Input: print gap('SymmetricGroup(7)'); Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.95s). '199.120' ************** SAGE ***************** Host 199.120.31.18 (199.120.31.18) Time: Mon Jun 26 08:14:14 2006 Input: (3x-4)^2=25 Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(3)x-ZZ(4))**ZZ(2)=ZZ(25) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '75.2.16' ************** SAGE ***************** Host 75.2.16.25 (75.2.16.25) Time: Mon Jun 26 06:57:13 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '216.99.' ************** SAGE ***************** Host 216.99.65.10 (216.99.65.10) Time: Mon Jun 26 06:28:18 2006 Input: 8-9 Output: _3 = -1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.177.' ************** SAGE ***************** Host 70.177.5.244 (70.177.5.244) Time: Sun Jun 25 20:31:17 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.197' ************** SAGE ***************** Host 216.197.162.52 (216.197.162.52) Time: Sun Jun 25 18:01:56 2006 Input: 8781+96+68+68+54+105+37+96+17+35+20 Output: _3 = 9377 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.197' ************** SAGE ***************** Host 216.197.162.52 (216.197.162.52) Time: Sun Jun 25 18:00:57 2006 Input: 7333+73+45.50+33+27+23+28+2+7+51+76+59+22+222+46+21+100+46+112+84+82+91+4+194 Output: _3 = 8781.5000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.03s). '216.197' ************** SAGE ***************** Host 216.197.162.52 (216.197.162.52) Time: Sun Jun 25 17:58:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.197' ************** SAGE ***************** Host 216.197.162.52 (216.197.162.52) Time: Sun Jun 25 17:58:04 2006 Input: 10500-7000+2500+63+77+115+74+57+80+54+60+79+85+513+26+50 Output: _3 = 7333 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '216.197' ************** SAGE ***************** Host 216.197.162.52 (216.197.162.52) Time: Sun Jun 25 17:56:01 2006 Input: 1*2*5*6*7 Output: _3 = 420 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.127.' ************** SAGE ***************** Host 68.127.151.145 (68.127.151.145) Time: Sun Jun 25 17:42:13 2006 Input: 45677+655656 Output: _3 = 701333 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '71.209.' ************** SAGE ***************** Host 71.209.113.33 (71.209.113.33) Time: Sun Jun 25 11:09:04 2006 Input: 40-17 Output: _3 = 23 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). '129.67.' ************** SAGE ***************** Host 129.67.2.74 (129.67.2.74) Time: Sun Jun 25 02:00:38 2006 Input: M=ModularSymbols(1,12,-1); M.dimension(); Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.64s). '129.67.' ************** SAGE ***************** Host 129.67.2.74 (129.67.2.74) Time: Sun Jun 25 01:58:40 2006 Input: M=ModularSymbols(1,12,-1); M.dimension(); Output: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.43s). '129.67.' ************** SAGE ***************** Host 129.67.2.74 (129.67.2.74) Time: Sun Jun 25 01:52:20 2006 Input: M:=ModularSymbols(1,12,-1); M.dimension(); Output: Errors: ------------------------------------------------------------ File "", line 1 M:=ModularSymbols(ZZ(1),ZZ(12),-ZZ(1)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'M' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '129.67.' ************** SAGE ***************** Host 129.67.2.74 (129.67.2.74) Time: Sun Jun 25 01:51:49 2006 Input: ModularSymbols(1,12,-1) Output: _3 = Full Modular Symbols space for Gamma_0(1) of weight 12 with sign -1 and dimension 1 over Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m2.88s). '82.147.' ************** SAGE ***************** Host 82.147.21.157 (82.147.21.157) Time: Sun Jun 25 00:54:24 2006 Input: x=3; X^2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'X' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.226.' ************** SAGE ***************** Host 70.226.167.228 (70.226.167.228) Time: Sat Jun 24 21:33:14 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m19.48s). '203.121' ************** SAGE ***************** Host 203.121.62.130 (203.121.62.130) Time: Sat Jun 24 21:06:21 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 0m56.48s). '203.121' ************** SAGE ***************** Host 203.121.62.130 (203.121.62.130) Time: Sat Jun 24 21:04:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.31s). '202.156' ************** SAGE ***************** Host 202.156.6.51 (202.156.6.51) Time: Sat Jun 24 20:51:19 2006 Input: 3+4 Output: _3 = 7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.31s). '172.169' ************** SAGE ***************** Host 172.169.173.111 (172.169.173.111) Time: Sat Jun 24 20:50:28 2006 Input: 4+4 Output: _3 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '72.230.' ************** SAGE ***************** Host 72.230.171.50 (72.230.171.50) Time: Sat Jun 24 20:43:42 2006 Input: 2006 - 1973 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2006) - ZZ(1973) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '24.177.' ************** SAGE ***************** Host 24.177.175.30 (24.177.175.30) Time: Sat Jun 24 20:33:07 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Errors: Exception pexpect.ExceptionPexpect: in > ignored ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: You must install the optional Kash package to use Kash from SAGE. Sym( [ 1 .. 7 ] ) log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 1m15.52s). '24.177.' ************** SAGE ***************** Host 24.177.175.30 (24.177.175.30) Time: Sat Jun 24 20:31:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.48.1' ************** SAGE ***************** Host 70.48.164.241 (70.48.164.241) Time: Sat Jun 24 20:02:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '65.4.17' ************** SAGE ***************** Host 65.4.175.159 (65.4.175.159) Time: Sat Jun 24 19:49:32 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m20.51s). '65.4.17' ************** SAGE ***************** Host 65.4.175.159 (65.4.175.159) Time: Sat Jun 24 19:48:31 2006 Input: plot(sin(x),x=0..10) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.4.17' ************** SAGE ***************** Host 65.4.175.159 (65.4.175.159) Time: Sat Jun 24 19:48:24 2006 Input: plot(sin(x),x=0..10) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.4.17' ************** SAGE ***************** Host 65.4.175.159 (65.4.175.159) Time: Sat Jun 24 19:48:19 2006 Input: plot(sin(x),x=0..10) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '70.250.' ************** SAGE ***************** Host 70.250.217.111 (70.250.217.111) Time: Sat Jun 24 17:18:41 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '24.164.' ************** SAGE ***************** Host 24.164.43.2 (24.164.43.2) Time: Sat Jun 24 16:20:56 2006 Input: .262704/.623 Output: Errors: ------------------------------------------------------------ File "", line 1 .ZZ(262704)/.ZZ(623) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.164.' ************** SAGE ***************** Host 24.164.43.2 (24.164.43.2) Time: Sat Jun 24 16:20:49 2006 Input: .262704/.623 Output: Errors: ------------------------------------------------------------ File "", line 1 .ZZ(262704)/.ZZ(623) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). '80.103.' ************** SAGE ***************** Host 80.103.35.160 (80.103.35.160) Time: Sat Jun 24 11:30:16 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.11s, Wall time 1m6.30s). '80.103.' ************** SAGE ***************** Host 80.103.35.160 (80.103.35.160) Time: Sat Jun 24 11:28:15 2006 Input: NumberField(X^3 + 15*X^2 - 15*X + 15) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'X' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.22s). '80.103.' ************** SAGE ***************** Host 80.103.35.160 (80.103.35.160) Time: Sat Jun 24 11:27:24 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m33.13s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Sat Jun 24 10:57:34 2006 Input: maxima('10!') Output: Errors: Exception pexpect.ExceptionPexpect: in > ignored ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Unable to start maxima Exiting SAGE (CPU time 0m0.00s, Wall time 0m31.02s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Sat Jun 24 10:56:18 2006 Input: 1000!; Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1000)!; ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '69.169.' ************** SAGE ***************** Host 69.169.32.30 (69.169.32.30) Time: Sat Jun 24 10:40:47 2006 Input: kevin Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'kevin' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.169.' ************** SAGE ***************** Host 69.169.32.30 (69.169.32.30) Time: Sat Jun 24 10:40:23 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '66.82.9' ************** SAGE ***************** Host 66.82.9.67 (66.82.9.67) Time: Sat Jun 24 09:00:31 2006 Input: 78/8 Output: _3 = 39/4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.158.' ************** SAGE ***************** Host 71.158.155.36 (71.158.155.36) Time: Sat Jun 24 08:57:29 2006 Input: 2/5 Output: _3 = 2/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '58.161.' ************** SAGE ***************** Host 58.161.11.28 (58.161.11.28) Time: Sat Jun 24 03:11:21 2006 Input: log(2) Output: _3 = 0.69314718055994529 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.62s). '84.188.' ************** SAGE ***************** Host 84.188.211.224 (84.188.211.224) Time: Sat Jun 24 02:46:31 2006 Input: fsolve(sin(x)-x^2=0,1) Output: Errors: ------------------------------------------------------------ SyntaxError: keyword can't be an expression Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '71.75.7' ************** SAGE ***************** Host 71.75.75.70 (71.75.75.70) Time: Fri Jun 23 23:34:46 2006 Input: 660 * 10 Output: _3 = 6600 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '68.212.' ************** SAGE ***************** Host 68.212.128.18 (68.212.128.18) Time: Fri Jun 23 22:38:20 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m12.18s). '68.212.' ************** SAGE ***************** Host 68.212.128.18 (68.212.128.18) Time: Fri Jun 23 22:33:27 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Errors: Exception pexpect.ExceptionPexpect: in > ignored ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: You must install the optional Kash package to use Kash from SAGE. Exiting SAGE (CPU time 0m0.02s, Wall time 0m31.93s). '68.203.' ************** SAGE ***************** Host 68.203.184.75 (68.203.184.75) Time: Fri Jun 23 22:05:44 2006 Input: 15000 x .12 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(15000) x .ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '12.226.' ************** SAGE ***************** Host 12.226.54.210 (12.226.54.210) Time: Fri Jun 23 21:14:27 2006 Input: 2*55 Output: _3 = 110 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '24.161.' ************** SAGE ***************** Host 24.161.23.115 (24.161.23.115) Time: Fri Jun 23 16:32:17 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '70.184.' ************** SAGE ***************** Host 70.184.103.103 (70.184.103.103) Time: Fri Jun 23 14:52:40 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.31s). '199.1.4' ************** SAGE ***************** Host 199.1.45.1 (199.1.45.1) Time: Fri Jun 23 14:24:31 2006 Input: 7 4/9 * 10 2/3 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7) ZZ(4)/ZZ(9) * ZZ(10) ZZ(2)/ZZ(3) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). '199.1.4' ************** SAGE ***************** Host 199.1.45.1 (199.1.45.1) Time: Fri Jun 23 14:24:17 2006 Input: 7 4/9 * 10 2/3 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7) ZZ(4)/ZZ(9) * ZZ(10) ZZ(2)/ZZ(3) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '89.138.' ************** SAGE ***************** Host 89.138.17.205 (89.138.17.205) Time: Fri Jun 23 10:05:44 2006 Input: 49^(1/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 601, in integer.Integer.__pow__ File "integer.pyx", line 191, in integer.Integer.__init__ TypeError: Unable to coerce rational (=1/2) to an Integer. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '89.138.' ************** SAGE ***************** Host 89.138.17.205 (89.138.17.205) Time: Fri Jun 23 10:05:05 2006 Input: 7^2 Output: _3 = 49 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '89.138.' ************** SAGE ***************** Host 89.138.17.205 (89.138.17.205) Time: Fri Jun 23 10:04:34 2006 Input: 79-5 Output: _3 = 74 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '192.88.' ************** SAGE ***************** Host 192.88.212.43 (192.88.212.43) Time: Fri Jun 23 08:35:03 2006 Input: (40-4.5)/40 Output: _3 = 0.88749999999999996 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.53s). '213.84.' ************** SAGE ***************** Host 213.84.201.227 (213.84.201.227) Time: Fri Jun 23 03:32:56 2006 Input: cos(tan(-1)) Output: _3 = 0.013388202148675738 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.63s). '213.84.' ************** SAGE ***************** Host 213.84.201.227 (213.84.201.227) Time: Fri Jun 23 03:30:17 2006 Input: 10-x=y x-6=y5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '213.84.' ************** SAGE ***************** Host 213.84.201.227 (213.84.201.227) Time: Fri Jun 23 03:28:39 2006 Input: 10-x+y=0 x-6y=5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator ------------------------------------------------------------ File "", line 1 x-ZZ(6)y=ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '217.91.' ************** SAGE ***************** Host 217.91.17.26 (217.91.17.26) Time: Fri Jun 23 02:39:51 2006 Input: sum(1...5) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='1...5') to real number. Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '70.189.' ************** SAGE ***************** Host 70.189.206.190 (70.189.206.190) Time: Fri Jun 23 02:21:00 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). '140.77.' ************** SAGE ***************** Host 140.77.129.249 (140.77.129.249) Time: Fri Jun 23 02:01:15 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.161 (131.212.148.161) Time: Fri Jun 23 00:02:26 2006 Input: 20^20*(20-1)/(20^20-2)<9 Output: _3 = False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.31s). '131.212' ************** SAGE ***************** Host 131.212.148.161 (131.212.148.161) Time: Fri Jun 23 00:02:04 2006 Input: 20^20*(20-1)/(20^20-2)<2 Output: _3 = False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '131.212' ************** SAGE ***************** Host 131.212.148.161 (131.212.148.161) Time: Thu Jun 22 23:40:47 2006 Input: 20^20*(20-1)/(20^20-2) Output: _3 = 996147200000000000000000000/52428799999999999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.62s). '216.195' ************** SAGE ***************** Host 216.195.247.185 (216.195.247.185) Time: Thu Jun 22 19:38:52 2006 Input: print singular('x=6;x+2;') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/singular.py", line 427, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/singular.py", line 682, in __init__ TypeError: singular input must not contain any semicolons: def sage0=x=6;x+2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.31s). '69.150.' ************** SAGE ***************** Host 69.150.42.165 (69.150.42.165) Time: Thu Jun 22 18:25:55 2006 Input: negative one half plus three fourths Output: Errors: ------------------------------------------------------------ File "", line 1 negative one half plus three fourths ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). '66.58.2' ************** SAGE ***************** Host 66.58.246.172 (66.58.246.172) Time: Thu Jun 22 18:08:04 2006 Input: int(x^2, x=1..2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='1..2') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '64.106.' ************** SAGE ***************** Host 64.106.20.22 (64.106.20.22) Time: Thu Jun 22 15:22:06 2006 Input: gap('Size(SymmetricGroup(7))') Output: _3 = 5040 Exiting SAGE (CPU time 0m0.02s, Wall time 0m2.41s). '64.106.' ************** SAGE ***************** Host 64.106.20.22 (64.106.20.22) Time: Thu Jun 22 15:21:40 2006 Input: gap('SymmetricGroup(7)') Output: _3 = Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m2.49s). '64.106.' ************** SAGE ***************** Host 64.106.20.22 (64.106.20.22) Time: Thu Jun 22 15:21:23 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m22.71s). '64.106.' ************** SAGE ***************** Host 64.106.20.22 (64.106.20.22) Time: Thu Jun 22 15:19:53 2006 Input: 3+2+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '64.106.' ************** SAGE ***************** Host 64.106.20.22 (64.106.20.22) Time: Thu Jun 22 15:19:33 2006 Input: 3+2 Output: _3 = 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.68.2' ************** SAGE ***************** Host 68.68.24.3 (68.68.24.3) Time: Thu Jun 22 15:09:27 2006 Input: 3+4 Output: _3 = 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '80.37.1' ************** SAGE ***************** Host 80.37.103.37 (80.37.103.37) Time: Thu Jun 22 14:59:01 2006 Input: y=x^2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '128.197' ************** SAGE ***************** Host 128.197.54.222 (128.197.54.222) Time: Thu Jun 22 13:54:06 2006 Input: 1+7 Output: _3 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '68.188.' ************** SAGE ***************** Host 68.188.171.120 (68.188.171.120) Time: Thu Jun 22 13:48:41 2006 Input: x^2+4x-12 Output: Errors: ------------------------------------------------------------ File "", line 1 x**ZZ(2)+ZZ(4)x-ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '68.188.' ************** SAGE ***************** Host 68.188.171.120 (68.188.171.120) Time: Thu Jun 22 13:47:43 2006 Input: 5*2353 Output: _3 = 11765 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '214.1.2' ************** SAGE ***************** Host 214.1.24.133 (214.1.24.133) Time: Thu Jun 22 12:59:46 2006 Input: -1x3 Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(1)x3 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '74.133.' ************** SAGE ***************** Host 74.133.105.162 (74.133.105.162) Time: Thu Jun 22 10:38:51 2006 Input: 3 + 4 × 102 + 8 ÷ 2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3) + ZZ(4) × ZZ(102) + ZZ(8) ÷ ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '74.133.' ************** SAGE ***************** Host 74.133.105.162 (74.133.105.162) Time: Thu Jun 22 10:34:52 2006 Input: 3 + 4 × 102 + 8 ÷ 2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3) + ZZ(4) × ZZ(102) + ZZ(8) ÷ ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '152.163' ************** SAGE ***************** Host 152.163.100.68 (152.163.100.68) Time: Thu Jun 22 09:58:51 2006 Input: 39.99 + 28.99 + 159.99 + 39.99 Output: _3 = 268.96000000000004 Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.54s). '66.10.2' ************** SAGE ***************** Host 66.10.26.253 (66.10.26.253) Time: Thu Jun 22 09:38:57 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '136.215' ************** SAGE ***************** Host 136.215.251.179 (136.215.251.179) Time: Thu Jun 22 08:54:30 2006 Input: 3.00*.70 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('3.00')*.ZZ(70) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '130.225' ************** SAGE ***************** Host 130.225.20.14 (130.225.20.14) Time: Thu Jun 22 04:35:29 2006 Input: 69! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(69)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). '216.227' ************** SAGE ***************** Host 216.227.21.163 (216.227.21.163) Time: Thu Jun 22 04:33:57 2006 Input: 7xy - 2xz + 4xz - 12xyz + 2zx Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7)xy - ZZ(2)xz + ZZ(4)xz - ZZ(12)xyz + ZZ(2)zx ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 03:12:45 2006 Input: x = PolynomialRing(QQ).0 y = PolynomialRing(QQ).0 (x-y)+(x^2+y^2) Output: _5 = 2*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 03:12:06 2006 Input: x = PolynomialRing(QQ).0 y = PolynomialRing(QQ).0 (x-y)+(x^2-y^2) Output: _5 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 03:11:32 2006 Input: x = PolynomialRing(QQ).0 y = PolynomialRing(QQ).0 (x-y)/(x^2-y^2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 312, in __div__ File "element.pyx", line 368, in element.RingElement.__div__ File "element.pyx", line 371, in element.RingElement._div_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/fraction_field.py", line 110, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/fraction_field_element.py", line 62, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/fraction_field_element.py", line 72, in reduce File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 1605, in quo_rem File "gen.pyx", line 5595, in gen._pari_trap PariError: division by zero (46) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.27s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:28:29 2006 Input: R = MPolynomialRing(ZZ,8,"x") x=R.gens() (x[0]^12-x[1]^12)/(x[1]^2-x[0]^2) factor(_5) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 1134, in factor TypeError: unable to factor (-1*x1^12 + x0^12)/(x1^2 - x0^2) _5 = (-1*x1^12 + x0^12)/(x1^2 - x0^2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:27:52 2006 Input: R = MPolynomialRing(ZZ,8,"x") x=R.gens() (x[0]^12-x[1]^12)/(x[1]^2-x[0]^2) Output: _5 = (-1*x1^12 + x0^12)/(x1^2 - x0^2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:27:02 2006 Input: R = MPolynomialRing(ZZ,8,"x") x=R.gens() x[0]/(2*x[1]) Output: _5 = x0/2*x1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:26:29 2006 Input: R = MPolynomialRing(QQ,8,"x") x=R.gens() x[0]/x[1] Output: _5 = x0/x1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m27.06s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:25:41 2006 Input: R = MPolynomialRing(QQ,8,"x") x=R.gens() x[0]+x[1] Output: _5 = x1 + x0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:24:15 2006 Input: R = MPolynomialRing(QQ,8,"x") x[0]+x[1] Output: _4 = 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.21s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:23:30 2006 Input: R = MPolynomialRing(QQ,8,"x") x[0]/x[1] Output: _4 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:22:40 2006 Input: R = MPolynomialRing(QQ,8,"x") x0/x1 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'x0' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:22:05 2006 Input: R = MPolynomialRing(QQ,8,x) x0/x1 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_ring.py", line 173, in MPolynomialRing File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_ring.py", line 412, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_ring.py", line 345, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_ring.py", line 194, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_ring.py", line 332, in assign_names File "gens.pyx", line 214, in gens.Generators.assign_names File "gens.pyx", line 193, in gens.Generators.__certify_names TypeError: variable name must be a string but 0 isn't ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'x0' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '193.52.' ************** SAGE ***************** Host 193.52.32.157 (193.52.32.157) Time: Thu Jun 22 02:20:10 2006 Input: a+b Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '198.166' ************** SAGE ***************** Host 198.166.241.223 (198.166.241.223) Time: Thu Jun 22 00:57:30 2006 Input: 2 x 4 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2) x ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:46 2006 Input: x*2-x+3/x-1 Output: _3 = (x^2 - x + 3)/x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.42s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:43 2006 Input: x*2-x+3/x-1 Output: _3 = (x^2 - x + 3)/x Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:33 2006 Input: x*2-x+3/x-1 Output: _3 = (x^2 - x + 3)/x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.67s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:31 2006 Input: x*2-x+3/x-1 Output: _3 = (x^2 - x + 3)/x Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:29 2006 Input: x*2-x+3/x-1 Output: _3 = (x^2 - x + 3)/x Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.24s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:28 2006 Input: x*2-x+3/x-1 Output: _3 = (x^2 - x + 3)/x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.24s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:14 2006 Input: x*2-x+3/x-1 Output: _3 = (x^2 - x + 3)/x Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.63s). '69.29.1' ************** SAGE ***************** Host 69.29.164.53 (69.29.164.53) Time: Wed Jun 21 23:34:11 2006 Input: x*2-x+3/x-10= Output: Errors: ------------------------------------------------------------ File "", line 1 x*ZZ(2)-x+ZZ(3)/x-ZZ(10)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.31s). '81.37.1' ************** SAGE ***************** Host 81.37.140.118 (81.37.140.118) Time: Wed Jun 21 23:31:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.166.' ************** SAGE ***************** Host 24.166.180.192 (24.166.180.192) Time: Wed Jun 21 22:45:11 2006 Input: 4-3 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '24.166.' ************** SAGE ***************** Host 24.166.180.192 (24.166.180.192) Time: Wed Jun 21 22:44:27 2006 Input: 39416667815817636472141330237119256274 Output: _3 = 39416667815817636472141330237119256274 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '72.79.2' ************** SAGE ***************** Host 72.79.2.102 (72.79.2.102) Time: Wed Jun 21 21:05:07 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.35.3' ************** SAGE ***************** Host 65.35.36.14 (65.35.36.14) Time: Wed Jun 21 19:43:09 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.208.' ************** SAGE ***************** Host 24.208.187.72 (24.208.187.72) Time: Wed Jun 21 18:46:47 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m22.29s). '138.88.' ************** SAGE ***************** Host 138.88.166.24 (138.88.166.24) Time: Wed Jun 21 15:13:49 2006 Input: 49 Output: _3 = 49 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '138.88.' ************** SAGE ***************** Host 138.88.166.24 (138.88.166.24) Time: Wed Jun 21 15:13:25 2006 Input: 49 * 8 Output: _3 = 392 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '68.4.33' ************** SAGE ***************** Host 68.4.33.124 (68.4.33.124) Time: Wed Jun 21 14:54:30 2006 Input: $360.94/8 Output: Errors: ------------------------------------------------------------ File "", line 1 $RealField(max(16,RR.precision()))('360.94')/ZZ(8) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '68.4.33' ************** SAGE ***************** Host 68.4.33.124 (68.4.33.124) Time: Wed Jun 21 14:54:29 2006 Input: $360.94/8 Output: Errors: ------------------------------------------------------------ File "", line 1 $RealField(max(16,RR.precision()))('360.94')/ZZ(8) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). '72.227.' ************** SAGE ***************** Host 72.227.145.134 (72.227.145.134) Time: Wed Jun 21 14:07:57 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '131.96.' ************** SAGE ***************** Host 131.96.50.169 (131.96.50.169) Time: Wed Jun 21 12:17:36 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.54.' ************** SAGE ***************** Host 216.54.120.67 (216.54.120.67) Time: Wed Jun 21 08:46:12 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). '69.95.1' ************** SAGE ***************** Host 69.95.103.244 (69.95.103.244) Time: Wed Jun 21 08:30:43 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '141.227' ************** SAGE ***************** Host 141.227.1.1 (141.227.1.1) Time: Wed Jun 21 06:44:24 2006 Input: factor (13) Output: _3 = 13 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.21s). '71.114.' ************** SAGE ***************** Host 71.114.176.40 (71.114.176.40) Time: Wed Jun 21 04:54:25 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Errors: Exception pexpect.ExceptionPexpect: in > ignored ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: You must install the optional Kash package to use Kash from SAGE. Sym( [ 1 .. 7 ] ) log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.12s, Wall time 1m22.21s). '134.157' ************** SAGE ***************** Host 134.157.51.198 (134.157.51.198) Time: Wed Jun 21 04:21:11 2006 Input: factor(x^2+2*x+1) Output: _3 = (x + 1)^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '134.157' ************** SAGE ***************** Host 134.157.51.198 (134.157.51.198) Time: Wed Jun 21 03:38:40 2006 Input: factor(x^3+3*x^2+3*x+1) Output: _3 = (x + 1)^3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '134.157' ************** SAGE ***************** Host 134.157.51.198 (134.157.51.198) Time: Wed Jun 21 03:37:30 2006 Input: factor(x^2+2*x+1) Output: _3 = (x + 1)^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m3.89s). '129.252' ************** SAGE ***************** Host 129.252.12.92 (129.252.12.92) Time: Tue Jun 20 11:07:00 2006 Input: M:=ModularForms(Gamma0(6),16); M; Output: Errors: ------------------------------------------------------------ File "", line 1 M:=ModularForms(Gamma0(ZZ(6)),ZZ(16)); M; ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '129.252' ************** SAGE ***************** Host 129.252.12.92 (129.252.12.92) Time: Tue Jun 20 11:05:52 2006 Input: M:=ModularForms(Gamma0(6),16); Basis(M); Output: Errors: ------------------------------------------------------------ File "", line 1 M:=ModularForms(Gamma0(ZZ(6)),ZZ(16)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Basis' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.13s). '129.252' ************** SAGE ***************** Host 129.252.12.92 (129.252.12.92) Time: Tue Jun 20 11:05:17 2006 Input: M:=ModularForms(Gamma0(6),16): dimension(M); Output: Errors: ------------------------------------------------------------ File "", line 1 M:=ModularForms(Gamma0(ZZ(6)),ZZ(16)): ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'M' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '88.5.21' ************** SAGE ***************** Host 88.5.212.254 (88.5.212.254) Time: Tue Jun 20 10:23:54 2006 Input: 68x=20y+32 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(68)x=ZZ(20)y+ZZ(32) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '80.34.1' ************** SAGE ***************** Host 80.34.149.54 (80.34.149.54) Time: Tue Jun 20 10:23:45 2006 Input: K := GF(3,4); Output: Errors: ------------------------------------------------------------ File "", line 1 K := GF(ZZ(3),ZZ(4)); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '69.229.' ************** SAGE ***************** Host 69.229.132.142 (69.229.132.142) Time: Tue Jun 20 10:11:40 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '198.22.' ************** SAGE ***************** Host 198.22.121.110 (198.22.121.110) Time: Tue Jun 20 07:27:57 2006 Input: WHAT THE WEIGHT OF 38kg Output: Errors: ------------------------------------------------------------ File "", line 1 WHAT THE WEIGHT OF ZZ(38)kg ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '198.22.' ************** SAGE ***************** Host 198.22.121.110 (198.22.121.110) Time: Tue Jun 20 07:27:28 2006 Input: WHAT THE WEIGHT OF 38 KG Output: Errors: ------------------------------------------------------------ File "", line 1 WHAT THE WEIGHT OF ZZ(38) KG ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '198.22.' ************** SAGE ***************** Host 198.22.121.110 (198.22.121.110) Time: Tue Jun 20 07:26:04 2006 Input: 38 g Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(38) g ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '83.131.' ************** SAGE ***************** Host 83.131.109.209 (83.131.109.209) Time: Tue Jun 20 07:22:06 2006 Input: ((100)!)! Output: Errors: ------------------------------------------------------------ File "", line 1 ((ZZ(100))!)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '69.152.' ************** SAGE ***************** Host 69.152.245.209 (69.152.245.209) Time: Tue Jun 20 07:14:44 2006 Input: 1-[(0.9)^10+(0.9)^9+0.45*(0.9)^8] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 491, in integer.Integer.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1 (parent: Integer Ring) and [0.92980917360000026] (parent: ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '69.152.' ************** SAGE ***************** Host 69.152.245.209 (69.152.245.209) Time: Tue Jun 20 07:13:41 2006 Input: 4+2 Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '69.152.' ************** SAGE ***************** Host 69.152.245.209 (69.152.245.209) Time: Tue Jun 20 07:13:24 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '24.18.3' ************** SAGE ***************** Host 24.18.35.144 (24.18.35.144) Time: Tue Jun 20 06:37:03 2006 Input: x+y=10 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:17:04 2006 Input: K=Qp(7) K.prec(5) K(-317) ((-317)**3-3*(-317)-5)%(7**4) Output: _5 = 5 + 3*7 + 6*7^3 + 6*7^4 + O(7^Infinity) _6 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:16:22 2006 Input: K=Qp(7) K.prec(5) K(-317) Output: _5 = 5 + 3*7 + 6*7^3 + 6*7^4 + O(7^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:16:00 2006 Input: K=Qp(7) K.prec(4) K(-317) Output: _5 = 5 + 3*7 + 6*7^3 + O(7^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:13:20 2006 Input: (793^2+27*793+52)%(13**3) K=Qp(13) K.prec(4) K(793) K(-820) Output: _3 = 0 _6 = 9*13 + 4*13^2 + O(13^Infinity) _7 = 12 + 13 + 8*13^2 + 12*13^3 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:12:57 2006 Input: (793^2+27*793+52)%(13**3) K=Qp(13) K.prec(4) K(793) Output: _3 = 0 _6 = 9*13 + 4*13^2 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:12:38 2006 Input: 793^2+27*793+52%(13**3) K=Qp(13) K.prec(4) K(793) Output: _3 = 650312 _6 = 9*13 + 4*13^2 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:12:22 2006 Input: 793^2+27*793+52%(13^3) K=Qp(13) K.prec(4) K(793) Output: _3 = 650312 _6 = 9*13 + 4*13^2 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:12:07 2006 Input: 793^2+27*793+52%13^2 K=Qp(13) K.prec(4) K(793) Output: _3 = 650312 _6 = 9*13 + 4*13^2 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:11:46 2006 Input: 793^2+27*793+52%13^3 K=Qp(13) K.prec(4) K(793) Output: _3 = 650312 _6 = 9*13 + 4*13^2 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:10:09 2006 Input: 793^2+27*793+52%13^3 K=Qp(13) K.prec(4) K(7384) K(-7411) Output: _3 = 650312 _6 = 9*13 + 4*13^2 + 3*13^3 + O(13^Infinity) _7 = 12 + 13 + 8*13^2 + 9*13^3 + O(13^Infinity) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:09:27 2006 Input: 7384^2+27*7384+52%13^3 K=Qp(13) K.prec(4) K(7384) K(-7411) Output: _3 = 54722876 _6 = 9*13 + 4*13^2 + 3*13^3 + O(13^Infinity) _7 = 12 + 13 + 8*13^2 + 9*13^3 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:09:05 2006 Input: 25^2+27*25+52%13^3 K=Qp(13) K.prec(4) K(7384) K(-7411) Output: _3 = 1352 _6 = 9*13 + 4*13^2 + 3*13^3 + O(13^Infinity) _7 = 12 + 13 + 8*13^2 + 9*13^3 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:08:44 2006 Input: 25^2+27*25+52%169 K=Qp(13) K.prec(4) K(7384) K(-7411) Output: _3 = 1352 _6 = 9*13 + 4*13^2 + 3*13^3 + O(13^Infinity) _7 = 12 + 13 + 8*13^2 + 9*13^3 + O(13^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.68.' ************** SAGE ***************** Host 192.68.254.6 (192.68.254.6) Time: Tue Jun 20 03:08:06 2006 Input: sqrt(2)*sqrt(pi)*gamma(5/4)/gamma(3/4) Output: _3 = 1.8540746773013719 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '192.68.' ************** SAGE ***************** Host 192.68.254.6 (192.68.254.6) Time: Tue Jun 20 03:07:47 2006 Input: 2*sqrt(pi)*gamma(5/4)/gamma(3/4) Output: _3 = 2.6220575542921192 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.62s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:07:33 2006 Input: 25^2+27*25+52%169 Output: _3 = 1352 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '192.68.' ************** SAGE ***************** Host 192.68.254.6 (192.68.254.6) Time: Tue Jun 20 03:07:17 2006 Input: gamma(5/4)/gamma(3/4) Output: _3 = 0.73966877979715973 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.72s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 03:03:07 2006 Input: factor(851) Output: _3 = 23 * 37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:54:16 2006 Input: K=Qp(5) K.prec(6) K(17826) K(2201) K(1163) Output: _5 = 1 + 3*5^2 + 2*5^3 + 3*5^4 + O(5^Infinity) _6 = 1 + 3*5^2 + 2*5^3 + 3*5^4 + O(5^Infinity) _7 = 3 + 2*5 + 5^2 + 4*5^3 + 5^4 + O(5^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:50:14 2006 Input: K=Qp(5) K.prec(6) K(17826) K(2201) Output: _5 = 1 + 3*5^2 + 2*5^3 + 3*5^4 + O(5^Infinity) _6 = 1 + 3*5^2 + 2*5^3 + 3*5^4 + O(5^Infinity) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:49:57 2006 Input: K=Qp(5) K.prec(6) K(17826) Output: _5 = 1 + 3*5^2 + 2*5^3 + 3*5^4 + O(5^Infinity) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:49:01 2006 Input: K=Qp(5) K.prec(6) K(2201) Output: _5 = 1 + 3*5^2 + 2*5^3 + 3*5^4 + O(5^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:12:43 2006 Input: K=Qp(3) K.prec(4) K(1+7+7^2+7^3) Output: _5 = 1 + 3 + 2*3^2 + 2*3^3 + O(3^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:12:25 2006 Input: K=Qp(3) K.prec(4) K(1+a*7+b*7^2+c*7^3) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:11:36 2006 Input: K=Qp(3) K.prec(4) K(7) Output: _5 = 1 + 2*3 + O(3^Infinity) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:11:21 2006 Input: K=Qp(3) K.prec(4) K(7^(1/2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 601, in integer.Integer.__pow__ File "integer.pyx", line 191, in integer.Integer.__init__ TypeError: Unable to coerce rational (=1/2) to an Integer. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:08:53 2006 Input: K=Qp(3) K.prec(4) sqrt(K(7)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 795, in sqrt File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/complex_field.py", line 145, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/complex_number.py", line 76, in __init__ TypeError: unable to coerce (1 + 2*3 + O(3^Infinity),0) to a ComplexNumber Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:04:16 2006 Input: factor(5003) Output: _3 = 5003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.62s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 02:02:59 2006 Input: K=Qp(5) K.prec(4) K(1/2) K(7/4) Output: _5 = 3 + 2*5 + 2*5^2 + 2*5^3 + O(5^4) _6 = 3 + 5 + 5^2 + 5^3 + O(5^4) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 01:57:14 2006 Input: K=Qp(5) K.prec(3) K(1/2) K(7/4) Output: _5 = 3 + 2*5 + 2*5^2 + O(5^3) _6 = 3 + 5 + 5^2 + O(5^3) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 01:56:43 2006 Input: K=Qp(5) a=K(1/2) a Output: _5 = 3 + 2*5 + 2*5^2 + 2*5^3 + 2*5^4 + 2*5^5 + 2*5^6 + 2*5^7 + 2*5^8 + 2*5^9 + 2*5^10 + 2*5^11 + 2*5^12 + 2*5^13 + 2*5^14 + 2*5^15 + 2*5^16 + 2*5^17 + 2*5^18 + 2*5^19 + O(5^20) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.62s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 01:56:19 2006 Input: K=Qp(5) a=1/2 a Output: _5 = 1/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 01:56:03 2006 Input: K=Qp(5) a=1/2 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Tue Jun 20 01:54:59 2006 Input: solve(2*x-1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'solve' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:18:39 2006 Input: print maxima(eq1: x^2-1=0); Output: Errors: ------------------------------------------------------------ File "", line 1 print maxima(eq1: x**ZZ(2)-ZZ(1)=ZZ(0)); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:18:27 2006 Input: print maxima(eq1:= x^2-1=0); Output: Errors: ------------------------------------------------------------ File "", line 1 print maxima(eq1:= x**ZZ(2)-ZZ(1)=ZZ(0)); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:18:06 2006 Input: print maxima(x^2-1=0); Output: Errors: ------------------------------------------------------------ SyntaxError: keyword can't be an expression Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:17:48 2006 Input: print maxima(x^2-1==0); Output: False Exiting SAGE (CPU time 0m0.06s, Wall time 0m22.10s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:16:34 2006 Input: eq1= maxima(a*x^2-1==0); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:16:13 2006 Input: maxima (a*x^2-1==0); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:16:02 2006 Input: maxima (a*x^2-1==0); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:09:31 2006 Input: a*x^2-1==0 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:09:16 2006 Input: a*x^2-1=0 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:09:02 2006 Input: eq1:= a*x^2-1=0 Output: Errors: ------------------------------------------------------------ File "", line 1 eq1:= a*x**ZZ(2)-ZZ(1)=ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:08:47 2006 Input: eq1: a*x^2-1=0 Output: Errors: ------------------------------------------------------------ File "", line 1 eq1: a*x**ZZ(2)-ZZ(1)=ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:08:28 2006 Input: y(x):=a*x^2-1 Output: Errors: ------------------------------------------------------------ File "", line 1 y(x):=a*x**ZZ(2)-ZZ(1) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:08:18 2006 Input: y(x)=a*x^2-1 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.11.' ************** SAGE ***************** Host 192.11.185.113 (192.11.185.113) Time: Tue Jun 20 01:08:04 2006 Input: y(x)=a*x^2-1 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '71.227.' ************** SAGE ***************** Host 71.227.164.110 (71.227.164.110) Time: Mon Jun 19 22:58:57 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.177.' ************** SAGE ***************** Host 24.177.151.161 (24.177.151.161) Time: Mon Jun 19 20:46:16 2006 Input: 25% of 595 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(25)% of ZZ(595) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '68.46.1' ************** SAGE ***************** Host 68.46.151.89 (68.46.151.89) Time: Mon Jun 19 19:53:53 2006 Input: 1/2 / 1_1/1 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1)/ZZ(2) / ZZ(1)_1/ZZ(1) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '24.189.' ************** SAGE ***************** Host 24.189.110.121 (24.189.110.121) Time: Mon Jun 19 18:52:42 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '71.112.' ************** SAGE ***************** Host 71.112.68.127 (71.112.68.127) Time: Mon Jun 19 16:20:10 2006 Input: 175000 x 1.0675 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(175000) x RealField(max(16,RR.precision()))('1.0675') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.14s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:31:32 2006 Input: factor(7429) gcd(7429,87*88-210) gcd(7429,87*88+210) Output: _3 = 17 * 19 * 23 _4 = 17 _5 = 437 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.16s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:31:15 2006 Input: factor(7429) gcd(7429,87*88-210) gcd(7429,87*88-210) Output: _3 = 17 * 19 * 23 _4 = 17 _5 = 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:27:17 2006 Input: [factor(i^2-7429) for i in range(87,100)] factor(7429) 87**2 Output: _3 = [2^2 * 5 * 7, 3^2 * 5 * 7, 2^2 * 3 * 41, 11 * 61, 2^2 * 3 * 71, 3^2 * 5 * 23, 2^2 * 5 * 61, 3 * 7 * 67, 2^2 * 3 * 7 * 19, 1787, 2^2 * 3^2 * 5 * 11, 3 * 5^2 * 29, 2^2 * 593] _4 = 17 * 19 * 23 _5 = 7569 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.16s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:26:42 2006 Input: [factor(i^2-7429) for i in range(87,100)] factor(7429) Output: _3 = [2^2 * 5 * 7, 3^2 * 5 * 7, 2^2 * 3 * 41, 11 * 61, 2^2 * 3 * 71, 3^2 * 5 * 23, 2^2 * 5 * 61, 3 * 7 * 67, 2^2 * 3 * 7 * 19, 1787, 2^2 * 3^2 * 5 * 11, 3 * 5^2 * 29, 2^2 * 593] _4 = 17 * 19 * 23 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.17s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:26:11 2006 Input: factor(87^2-7429) factor(7429) Output: _3 = 2^2 * 5 * 7 _4 = 17 * 19 * 23 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:25:45 2006 Input: sqrt(7429) factor(7429) Output: _3 = 86.191646927065960 _4 = 17 * 19 * 23 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:23:15 2006 Input: gcd(13199,132+65) gcd(13199,132-65) factor(13199) Output: _3 = 197 _4 = 67 _5 = 67 * 197 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:22:49 2006 Input: gcd(13199,132+65) Output: _3 = 197 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:20:28 2006 Input: [factor(i^2-13199) for i in range(124,135)] factor(132^2-13199) Output: _3 = [7 * 311, 2 * 1213, 2677, 2 * 5 * 293, 5 * 7^2 * 13, 2 * 1721, 3701, 2 * 7 * 283, 5^2 * 13^2, 2 * 5 * 449, 67 * 71] _4 = 5^2 * 13^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.15s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:20:00 2006 Input: [factor(i^2-13199) for i in range(124,135)] Output: _3 = [7 * 311, 2 * 1213, 2677, 2 * 5 * 293, 5 * 7^2 * 13, 2 * 1721, 3701, 2 * 7 * 283, 5^2 * 13^2, 2 * 5 * 449, 67 * 71] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.15s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:19:25 2006 Input: [factor(i^2-13199) for i in range(115,125)] Output: _3 = [2 * 13, 257, 2 * 5 * 7^2, 5^2 * 29, 2 * 13 * 37, 1201, 2 * 7 * 103, 5 * 337, 2 * 5 * 193, 7 * 311] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.15s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:16:11 2006 Input: factor(115^2-13199) factor(116^2-13199) factor(117^2-13199) factor(118^2-13199) factor(119^2-13199) Output: _3 = 2 * 13 _4 = 257 _5 = 2 * 5 * 7^2 _6 = 5^2 * 29 _7 = 2 * 13 * 37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:15:24 2006 Input: factor(115^2-13199) Output: _3 = 2 * 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:14:15 2006 Input: sqrt(13199) sqrt(1649) Output: _3 = 114.88690090693542 _4 = 40.607881008493905 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:13:52 2006 Input: sqrt(13199) Output: _3 = 114.88690090693542 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.16s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:11:25 2006 Input: factor(23205) Output: _3 = 3 * 5 * 7 * 13 * 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '207.119' ************** SAGE ***************** Host 207.119.201.252 (207.119.201.252) Time: Mon Jun 19 15:09:52 2006 Input: 7+2 Output: _3 = 9 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:09:47 2006 Input: gcd(7729,88*92+105) gcd(7729,88*92-105) 88*92 Output: _3 = 59 _4 = 131 _5 = 8096 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:09:15 2006 Input: gcd(7729,88*92+105) gcd(7729,88*92-105) Output: _3 = 59 _4 = 131 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:08:54 2006 Input: gcd(7729,88*92+105) Output: _3 = 59 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:07:58 2006 Input: gcd(7729,89*92+105) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:07:43 2006 Input: gcd(7729,89*92-105) Output: _3 = 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.15s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:05:27 2006 Input: gcd(7729,89*92-105) Output: _3 = 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:05:13 2006 Input: gcd(7729,89*92+105) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.16s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:04:54 2006 Input: gcd(7729,89*92-105) Output: _3 = 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.15s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:04:37 2006 Input: gcd(7729,89*92+105) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 15:04:30 2006 Input: 5/6 in QQ Output: _3 = True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.15s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 15:04:00 2006 Input: I in QQ Output: _3 = False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.14s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:03:25 2006 Input: gcd(7729,89*92+95) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.15s). '84.169.' ************** SAGE ***************** Host 84.169.118.224 (84.169.118.224) Time: Mon Jun 19 15:03:09 2006 Input: gcd(7729,89*92-95) Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 19 15:01:51 2006 Input: next_prime(2000666589654) Output: _3 = 2000666589707 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.14s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 19 15:01:07 2006 Input: sage: factor(200000666) Output: _3 = 2 * 79 * 1265827 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.15s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 19 15:00:43 2006 Input: factor(200000666) Output: _3 = 2 * 79 * 1265827 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.145 (128.95.47.145) Time: Mon Jun 19 14:59:30 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m13.59s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 19 14:59:25 2006 Input: sage: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 19 14:59:03 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:58:15 2006 Input: A = MatrixSpace(QQ, 5)(range(25)); A Output: _3 = [ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14] [15 16 17 18 19] [20 21 22 23 24] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.145 (128.95.47.145) Time: Mon Jun 19 14:57:52 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m3.42s). '128.95.' ************** SAGE ***************** Host 128.95.47.145 (128.95.47.145) Time: Mon Jun 19 14:57:50 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m2.37s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:57:50 2006 Input: A = MatrixSpace(QQ, 5)(range(16)); A Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3801, in __init__ TypeError: entries has wrong length Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:57:29 2006 Input: A = MatrixSpace(QQ, 4)(range(16)); A Output: _3 = [ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.57s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:57:10 2006 Input: A = MatrixSpace(QQ, 4)(range(16__; A Output: Errors: ------------------------------------------------------------ File "", line 1 A = MatrixSpace(QQ, ZZ(4))(range(ZZ(16)__; A ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:54:47 2006 Input: factor(84) Output: _3 = 2^2 * 3 * 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.105.47 (84.169.105.47) Time: Mon Jun 19 14:53:04 2006 Input: factor(88**2-7729) factor(89**2-7729) factor(90**2-7729) factor(91**2-7729) factor(92**2-7729) Output: _3 = 3 * 5 _4 = 2^6 * 3 _5 = 7 * 53 _6 = 2^3 * 3 * 23 _7 = 3 * 5 * 7^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.105.47 (84.169.105.47) Time: Mon Jun 19 14:52:43 2006 Input: factor(88**2-7729) factor(89**2-7729) factor(90**2-7729) factor(91**2-7729) factor(92**2-7729) factor(93**2-7729) factor(94**2-7729) factor(95**2-7729) Output: _3 = 3 * 5 _4 = 2^6 * 3 _5 = 7 * 53 _6 = 2^3 * 3 * 23 _7 = 3 * 5 * 7^2 _8 = 2^3 * 5 * 23 _9 = 3^3 * 41 _10 = 2^4 * 3^4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 19 14:51:58 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.00s, Wall time 0m1.83s). '84.169.' ************** SAGE ***************** Host 84.169.105.47 (84.169.105.47) Time: Mon Jun 19 14:51:38 2006 Input: factor(88**2-7729) Output: _3 = 3 * 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). '84.169.' ************** SAGE ***************** Host 84.169.105.47 (84.169.105.47) Time: Mon Jun 19 14:50:55 2006 Input: 88**2 Output: _3 = 7744 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.127 (128.95.47.127) Time: Mon Jun 19 14:50:54 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.97s). '84.169.' ************** SAGE ***************** Host 84.169.105.47 (84.169.105.47) Time: Mon Jun 19 14:50:44 2006 Input: 87**2 Output: _3 = 7569 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.105.47 (84.169.105.47) Time: Mon Jun 19 14:50:29 2006 Input: maxima("sqrt(7729)") Output: _3 = sqrt(7729) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.37s). '155.212' ************** SAGE ***************** Host 155.212.98.171 (155.212.98.171) Time: Mon Jun 19 14:49:38 2006 Input: log2(75) Output: _3 = log2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.105.47 (84.169.105.47) Time: Mon Jun 19 14:45:44 2006 Input: maxima("cf(sqrt(7729))") Output: _3 = [87,1,10,1,2,1,2,21,1,1,1,1,2,5,3,2,10,1,1,3,1,6,1,6,2,5,34,1,57,1,1,1,3,4,8,7,4,1,7,1,1,3,4,1,2,1,5,1,3,2,3,2,6,1,1,2,11,3,19,4,1,2,2,1,24,2,2,2,24,1,2,2,1,4,19,3,11,2,1,1,6,2,3,2,3,1,5,1,2,1,4,3,1,1,7,1,4,7,8,4,3,1,1,1,57,1,34,5,2,6,1,6,1,3,1,1,10,2,3,5,2,1,1,1,1,21,2,1,2,1,10,1,174] Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.29s). '128.208' ************** SAGE ***************** Host 128.208.128.137 (128.208.128.137) Time: Mon Jun 19 14:45:06 2006 Input: sin(pi) Output: _3 = 0.00000000000000012246467991473532 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.208' ************** SAGE ***************** Host 128.208.128.137 (128.208.128.137) Time: Mon Jun 19 14:44:58 2006 Input: sin(3.14159) Output: _3 = 0.0000026535897933527300 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:44:55 2006 Input: 2 * 3 Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:44:42 2006 Input: 2 * 2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '128.208' ************** SAGE ***************** Host 128.208.128.137 (128.208.128.137) Time: Mon Jun 19 14:44:32 2006 Input: sin(3.14) Output: _3 = 0.0015926529164868282 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '128.95.' ************** SAGE ***************** Host 128.95.47.125 (128.95.47.125) Time: Mon Jun 19 14:44:27 2006 Input: 2 + 2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.208' ************** SAGE ***************** Host 128.208.128.137 (128.208.128.137) Time: Mon Jun 19 14:44:21 2006 Input: Sin(3.14) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sin' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.124 (128.95.47.124) Time: Mon Jun 19 14:43:43 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.123 (128.95.47.123) Time: Mon Jun 19 14:43:02 2006 Input: 2+4 Output: _3 = 6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.47.123 (128.95.47.123) Time: Mon Jun 19 14:43:02 2006 Input: 2+4 Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.96.99 (84.169.96.99) Time: Mon Jun 19 14:08:28 2006 Input: 6**2%7 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 14:01:25 2006 Input: 11**10%31 Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 14:01:18 2006 Input: 11**15%31 Output: _3 = 30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 14:00:43 2006 Input: 5**15%31 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 14:00:33 2006 Input: 3**6%31 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 14:00:25 2006 Input: 3**10%31 Output: _3 = 25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 14:00:15 2006 Input: 3**15%31 Output: _3 = 30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 14:00:06 2006 Input: 3**30%31 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:59:48 2006 Input: 3**6%31 Output: _3 = 16 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:59:24 2006 Input: 3**10%31 Output: _3 = 25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:59:15 2006 Input: 3**15%31 Output: _3 = 30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:58:38 2006 Input: 19**14%29 Output: _3 = 28 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:58:29 2006 Input: 17**14%29 Output: _3 = 28 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:58:20 2006 Input: 15**14%29 Output: _3 = 28 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:57:47 2006 Input: 13**14%29 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:57:40 2006 Input: 13*1*4%29 Output: _3 = 23 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:57:33 2006 Input: 13*14%29 Output: _3 = 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:57:23 2006 Input: 11**14%29 Output: _3 = 28 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:56:18 2006 Input: 2**14%29 Output: _3 = 28 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:55:47 2006 Input: 15**11%23 Output: _3 = 22 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:55:17 2006 Input: 13**11%23 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:55:09 2006 Input: 11**11%23 Output: _3 = 22 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:55:02 2006 Input: 7**11%23 Output: _3 = 22 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:54:51 2006 Input: 7*11%23 Output: _3 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:54:38 2006 Input: 5**11%23 Output: _3 = 22 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:53:47 2006 Input: 13**9%19 Output: _3 = 18 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:53:03 2006 Input: 5**9%19 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:52:56 2006 Input: 4**9%19 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:52:45 2006 Input: 3**9%19 Output: _3 = 18 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:52:35 2006 Input: 2**9%19 Output: _3 = 18 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:52:19 2006 Input: 14**8%17 Output: _3 = 16 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:51:38 2006 Input: 13**8%17 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:51:29 2006 Input: 11**8%17 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:51:21 2006 Input: 7**8%17 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:51:14 2006 Input: 5**8%17 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:51:06 2006 Input: 3**8%17 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:50:59 2006 Input: 3**16%17 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:50:06 2006 Input: 9**5%11 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:49:59 2006 Input: 9**2%11 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:49:40 2006 Input: 7**2%11 Output: _3 = 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:49:21 2006 Input: 7**5%11 Output: _3 = 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:48:43 2006 Input: 3**5%11 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:48:38 2006 Input: 3**5%11 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:48:27 2006 Input: 2**5%11 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:48:20 2006 Input: 2**10%11 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:48:12 2006 Input: 2^^10%11 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)****ZZ(10)%ZZ(11) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:46:01 2006 Input: 2**10%31 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:45:54 2006 Input: 2**6%31 Output: _3 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:45:37 2006 Input: 13**6%31 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:45:23 2006 Input: 13**15%31 Output: _3 = 30 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.95.144 (84.169.95.144) Time: Mon Jun 19 13:45:04 2006 Input: 13**10%31 Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '86.132.' ************** SAGE ***************** Host 86.132.242.249 (86.132.242.249) Time: Mon Jun 19 13:11:11 2006 Input: 17 x 50 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(17) x ZZ(50) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:37:55 2006 Input: gcd(3080,7965) Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:37:48 2006 Input: gcdext(3080,7965) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'gcdext' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:37:42 2006 Input: gcd_ext(3080,7965) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'gcd_ext' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:37:29 2006 Input: gcd(3080,7965) Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:37:22 2006 Input: extgcd(3080,7965) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'extgcd' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:37:16 2006 Input: ext_gcd(3080,7965) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ext_gcd' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:33:49 2006 Input: (-2+7*sqrt(-1))/(1+sqrt(-1)) Output: _3 = 2.5000000000000000 + 4.5000000000000000*I Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:33:43 2006 Input: (-2+7*sqrt(-1))//(1+sqrt(-1)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: unsupported operand type(s) for //: 'ComplexNumber' and 'ComplexNumber' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.29s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:33:27 2006 Input: (-2+7*j)//(1+j) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'j' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:33:21 2006 Input: (-2+7*j)/(1+j) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'j' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:33:11 2006 Input: (-2+7j)/(1+j) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2)+ZZ(7)j)/(ZZ(1)+j) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.147 (84.169.97.147) Time: Mon Jun 19 12:33:01 2006 Input: (-2+7i)/(1+i) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2)+ZZ(7)i)/(ZZ(1)+i) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.79.1' ************** SAGE ***************** Host 69.79.147.115 (69.79.147.115) Time: Mon Jun 19 12:21:26 2006 Input: 2=2 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '165.161' ************** SAGE ***************** Host 165.161.3.13 (165.161.3.13) Time: Mon Jun 19 10:15:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.191.' ************** SAGE ***************** Host 84.191.232.188 (84.191.232.188) Time: Mon Jun 19 10:13:34 2006 Input: 3x²-6x-4 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x²-ZZ(6)x-ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.191.' ************** SAGE ***************** Host 84.191.232.188 (84.191.232.188) Time: Mon Jun 19 10:13:02 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '207.255' ************** SAGE ***************** Host 207.255.188.127 (207.255.188.127) Time: Mon Jun 19 08:52:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '137.205' ************** SAGE ***************** Host 137.205.164.247 (137.205.164.247) Time: Mon Jun 19 08:46:27 2006 Input: y = x^2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '137.205' ************** SAGE ***************** Host 137.205.164.247 (137.205.164.247) Time: Mon Jun 19 08:46:07 2006 Input: y = x^2; x=5; y Output: _5 = x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '137.205' ************** SAGE ***************** Host 137.205.164.247 (137.205.164.247) Time: Mon Jun 19 08:45:11 2006 Input: 2 ^ 3 Output: _3 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '137.205' ************** SAGE ***************** Host 137.205.164.247 (137.205.164.247) Time: Mon Jun 19 08:45:05 2006 Input: 2 ^ 2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '137.205' ************** SAGE ***************** Host 137.205.164.247 (137.205.164.247) Time: Mon Jun 19 08:44:52 2006 Input: sage: 2 + 2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '137.205' ************** SAGE ***************** Host 137.205.164.247 (137.205.164.247) Time: Mon Jun 19 08:43:59 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.205.' ************** SAGE ***************** Host 69.205.174.78 (69.205.174.78) Time: Mon Jun 19 08:42:15 2006 Input: 1100-824 Output: _3 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '204.10.' ************** SAGE ***************** Host 204.10.221.252 (204.10.221.252) Time: Mon Jun 19 08:39:24 2006 Input: 3n – 20 = 8n Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)n – ZZ(20) = ZZ(8)n ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '137.205' ************** SAGE ***************** Host 137.205.164.247 (137.205.164.247) Time: Mon Jun 19 08:34:36 2006 Input: y=x x=2 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '145.93.' ************** SAGE ***************** Host 145.93.63.12 (145.93.63.12) Time: Mon Jun 19 07:34:15 2006 Input: e^2+e^-2; Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '145.93.' ************** SAGE ***************** Host 145.93.63.12 (145.93.63.12) Time: Mon Jun 19 07:33:31 2006 Input: e^c+e^-c; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'c' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.162.' ************** SAGE ***************** Host 71.162.177.107 (71.162.177.107) Time: Mon Jun 19 07:18:59 2006 Input: Mod(5,7)*Mod(2,7) Output: _3 = 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.23s). '201.50.' ************** SAGE ***************** Host 201.50.244.114 (201.50.244.114) Time: Mon Jun 19 06:22:04 2006 Input: FindGroupOrder2 := function (p, s) K := GF(p); v := K ! (4*s); u := K ! (s^2-5); x := u^3; b := 4*x*v; a := (v-u)^3*(3*u+v); A := a/b-2; x := x/v^3; b := x^3 + A*x^2 + x; E := EllipticCurve([0,b*A,0,b^2,0]); return FactoredOrder(E); end function; p := 140853945410621700611366248656986006762214430713643; s := 941728572; FindGroupOrder2(p, s); Output: Errors: ------------------------------------------------------------ File "", line 1 FindGroupOrder2 := function (p, s) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 K := GF(p); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 v := K ! (ZZ(4)*s); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 u := K ! (s**ZZ(2)-ZZ(5)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 x := u**ZZ(3); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 b := ZZ(4)*x*v; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 a := (v-u)**ZZ(3)*(ZZ(3)*u+v); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 A := a/b-ZZ(2); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 x := x/v**ZZ(3); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 b := x**ZZ(3) + A*x**ZZ(2) + x; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 E := EllipticCurve([ZZ(0),b*A,ZZ(0),b**ZZ(2),ZZ(0)]); ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ File "", line 1 end function; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print := ZZ(140853945410621700611366248656986006762214430713643); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 s := ZZ(941728572); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'FindGroupOrder2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '201.50.' ************** SAGE ***************** Host 201.50.244.114 (201.50.244.114) Time: Mon Jun 19 06:21:54 2006 Input: FindGroupOrder2 = function (p, s) K := GF(p); v := K ! (4*s); u := K ! (s^2-5); x := u^3; b := 4*x*v; a := (v-u)^3*(3*u+v); A := a/b-2; x := x/v^3; b := x^3 + A*x^2 + x; E := EllipticCurve([0,b*A,0,b^2,0]); return FactoredOrder(E); end function; p := 140853945410621700611366248656986006762214430713643; s := 941728572; FindGroupOrder2(p, s); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'function' is not defined ------------------------------------------------------------ File "", line 1 K := GF(p); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 v := K ! (ZZ(4)*s); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 u := K ! (s**ZZ(2)-ZZ(5)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 x := u**ZZ(3); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 b := ZZ(4)*x*v; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 a := (v-u)**ZZ(3)*(ZZ(3)*u+v); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 A := a/b-ZZ(2); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 x := x/v**ZZ(3); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 b := x**ZZ(3) + A*x**ZZ(2) + x; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 E := EllipticCurve([ZZ(0),b*A,ZZ(0),b**ZZ(2),ZZ(0)]); ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ File "", line 1 end function; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print := ZZ(140853945410621700611366248656986006762214430713643); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 s := ZZ(941728572); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'FindGroupOrder2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '201.50.' ************** SAGE ***************** Host 201.50.244.114 (201.50.244.114) Time: Mon Jun 19 06:21:04 2006 Input: FindGroupOrder2 := function (p, s) K := GF(p); v := K ! (4*s); u := K ! (s^2-5); x := u^3; b := 4*x*v; a := (v-u)^3*(3*u+v); A := a/b-2; x := x/v^3; b := x^3 + A*x^2 + x; E := EllipticCurve([0,b*A,0,b^2,0]); return FactoredOrder(E); end function; p := 140853945410621700611366248656986006762214430713643; s := 941728572; FindGroupOrder2(p, s); Output: Errors: ------------------------------------------------------------ File "", line 1 FindGroupOrder2 := function (p, s) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 K := GF(p); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 v := K ! (ZZ(4)*s); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 u := K ! (s**ZZ(2)-ZZ(5)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 x := u**ZZ(3); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 b := ZZ(4)*x*v; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 a := (v-u)**ZZ(3)*(ZZ(3)*u+v); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 A := a/b-ZZ(2); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 x := x/v**ZZ(3); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 b := x**ZZ(3) + A*x**ZZ(2) + x; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 E := EllipticCurve([ZZ(0),b*A,ZZ(0),b**ZZ(2),ZZ(0)]); ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ File "", line 1 end function; ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print := ZZ(140853945410621700611366248656986006762214430713643); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 s := ZZ(941728572); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'FindGroupOrder2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '68.213.' ************** SAGE ***************** Host 68.213.55.72 (68.213.55.72) Time: Mon Jun 19 05:18:58 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.213.' ************** SAGE ***************** Host 68.213.55.72 (68.213.55.72) Time: Mon Jun 19 05:18:53 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '152.163' ************** SAGE ***************** Host 152.163.100.68 (152.163.100.68) Time: Mon Jun 19 05:12:27 2006 Input: The sum of 3 consecutive odd numbers is 39. Output: Errors: ------------------------------------------------------------ File "", line 1 The sum of ZZ(3) consecutive odd numbers is RealField(max(6,RR.precision()))('39.') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:27:50 2006 Input: 5**36%73 Output: _3 = 72 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:27:43 2006 Input: 5**18%73 Output: _3 = 27 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:27:37 2006 Input: 3**18%73 Output: _3 = 72 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:27:32 2006 Input: 3**9%73 Output: _3 = 46 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:27:27 2006 Input: 3**36%73 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:27:14 2006 Input: 3*36%73 Output: _3 = 35 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:27:07 2006 Input: 5*36%73 Output: _3 = 34 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:26:59 2006 Input: 13*36%73 Output: _3 = 30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:26:52 2006 Input: 13*18%73 Output: _3 = 15 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:26:47 2006 Input: 13*9%73 Output: _3 = 44 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:26:33 2006 Input: 11*36%73 Output: _3 = 31 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:26:25 2006 Input: 11*18%73 Output: _3 = 52 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:26:19 2006 Input: 11*9%73 Output: _3 = 26 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:26:06 2006 Input: 5*72%73 Output: _3 = 68 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:25:59 2006 Input: 5*36%73 Output: _3 = 34 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:25:51 2006 Input: 5**9%73 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:25:46 2006 Input: 5**18%73 Output: _3 = 27 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:25:12 2006 Input: 3**18%73 Output: _3 = 72 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:25:06 2006 Input: 3**9%73 Output: _3 = 46 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:24:49 2006 Input: 2**9%73 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:21:11 2006 Input: 1/4**3 Output: _3 = 1/64 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:13:30 2006 Input: 5**36%73 7**36%73 11**36%73 11**45%91 Output: _3 = 72 _4 = 72 _5 = 72 _6 = 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:12:34 2006 Input: 5**36%73 7**36%73 11**36%73 Output: _3 = 72 _4 = 72 _5 = 72 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:12:02 2006 Input: 5**36%71 7**36%71 11**36%71 Output: _3 = 5 _4 = 64 _5 = 60 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:11:09 2006 Input: 11**45%91 Output: _3 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:11:02 2006 Input: 11**90%91 Output: _3 = 64 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 02:10:45 2006 Input: 11**45%91 Output: _3 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 01:38:56 2006 Input: legendre(5,71) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'legendre' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Mon Jun 19 01:37:43 2006 Input: 5**36%73 Output: _3 = 72 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '205.234' ************** SAGE ***************** Host 205.234.55.163 (205.234.55.163) Time: Sun Jun 18 21:07:33 2006 Input: what the fuck Output: Errors: ------------------------------------------------------------ File "", line 1 what the fuck ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.156.' ************** SAGE ***************** Host 71.156.56.47 (71.156.56.47) Time: Sun Jun 18 20:56:41 2006 Input: 4+6*-1*4 Output: _3 = -20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '207.38.' ************** SAGE ***************** Host 207.38.206.17 (207.38.206.17) Time: Sun Jun 18 20:40:38 2006 Input: 62*3 Output: _3 = 186 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.241.' ************** SAGE ***************** Host 70.241.126.22 (70.241.126.22) Time: Sun Jun 18 19:55:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.168.' ************** SAGE ***************** Host 24.168.59.99 (24.168.59.99) Time: Sun Jun 18 18:04:39 2006 Input: 1/2 - 4/15 Output: _3 = 7/30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '24.168.' ************** SAGE ***************** Host 24.168.59.99 (24.168.59.99) Time: Sun Jun 18 18:04:12 2006 Input: 4 1/3 / 2 2/3= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4) ZZ(1)/ZZ(3) / ZZ(2) ZZ(2)/ZZ(3)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '64.109.' ************** SAGE ***************** Host 64.109.253.68 (64.109.253.68) Time: Sun Jun 18 17:57:01 2006 Input: 500*26 Output: _3 = 13000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.109.' ************** SAGE ***************** Host 64.109.253.68 (64.109.253.68) Time: Sun Jun 18 17:56:30 2006 Input: 51+2 Output: _3 = 53 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.110.' ************** SAGE ***************** Host 69.110.1.49 (69.110.1.49) Time: Sun Jun 18 15:59:13 2006 Input: .01x10,000,000,000 Output: Errors: ------------------------------------------------------------ File "", line 1 .ZZ(01)x10,ZZ(000),ZZ(000),ZZ(000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.72.1' ************** SAGE ***************** Host 71.72.114.198 (71.72.114.198) Time: Sun Jun 18 15:31:05 2006 Input: x-y=4 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.72.1' ************** SAGE ***************** Host 71.72.114.198 (71.72.114.198) Time: Sun Jun 18 15:31:02 2006 Input: x-y=4 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '83.146.' ************** SAGE ***************** Host 83.146.13.69 (83.146.13.69) Time: Sun Jun 18 13:51:11 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:38:53 2006 Input: 3**128%257 Output: _3 = 256 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:37:09 2006 Input: 7**14%71 Output: _3 = 54 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:36:48 2006 Input: 7**35%71 Output: _3 = 70 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Sun Jun 18 13:36:35 2006 Input: print maxima ('e^sqrt((2-x)/(2+x))/(2+x)/sqrt(4-x*x)').integral('x',0,2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1177, in integral File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 538, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 483, in function_call File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 391, in new File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Error executing code in Maxima CODE: sage4 : integrate(sage0,sage1,sage2,sage3); Maxima ERROR: Quotient by a polynomial of higher degree -- an error. Quitting. To debug this try debugmode(true); (%o24) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.49s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:36:18 2006 Input: 7**10%71 Output: _3 = 45 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:36:10 2006 Input: 7**14%71 Output: _3 = 54 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:36:03 2006 Input: 7**35%71 Output: _3 = 70 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:35:56 2006 Input: 5**35%71 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:35:48 2006 Input: 3**35%71 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:35:40 2006 Input: 2**35%71 Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:35:34 2006 Input: 2**14%71 Output: _3 = 54 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:35:27 2006 Input: 2**10%71 Output: _3 = 30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:35:20 2006 Input: 2**70%71 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Sun Jun 18 13:34:31 2006 Input: print maxima (' integrate (e^sqrt((2-x)/(2+x))/(2+x)/sqrt(4-x*x),x,0,2)' ) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Error executing code in Maxima CODE: sage0 : integrate (e^sqrt((2-x)/(2+x))/(2+x)/sqrt(4-x*x),x,0,2); Maxima ERROR: Quotient by a polynomial of higher degree -- an error. Quitting. To debug this try debugmode(true); (%o12) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.43s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Sun Jun 18 13:34:08 2006 Input: print maxima ( integrate (e^sqrt((2-x)/(2+x))/(2+x)/sqrt(4-x*x),x,0,2) ) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Sun Jun 18 13:33:54 2006 Input: print maxima ( integrate (e^sqrt((2-x)/(2+x))/(2+x)/sqrt(4-x*x),x,0,2); ) Output: Errors: ------------------------------------------------------------ File "", line 1 print maxima ( integrate (e**sqrt((ZZ(2)-x)/(ZZ(2)+x))/(ZZ(2)+x)/sqrt(ZZ(4)-x*x),x,ZZ(0),ZZ(2)); ) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:33:22 2006 Input: (111**2-2)%127 Output: _3 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Sun Jun 18 13:32:59 2006 Input: integrate (e^sqrt((2-x)/(2+x))/(2+x)/sqrt(4-x*x),x,0,2); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:32:56 2006 Input: (42**2-2)%127 Output: _3 = 111 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:32:37 2006 Input: (67**2-2)%127 Output: _3 = 42 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:32:29 2006 Input: (14**2-2)%127 Output: _3 = 67 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:30:54 2006 Input: (23*2-2)%127 Output: _3 = 44 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:30:00 2006 Input: (67*2-2)%127 Output: _3 = 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:29:36 2006 Input: (14**2-2)%127 Output: _3 = 67 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:28:51 2006 Input: (14**2-2)%127 Output: _3 = 67 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:28:40 2006 Input: 14**2-2%127 Output: _3 = 194 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:28:32 2006 Input: 4**2-2%127 Output: _3 = 14 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:27:22 2006 Input: 31**2%127 Output: _3 = 72 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:26:58 2006 Input: 44**2%127 Output: _3 = 31 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:26:24 2006 Input: 67**2%127 Output: _3 = 44 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:14:54 2006 Input: maxima("Complex((1/2*(3+sqrt(13)))^5)") Output: _3 = Complex((sqrt(13) + 3)^5/32) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.38s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:14:36 2006 Input: maxima("simplify((1/2*(3+sqrt(13)))^5)") Output: _3 = simplify((sqrt(13) + 3)^5/32) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.40s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:14:04 2006 Input: maxima("(1/2*(3+sqrt(13)))^5") Output: _3 = (sqrt(13) + 3)^5/32 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.33s). '84.169.' ************** SAGE ***************** Host 84.169.121.219 (84.169.121.219) Time: Sun Jun 18 13:05:19 2006 Input: maxima("cf(sqrt(13))") Output: _3 = [3,1,1,1,1,6] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.38s). '82.83.4' ************** SAGE ***************** Host 82.83.49.235 (82.83.49.235) Time: Sun Jun 18 12:49:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.97.226 (84.169.97.226) Time: Sun Jun 18 12:12:32 2006 Input: maxima("cf(1/2+sqrt(5))") Output: _3 = [2,1,3] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.37s). '24.197.' ************** SAGE ***************** Host 24.197.156.47 (24.197.156.47) Time: Sun Jun 18 11:40:42 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '203.115' ************** SAGE ***************** Host 203.115.154.200 (203.115.154.200) Time: Sun Jun 18 07:35:30 2006 Input: (x+2)/3 - 2/(x-4 )= 6 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 06:00:58 2006 Input: maxima("cf(sqrt(2))") Output: _3 = [1,2] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.36s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 06:00:12 2006 Input: maxima("cf((1+sqrt(5))/2)") Output: _3 = [1,1,1,1,2] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.30s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 06:00:05 2006 Input: maxima("cf((-1+sqrt(5))/2)") Output: _3 = [0,1,1,1,2] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.37s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 05:59:53 2006 Input: maxima("cf((1+sqrt(5))/2)") Output: _3 = [1,1,1,1,2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.29s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 05:59:41 2006 Input: maxima("cf(1+sqrt(5))") Output: _3 = [3,4] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.33s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 05:59:29 2006 Input: maxima("cf(sqrt(5))") Output: _3 = [2,4] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.45s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 05:58:45 2006 Input: maxima("cf(sqrt(2))") Output: _3 = [1,2] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.33s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 05:56:00 2006 Input: maxima("cf(17/99)") Output: _3 = [0,5,1,4,1,2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.39s). '84.169.' ************** SAGE ***************** Host 84.169.82.190 (84.169.82.190) Time: Sun Jun 18 05:55:01 2006 Input: contfrac(17/99) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'contfrac' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:31:56 2006 Input: [x**2 for x in range(10,70)] 69**2+6**2 Output: _3 = [100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225, 4356, 4489, 4624, 4761] _4 = 4797 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:31:16 2006 Input: [x**2 for x in range(10,70)] Output: _3 = [100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225, 4356, 4489, 4624, 4761] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:31:08 2006 Input: [x**2 for x in range(10,50)] Output: _3 = [100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:30:58 2006 Input: [x**2 for x in range(10,30)] Output: _3 = [100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:30:24 2006 Input: [x**2 for x in range(3,20)] 18**2+7**2 Output: _3 = [9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361] _4 = 373 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:29:50 2006 Input: [x**2 for x in range(3,20)] Output: _3 = [9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:29:42 2006 Input: [x**2 for x in range(3,19)] Output: _3 = [9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:28:58 2006 Input: [x**2 for x in range(3,14)] Output: _3 = [9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:27:42 2006 Input: [x**2 for x in range(3,13)] Output: _3 = [9, 16, 25, 36, 49, 64, 81, 100, 121, 144] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:27:30 2006 Input: [x**2 in range(1,13)] Output: _3 = [False] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:26:39 2006 Input: [(x,y) for (x,y) in range(1,100) if x**2+y**2==178] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: unpack non-sequence Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:25:36 2006 Input: [(x,y) for x in range(1,100) and for y in range(1,100) if x**2+y**2==178] Output: Errors: ------------------------------------------------------------ File "", line 1 [(x,y) for x in range(ZZ(1),ZZ(100)) and for y in range(ZZ(1),ZZ(100)) if x**ZZ(2)+y**ZZ(2)==ZZ(178)] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:25:15 2006 Input: [(x,y) for x in range(1,100) and y in range(1,100) if x**2+y**2==178] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.89.135 (84.169.89.135) Time: Sun Jun 18 04:24:41 2006 Input: [x for x in range(1,100) and y in range(1,100) if x**2+y**==178] Output: Errors: ------------------------------------------------------------ File "", line 1 [x for x in range(ZZ(1),ZZ(100)) and y in range(ZZ(1),ZZ(100)) if x**ZZ(2)+y**==ZZ(178)] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.78.226 (84.169.78.226) Time: Sun Jun 18 03:24:54 2006 Input: [x for x in range(1,4073) if x**2%4073==881] Output: _3 = [257, 3816] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.12s). '84.169.' ************** SAGE ***************** Host 84.169.78.226 (84.169.78.226) Time: Sun Jun 18 03:24:18 2006 Input: [x for x in range(1,43) if x**2%43==6] Output: _3 = [7, 36] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.78.226 (84.169.78.226) Time: Sun Jun 18 03:20:35 2006 Input: [x for x in range(1,113) if x**2%113==56] 13**2%113 100**2%113 Output: _3 = [13, 100] _4 = 56 _5 = 56 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.78.226 (84.169.78.226) Time: Sun Jun 18 03:20:27 2006 Input: [x for x in range(1,113) if x**2%113==56] 13**2%113 100**2%113 Output: _3 = [13, 100] _4 = 56 _5 = 56 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.78.226 (84.169.78.226) Time: Sun Jun 18 03:20:04 2006 Input: [x for x in range(1,113) if x**2%113==56] Output: _3 = [13, 100] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.78.226 (84.169.78.226) Time: Sun Jun 18 03:19:55 2006 Input: [x for x in range(1,113) if x**2==56] Output: _3 = [] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.169.' ************** SAGE ***************** Host 84.169.78.226 (84.169.78.226) Time: Sun Jun 18 03:19:09 2006 Input: [x**2%113 for x in range(1,113)] Output: _3 = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 8, 31, 56, 83, 112, 30, 63, 98, 22, 61, 102, 32, 77, 11, 60, 111, 51, 106, 50, 109, 57, 7, 72, 26, 95, 53, 13, 88, 52, 18, 99, 69, 41, 15, 104, 82, 62, 44, 28, 14, 2, 105, 97, 91, 87, 85, 85, 87, 91, 97, 105, 2, 14, 28, 44, 62, 82, 104, 15, 41, 69, 99, 18, 52, 88, 13, 53, 95, 26, 72, 7, 57, 109, 50, 106, 51, 111, 60, 11, 77, 32, 102, 61, 22, 98, 63, 30, 112, 83, 56, 31, 8, 100, 81, 64, 49, 36, 25, 16, 9, 4, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.217.' ************** SAGE ***************** Host 24.217.81.169 (24.217.81.169) Time: Sun Jun 18 00:16:40 2006 Input: 3.2x6 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(6,RR.precision()))('3.2')x6 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.204.' ************** SAGE ***************** Host 71.204.235.217 (71.204.235.217) Time: Sat Jun 17 22:55:44 2006 Input: 3+2 Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Sat Jun 17 20:52:22 2006 Input: rand(9) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'rand' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.186.' ************** SAGE ***************** Host 65.186.216.254 (65.186.216.254) Time: Sat Jun 17 18:52:38 2006 Input: 45x4+3 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(45)x4+ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.196.' ************** SAGE ***************** Host 69.196.168.163 (69.196.168.163) Time: Sat Jun 17 16:43:04 2006 Input: 1000000000/1000000 Output: _3 = 1000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.108.' ************** SAGE ***************** Host 70.108.103.201 (70.108.103.201) Time: Sat Jun 17 15:55:42 2006 Input: 13 times 12 plus 50 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(13) times ZZ(12) plus ZZ(50) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '82.49.1' ************** SAGE ***************** Host 82.49.13.40 (82.49.13.40) Time: Sat Jun 17 15:36:52 2006 Input: maxima('log(%E);') Output: _3 = log(%E) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.30s). '82.49.1' ************** SAGE ***************** Host 82.49.13.40 (82.49.13.40) Time: Sat Jun 17 15:36:40 2006 Input: maxima('log(%e);') Output: _3 = 1 Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.07s). '67.82.2' ************** SAGE ***************** Host 67.82.24.195 (67.82.24.195) Time: Sat Jun 17 14:45:58 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.80.' ************** SAGE ***************** Host 206.80.111.49 (206.80.111.49) Time: Sat Jun 17 13:45:52 2006 Input: (1.*x*x + 2.*x - 5.)*(1. + 1.*x + 0.5*x*x + 0.02777*x*x*x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.0000000000000000 (parent: Real Field with 53 bits of precision) and x (parent: Univariate Polynomial Ring in x over Rational Field) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.80.' ************** SAGE ***************** Host 206.80.111.49 (206.80.111.49) Time: Sat Jun 17 13:45:01 2006 Input: (x^2 + 2x - 5)*(1 + x + 0.5 x^2 + 0.02777 x^3) Output: Errors: ------------------------------------------------------------ File "", line 1 (x**ZZ(2) + ZZ(2)x - ZZ(5))*(ZZ(1) + x + RealField(max(6,RR.precision()))('0.5') x**ZZ(2) + RealField(max(19,RR.precision()))('0.02777') x**ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '138.88.' ************** SAGE ***************** Host 138.88.224.68 (138.88.224.68) Time: Sat Jun 17 09:30:46 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.187.' ************** SAGE ***************** Host 24.187.37.108 (24.187.37.108) Time: Sat Jun 17 07:19:02 2006 Input: 24 divided by 40= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(24) divided by ZZ(40)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '62.252.' ************** SAGE ***************** Host 62.252.32.12 (62.252.32.12) Time: Sat Jun 17 00:53:14 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:25:43 2006 Input: s1, x1, y1, z1, s2, x2, y2, z2 = QQ['s1, x1, y1, z1, s2, x2, y2, z2'].gens() s3 = s1*s2 - x1*x2 - y1*y2 - z1*z2 x3 = s1*x2 + s2*x1 + y1*z2 - z1*y2 y3 = s1*y2 + s2*y1 + z1*x2 - x1*z2 z3 = s1*z2 + s2*z1 + x1*y2 - y1*x2 t = s1*s1 + x1*x1 + y1*y1 + z1*z1 s4 = s1/t x4 = -x1/t y4 = -y1/t z4 = -z1/t s5 = s3*s4 - x3*x4 - y3*y4 - z3*z4 x5 = s3*x4 + s4*x3 + y3*z4 - z3*y4 y5 = s3*y4 + s4*y3 + z3*x4 - x3*z4 z5 = s3*z4 + s4*z3 + x3*y4 - y3*x4 s5 x5 y5 z5 Output: _17 = s2 _18 = (-1*z1^2*x2 - y1^2*x2 + 2*x1*z1*z2 + 2*x1*y1*y2 + x1^2*x2 - 2*s1*z1*y2 + 2*s1*y1*z2 + s1^2*x2)/(z1^2 + y1^2 + x1^2 + s1^2) _19 = (-1*z1^2*y2 + 2*y1*z1*z2 + y1^2*y2 + 2*x1*y1*x2 - x1^2*y2 + 2*s1*z1*x2 - 2*s1*x1*z2 + s1^2*y2)/(z1^2 + y1^2 + x1^2 + s1^2) _20 = (z1^2*z2 + 2*y1*z1*y2 - y1^2*z2 + 2*x1*z1*x2 - x1^2*z2 - 2*s1*y1*x2 + 2*s1*x1*y2 + s1^2*z2)/(z1^2 + y1^2 + x1^2 + s1^2) Exiting SAGE (CPU time 0m0.25s, Wall time 0m0.51s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:23:55 2006 Input: s1, x1, y1, z1, s2, x2, y2, z2 = QQ['s1, x1, y1, z1, s2, x2, y2, z2'].gens() s3 = s1*s2 - x1*x2 - y1*y2 - z1*z2 x3 = s1*x2 + s2*x1 + y1*z2 - z1*y2 y3 = s1*y2 + s2*y1 + z1*x2 - x1*z2 z3 = s1*z2 + s2*z1 + x1*y2 - y1*x2 t = s1*s1 + x1*x1 + y1*y1 + z1*z1 s4 = s1/t x4 = -x1/t y4 = -y1/t z4 = -z1/t (x+1)(x) Output: _13 = x + 1 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.10s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:23:49 2006 Input: s1, x1, y1, z1, s2, x2, y2, z2 = QQ['s1, x1, y1, z1, s2, x2, y2, z2'].gens() s3 = s1*s2 - x1*x2 - y1*y2 - z1*z2 x3 = s1*x2 + s2*x1 + y1*z2 - z1*y2 y3 = s1*y2 + s2*y1 + z1*x2 - x1*z2 z3 = s1*z2 + s2*z1 + x1*y2 - y1*x2 t = s1*s1 + x1*x1 + y1*y1 + z1*z1 s4 = s1/t x4 = -x1/t y4 = -y1/t z4 = -z1/t (x+1)(5) Output: _13 = 6 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.45s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:21:03 2006 Input: s1, x1, y1, z1, s2, x2, y2, z2 = QQ['s1, x1, y1, z1, s2, x2, y2, z2'].gens() s3 = s1*s2 - x1*x2 - y1*y2 - z1*z2 x3 = s1*x2 + s2*x1 + y1*z2 - z1*y2 y3 = s1*y2 + s2*y1 + z1*x2 - x1*z2 z3 = s1*z2 + s2*z1 + x1*y2 - y1*x2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:17:41 2006 Input: s1, x1, y1, z1, s2, x2, y2, z2 = QQ['s1, x1, y1, z1, s2, x2, y2, z2'].gens() s1*s2 - x1*x2 - y1*y2 - z1*z2 Output: _4 = -1*z1*z2 - y1*y2 - x1*x2 + s1*s2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:17:22 2006 Input: s1, x1, y1, z1, s2, x2, y2, z2 = QQ['a, b, c, d, e, f, g, h'].gens() s1*s2 - x1*x2 - y1*y2 - z1*z2 Output: _4 = -1*d*h - c*g - b*f + a*e Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:16:21 2006 Input: s1, x1, y1, z1, s2, x2, y2, z2 = QQ['a, b, c, d, e, f, g, h'].gens() Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:14:40 2006 Input: a, b, c = QQ['a, b, c'].gens() Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Fri Jun 16 23:13:05 2006 Input: a, b, c = QQ['a, b, c'].gen() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? ValueError: too many values to unpack Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.160.' ************** SAGE ***************** Host 24.160.158.25 (24.160.158.25) Time: Fri Jun 16 22:10:47 2006 Input: 76 Output: _3 = 76 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '142.161' ************** SAGE ***************** Host 142.161.126.65 (142.161.126.65) Time: Fri Jun 16 21:09:31 2006 Input: (50*.5)(50*.35)(30*.15) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(50)*.ZZ(5))(ZZ(50)*.ZZ(35))(ZZ(30)*.ZZ(15)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '222.153' ************** SAGE ***************** Host 222.153.157.137 (222.153.157.137) Time: Fri Jun 16 20:51:15 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.176.' ************** SAGE ***************** Host 67.176.231.235 (67.176.231.235) Time: Fri Jun 16 19:18:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.149.' ************** SAGE ***************** Host 69.149.222.116 (69.149.222.116) Time: Fri Jun 16 19:08:58 2006 Input: 111.1% into a decimal Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('111.1')% into a decimal ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.140.' ************** SAGE ***************** Host 69.140.239.104 (69.140.239.104) Time: Fri Jun 16 18:40:22 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.248' ************** SAGE ***************** Host 216.248.29.10 (216.248.29.10) Time: Fri Jun 16 17:33:06 2006 Input: 99.98/12 Output: _3 = 8.3316666666666670 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '209.66.' ************** SAGE ***************** Host 209.66.65.114 (209.66.65.114) Time: Fri Jun 16 17:16:27 2006 Input: factor( x^2 + 2*x + 1 ) Output: _3 = (x + 1)^2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.07s). '209.66.' ************** SAGE ***************** Host 209.66.65.114 (209.66.65.114) Time: Fri Jun 16 17:16:08 2006 Input: factor( x^2 + 2x + 1 ) Output: Errors: ------------------------------------------------------------ File "", line 1 factor( x**ZZ(2) + ZZ(2)x + ZZ(1) ) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.163.144 (71.231.163.144) Time: Fri Jun 16 16:47:41 2006 Input: 5565 888 88/*++55 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(88)/*++ZZ(55) ^ SyntaxError: invalid syntax _3 = 5565 _4 = 888 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.224.221 (128.95.224.221) Time: Fri Jun 16 15:39:35 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.224.221 (128.95.224.221) Time: Fri Jun 16 15:38:53 2006 Input: factor(2003) Output: _3 = 2003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.65.1' ************** SAGE ***************** Host 64.65.162.65 (64.65.162.65) Time: Fri Jun 16 14:33:57 2006 Input: 7+4.5+3+3+4 = Output: Errors: ------------------------------------------------------------ File "", line 1 = ^ SyntaxError: invalid syntax _3 = 21.500000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.248.' ************** SAGE ***************** Host 70.248.25.68 (70.248.25.68) Time: Fri Jun 16 13:51:16 2006 Input: 403.15 x 15% Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(16,RR.precision()))('403.15') x ZZ(15)% ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.220' ************** SAGE ***************** Host 192.220.128.22 (192.220.128.22) Time: Fri Jun 16 13:41:16 2006 Input: (100*136.483333333333)/602.783333333333 Output: _3 = 22.642187629607061 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.33.5' ************** SAGE ***************** Host 71.33.50.136 (71.33.50.136) Time: Fri Jun 16 12:32:54 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.91.1' ************** SAGE ***************** Host 68.91.119.254 (68.91.119.254) Time: Fri Jun 16 12:04:47 2006 Input: y=210; for(x=1,8,y=sumdiv(y,x,x)-y;print1(y,",")) Output: Errors: ------------------------------------------------------------ File "", line 1 y=ZZ(210); for(x=ZZ(1),ZZ(8),y=sumdiv(y,x,x)-y;print1(y,",")) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.89.2' ************** SAGE ***************** Host 68.89.219.44 (68.89.219.44) Time: Fri Jun 16 11:23:47 2006 Input: 24 ft.x13 ft = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(24) ft.x13 ft = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.89.2' ************** SAGE ***************** Host 68.89.219.44 (68.89.219.44) Time: Fri Jun 16 11:23:47 2006 Input: 24 ft.x13 ft = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(24) ft.x13 ft = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.89.2' ************** SAGE ***************** Host 68.89.219.44 (68.89.219.44) Time: Fri Jun 16 11:23:46 2006 Input: 24 ft.x13 ft = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(24) ft.x13 ft = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.89.2' ************** SAGE ***************** Host 68.89.219.44 (68.89.219.44) Time: Fri Jun 16 11:23:43 2006 Input: 24 ft.x13 ft = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(24) ft.x13 ft = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.89.2' ************** SAGE ***************** Host 68.89.219.44 (68.89.219.44) Time: Fri Jun 16 11:22:58 2006 Input: 24 ft.x13 ft Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(24) ft.x13 ft ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.89.2' ************** SAGE ***************** Host 68.89.219.44 (68.89.219.44) Time: Fri Jun 16 11:22:48 2006 Input: 24 ft.x13 ft Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(24) ft.x13 ft ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '75.2.13' ************** SAGE ***************** Host 75.2.138.118 (75.2.138.118) Time: Fri Jun 16 10:38:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '192.88.' ************** SAGE ***************** Host 192.88.212.44 (192.88.212.44) Time: Fri Jun 16 08:57:05 2006 Input: tan(10/180*3.1428)*32*32/144 Output: _3 = 1.2543725636510319 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.44 (192.88.212.44) Time: Fri Jun 16 08:56:55 2006 Input: tan(20/180*3.1428)*32*32/144 Output: _3 = 2.5893131567295717 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.44 (192.88.212.44) Time: Fri Jun 16 08:55:03 2006 Input: tan(30/180*3.1428)*32*32/144 Output: _3 = 4.1075100413818593 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.43 (192.88.212.43) Time: Fri Jun 16 08:54:42 2006 Input: tan(30/180*3.1428) Output: _3 = 0.57761859956932393 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.43 (192.88.212.43) Time: Fri Jun 16 08:54:24 2006 Input: sin(30/180*3.1428) Output: _3 = 0.50017425531974347 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.44 (192.88.212.44) Time: Fri Jun 16 08:54:13 2006 Input: sin(30/180*PI) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'PI' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.43 (192.88.212.43) Time: Fri Jun 16 08:53:51 2006 Input: sin(30) Output: _3 = -0.98803162409286183 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.44 (192.88.212.44) Time: Fri Jun 16 08:53:17 2006 Input: cos(30) Output: _3 = 0.15425144988758405 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.88.' ************** SAGE ***************** Host 192.88.212.43 (192.88.212.43) Time: Fri Jun 16 08:52:55 2006 Input: tan(30) Output: _3 = -6.4053311966462756 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '71.98.1' ************** SAGE ***************** Host 71.98.101.46 (71.98.101.46) Time: Fri Jun 16 08:29:26 2006 Input: (81)^-1/2 Output: _3 = 1/162 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.98.1' ************** SAGE ***************** Host 71.98.101.46 (71.98.101.46) Time: Fri Jun 16 08:29:18 2006 Input: (81)^-1/2= Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(81))**-ZZ(1)/ZZ(2)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:52:42 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 277**20%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:52:19 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**20%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:52:15 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**20%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:52:01 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**4%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:51:57 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**4%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:51:53 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**5%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:51:50 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**5%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:51:13 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**2%300 276**2%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 _9 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:51:06 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**2%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:50:44 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 276**2%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 276 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:50:30 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 277**2%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 229 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:50:11 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() 151**2%300 101**2%300 277**2%300 Output: _5 = [151, 101, 277] _6 = 1 _7 = 1 _8 = 229 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:49:09 2006 Input: n=300 R=IntegerModRing(n) R.unit_gens() Output: _5 = [151, 101, 277] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:48:42 2006 Input: n=100 R=IntegerModRing(n) R.unit_gens() 51**2%100 77**20%100 Output: _5 = [51, 77] _6 = 1 _7 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:48:33 2006 Input: n=100 R=IntegerModRing(n) R.unit_gens() 51**20%100 77**2%100 Output: _5 = [51, 77] _6 = 1 _7 = 29 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:48:21 2006 Input: n=100 R=IntegerModRing(n) R.unit_gens() 51**2%100 77**20%100 Output: _5 = [51, 77] _6 = 1 _7 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:47:15 2006 Input: n=100 R=IntegerModRing(n) R.unit_gens() Output: _5 = [51, 77] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:46:29 2006 Input: n=80 R=IntegerModRing(n) R.unit_gens() 17**4 % 80 Output: _5 = [31, 21, 17] _6 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:46:24 2006 Input: n=80 R=IntegerModRing(n) R.unit_gens() 17**5 % 80 Output: _5 = [31, 21, 17] _6 = 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:46:05 2006 Input: n=80 R=IntegerModRing(n) R.unit_gens() Output: _5 = [31, 21, 17] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:44:25 2006 Input: n=27 R=IntegerModRing(n) R.unit_gens() Output: _5 = [2] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:43:51 2006 Input: n=10 R=IntegerModRing(n) R.unit_gens() Output: _5 = [1, 7] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:43:44 2006 Input: n=7 R=IntegerModRing(n) R.unit_gens() Output: _5 = [3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:43:38 2006 Input: n=10 R=IntegerModRing(n) R.unit_gens() Output: _5 = [1, 7] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:41:01 2006 Input: n=10 R=IntegerModRing(n) R.unit_gens() Output: _5 = [1, 7] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:40:50 2006 Input: n=10 R=IntegerModRing(n) R.unit_group() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'IntegerModRing_generic' object has no attribute 'unit_group' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:37:45 2006 Input: n=10 R=IntegerModRing(n) R.unit_gens() Output: _5 = [1, 7] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:37:35 2006 Input: n=10 R=IntegerModRing(n) a=R.unit_gens() a Output: _6 = [1, 7] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:23:13 2006 Input: L=[x**4 %35 for x in range(1,36)] [x**4% 35 for x in [3,4, 11, 17, 18 , 24, 31, 32]] Output: _4 = [11, 11, 11, 11, 11, 11, 11, 11] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:23:04 2006 Input: L=[x**4 %35 for x in range(1,36)] x**4% 35 for x in [3,4, 11, 17, 18 , 24, 31, 32] Output: Errors: ------------------------------------------------------------ File "", line 1 x**ZZ(4)% ZZ(35) for x in [3,4, 11, 17, 18 , 24, 31, 32] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:21:06 2006 Input: L=[x**4 %35 for x in range(1,36)] L Output: _4 = [1, 16, 11, 11, 30, 1, 21, 1, 16, 25, 11, 16, 1, 21, 15, 16, 11, 11, 16, 15, 21, 1, 16, 11, 25, 16, 1, 21, 1, 30, 11, 11, 16, 1, 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:20:54 2006 Input: L=[x**4 %35 for x in range(1,36)] Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:19:59 2006 Input: L=[x**3 %43 for x in range(1,44)] 20**3%43 34**3 % 43 Output: _4 = 2 _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:19:50 2006 Input: L=[x**3 %43 for x in range(1,44)] 20**3%43 32**3 % 43 Output: _4 = 2 _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:19:43 2006 Input: L=[x**3 %43 for x in range(1,44)] L 20**3%43 32**3 % 43 Output: _4 = [1, 8, 27, 21, 39, 1, 42, 39, 41, 11, 41, 8, 4, 35, 21, 11, 11, 27, 22, 2, 16, 27, 41, 21, 16, 32, 32, 22, 8, 39, 35, 2, 32, 2, 4, 1, 42, 4, 22, 16, 35, 42, 0] _5 = 2 _6 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:19:05 2006 Input: L=[x**3 %43 for x in range(1,44)] L 20**3%43 Output: _4 = [1, 8, 27, 21, 39, 1, 42, 39, 41, 11, 41, 8, 4, 35, 21, 11, 11, 27, 22, 2, 16, 27, 41, 21, 16, 32, 32, 22, 8, 39, 35, 2, 32, 2, 4, 1, 42, 4, 22, 16, 35, 42, 0] _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:18:47 2006 Input: L=[x**3 %43 for x in range(1,44)] L 20**3%43 Output: _4 = [1, 8, 27, 21, 39, 1, 42, 39, 41, 11, 41, 8, 4, 35, 21, 11, 11, 27, 22, 2, 16, 27, 41, 21, 16, 32, 32, 22, 8, 39, 35, 2, 32, 2, 4, 1, 42, 4, 22, 16, 35, 42, 0] _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:18:27 2006 Input: L=[x**3 %43 for x in range(21,43)] L 20**3%43 Output: _4 = [16, 27, 41, 21, 16, 32, 32, 22, 8, 39, 35, 2, 32, 2, 4, 1, 42, 4, 22, 16, 35, 42] _5 = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:17:48 2006 Input: L=[x**3 %43 for x in range(11,21)] L 20**3%43 Output: _4 = [41, 8, 4, 35, 21, 11, 11, 27, 22, 2] _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:17:32 2006 Input: L=[x**3 %43 for x in range(11,21)] L 2**20%43 Output: _4 = [41, 8, 4, 35, 21, 11, 11, 27, 22, 2] _5 = 21 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:17:18 2006 Input: L=[x**3 %43 for x in range(11,21)] L Output: _4 = [41, 8, 4, 35, 21, 11, 11, 27, 22, 2] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:17:04 2006 Input: L=[x**3 %43 for x in range(1,11)] L Output: _4 = [1, 8, 27, 21, 39, 1, 42, 39, 41, 11] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:14:18 2006 Input: L=[5**i %547 for i in range(20,29)] L 5**27%547 2**30%37 Output: _4 = [62, 310, 456, 92, 460, 112, 13, 65, 325] _5 = 65 _6 = 11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:13:54 2006 Input: L=[5**i %547 for i in range(20,29)] L 5**27%547 Output: _4 = [62, 310, 456, 92, 460, 112, 13, 65, 325] _5 = 65 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:13:45 2006 Input: L=[5**i %547 for i in range(20,29)] L 5**28%547 Output: _4 = [62, 310, 456, 92, 460, 112, 13, 65, 325] _5 = 325 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:13:29 2006 Input: L=[5**i %547 for i in range(20,29)] L Output: _4 = [62, 310, 456, 92, 460, 112, 13, 65, 325] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:13:21 2006 Input: L=[5**i %547 for i in range(20,29)] 65 in L Output: _4 = True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:13:17 2006 Input: L=[5**i %547 for i in range(20,25)] 65 in L Output: _4 = False Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:13:03 2006 Input: L=[5**i %547 for i in range(1,30)] 65 in L Output: _4 = True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:12:57 2006 Input: L=[5**i %547 for i in range(1,50)] 65 in L Output: _4 = True Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:12:49 2006 Input: L=[5**i %547 for i in range(1,100)] 65 in L Output: _4 = True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:12:44 2006 Input: L=[5**i %547 for i in range(1,200)] 65 in L Output: _4 = True Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:12:32 2006 Input: L=[5**i %547 for i in range(1,20)] 65 in L Output: _4 = False Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:12:12 2006 Input: L=[5**i %547 for i in range(1,20)] L Output: _4 = [5, 25, 125, 78, 390, 309, 451, 67, 335, 34, 170, 303, 421, 464, 132, 113, 18, 90, 450] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:12:04 2006 Input: L=[5**i %547 for i in range(1,20)] Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:11:44 2006 Input: [j=5**i %547 for i in range(1,20) if j=65] Output: Errors: ------------------------------------------------------------ File "", line 1 [j=ZZ(5)**i %ZZ(547) for i in range(ZZ(1),ZZ(20)) if j=ZZ(65)] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:11:35 2006 Input: [i,j=5**i %547 for i in range(1,20) if j=65] ] Output: Errors: ------------------------------------------------------------ File "", line 1 [i,j=ZZ(5)**i %ZZ(547) for i in range(ZZ(1),ZZ(20)) if j=ZZ(65)] ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:11:31 2006 Input: [i,j=5**i %547 for i in range(1,20) if j=65] ] Output: Errors: ------------------------------------------------------------ File "", line 1 [i,j=ZZ(5)**i %ZZ(547) for i in range(ZZ(1),ZZ(20)) if j=ZZ(65)] ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:11:27 2006 Input: [i,j=5**i %547 for i in range(1,20) if j=65 ] Output: Errors: ------------------------------------------------------------ File "", line 1 [i,j=ZZ(5)**i %ZZ(547) for i in range(ZZ(1),ZZ(20)) if j=ZZ(65) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:10:43 2006 Input: [5**i %547 for i in range(1,20)] Output: _3 = [5, 25, 125, 78, 390, 309, 451, 67, 335, 34, 170, 303, 421, 464, 132, 113, 18, 90, 450] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:09:23 2006 Input: [2**i %37 for i in range(30,36)] 2**30%37 Output: _3 = [11, 22, 7, 14, 28, 19] _4 = 11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:09:09 2006 Input: [2**i %37 for i in range(30,36)] Output: _3 = [11, 22, 7, 14, 28, 19] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:09:04 2006 Input: [2**i %37 for i in range(32,36)] Output: _3 = [7, 14, 28, 19] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:58 2006 Input: [2**i %37 for i in range(33,36)] Output: _3 = [14, 28, 19] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:51 2006 Input: [2**i %37 for i in range(35,36)] Output: _3 = [19] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:44 2006 Input: [2**i %37 for i in range(21,36)] Output: _3 = [29, 21, 5, 10, 20, 3, 6, 12, 24, 11, 22, 7, 14, 28, 19] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:36 2006 Input: [2**i %37 for i in range(21,30)] Output: _3 = [29, 21, 5, 10, 20, 3, 6, 12, 24] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:29 2006 Input: [2**i %37 for i in range(11,20)] Output: _3 = [13, 26, 15, 30, 23, 9, 18, 36, 35] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:21 2006 Input: [2**i %37 for i in range(1,10)] Output: _3 = [2, 4, 8, 16, 32, 27, 17, 34, 31] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:14 2006 Input: [2**i %37 for i in range(15,37)] Output: _3 = [23, 9, 18, 36, 35, 33, 29, 21, 5, 10, 20, 3, 6, 12, 24, 11, 22, 7, 14, 28, 19, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:08:05 2006 Input: [2**i & 37 for i in range(15,37)] Output: _3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:07:54 2006 Input: [2**i& 37 for i in range(15,35)] Output: _3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.121.' ************** SAGE ***************** Host 24.121.41.179 (24.121.41.179) Time: Fri Jun 16 07:07:53 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:07:47 2006 Input: [2**i& 37 for i in range(15,25)] Output: _3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:07:31 2006 Input: [2**i& 37 for i in range(1,15)] Output: _3 = [0, 4, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:07:24 2006 Input: [2**i& 37 for i in range(1,5)] Output: _3 = [0, 4, 0, 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:05:21 2006 Input: n=43 R=IntegerModRing(n) a=R.unit_gens()[0] a [a**i for i in range(1,n+1) if gcd(i,42)==1] Output: _6 = 3 _7 = [3, 28, 30, 12, 26, 19, 34, 5, 18, 33, 20, 29, 3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:04:28 2006 Input: n=31 R=IntegerModRing(n) a=R.unit_gens()[0] a [a**i for i in range(1,n+1) if gcd(i,30)==1] Output: _6 = 3 _7 = [3, 17, 13, 24, 22, 12, 11, 21, 3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:03:52 2006 Input: n=31 R=IntegerModRing(n) a=R.unit_gens()[0] a [a**i for i in range(1,n+1) if gcd(i,16)==1] Output: _6 = 3 _7 = [3, 27, 26, 17, 29, 13, 24, 30, 22, 12, 15, 11, 6, 23, 21, 3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:01:52 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] a [a**i for i in range(1,n+1) if gcd(i,16)==1] Output: _6 = 3 _7 = [3, 10, 5, 11, 14, 7, 12, 6, 3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:01:38 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] a [a**i for i in range(1,n) if gcd(i,16)==1] Output: _6 = 3 _7 = [3, 10, 5, 11, 14, 7, 12, 6] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:01:23 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] a [a**i for i in range(2,n+1) if gcd(i,16)==1] Output: _6 = 3 _7 = [10, 5, 11, 14, 7, 12, 6, 3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:00:30 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,n+1) if gcd(i,16)==1] Output: _6 = [10, 5, 11, 14, 7, 12, 6, 3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:00:24 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,n) if gcd(i,16)==1] Output: _6 = [10, 5, 11, 14, 7, 12, 6] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 07:00:16 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,n-1) if gcd(i,16)==1] Output: _6 = [10, 5, 11, 14, 7, 12, 6] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:59:36 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,n-1) if gcd(i,n)==1] Output: _6 = [9, 10, 13, 5, 15, 11, 16, 14, 8, 7, 4, 12, 2, 6] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:59:27 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,n) if gcd(i,n)==1] Output: _6 = [9, 10, 13, 5, 15, 11, 16, 14, 8, 7, 4, 12, 2, 6, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:59:16 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,(n+3)/2) if gcd(i,n)==1] Output: _6 = [9, 10, 13, 5, 15, 11, 16, 14] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:59:07 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,(n+1)/2) if gcd(i,n)==1] Output: _6 = [9, 10, 13, 5, 15, 11, 16] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:58:40 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,(n-1)/2) if gcd(i,n)==1] Output: _6 = [9, 10, 13, 5, 15, 11] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:58:15 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,n) if gcd(i,n)==1] Output: _6 = [9, 10, 13, 5, 15, 11, 16, 14, 8, 7, 4, 12, 2, 6, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:58:06 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] sort([a**i for i in range(2,n) if gcd(i,n)==1]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'sort' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:57:48 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens()[0] [a**i for i in range(2,n) if gcd(i,n)==1] Output: _6 = [9, 10, 13, 5, 15, 11, 16, 14, 8, 7, 4, 12, 2, 6, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:57:32 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens() [a**i for i in range(2,n) if gcd(i,n)==1] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:57:09 2006 Input: n=17 R=IntegerModRing(n) a=R.unit_gens() [a**i for gcd(i,n)==1] Output: Errors: ------------------------------------------------------------ File "", line 1 [a**i for gcd(i,n)==ZZ(1)] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.15.2' ************** SAGE ***************** Host 24.15.23.20 (24.15.23.20) Time: Fri Jun 16 06:57:03 2006 Input: 1019/38 Output: _3 = 1019/38 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.15.2' ************** SAGE ***************** Host 24.15.23.20 (24.15.23.20) Time: Fri Jun 16 06:56:37 2006 Input: 36+16+12+24+36+17+14+34+18+19+20+21+27+43+15+15+14+43+53+42+20+21+27+19+33+28+50+20+21+29+24+26+18+35+48+15+13+53 Output: _3 = 1019 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.15.2' ************** SAGE ***************** Host 24.15.23.20 (24.15.23.20) Time: Fri Jun 16 06:56:32 2006 Input: 36+16+12+24+36+17+14+34+18+19+20+21+27+43+15+15+14+43+53+42+20+21+27+19+33+28+50+20+21+29+24+26+18+35+48+15+13+53= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(36)+ZZ(16)+ZZ(12)+ZZ(24)+ZZ(36)+ZZ(17)+ZZ(14)+ZZ(34)+ZZ(18)+ZZ(19)+ZZ(20)+ZZ(21)+ZZ(27)+ZZ(43)+ZZ(15)+ZZ(15)+ZZ(14)+ZZ(43)+ZZ(53)+ZZ(42)+ZZ(20)+ZZ(21)+ZZ(27)+ZZ(19)+ZZ(33)+ZZ(28)+ZZ(50)+ZZ(20)+ZZ(21)+ZZ(29)+ZZ(24)+ZZ(26)+ZZ(18)+ZZ(35)+ZZ(48)+ZZ(15)+ZZ(13)+ZZ(53)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:55:05 2006 Input: R=IntegerModRing(31) R.unit_gens() Output: _4 = [3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:55:01 2006 Input: R=IntegerModRing(31) R.unit_gens() Output: _4 = [3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:54:57 2006 Input: R=IntegerModRing(17) R.unit_gens() Output: _4 = [3] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:54:50 2006 Input: R=IntegerModRing(17) R.unit_group() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'IntegerModRing_field' object has no attribute 'unit_group' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.15.2' ************** SAGE ***************** Host 24.15.23.20 (24.15.23.20) Time: Fri Jun 16 06:45:38 2006 Input: 5*5 Output: _3 = 25 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.15.2' ************** SAGE ***************** Host 24.15.23.20 (24.15.23.20) Time: Fri Jun 16 06:45:18 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 06:44:28 2006 Input: R=IntegerModRing(17) R.unit_gens() Output: _4 = [3] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). '195.245' ************** SAGE ***************** Host 195.245.194.37 (195.245.194.37) Time: Fri Jun 16 06:36:09 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.35s). '128.178' ************** SAGE ***************** Host 128.178.73.81 (128.178.73.81) Time: Fri Jun 16 06:10:49 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.61s). '74.34.6' ************** SAGE ***************** Host 74.34.67.140 (74.34.67.140) Time: Fri Jun 16 05:10:46 2006 Input: 1 1 2 2 2 22 2555 Output: _3 = 1 _4 = 1 _5 = 2 _6 = 2 _7 = 2 _8 = 22 _9 = 2555 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.94.' ************** SAGE ***************** Host 192.94.94.106 (192.94.94.106) Time: Fri Jun 16 04:14:54 2006 Input: 10132.48-4851.90 Output: _3 = 5280.5799999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:36:45 2006 Input: M = MatrixSpace(IntegerRing(),2,2) A = M([4,9,2,6]) A.elementary_divisors() Output: _5 = [6, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:35:22 2006 Input: M = MatrixSpace(IntegerRing(),5,5) A = M([2,2,-8,-6,10,2,8,-2,-6,22,2,26,1756,-126,688,-6,-6,-96,48,-30,10,22,392,-30,284]) A.elementary_divisors() Output: _5 = [0, 210, 30, 6, 2] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:34:38 2006 Input: M = MatrixSpace(IntegerRing(),5,5) A = M([2,2,-8,-6,10,2,8,-2,-6,22,2,26,1756,-126,688,-6,-6,-96,48,-30,10,22,392,-30,284]) A.smith_form() Output: _5 = ([ 0 0 0 0 0] [ 0 210 0 0 0] [ 0 0 30 0 0] [ 0 0 0 6 0] [ 0 0 0 0 2], [ 24 2 1 4 -3] [2556 220 0 427 -320] [ -47 -7 0 -8 6] [ 24 3 0 4 -3] [ -24 -2 0 -4 3], [-23 97 79 46 98] [ -3 -2 -8 -1 -2] [ -1 2 1 1 2] [ -4 29 19 9 29] [ 2 0 1 -1 0]) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:34:22 2006 Input: M = MatrixSpace(IntegerRing(),5,5) A = M([2,2,-8,-6,10,2,8,-2,-6,22,2,26,1756,-126,688,-6,-6,-96,48,-30,10,22,392,-30,284]) A.elementary_divisors() Output: _5 = [0, 210, 30, 6, 2] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:31:38 2006 Input: M = MatrixSpace(IntegerRing(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.elementary_divisors() Output: _5 = [0, 4, 2, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:31:18 2006 Input: M = MatrixSpace(IntegerRing(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.smith_form() Output: _5 = ([0 0 0 0] [0 4 0 0] [0 0 2 0] [0 0 0 1], [-2 3 -2 -1] [-1 1 -1 0] [ 0 0 1 0] [ 2 -2 2 1], [ 6 15 6 1] [ -7 -12 -6 0] [ -2 -5 -2 0] [ 2 -1 1 -1]) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:31:04 2006 Input: M = MatrixSpace(IntegerRing(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.elementary_divisors() Output: _5 = [0, 4, 2, 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:30:50 2006 Input: M = MatrixSpace(IntegerRing(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.echelon_form() Output: _5 = [ 1 0 1 -2] [ 0 8 0 28] [ 0 0 2 2] [ 0 0 0 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:30:08 2006 Input: M = MatrixSpace(IntegerSpace(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.echelon_form() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'IntegerSpace' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'M' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:28:45 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.smith_form() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'smith_form' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:27:22 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.elementary_divisors() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'elementary_divisors' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:01:54 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.hermite() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'hermite' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:01:46 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.hermite_form() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'hermite_form' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 03:01:22 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([-13,-16,3,-14,1,0,3,0,22,24,4,22,-15,-16,-5,-16]) A.echelon_form() Output: _5 = [ 1 0 0 -3] [ 0 1 0 7/2] [ 0 0 1 1] [ 0 0 0 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). '83.201.' ************** SAGE ***************** Host 83.201.192.2 (83.201.192.2) Time: Fri Jun 16 02:19:27 2006 Input: (a+b+c)^50 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 02:17:31 2006 Input: gcd(2*X^3 + X**2 - 2*X - 1,6X**2 + 13*X + 5) Output: Errors: ------------------------------------------------------------ File "", line 1 gcd(ZZ(2)*X**ZZ(3) + X**ZZ(2) - ZZ(2)*X - ZZ(1),ZZ(6)X**ZZ(2) + ZZ(13)*X + ZZ(5)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 02:17:22 2006 Input: gcd(2X**3 + X**2 - 2*X - 1,6X**2 + 13*X + 5) Output: Errors: ------------------------------------------------------------ File "", line 1 gcd(ZZ(2)X**ZZ(3) + X**ZZ(2) - ZZ(2)*X - ZZ(1),ZZ(6)X**ZZ(2) + ZZ(13)*X + ZZ(5)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 02:17:05 2006 Input: gcd(2*X**3 + X**2 - 2*X - 1,6X**2 + 13*X + 5) Output: Errors: ------------------------------------------------------------ File "", line 1 gcd(ZZ(2)*X**ZZ(3) + X**ZZ(2) - ZZ(2)*X - ZZ(1),ZZ(6)X**ZZ(2) + ZZ(13)*X + ZZ(5)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 02:16:43 2006 Input: gcd(2X^3 + X^2 - 2X - 1,6X^2 + 13X + 5) Output: Errors: ------------------------------------------------------------ File "", line 1 gcd(ZZ(2)X**ZZ(3) + X**ZZ(2) - ZZ(2)X - ZZ(1),ZZ(6)X**ZZ(2) + ZZ(13)X + ZZ(5)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 02:15:15 2006 Input: gcd(14,36) Output: _3 = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 02:15:07 2006 Input: gcd(8,14,36) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: gcd() takes at most 2 arguments (3 given) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 02:15:01 2006 Input: gcd(8,14) Output: _3 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 01:58:55 2006 Input: 17**11 % 143 Output: _3 = 127 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Fri Jun 16 01:58:40 2006 Input: 17**11 mod 143 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(17)**ZZ(11) mod ZZ(143) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Fri Jun 16 00:03:26 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (1+x+x^2/2+x^3/6+x^4/24+x^5/120+x^6/720+x^7/5040+x^8/40320+x^9/362880)/(1-6*x/2+(6*x)^2/6-(6*x)^3/24+(6*x)^4/120-(6*x)^5/720+(6*x)^6/5040-(6*x)^7/40320+(6*x)^8/362880-(6*x)^9/3628800)+ O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = 1 + 4*x + 13/2*x^2 + 14/3*x^3 + 29/120*x^4 - 7/6*x^5 + 4003/5040*x^6 + 229/180*x^7 - 138571/201600*x^8 - 14849/12960*x^9 + O(x^10) Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.13s). '84.3.97' ************** SAGE ***************** Host 84.3.97.92 (84.3.97.92) Time: Fri Jun 16 00:02:55 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:59:30 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x+x^2/2+x^3/6+x^4/24+x^5/120+x^6/720+x^7/5040+x^8/40320+x^9/362880)/(6*x+(6*x)^2/2+(6*x)^3/6+(6*x)^4/24+ +(6*x)^5/120+(6*x)^6/720+(6*x)^7/5040+(6*x)^8/40320+(6*x)^9/362880)+ O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = 1/6 - 5/12*x + 5/18*x^2 + 25/144*x^3 - 17/72*x^4 - 115/864*x^5 + 91/432*x^6 + 5645/48384*x^7 - 207913/1088640*x^8 + 8107/22680*x^9 + O(x^10) Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.11s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:49:43 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6-x^4/24+x^5/120-x^6/720+x^7/5040-x^8/40320+x^9/362880)/(6*x+(6*x)^2/2+(6*x)^3/6+(6*x)^4/24+ +(6*x)^5/120+(6*x)^6/720+(6*x)^7/5040+(6*x)^8/40320+(6*x)^9/362880)+ O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = 1/6 - 7/12*x + 7/9*x^2 - 49/144*x^3 - 7/36*x^4 + 539/4320*x^5 + 229/1080*x^6 - 4039/34560*x^7 - 14849/77760*x^8 + 147293/259200*x^9 + O(x^10) Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.12s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:45:31 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6-x^4/24+x^5/120-x^6/720+x^7/5040-x^8/40320+x^9/362880)/(6*x+(6*x)^2/2+(6*x)^3/6+(6*x) ^4/24+(6*x)^5/120+(6*x)^6/720+(6*x)^7/5040+(6*x)^8/40320+(6*x)^9/362880)+ O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = 1/6 - 7/12*x + 7/9*x^2 - 49/144*x^3 - 7/36*x^4 + 539/4320*x^5 + 229/1080*x^6 - 4039/34560*x^7 - 14849/77760*x^8 + 147293/259200*x^9 + O(x^10) Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.12s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:44:17 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6-x^4/24+x^5/120-x^6/720+x^7/5040-x^8/40320+x^9/362880)/(6*x-(6*x)^2/2+(6*x)^3/6) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = 1/6 + 5/12*x + 5/18*x^2 - 241/144*x^3 - 2407/360*x^4 - 43273/4320*x^5 + 76099/7560*x^6 + 21845231/241920*x^7 + 229161083/1088640*x^8 + 1162643/12960*x^9 + O(x^10) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.07s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:42:31 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3)/(1-6*x) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = x + 11/2*x^2 + 34*x^3 + 204*x^4 + 1224*x^5 + 7344*x^6 + 44064*x^7 + 264384*x^8 + 1586304*x^9 + O(x^10) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:42:19 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2+x^3)/(1-6*x) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = x + 5*x^2 + 31*x^3 + 186*x^4 + 1116*x^5 + 6696*x^6 + 40176*x^7 + 241056*x^8 + 1446336*x^9 + O(x^10) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:42:11 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2+x^3)/(1-6x) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)+x**ZZ(3))/(ZZ(1)-ZZ(6)x) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:42:05 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2+x^3)/(6x) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)+x**ZZ(3))/(ZZ(6)x) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:41:58 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2+x^3)/6x + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)+x**ZZ(3))/ZZ(6)x + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:41:50 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6)/6x + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6))/ZZ(6)x + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:40:45 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6)/(6x) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6))/(ZZ(6)x) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:40:33 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6)/(6x)) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6))/(ZZ(6)x)) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:40:21 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6+x^4/24+x^5/120-x^6/720+x^7/720)/(6x)) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6)+x**ZZ(4)/ZZ(24)+x**ZZ(5)/ZZ(120)-x**ZZ(6)/ZZ(720)+x**ZZ(7)/ZZ(720))/(ZZ(6)x)) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:40:14 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6+x^4/24+x^5/120-x^6/720+x^7/720*7)/(6x)) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6)+x**ZZ(4)/ZZ(24)+x**ZZ(5)/ZZ(120)-x**ZZ(6)/ZZ(720)+x**ZZ(7)/ZZ(720)*ZZ(7))/(ZZ(6)x)) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:40:03 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6+x^4/24+x^5/120-x^6/720+x^7/720*7))/(6x)) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6)+x**ZZ(4)/ZZ(24)+x**ZZ(5)/ZZ(120)-x**ZZ(6)/ZZ(720)+x**ZZ(7)/ZZ(720)*ZZ(7)))/(ZZ(6)x)) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:39:32 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6+x^4/4!+x^5/5!-x^6/6!+x^7/7!))/(6x)) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6)+x**ZZ(4)/ZZ(4)!+x**ZZ(5)/ZZ(5)!-x**ZZ(6)/ZZ(6)!+x**ZZ(7)/ZZ(7)!))/(ZZ(6)x)) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:36:57 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (x-x^2/2+x^3/6))/(1-exp(-6x)) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (x-x**ZZ(2)/ZZ(2)+x**ZZ(3)/ZZ(6)))/(ZZ(1)-exp(-ZZ(6)x)) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:36:37 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (1-exp(x))/(1-exp(-6x)) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (ZZ(1)-exp(x))/(ZZ(1)-exp(-ZZ(6)x)) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:36:21 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (1-e^x)/(1-e^{-6x}) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (ZZ(1)-e**x)/(ZZ(1)-e**{-ZZ(6)x}) + O(x**ZZ(10)) ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:36:07 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: (1-x)/(1-x) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = 1 + O(x^10) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:35:51 2006 Input: sage: R = LaurentSeriesRing(QQ, 'x'); R Laurent Series Ring in x over Rational Field sage: x = R.gen() sage: 1/(1-x) + O(x^10) Output: Errors: ------------------------------------------------------------ File "", line 1 Laurent Series Ring in x over Rational Field ^ SyntaxError: invalid syntax _3 = Laurent Series Ring in x over Rational Field _6 = 1 + x + x^2 + x^3 + x^4 + x^5 + x^6 + x^7 + x^8 + x^9 + O(x^10) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.17s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:34:13 2006 Input: sage: f = maxima('1/((1+x)*(x-1))') sage: f.diff('x') sage: x=0 Output: _4 = -1/((x - 1)^2*(x + 1)) - 1/((x - 1)*(x + 1)^2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.41s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:33:59 2006 Input: sage: f = maxima('1/((1+x)*(x-1))') sage: f.diff('x') Output: _4 = -1/((x - 1)^2*(x + 1)) - 1/((x - 1)*(x + 1)^2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m1.29s). '171.64.' ************** SAGE ***************** Host 171.64.38.158 (171.64.38.158) Time: Thu Jun 15 23:32:17 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:28:45 2006 Input: sin *-1 56 Output: Errors: ------------------------------------------------------------ File "", line 1 sin *-ZZ(1) ZZ(56) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:28:27 2006 Input: sin(38)*12/sin(56) (-1*sin -6.8189) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 527, in integer.Integer.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -1 (parent: Integer Ring) and (parent: ) _3 = -6.8189360777414016 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:28:14 2006 Input: sin(38)*12/sin(56) (-1*sin -6.8189) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 527, in integer.Integer.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -1 (parent: Integer Ring) and (parent: ) _3 = -6.8189360777414016 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:27:30 2006 Input: sin(38)*12/sin(56) Output: _3 = -6.8189360777414016 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:26:16 2006 Input: sin(38)*12/sin(56) sin inverse (-6.8189) Output: Errors: ------------------------------------------------------------ File "", line 1 sin inverse (-RealField(max(16,RR.precision()))('6.8189')) ^ SyntaxError: invalid syntax _3 = -6.8189360777414016 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:26:01 2006 Input: sin(38)*12/sin(56) sin-1 (-6.8189) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable _3 = -6.8189360777414016 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:25:33 2006 Input: sin(38)*12/sin(56) Output: _3 = -6.8189360777414016 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:25:20 2006 Input: sin(38)*12 Output: _3 = 3.5564229445126241 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:25:08 2006 Input: 3.5564229445126241/sin(56) Output: _3 = -6.81893607774140120 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:24:33 2006 Input: sin(38)*12 Output: _3 = 3.5564229445126241 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). '71.107.' ************** SAGE ***************** Host 71.107.236.224 (71.107.236.224) Time: Thu Jun 15 22:24:15 2006 Input: sin 38 *12 Output: Errors: ------------------------------------------------------------ File "", line 1 sin ZZ(38) *ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.19.7' ************** SAGE ***************** Host 24.19.78.95 (24.19.78.95) Time: Thu Jun 15 21:16:21 2006 Input: 10x^2=280 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10)x**ZZ(2)=ZZ(280) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.43.1' ************** SAGE ***************** Host 65.43.113.94 (65.43.113.94) Time: Thu Jun 15 19:08:30 2006 Input: 4+3 Output: _3 = 7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '86.142.' ************** SAGE ***************** Host 86.142.235.156 (86.142.235.156) Time: Thu Jun 15 16:49:37 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.82s). '153.26.' ************** SAGE ***************** Host 153.26.176.34 (153.26.176.34) Time: Thu Jun 15 16:09:43 2006 Input: 1297+363+537 Output: _3 = 2197 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '205.201' ************** SAGE ***************** Host 205.201.70.148 (205.201.70.148) Time: Thu Jun 15 15:41:36 2006 Input: sage Output: _3 = Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '70.173.' ************** SAGE ***************** Host 70.173.4.170 (70.173.4.170) Time: Thu Jun 15 12:39:38 2006 Input: 15+15+15+15+15+60+35+50+35+55+50+60+45+40+55+65+15+20+13+30+30+30+30+30+30+45 Output: _3 = 898 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.123.' ************** SAGE ***************** Host 65.123.147.226 (65.123.147.226) Time: Thu Jun 15 12:17:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '59.161.' ************** SAGE ***************** Host 59.161.71.89 (59.161.71.89) Time: Thu Jun 15 12:11:35 2006 Input: 1.727 trillion to converted into billions Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('1.727') trillion to converted into billions ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.16.1' ************** SAGE ***************** Host 71.16.199.10 (71.16.199.10) Time: Thu Jun 15 10:06:29 2006 Input: 4(-2)² + 8(-2) + 3(-2) + 6 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)(-ZZ(2))² + ZZ(8)(-ZZ(2)) + ZZ(3)(-ZZ(2)) + ZZ(6) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.163.' ************** SAGE ***************** Host 68.163.32.134 (68.163.32.134) Time: Thu Jun 15 10:06:27 2006 Input: $5255.00/10 Output: Errors: ------------------------------------------------------------ File "", line 1 $RealField(max(19,RR.precision()))('5255.00')/ZZ(10) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.163.' ************** SAGE ***************** Host 68.163.32.134 (68.163.32.134) Time: Thu Jun 15 10:04:08 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Thu Jun 15 07:29:56 2006 Input: 2008*.30 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2008)*.ZZ(30) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.224.' ************** SAGE ***************** Host 70.224.66.226 (70.224.66.226) Time: Thu Jun 15 06:41:56 2006 Input: 434.85-60.72 Output: _3 = 374.13000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '68.97.2' ************** SAGE ***************** Host 68.97.218.135 (68.97.218.135) Time: Thu Jun 15 05:42:38 2006 Input: 199.99+799.99+9.95 Output: _3 = 1009.9300000000001 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.140.' ************** SAGE ***************** Host 80.140.246.148 (80.140.246.148) Time: Thu Jun 15 03:03:52 2006 Input: print gap('SymmetricGroup(7)') k=kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('cos(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) sin(x) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.11s, Wall time 0m1.38s). '80.140.' ************** SAGE ***************** Host 80.140.246.148 (80.140.246.148) Time: Thu Jun 15 03:02:58 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 0m1.74s). '65.2.82' ************** SAGE ***************** Host 65.2.82.103 (65.2.82.103) Time: Wed Jun 14 22:09:16 2006 Input: 70+76+80+85+90= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(70)+ZZ(76)+ZZ(80)+ZZ(85)+ZZ(90)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '220.237' ************** SAGE ***************** Host 220.237.13.152 (220.237.13.152) Time: Wed Jun 14 21:56:05 2006 Input: 1800-457 Output: _3 = 1343 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '220.237' ************** SAGE ***************** Host 220.237.13.152 (220.237.13.152) Time: Wed Jun 14 21:55:26 2006 Input: 12+1 Output: _3 = 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.6.85' ************** SAGE ***************** Host 68.6.85.186 (68.6.85.186) Time: Wed Jun 14 21:24:42 2006 Input: 941^2 + 995^2 + 1337^2 3*1105^2 Output: _3 = 3663075 _4 = 3663075 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.6.85' ************** SAGE ***************** Host 68.6.85.186 (68.6.85.186) Time: Wed Jun 14 21:24:36 2006 Input: 941^2 + 995^2 + 1337^2 1105^2 Output: _3 = 3663075 _4 = 1221025 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.6.85' ************** SAGE ***************** Host 68.6.85.186 (68.6.85.186) Time: Wed Jun 14 21:24:23 2006 Input: 941^2 + 995^2 + 1337^2 Output: _3 = 3663075 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.6.85' ************** SAGE ***************** Host 68.6.85.186 (68.6.85.186) Time: Wed Jun 14 21:23:40 2006 Input: 941^2 Output: _3 = 885481 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.6.85' ************** SAGE ***************** Host 68.6.85.186 (68.6.85.186) Time: Wed Jun 14 21:23:26 2006 Input: 12*12 Output: _3 = 144 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.6.85' ************** SAGE ***************** Host 68.6.85.186 (68.6.85.186) Time: Wed Jun 14 21:23:20 2006 Input: 12*12 Output: _3 = 144 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 18:15:03 2006 Input: R = IntegerModRing(13) a = R(3) / R(10) a Output: _5 = 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.186.' ************** SAGE ***************** Host 68.186.177.199 (68.186.177.199) Time: Wed Jun 14 17:56:37 2006 Input: x+d Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 17:42:50 2006 Input: gp.eval('ellinit([0,0,0,1,3])') Output: _3 = '[0, 0, 0, 1, 3, 0, 2, 12, -1, -48, -2592, -3952, 6912/247, [-1.2134116627622296341321313773814895266, 0.60670583138111481706606568869074476331 - 1.4506122491884415265154422033949975487*I, 0.60670583138111481706606568869074476331 + 1.4506122491884415265154422033949975487*I]~, 3.3267489191147559242273066185364999040, -1.6633744595573779621136533092682499520 + 1.0595398719023511525396455562830374875*I, -1.5400042256298363051462589149412608332 - 4.938832696680343946 E-39*I, 0.77000211281491815257312945747063041657 - 1.4348207963986882691131469590002095799*I, 3.5248231236101336475255063287766202982]' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 17:41:55 2006 Input: gp.eval('ellsea(ellinit([0,0,0,1,3]),5,0,0)') Output: _3 = ' *** unknown function or error in formal parameters: ellsea(\n *** ellinit([0,0,0,1,3])\n ^--------------------' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 17:27:00 2006 Input: E=gp('E=ellinit([0,0,0,Mod(4,11),Mod(4,11)])') print E Output: [0, 0, 0, Mod(4, 11), Mod(4, 11), 0, Mod(8, 11), Mod(5, 11), Mod(6, 11), Mod(6, 11), Mod(9, 11), Mod(3, 11), Mod(6, 11), 0, 0, 0, 0, 0, 0] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 17:26:26 2006 Input: E=gp('E=ellinit([0,0,0,Mod(4,11),Mod(4,11)])') Output: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 17:22:29 2006 Input: mygp = gp(script_subdirectory='cremona') mygp.read('ell_baby.gp') mygp.eval('E=ellinit([0,0,0,Mod(4,11),Mod(4,11)])') mygp.eval('order_point(E,[1,3])') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: __call__() got an unexpected keyword argument 'script_subdirectory' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'mygp' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'mygp' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'mygp' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 17:14:45 2006 Input: from sage.interfaces.gp import GP Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? ImportError: cannot import name GP Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.0.12' ************** SAGE ***************** Host 71.0.126.90 (71.0.126.90) Time: Wed Jun 14 17:14:03 2006 Input: from sage.interfaces.gp import GP mygp = GP(script_subdirectory='cremona') mygp.read('ell_baby.gp') mygp.eval('E=ellinit([0,0,0,Mod(4,11),Mod(4,11)])') mygp.eval('order_point(E,[1,3])') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? ImportError: cannot import name GP ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'GP' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'mygp' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'mygp' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'mygp' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.148.' ************** SAGE ***************** Host 69.148.185.154 (69.148.185.154) Time: Wed Jun 14 16:12:52 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.168.' ************** SAGE ***************** Host 69.168.139.188 (69.168.139.188) Time: Wed Jun 14 15:15:44 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.221.' ************** SAGE ***************** Host 69.221.132.195 (69.221.132.195) Time: Wed Jun 14 15:00:09 2006 Input: 123 then click [SAGE] or [PARI]!" Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(123) then click [SAGE] or [PARI]!" ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.221.' ************** SAGE ***************** Host 69.221.132.195 (69.221.132.195) Time: Wed Jun 14 15:00:04 2006 Input: 123 then click [SAGE] or [PARI]!" Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(123) then click [SAGE] or [PARI]!" ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.221.' ************** SAGE ***************** Host 69.221.132.195 (69.221.132.195) Time: Wed Jun 14 14:59:52 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '62.216.' ************** SAGE ***************** Host 62.216.13.120 (62.216.13.120) Time: Wed Jun 14 12:28:44 2006 Input: Mod(2003^83,400) print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: _3 = 27 Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.11s, Wall time 0m3.19s). '65.207.' ************** SAGE ***************** Host 65.207.240.10 (65.207.240.10) Time: Wed Jun 14 12:19:24 2006 Input: 3.482+8.51+16.324 Output: _3 = 28.316000000000003 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.181.' ************** SAGE ***************** Host 69.181.226.72 (69.181.226.72) Time: Wed Jun 14 12:18:45 2006 Input: (a-4)*(b+9)= Output: Errors: ------------------------------------------------------------ File "", line 1 (a-ZZ(4))*(b+ZZ(9))= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.181.' ************** SAGE ***************** Host 69.181.226.72 (69.181.226.72) Time: Wed Jun 14 12:18:00 2006 Input: (a-4)*(b+9)= Output: Errors: ------------------------------------------------------------ File "", line 1 (a-ZZ(4))*(b+ZZ(9))= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.181.' ************** SAGE ***************** Host 69.181.226.72 (69.181.226.72) Time: Wed Jun 14 12:17:16 2006 Input: (a-4)*(b+9) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.122' ************** SAGE ***************** Host 131.122.85.36 (131.122.85.36) Time: Wed Jun 14 11:31:35 2006 Input: 1234^1234 Output: _3 = 48184467781382543701667186039468406661059770237590274727670474872867568934066212120125133953550629961484891523453397766904292741725027019645437267985042784717562212455213265145073576158446772320656790521515384533153285495122560467130551068937365382642309092956110550380937116582823950116105467284919886128590021120491211422848352480419801389040432671756358444906225483817656922238136306002774235317628882806945193646888148396110892049431698226720231373322565553173892155104287328274243305595665720786784052656812367125148945799485499060066329553808509237311004983159894774937428752149540862686417306258598574741354798734543908917749037010338607293558391168741173229347205324015819180886782731783732875096308025479318621477536729557178851277749719374746640105570680704597488214460168162719035143192317718562628271959732323123847141889566569180545843169342410738692059982444746465750802950208574020617939255322870389259522352007286309084437654560750826135123276437360339867137662914521505757477954199067061537563338324827971696801982963501680500285473348151566773437596060788388816834765832275133438433921225741018069257650081651893412763515411183995641907421720698187041665296617342826301233824768831086783439617690340317902242011073693697825044232174730876417203502412742085342749470261962000902738749779130464597185957223365845266728739264096596554562810900489160285087089151363421121896616575007056439552166409310603897415780357105218172824045265515881762471530724320743935876223471758489130857861949736325801719247163392163145092104862730777665632878101469684676983177748845758819134783307275384116307332565581471205450219638137864387568253396048525319846029722597087368081615296780675739066314774724547006391416740049175425483980982557830287877118477623151223431159832554386188341940675670910313367805899112248803570997473057794418174867654496284922646065073429519234590181376956226715629044946363751414558194273837719521633486883608951520130473135848525228767697904589545099613408858934772678955107374792767376297292404355699412788887158297703071562694349633862471115563026643188726923335031942038276485070702440112289573556176109970627523424440589934713944485023114357294128614721641112627517540349238220184422744440362721622786094864017694819354467741507712876404983391152695521440373975295468154208059821687654408426427370963930322531227395895396783921477437273314199002421808939747302217153865116186806351980760710239964563379901328372415061933640351961853616394184876278706277214297206989695471340253866298118966493903627998818702216683968716037963198654625001668768390791943686432733286824675468274040171973201059002888713965690564527215419345100503188258777506372065686193271207542007415422109631813074486204833751677472525228744950194297089998305021078379670692156515896561318156670094486647187285361909788624195866103332184213842805429511053631902833667630273693526699848894312061513323511126288640008264849029913769883352116160378319937025276742846457501369721989078408607355941517261584972558483819760496804231338012065441081939772196754109683768808242484290927174759258520839532703010720373548957783991479615682174614219692539567777715560109326389875468292301222743028820913581258063284673412787274389056140124677069653486630962880192937633527058165237839406307326482619493415666561288774929091975803346338652727476500670928651812154306332363280019281880148780695662032811060669099701522746512853264775139655489705043573689252437465482977809592752059272522878781208311791893662451561020284928906469358115442883064671084339186725298116883304622860824362268174217031187839248915211550033719913619980315078125050194505282396757349145204835262063407488072671571413182055277457862261818131387963934879102237121895980689553963436483304289698371277085427432858554859126640569432899045006806292448711540736 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:25:39 2006 Input: diff(x^2,x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'diff' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:25:29 2006 Input: integrate(x^2,x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:25:12 2006 Input: int(x^2,x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 207, in __int__ TypeError: cannot coerce nonconstant polynomial to int Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:24:50 2006 Input: factor(x^3-1) Output: _3 = (x - 1) * (x^2 + x + 1) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:24:36 2006 Input: factor(x^3+x-1) Output: _3 = (x^3 + x - 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:24:18 2006 Input: factor(x^2-1) Output: _3 = (x - 1) * (x + 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.10s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:24:09 2006 Input: Factor(x^2-1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Factor' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:23:44 2006 Input: (x+1)*(x-1) Output: _3 = x^2 - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). '134.250' ************** SAGE ***************** Host 134.250.70.133 (134.250.70.133) Time: Wed Jun 14 11:23:21 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.244.' ************** SAGE ***************** Host 71.244.240.195 (71.244.240.195) Time: Wed Jun 14 10:58:29 2006 Input: 3200 times 12 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3200) times ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Wed Jun 14 10:56:52 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),17) mod(140*2^2,17) mod(47^(2*43+2),(17*43)) mod(47^(2*43+2),17) mod(2^(43+17-2*17), 17) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 _8 = 16 _9 = 256 _10 = 1 _11 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.143.' ************** SAGE ***************** Host 24.143.65.138 (24.143.65.138) Time: Wed Jun 14 10:52:51 2006 Input: def Test(): if 1 != 0: return True else: return False Test() Output: ...: ...: ...: ...: ...: _4 = True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.143.' ************** SAGE ***************** Host 24.143.65.138 (24.143.65.138) Time: Wed Jun 14 10:52:43 2006 Input: def Test(): if 1 != 0: return True else: return False Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Wed Jun 14 10:52:30 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),17) mod(140*2^2,17) mod(47^(2*43+2),(17*43)) mod(47^(2*43+2),43) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 _8 = 16 _9 = 256 _10 = 41 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Wed Jun 14 10:52:23 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),17) mod(140*2^2,17) mod(47^(2*43+2),(17*43)) mod(47^(2*43+2),17) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 _8 = 16 _9 = 256 _10 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.143.' ************** SAGE ***************** Host 24.143.65.138 (24.143.65.138) Time: Wed Jun 14 10:52:23 2006 Input: def Test(): if 1 != 0: return True else: return False Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.143.' ************** SAGE ***************** Host 24.143.65.138 (24.143.65.138) Time: Wed Jun 14 10:51:55 2006 Input: def Test(): if 1 != 0: return True else: return False Output: Errors: ------------------------------------------------------------ File "", line 4 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:42:29 2006 Input: def A(): return 7 a = 5 Output: Errors: ------------------------------------------------------------ File "", line 3 = ZZ(5) ^ SyntaxError: invalid syntax ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.12.' ************** SAGE ***************** Host 128.12.191.104 (128.12.191.104) Time: Wed Jun 14 10:41:56 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.23s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:31:21 2006 Input: def Test(): if 1 != 0: return True Test() Output: ...: ...: ...: _4 = True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:31:14 2006 Input: def Test(): if 1 != 0: return True Output: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:31:09 2006 Input: def Test(): if 1 != 0: return True a=5 Output: Errors: ------------------------------------------------------------ File "", line 4 =ZZ(5) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:31:01 2006 Input: def Test(): if 1 != 0: return True Test Output: Errors: ------------------------------------------------------------ File "", line 4 st ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:30:51 2006 Input: def Test(): if 1 != 0: return True Test() Output: Errors: ------------------------------------------------------------ File "", line 4 () ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:30:47 2006 Input: def Test(): if 1 != 0: return True Test() Output: Errors: ------------------------------------------------------------ File "", line 4 () ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:30:34 2006 Input: def Test(): if 1 != 0: return True Test() Output: Errors: ------------------------------------------------------------ File "", line 4 () ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:28:39 2006 Input: def Test(): if 1 != 0: return True else: return False Test() Output: Errors: ------------------------------------------------------------ File "", line 4 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Test' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:24:07 2006 Input: def Test(): return 7 a = 2 if 1 != 0: a = 5 else: a = 2 Test() Output: Errors: ------------------------------------------------------------ File "", line 3 = ZZ(2) ^ SyntaxError: invalid syntax ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 3) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Test' is not defined ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:23:51 2006 Input: def Test(): return 7 if 1 != 0: a = 5 else: a = 2 Test() Output: Errors: ------------------------------------------------------------ File "", line 3 ZZ(0): ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 else: ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Test' is not defined ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:23:34 2006 Input: def Test(): if 1 != 0: a = 5 else: a = 2 Test() Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Wed Jun 14 10:20:28 2006 Input: def Test(): if 1 != 0: return True else: return False Test() Output: Errors: ------------------------------------------------------------ File "", line 4 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Test' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Wed Jun 14 09:50:51 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),17) mod(140*2^2,17) mod(47^(2*43+2),(17*43)) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 _8 = 16 _9 = 256 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Wed Jun 14 09:50:26 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),17) mod(140*2^2,17) mod(171^(2*43+2),(17*43)) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 _8 = 16 _9 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '151.25.' ************** SAGE ***************** Host 151.25.107.173 (151.25.107.173) Time: Wed Jun 14 08:39:19 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.52s). '137.189' ************** SAGE ***************** Host 137.189.4.1 (137.189.4.1) Time: Wed Jun 14 05:41:01 2006 Input: K := GF(4); C := PrimitivePolynomial(K, 6); C := C * Coefficient(C,0)^-1; C; S := LFSRSequence (C, [K| 1,1,1,1,1,1], 4^6-1); S[1..4^6-2*4^5]; Output: Errors: ------------------------------------------------------------ File "", line 1 K := GF(ZZ(4)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 C := PrimitivePolynomial(K, ZZ(6)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 C := C * Coefficient(C,ZZ(0))**-ZZ(1); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 S := LFSRSequence (C, [K| ZZ(1),ZZ(1),ZZ(1),ZZ(1),ZZ(1),ZZ(1)], ZZ(4)**ZZ(6)-ZZ(1)); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 S[1..4**6-2*4**5]; ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:57:32 2006 Input: 7-13/6 Output: _3 = 29/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:57:13 2006 Input: (7-1/2)/3 Output: _3 = 13/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:55:37 2006 Input: 7-13/16 Output: _3 = 99/16 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:52:25 2006 Input: (7-1/2)/3 Output: _3 = 13/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:50:42 2006 Input: (15-1/2)/3 Output: _3 = 29/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:47:40 2006 Input: f = (x - 11/10)^2 f(0) f(1) f(2) f(3) 0 81/100 361/100-81/100 81/200 (14/5-81/100)/2 (199/200 - 81/200)/3 60/300 Output: _4 = 121/100 _5 = 1/100 _6 = 81/100 _7 = 361/100 _8 = 0 _9 = 81/100 _10 = 14/5 _11 = 81/200 _12 = 199/200 _13 = 59/300 _14 = 1/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:47:27 2006 Input: f = (x - 11/10)^2 f(0) f(1) f(2) f(3) 0 81/100 361/100-81/100 81/200 (14/5-81/100)/2 (199/200 - 81/200)/3 Output: _4 = 121/100 _5 = 1/100 _6 = 81/100 _7 = 361/100 _8 = 0 _9 = 81/100 _10 = 14/5 _11 = 81/200 _12 = 199/200 _13 = 59/300 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:47:13 2006 Input: f = (x - 11/10)^2 f(0) f(1) f(2) f(3) 0 81/100 361/100-81/100 81/200 (14/5-81/100)/2 Output: _4 = 121/100 _5 = 1/100 _6 = 81/100 _7 = 361/100 _8 = 0 _9 = 81/100 _10 = 14/5 _11 = 81/200 _12 = 199/200 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:46:51 2006 Input: f = (x - 11/10)^2 f(0) f(1) f(2) f(3) 0 81/100 361/100-81/100 Output: _4 = 121/100 _5 = 1/100 _6 = 81/100 _7 = 361/100 _8 = 0 _9 = 81/100 _10 = 14/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:46:11 2006 Input: f = (x - 11/10)^2 f(0) f(1) f(2) f(3) 81/100 (361/100-81/100) (841/100-361/100) (14/5-81/100)/2 (24/5-14/5)/2 Output: _4 = 121/100 _5 = 1/100 _6 = 81/100 _7 = 361/100 _8 = 81/100 _9 = 14/5 _10 = 24/5 _11 = 199/200 _12 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:46:06 2006 Input: f = (x - 1/10)^2 f(0) f(1) f(2) f(3) 81/100 (361/100-81/100) (841/100-361/100) (14/5-81/100)/2 (24/5-14/5)/2 Output: _4 = 1/100 _5 = 81/100 _6 = 361/100 _7 = 841/100 _8 = 81/100 _9 = 14/5 _10 = 24/5 _11 = 199/200 _12 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:45:38 2006 Input: f = (x - 1/10)^2 f(0) f(1) f(2) f(3) 81/100 (361/100-81/100) (841/100-361/100) (14/5-81/100)/2 (24/5-14/5)/2 Output: _4 = 1/100 _5 = 81/100 _6 = 361/100 _7 = 841/100 _8 = 81/100 _9 = 14/5 _10 = 24/5 _11 = 199/200 _12 = 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:45:17 2006 Input: f = (x - 1/10)^2 f(0) f(1) f(2) f(3) 81/100 (361/100-81/100) (841/100-361/100) Output: _4 = 1/100 _5 = 81/100 _6 = 361/100 _7 = 841/100 _8 = 81/100 _9 = 14/5 _10 = 24/5 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:44:39 2006 Input: f = (x - 1/10)^2 f(0) f(1) f(2) f(3) 0 0 1/4 0 1/8 1/24 Output: _4 = 1/100 _5 = 81/100 _6 = 361/100 _7 = 841/100 _8 = 0 _9 = 0 _10 = 1/4 _11 = 0 _12 = 1/8 _13 = 1/24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:44:36 2006 Input: f = (x - 1/0)^2 f(0) f(1) f(2) f(3) 0 0 1/4 0 1/8 1/24 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 554, in integer.Integer.__div__ File "integer.pyx", line 536, in integer.Integer.__div_ File "rational.pyx", line 498, in rational.Rational.__div__ File "rational.pyx", line 488, in rational.Rational.__div_ ZeroDivisionError: Rational division by zero ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined _8 = 0 _9 = 0 _10 = 1/4 _11 = 0 _12 = 1/8 _13 = 1/24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:43:48 2006 Input: f = (x - 5/2)^2 f(0) f(1) f(2) f(3) 0 0 49/16 Output: _4 = 25/4 _5 = 9/4 _6 = 1/4 _7 = 1/4 _8 = 0 _9 = 0 _10 = 49/16 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:43:16 2006 Input: f = (x - 5/4)^2 f(0) f(1) f(2) f(3) Output: _4 = 25/16 _5 = 1/16 _6 = 9/16 _7 = 49/16 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:42:07 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) 25/4-9/4 (2-1/4)/2 (1-7/8)/3 Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 _8 = 4 _9 = 7/8 _10 = 1/24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:40:29 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) 25/4-9/4 (2-1/4)/2 Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 _8 = 4 _9 = 7/8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:40:16 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) 25/4-9/4 Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 _8 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:39:36 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:39:36 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:38:55 2006 Input: f = (x - 3/2)^2 f(0) f(1) f(2) f(3) 0 1/4 9/4-1/4 1/8 (2-1/4)/2 (7/8-1/8)/3 Output: _4 = 9/4 _5 = 1/4 _6 = 1/4 _7 = 9/4 _8 = 0 _9 = 1/4 _10 = 2 _11 = 1/8 _12 = 7/8 _13 = 1/4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:38:37 2006 Input: f = (x - 3/2)^2 f(0) f(1) f(2) f(3) 0 1/4 9/4-1/4 1/8 (2-1/4)/2 Output: _4 = 9/4 _5 = 1/4 _6 = 1/4 _7 = 9/4 _8 = 0 _9 = 1/4 _10 = 2 _11 = 1/8 _12 = 7/8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:38:23 2006 Input: f = (x - 3/2)^2 f(0) f(1) f(2) f(3) 0 1/4 9/4-1/4 Output: _4 = 9/4 _5 = 1/4 _6 = 1/4 _7 = 9/4 _8 = 0 _9 = 1/4 _10 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:38:00 2006 Input: f = (x - 3/2)^2 f(0) f(1) f(2) f(3) Output: _4 = 9/4 _5 = 1/4 _6 = 1/4 _7 = 9/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:35:59 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) 25/4-9/4 9/4-1/4 1/4 (1/4-2)/2 (2-4)/2 (-1+7/8)/3 Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 _8 = 4 _9 = 2 _10 = 1/4 _11 = -7/8 _12 = -1 _13 = -1/24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:35:48 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) 25/4-9/4 9/4-1/4 1/4 (1/4-2)/2 (2-4)/2 Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 _8 = 4 _9 = 2 _10 = 1/4 _11 = -7/8 _12 = -1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:35:35 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) 25/4-9/4 9/4-1/4 1/4 Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 _8 = 4 _9 = 2 _10 = 1/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:33:07 2006 Input: f = (x - 1/2)^2 f(0) f(1) f(2) f(3) Output: _4 = 1/4 _5 = 1/4 _6 = 9/4 _7 = 25/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:32:41 2006 Input: f = (x - 1/4)^2 f(0) f(1) f(2) f(3) (121/16 - 49/16) (49/16-9/16) (9/16-1/16) (1/2-5/2)/2 (5/2-9/2)/2 Output: _4 = 1/16 _5 = 9/16 _6 = 49/16 _7 = 121/16 _8 = 9/2 _9 = 5/2 _10 = 1/2 _11 = -1 _12 = -1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:32:28 2006 Input: f = (x - 1/4)^2 f(0) f(1) f(2) f(3) (121/16 - 49/16) (49/16-9/16) (9/16-1/16) 1/2-5/2 5/2-9/2 Output: _4 = 1/16 _5 = 9/16 _6 = 49/16 _7 = 121/16 _8 = 9/2 _9 = 5/2 _10 = 1/2 _11 = -2 _12 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:32:16 2006 Input: f = (x - 1/4)^2 f(0) f(1) f(2) f(3) (121/16 - 49/16) (49/16-9/16) (9/16-1/16) Output: _4 = 1/16 _5 = 9/16 _6 = 49/16 _7 = 121/16 _8 = 9/2 _9 = 5/2 _10 = 1/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:31:31 2006 Input: f = (x - 1/4)^2 f(0) f(1) f(2) f(3) Output: _4 = 1/16 _5 = 9/16 _6 = 49/16 _7 = 121/16 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:19:46 2006 Input: (2-x)^2-(1-x)^2 Output: _3 = -2*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:19:28 2006 Input: (3-x)^2-(2-x)^2 Output: _3 = -2*x + 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Tue Jun 13 23:18:53 2006 Input: (1-x)^2-(-x)^2 Output: _3 = -2*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.197' ************** SAGE ***************** Host 134.197.111.161 (134.197.111.161) Time: Tue Jun 13 22:40:51 2006 Input: 4*6-8(2m-3) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)*ZZ(6)-ZZ(8)(ZZ(2)m-ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:11:06 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,400000): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 79 Number of highly composite numbers: 33 Exiting SAGE (CPU time 0m15.79s, Wall time 0m15.79s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:10:50 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,400000): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 79 Number of highly composite numbers: 33 Exiting SAGE (CPU time 0m15.73s, Wall time 0m15.79s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:08:47 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,400000): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 79 Number of highly composite numbers: 33 Exiting SAGE (CPU time 0m15.93s, Wall time 0m29.78s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:08:44 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,400000): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 79 Number of highly composite numbers: 33 Exiting SAGE (CPU time 0m15.97s, Wall time 0m32.18s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:08:28 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,400000): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 79 Number of highly composite numbers: 33 Exiting SAGE (CPU time 0m15.91s, Wall time 0m28.50s). '70.136.' ************** SAGE ***************** Host 70.136.37.194 (70.136.37.194) Time: Tue Jun 13 22:03:46 2006 Input: 6776(78) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '70.136.' ************** SAGE ***************** Host 70.136.37.194 (70.136.37.194) Time: Tue Jun 13 22:03:30 2006 Input: sdfgsdgxcvxcvxc Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'sdfgsdgxcvxcvxc' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:01:47 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100000): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 60 Number of highly composite numbers: 28 Exiting SAGE (CPU time 0m3.96s, Wall time 0m3.96s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:01:02 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,50000): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 53 Number of highly composite numbers: 25 Exiting SAGE (CPU time 0m1.94s, Wall time 0m1.94s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 22:00:31 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print "Number of minimal numbers:" , len(minimal) print "Number of highly composite numbers:" , len(highly_composite) Output: ....: ....: ....: ....: ....: ....: ....: ....: Number of minimal numbers: 11 Number of highly composite numbers: 8 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:59:43 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): div_range = div_range | set([d]) minimal.append(a) print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: [1, 2, 4, 6, 12, 16, 24, 36, 48, 60, 64] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:59:15 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if not (d in div_range): print "number ", d, " in range" div_range = div_range | set([d]) print div_range minimal.append(a) print div_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: number 1 in range set([1]) number 2 in range set([1, 2]) number 3 in range set([1, 2, 3]) number 4 in range set([1, 2, 3, 4]) number 6 in range set([1, 2, 3, 4, 6]) number 5 in range set([1, 2, 3, 4, 5, 6]) number 8 in range set([1, 2, 3, 4, 5, 6, 8]) number 9 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 10 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 12 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10, 12]) number 7 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [1, 2, 4, 6, 12, 16, 24, 36, 48, 60, 64] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:56:40 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in div_range): print "number ", d, " in range" div_range = div_range | set([d]) print div_range minimal.append(a) print div_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: number 1 in range set([1]) number 2 in range set([1, 2]) number 2 in range set([1, 2]) number 3 in range set([1, 2, 3]) number 2 in range set([1, 2, 3]) number 4 in range set([1, 2, 3, 4]) number 2 in range set([1, 2, 3, 4]) number 4 in range set([1, 2, 3, 4]) number 3 in range set([1, 2, 3, 4]) number 4 in range set([1, 2, 3, 4]) number 2 in range set([1, 2, 3, 4]) number 6 in range set([1, 2, 3, 4, 6]) number 2 in range set([1, 2, 3, 4, 6]) number 4 in range set([1, 2, 3, 4, 6]) number 4 in range set([1, 2, 3, 4, 6]) number 5 in range set([1, 2, 3, 4, 5, 6]) number 2 in range set([1, 2, 3, 4, 5, 6]) number 6 in range set([1, 2, 3, 4, 5, 6]) number 2 in range set([1, 2, 3, 4, 5, 6]) number 6 in range set([1, 2, 3, 4, 5, 6]) number 4 in range set([1, 2, 3, 4, 5, 6]) number 4 in range set([1, 2, 3, 4, 5, 6]) number 2 in range set([1, 2, 3, 4, 5, 6]) number 8 in range set([1, 2, 3, 4, 5, 6, 8]) number 3 in range set([1, 2, 3, 4, 5, 6, 8]) number 4 in range set([1, 2, 3, 4, 5, 6, 8]) number 4 in range set([1, 2, 3, 4, 5, 6, 8]) number 6 in range set([1, 2, 3, 4, 5, 6, 8]) number 2 in range set([1, 2, 3, 4, 5, 6, 8]) number 8 in range set([1, 2, 3, 4, 5, 6, 8]) number 2 in range set([1, 2, 3, 4, 5, 6, 8]) number 6 in range set([1, 2, 3, 4, 5, 6, 8]) number 4 in range set([1, 2, 3, 4, 5, 6, 8]) number 4 in range set([1, 2, 3, 4, 5, 6, 8]) number 4 in range set([1, 2, 3, 4, 5, 6, 8]) number 9 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 2 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 8 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 2 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 8 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 2 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 6 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 6 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 2 in range set([1, 2, 3, 4, 5, 6, 8, 9]) number 10 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 3 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 6 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 6 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 2 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 8 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 8 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 2 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10]) number 12 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10, 12]) number 6 in range set([1, 2, 3, 4, 5, 6, 8, 9, 10, 12]) number 7 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 8 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 6 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 8 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 12 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 6 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 6 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 8 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 10 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 5 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 12 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 8 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 12 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 6 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 4 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 12 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 2 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 6 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) number 6 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:56:14 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in div_range): print "number ", d, " in range" div_range = div_range | set([d]) minimal.append(a) print div_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: ....: number 1 in range number 2 in range number 2 in range number 3 in range number 2 in range number 4 in range number 2 in range number 4 in range number 3 in range number 4 in range number 2 in range number 6 in range number 2 in range number 4 in range number 4 in range number 5 in range number 2 in range number 6 in range number 2 in range number 6 in range number 4 in range number 4 in range number 2 in range number 8 in range number 3 in range number 4 in range number 4 in range number 6 in range number 2 in range number 8 in range number 2 in range number 6 in range number 4 in range number 4 in range number 4 in range number 9 in range number 2 in range number 4 in range number 4 in range number 8 in range number 2 in range number 8 in range number 2 in range number 6 in range number 6 in range number 4 in range number 2 in range number 10 in range number 3 in range number 6 in range number 4 in range number 6 in range number 2 in range number 8 in range number 4 in range number 8 in range number 4 in range number 4 in range number 2 in range number 12 in range number 2 in range number 4 in range number 6 in range number 7 in range number 4 in range number 8 in range number 2 in range number 6 in range number 4 in range number 8 in range number 2 in range number 12 in range number 2 in range number 4 in range number 6 in range number 6 in range number 4 in range number 8 in range number 2 in range number 10 in range number 5 in range number 4 in range number 2 in range number 12 in range number 4 in range number 4 in range number 4 in range number 8 in range number 2 in range number 12 in range number 4 in range number 6 in range number 4 in range number 4 in range number 4 in range number 12 in range number 2 in range number 6 in range number 6 in range set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:54:05 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in div_range): div_range = div_range | set([d]) minimal.append(a) print div_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:53:26 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in div_range): div_range = div_range | set([d]) minimal.append(a) print div_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:51:41 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in div_range): div_range = div_range | set([d]) minimal.append(a) print div_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:51:23 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] div_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in div_range): div_range = div_range | set([d]) #minimal.append(a) print div_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:50:30 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in a_range): a_range = a_range | set([d]) #minimal.append(a) print a_range print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:50:15 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in a_range): a_range = a_range | set([d]) #minimal.append(a) print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: [] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:49:20 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in a_range): a_range = a_range | set([d]) minimal.append(a) print minimal print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: ....: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:49:07 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in a_range): a_range = a_range | set([d]) minimal.append(a) print minimal print highly_composite Output: Errors: ------------------------------------------------------------ File "", line 9 print minimal ^ SyntaxError: invalid syntax ....: ....: ....: ....: ....: ....: ....: ....: [] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:48:34 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in a_range): a_range = a_range | set([a]) print a_range print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]) [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:47:37 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) m = d if ~(d in a_range): a_range = a_range | set([d]) print a_range print highly_composite Output: ....: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [2, 4, 6, 12, 24, 36, 48, 60] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:47:00 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) if ~(d in a_range): a_range = a_range | set([d]) print a_range print highly_composite Output: ....: ....: ....: ....: ....: ....: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]) [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:46:37 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(1,100): d = number_of_divisors(a) if d > m : highly_composite.append(a) if ~(d in a_range): a_range = a_range | set([d]) Output: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:46:25 2006 Input: number_of_divisors(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 1867, in number_of_divisors File "gen.pyx", line 5595, in gen._pari_trap PariError: (8) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:46:03 2006 Input: for a in range(100): d = number_of_divisors(a) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 2, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 1867, in number_of_divisors File "gen.pyx", line 5595, in gen._pari_trap PariError: (8) ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:45:48 2006 Input: number_of_divisors(15) Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:45:45 2006 Input: number_of_divisors(15) Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:45:00 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) #will need to keep track of the range of A(n) found so #far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(100): d = number_of_divisors(a) if d > m : highly_composite.append(a) if ~(d in a_range): a_range = a_range | set([d]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 2, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 1867, in number_of_divisors File "gen.pyx", line 5595, in gen._pari_trap PariError: (8) ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:44:47 2006 Input: #produces lists of highly composite numbers #and minimal numbers (range of A(k)) %will need to keep track of the range of A(n) found so %far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(100): d = number_of_divisors(a) if d > m : highly_composite.append(a) if ~(d in a_range): a_range = a_range | set([d]) Output: Errors: ERROR: Magic function `will` not found. ERROR: Magic function `far,` not found. ------------------------------------------------------------ Traceback (most recent call last): File "", line 2, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 1867, in number_of_divisors File "gen.pyx", line 5595, in gen._pari_trap PariError: (8) ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.212' ************** SAGE ***************** Host 131.212.148.47 (131.212.148.47) Time: Tue Jun 13 21:44:31 2006 Input: %produces lists of highly composite numbers %and minimal numbers (range of A(k)) %will need to keep track of the range of A(n) found so %far, since A(n)=minimal number with n divisors m = 1 highly_composite = [] minimal = [] a_range = set([]) for a in range(100): d = number_of_divisors(a) if d > m : highly_composite.append(a) if ~(d in a_range): a_range = a_range | set([d]) Output: Errors: ERROR: Magic function `produces` not found. ERROR: Magic function `and` not found. ERROR: Magic function `will` not found. ERROR: Magic function `far,` not found. ------------------------------------------------------------ Traceback (most recent call last): File "", line 2, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 1867, in number_of_divisors File "gen.pyx", line 5595, in gen._pari_trap PariError: (8) ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:11:24 2006 Input: maxima('e^sqrt(t)').diff('t') maxima('t-log(t^2)/log(e)').diff('t') maxima('1-log(1)') e^sqrt(1)*log(e)/(2*sqrt(1)) 1-log(1^2)/log(e) Output: _3 = e^sqrt(t)*log(e)/(2*sqrt(t)) _4 = 1 - 2/(log(e)*t) _5 = 1 _6 = (((e^1)*1.0000000000000000)/2) _7 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.42s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:11:14 2006 Input: maxima('e^sqrt(t)').diff('t') maxima('t-log(t^2)/log(e)').diff('t') maxima('1-ln(1)') e^sqrt(1)*log(e)/(2*sqrt(1)) 1-log(1^2)/log(e) Output: _3 = e^sqrt(t)*log(e)/(2*sqrt(t)) _4 = 1 - 2/(log(e)*t) _5 = 1 - ln(1) _6 = (((e^1)*1.0000000000000000)/2) _7 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.46s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:08:26 2006 Input: maxima('e^sqrt(t)').diff('t') maxima('t-log(t^2)/log(e)').diff('t') e^sqrt(1)*log(e)/(2*sqrt(1)) 1-log(1^2)/log(e) 1-ln(1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ln' is not defined _3 = e^sqrt(t)*log(e)/(2*sqrt(t)) _4 = 1 - 2/(log(e)*t) _5 = (((e^1)*1.0000000000000000)/2) _6 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.46s). '70.32.1' ************** SAGE ***************** Host 70.32.102.215 (70.32.102.215) Time: Tue Jun 13 21:07:44 2006 Input: (2/5)^2 / (1/5) + (2-4) / (8+2) x (-3) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(2)/ZZ(5))**ZZ(2) / (ZZ(1)/ZZ(5)) + (ZZ(2)-ZZ(4)) / (ZZ(8)+ZZ(2)) x (-ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.32.1' ************** SAGE ***************** Host 70.32.102.215 (70.32.102.215) Time: Tue Jun 13 21:07:35 2006 Input: (2/5)^2 / (1/5) + (2-4) / (8+2) x (-3) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(2)/ZZ(5))**ZZ(2) / (ZZ(1)/ZZ(5)) + (ZZ(2)-ZZ(4)) / (ZZ(8)+ZZ(2)) x (-ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:07:22 2006 Input: maxima('e^sqrt(t)').diff('t') maxima('t-log(t^2)/log(e)').diff('t') e^sqrt(1)*log(e)/(2*sqrt(1)) 1-log(1^2)/log(e) Output: _3 = e^sqrt(t)*log(e)/(2*sqrt(t)) _4 = 1 - 2/(log(e)*t) _5 = (((e^1)*1.0000000000000000)/2) _6 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.46s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:07:04 2006 Input: maxima('e^sqrt(t)').diff('t') maxima('t-log(t^2)/log(e)').diff('t') 1-log(1^2)/log(e) Output: _3 = e^sqrt(t)*log(e)/(2*sqrt(t)) _4 = 1 - 2/(log(e)*t) _5 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.47s). '70.32.1' ************** SAGE ***************** Host 70.32.102.215 (70.32.102.215) Time: Tue Jun 13 21:06:14 2006 Input: (2/5)^2 / (1/5) + (2-4) / (8+2) x (-3) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(2)/ZZ(5))**ZZ(2) / (ZZ(1)/ZZ(5)) + (ZZ(2)-ZZ(4)) / (ZZ(8)+ZZ(2)) x (-ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:00:52 2006 Input: maxima('t-log(t^2)/log(e)').diff('t') Output: _3 = 1 - 2/(log(e)*t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:00:39 2006 Input: maxima('t-log(t^2)').diff('t') Output: _3 = 1 - 2/t Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.35s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 21:00:21 2006 Input: maxima('t-ln(t^2)').diff('t') Output: _3 = 1 - 'diff(ln(t^2),t,1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.35s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 20:59:16 2006 Input: maxima('e^(sqrt(t))').diff('t') Output: _3 = e^sqrt(t)*log(e)/(2*sqrt(t)) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.33s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 20:58:53 2006 Input: maxima('x^(sqrt(t))').diff('t') Output: _3 = x^sqrt(t)*log(x)/(2*sqrt(t)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.40s). '68.19.4' ************** SAGE ***************** Host 68.19.43.56 (68.19.43.56) Time: Tue Jun 13 20:05:11 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.96.2' ************** SAGE ***************** Host 68.96.253.224 (68.96.253.224) Time: Tue Jun 13 19:04:26 2006 Input: 2/3(r-2)-1/2(r+4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'r' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.96.2' ************** SAGE ***************** Host 68.96.253.224 (68.96.253.224) Time: Tue Jun 13 19:04:21 2006 Input: 2/3(r-2)-1/2(r+4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'r' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 19:00:40 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),17) mod(140*2^2,17) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 _8 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 19:00:06 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),17) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:59:25 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 mod(140*2^(2*17),43*17) Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 _7 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:58:03 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) 17*43 Output: _3 = 16 _4 = 4 _5 = 140 _6 = 731 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:57:38 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17), (17*43)) Output: _3 = 16 _4 = 4 _5 = 140 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:57:33 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17)), (17*43)) Output: Errors: ------------------------------------------------------------ File "", line 1 mod(ZZ(2)**(ZZ(43)-ZZ(17))), (ZZ(17)*ZZ(43))) ^ SyntaxError: invalid syntax _3 = 16 _4 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:57:27 2006 Input: mod(2^(17+43), (43*17)) 16/4 mod(2^(43-17)), (17*43))) Output: Errors: ------------------------------------------------------------ File "", line 1 mod(ZZ(2)**(ZZ(43)-ZZ(17))), (ZZ(17)*ZZ(43)))) ^ SyntaxError: invalid syntax _3 = 16 _4 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:57:14 2006 Input: mod(2^(17+43), (43*17)) 16/4 2^(43-17)) mod (17*43)) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)**(ZZ(43)-ZZ(17))) mod (ZZ(17)*ZZ(43))) ^ SyntaxError: invalid syntax _3 = 16 _4 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:56:38 2006 Input: mod(2^(17+43), (43*17)) 16/4 Output: _3 = 16 _4 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:56:31 2006 Input: mod(2^(17+43), (43*17)) 1870/4 Output: _3 = 16 _4 = 935/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:56:17 2006 Input: mod(2^(13+43), (43*13)) 1870/4 Output: _3 = 87 _4 = 935/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:56:02 2006 Input: mod(2^(89+43), (43*89)) 1870/4 Output: _3 = 1870 _4 = 935/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:55:56 2006 Input: mod(2^(89+43), (43*89))1870/4 Output: Errors: ------------------------------------------------------------ File "", line 1 mod(ZZ(2)**(ZZ(89)+ZZ(43)), (ZZ(43)*ZZ(89)))ZZ(1870)/ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:55:46 2006 Input: mod(2^(89+43), (43*89)) 1454/4 Output: _3 = 1870 _4 = 727/2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:55:35 2006 Input: mod(2^(79+43), (43*79)) 1454/4 Output: _3 = 1454 _4 = 727/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:55:27 2006 Input: mod(2^(79+43), (43*79)) Output: _3 = 1454 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:54:57 2006 Input: mod(2^(73+43), (43*73)) Output: _3 = 2811 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:40:40 2006 Input: mod(2^((73-43)*(73-43)), (73*43)) mod(1607^(2*43), 43) mod(1607^2, 43) Output: _3 = 1607 _4 = 41 _5 = 41 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:40:24 2006 Input: mod(2^((73-43)*(73-43)), (73*43)) mod(1607^(2*43), 43) Output: _3 = 1607 _4 = 41 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:40:13 2006 Input: mod(2^((73-43)*(73-43)), (73*43)) 1607^(2*43) mod 43 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1607)**(ZZ(2)*ZZ(43)) mod ZZ(43) ^ SyntaxError: invalid syntax _3 = 1607 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:39:53 2006 Input: mod(2^((73-43)*(73-43)), (73*43)) Output: _3 = 1607 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:39:21 2006 Input: mod(2^((73-43)*(73+43)), 43) Output: _3 = 41 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:39:07 2006 Input: 2^((73-43)*(73+43)) mod 43 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)**((ZZ(73)-ZZ(43))*(ZZ(73)+ZZ(43))) mod ZZ(43) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:36:45 2006 Input: mod((43*149+1),(149-43)) 149*43 Output: _3 = 48 _4 = 6407 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:36:35 2006 Input: mod((43*149+1),(149-43)) factor(149*43) Output: _3 = 48 _4 = 43 * 149 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:36:18 2006 Input: mod((43*149+1),(149-43)) factor(149) Output: _3 = 48 _4 = 149 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:36:10 2006 Input: mod((43*149-1),(149-43)) factor(149) Output: _3 = 46 _4 = 149 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:35:59 2006 Input: mod((43*47-1),(47-43)) factor(149) Output: _3 = 0 _4 = 149 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:35:51 2006 Input: mod((43*47-1),(47-43)) factor(147) Output: _3 = 0 _4 = 3 * 7^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:35:43 2006 Input: mod((43*47-1),(47-43)) factor(255) Output: _3 = 0 _4 = 3 * 5 * 17 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:35:08 2006 Input: mod((43*47-1),(47-43)) 37*73 Output: _3 = 0 _4 = 2701 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:34:54 2006 Input: mod((37*73-1),(73-37)) 37*73 Output: _3 = 0 _4 = 2701 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:34:50 2006 Input: mod((37*73+1),(73-37)) 37*73 Output: _3 = 2 _4 = 2701 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:34:42 2006 Input: mod((37*73),(73-37)) 37*73 Output: _3 = 1 _4 = 2701 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:34:35 2006 Input: mod((37*73),36) 37*73 Output: _3 = 1 _4 = 2701 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:34:02 2006 Input: mod(2702,36) 37*73 Output: _3 = 2 _4 = 2701 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:33:45 2006 Input: mod(2702,37) 37*73 Output: _3 = 1 _4 = 2701 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:33:28 2006 Input: 2702 mod 37 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2702) mod ZZ(37) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:33:16 2006 Input: 2702/37 Output: _3 = 2702/37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Tue Jun 13 18:33:02 2006 Input: 37*73 Output: _3 = 2701 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:24:42 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(PolynomialRing(QQ, 'x'),7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) pi = x N*Matrix(PolynomialRing(QQ, 'x'),7,1,[0, 2*x, 8-4*x, -32+8*x, -8*x^2-16*x+96, 16*x^2+16*x-128, -32*x*x-32*x+192]) N*Matrix(PolynomialRing(QQ, 'x'),7,1,[-1,0,4,4*pi-16,48-16*pi,16*pi-48,0]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: _13 = [ 0] [ 1/3*x] [-8/15*x^2 - 8/15*x + 88/15] [ 4/5*x^2 + 3/5*x - 2] [ -8/15*x^2 - 8/15*x + 24/5] [ 1/3*x + 4/3] [ 0] _14 = [ -1] [ -1] [-8/15*x + 1] [ 0] [ 8/15*x - 1] [ 1] [ 1] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:22:30 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(PolynomialRing(QQ, 'x'),7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) pi = x N*Matrix(PolynomialRing(QQ, 'x'),7,1,[0, 2*x, 8-4*x, -32+8*x, -8*x^2-16*x+96, 16*x^2+16*x-128, -32*x*x-32*x+192]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: _13 = [ 0] [ 1/3*x] [-8/15*x^2 - 8/15*x + 88/15] [ 4/5*x^2 + 3/5*x - 2] [ -8/15*x^2 - 8/15*x + 24/5] [ 1/3*x + 4/3] [ 0] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:22:23 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(PolynomialRing(QQ, 'x'),7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) x = pi N*Matrix(PolynomialRing(QQ, 'x'),7,1,[0, 2*x, 8-4*x, -32+8*x, -8*x^2-16*x+96, 16*x^2+16*x-128, -32*x*x-32*x+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3690, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3232, in __init__ TypeError: Unable to coerce elements of entries (=[0, 6.2831853071795862, -4.5663706143591725, -6.8672587712816551, -33.222317666151554, 80.179152874866418, -224.35830574973284]) to Univariate Polynomial Ring in x over Rational Field ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:22:10 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(PolynomialRing(QQ, 'x'),7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) pi = x N*Matrix(PolynomialRing(QQ, 'x'),7,1,[0, 2*x, 8-4*x, -32+8*x, -8*x^2-16*x+96, 16*x^2+16*x-128, -32*x*x-32*x+192]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: _13 = [ 0] [ 1/3*x] [-8/15*x^2 - 8/15*x + 88/15] [ 4/5*x^2 + 3/5*x - 2] [ -8/15*x^2 - 8/15*x + 24/5] [ 1/3*x + 4/3] [ 0] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:21:40 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(PolynomialRing(QQ, 'x'),7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) pi = x N*Matrix(RR,7,1,[0, 2*x, 8-4*x, -32+8*x, -8*x^2-16*x+96, 16*x^2+16*x-128, -32*x*x-32*x+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3703, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3232, in __init__ TypeError: Unable to coerce elements of entries (=[0, 2*x, -4*x + 8, 8*x - 32, -8*x^2 - 16*x + 96, 16*x^2 + 16*x - 128, -32*x^2 - 32*x + 192]) to Real Field with 53 bits of precision ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:20:49 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(PolynomialRing(QQ, 'x'),7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) pi = x N*Matrix(RR,7,1,[0, 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi*pi-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3703, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3232, in __init__ TypeError: Unable to coerce elements of entries (=[0, 2*x, -4*x + 8, 8*x - 32, -8*x^2 - 16*x + 96, 16*x^2 + 16*x - 128, -32*x^2 - 32*x + 192]) to Real Field with 53 bits of precision ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:20:39 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(PolynomialRing(QQ, 'x'),7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) N*Matrix(RR,7,1,[0, 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi*pi-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1579, in __mul__ ArithmeticError: base rings must be compatible ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:17:03 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(RR,7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M[i][j]) N*Matrix(RR,7,1,[0.0, 2.0*pi, 8.0-4.0*pi, -32.0+8.0*pi, -8.0*pi^2.0-16.0*pi+96.0, 16.0*pi^2.0+16.0*pi-128.0, -32.0*pi*pi-32.0*pi+192.0]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: _12 = [ 0.00000000000000000] [ 1.0471975511966667] [ -1.0726384291628421] [ 7.7806391130263943] [ -2.1393050958298598] [ 2.3805308845304385] [0.0000000000000017763568394002505] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:16:46 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(RR,7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M(i, j)) N*Matrix(RR,7,1,[0.0, 2.0*pi, 8.0-4.0*pi, -32.0+8.0*pi, -8.0*pi^2.0-16.0*pi+96.0, 16.0*pi^2.0+16.0*pi-128.0, -32.0*pi*pi-32.0*pi+192.0]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 3, in ? TypeError: 'Matrix_dense_rational' object is not callable ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: _12 = [0.00000000000000000] [0.00000000000000000] [0.00000000000000000] [0.00000000000000000] [0.00000000000000000] [0.00000000000000000] [0.00000000000000000] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:16:32 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(RR,7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M(i, j)) N*Matrix(RR,7,1,[0.0, 2.0*pi, 8.0-4.0*pi, -32.0+8.0*pi, -8.0*pi^2.0-16.0*pi+96.0, 16.0*pi^2.0+16.0*pi-128.0, -32.0*pi*pi-32.0*pi+192.0]) Output: Errors: ------------------------------------------------------------ File "", line 4 N*Matrix(RR,ZZ(7),ZZ(1),[RealField(max(6,RR.precision()))('0.0'), RealField(max(6,RR.precision()))('2.0')*pi, RealField(max(6,RR.precision()))('8.0')-RealField(max(6,RR.precision()))('4.0')*pi, -RealField(max(9,RR.precision()))('32.0')+RealField(max(6,RR.precision()))('8.0')*pi, -RealField(max(6,RR.precision()))('8.0')*pi**RealField(max(6,RR.precision()))('2.0')-RealField(max(9,RR.precision()))('16.0')*pi+RealField(max(9,RR.precision()))('96.0'), RealField(max(9,RR.precision()))('16.0')*pi**RealField(max(6,RR.precision()))('2.0')+RealField(max(9,RR.precision()))('16.0')*pi-RealField(max(13,RR.precision()))('128.0'), -RealField(max(9,RR.precision()))('32.0')*pi*pi-RealField(max(9,RR.precision()))('32.0')*pi+RealField(max(13,RR.precision()))('192.0')]) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:15:55 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(RR,7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M(i, j)) N*Matrix(RR,7,1,[0.0, 2.0*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi*pi-32*pi+192]) Output: Errors: ------------------------------------------------------------ File "", line 4 N*Matrix(RR,ZZ(7),ZZ(1),[RealField(max(6,RR.precision()))('0.0'), RealField(max(6,RR.precision()))('2.0')*pi, ZZ(8)-ZZ(4)*pi, -ZZ(32)+ZZ(8)*pi, -ZZ(8)*pi**ZZ(2)-ZZ(16)*pi+ZZ(96), ZZ(16)*pi**ZZ(2)+ZZ(16)*pi-ZZ(128), -ZZ(32)*pi*pi-ZZ(32)*pi+ZZ(192)]) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:15:11 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) pi = math.pi M = StoB*NtoS N = MatrixSpace(RR,7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M(i, j)) N*Matrix(RR,7,1,[RR(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi*pi-32*pi+192]) Output: Errors: ------------------------------------------------------------ File "", line 4 N*Matrix(RR,ZZ(7),ZZ(1),[RR(ZZ(0)), ZZ(2)*pi, ZZ(8)-ZZ(4)*pi, -ZZ(32)+ZZ(8)*pi, -ZZ(8)*pi**ZZ(2)-ZZ(16)*pi+ZZ(96), ZZ(16)*pi**ZZ(2)+ZZ(16)*pi-ZZ(128), -ZZ(32)*pi*pi-ZZ(32)*pi+ZZ(192)]) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:14:58 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS N = MatrixSpace(RR,7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M(i, j)) N*Matrix(RR,7,1,[RR(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi*pi-32*pi+192]) Output: Errors: ------------------------------------------------------------ File "", line 4 N*Matrix(RR,ZZ(7),ZZ(1),[RR(ZZ(0)), ZZ(2)*pi, ZZ(8)-ZZ(4)*pi, -ZZ(32)+ZZ(8)*pi, -ZZ(8)*pi**ZZ(2)-ZZ(16)*pi+ZZ(96), ZZ(16)*pi**ZZ(2)+ZZ(16)*pi-ZZ(128), -ZZ(32)*pi*pi-ZZ(32)*pi+ZZ(192)]) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:14:24 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS N = MatrixSpace(RR,7,7,0)() for i in range(7): for j in range(7): N.set((i,j), M(i, j)) N*Matrix(RR,7,1,[RR(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ File "", line 4 N*Matrix(RR,ZZ(7),ZZ(1),[RR(ZZ(0)), ZZ(2)*pi, ZZ(8)-ZZ(4)*pi, -ZZ(32)+ZZ(8)*pi, -ZZ(8)*pi**ZZ(2)-ZZ(16)*pi+ZZ(96), ZZ(16)*pi**ZZ(2)+ZZ(16)*pi-ZZ(128), -ZZ(32)*pi**ZZ(2)-ZZ(32)*pi+ZZ(192)]) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:13:03 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS N = Matrix(RR,7,7)(M) N*Matrix(RR,7,1,[RR(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_generic_dense_field' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:11:18 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS M*Matrix(RR,7,1,[RR(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3846, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number 0.00000000000000000 ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:10:51 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = QQ(math.pi) type(pi) M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/rational_field.py", line 100, in __call__ File "rational.pyx", line 105, in rational.Rational.__init__ File "rational.pyx", line 183, in rational.Rational.__set_value TypeError: Unable to coerce 3.14159265359 () to Rational ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number (2*pi) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _10 = Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:10:36 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = QQ(pi) type(pi) M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/rational_field.py", line 100, in __call__ File "rational.pyx", line 105, in rational.Rational.__init__ File "rational.pyx", line 183, in rational.Rational.__set_value TypeError: Unable to coerce pi () to Rational ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number (2*pi) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _10 = Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:10:24 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = x type(x*2) M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number 2*x ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _10 = Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:10:08 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = x M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number 2*x ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:09:29 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = 3.14 M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number 6.2800000000000002 ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:09:16 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = x M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number 2*x ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:08:53 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = 22/7 M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _10 = [ 0] [ 22/21] [ -264/245] [ 1908/245] [-1576/735] [ 50/21] [ 0] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:08:23 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = math.pi M*Matrix(RR,7,1,[RR(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3846, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number 0.00000000000000000 ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:08:04 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = math.pi M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number 6.28318530718 ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:08:02 2006 Input: math.pi Output: _3 = 3.1415926535897931 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:07:55 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS pi = 55 M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _10 = [ 0] [ 55/3] [ -8184/5] [ 2451] [-24568/15] [ 59/3] [ 0] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:07:47 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS M*Matrix(QQ,7,1,[QQ(0), 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number (2*pi) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:06:57 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS M*Matrix(QQ,7,1,[0, 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number (2*pi) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:06:56 2006 Input: maxima('e^t*sin(pi*t/2)').diff('t',2) Output: _3 = -e^t*pi^2*sin(pi*t/2)/4 + e^t*log(e)^2*sin(pi*t/2) + e^t*log(e)*pi*cos(pi*t/2) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.40s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:06:46 2006 Input: maxima('e^t').diff('t') Output: _3 = e^t*log(e) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.35s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:06:45 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:06:37 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:06:21 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1 + x*0, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS M*Matrix(QQ,7,1,[0, 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 55, in Matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3803, in __init__ File "dense_matrix_pyx.pyx", line 639, in dense_matrix_pyx.Matrix_rational.__init__ TypeError: Invalid rational number (2*pi) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:05:51 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) type([Bern(i,6) for i in range(7)]) [1, x, x^2, x^2*(x-1/2)] type([1, x, x^2, x^2*(x-1/2)]) BasisToStandard( (1+x-x, x, x^2, x^2*(x-1/2)) ) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = _8 = [1, x, x^2, x^3 - 1/2*x^2] _9 = _10 = [ 1 0 0 0] [ 0 1 0 0] [ 0 0 1 -1/2] [ 0 0 0 1] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:05:37 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) type([Bern(i,6) for i in range(7)]) [1, x, x^2, x^2*(x-1/2)] type([1, x, x^2, x^2*(x-1/2)]) BasisToStandard( (1, x, x^2, x^2*(x-1/2)) ) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = _8 = [1, x, x^2, x^3 - 1/2*x^2] _9 = Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:05:23 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) type([Bern(i,6) for i in range(7)]) [1, x, x^2, x^2*(x-1/2)] type([1, x, x^2, x^2*(x-1/2)]) BasisToStandard(1, x, x^2, x^2*(x-1/2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: BasisToStandard() takes exactly 1 argument (4 given) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = _8 = [1, x, x^2, x^3 - 1/2*x^2] _9 = Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:05:22 2006 Input: maxima('e^t*sin(pi*t/2)').diff('t',2) Output: _3 = -e^t*pi^2*sin(pi*t/2)/4 + e^t*log(e)^2*sin(pi*t/2) + e^t*log(e)*pi*cos(pi*t/2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.38s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:05:14 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) type([Bern(i,6) for i in range(7)]) [1, x, x^2, x^2*(x-1/2)] type([1, x, x^2, x^2*(x-1/2)]) BasisToStandard((1, x, x^2, x^2*(x-1/2))) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = _8 = [1, x, x^2, x^3 - 1/2*x^2] _9 = Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:04:26 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) type([Bern(i,6) for i in range(7)]) [1, x, x^2, x^2*(x-1/2)] type([1, x, x^2, x^2*(x-1/2)]) BasisToStandard([1, x, x^2, x^2*(x-1/2)]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = _8 = [1, x, x^2, x^3 - 1/2*x^2] _9 = Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:04:23 2006 Input: maxima('e^t*sin(pi*t/2)').diff('t',2) Output: _3 = -e^t*pi^2*sin(pi*t/2)/4 + e^t*log(e)^2*sin(pi*t/2) + e^t*log(e)*pi*cos(pi*t/2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:04:05 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) [1, x, x^2, x^2*(x-1/2)] type([1, x, x^2, x^2*(x-1/2)]) BasisToStandard([1, x, x^2, x^2*(x-1/2)]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [1, x, x^2, x^3 - 1/2*x^2] _8 = Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:03:50 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) BasisToStandard([1, x, x^2, x^2*(x-1/2)]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:03:16 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) [Bern(i,6) for i in range(7)] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [x^6 - 6*x^5 + 15*x^4 - 20*x^3 + 15*x^2 - 6*x + 1, -6*x^6 + 30*x^5 - 60*x^4 + 60*x^3 - 30*x^2 + 6*x, 15*x^6 - 60*x^5 + 90*x^4 - 60*x^3 + 15*x^2, -20*x^6 + 60*x^5 - 60*x^4 + 20*x^3, 15*x^6 - 30*x^5 + 15*x^4, -6*x^6 + 6*x^5, x^6] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:03:00 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) BasisToStandard([1,x^2,x]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:02:19 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:02:12 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:02:01 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:01:54 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS M*Matrix(QQ,7,1,[0, 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'NtoS' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'M' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:01:43 2006 Input: maxima('e^t*sin(pi*t/2)').diff('t',2) Output: _3 = -e^t*pi^2*sin(pi*t/2)/4 + e^t*log(e)^2*sin(pi*t/2) + e^t*log(e)*pi*cos(pi*t/2) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:01:28 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'BasisToStandard' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'BasisToStandard' is not defined ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 18:00:45 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) StoB = ~BasisToStandard([Bern(i,6) for i in range(7)]) NtoS = BasisToStandard([1, x, x^2, x^2*(x-1/2), x^2*(x-1/2)^2, x^2*(x-1/2)^3, x^2*(x-1/2)^3*(x-1)]) M = StoB*NtoS M*Matrix(QQ,7,1,[0, 2*pi, 8-4*pi, -32+8*pi, -8*pi^2-16*pi+96, 16*pi^2+16*pi-128, -32*pi^2-32*pi+192]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'BasisToStandard' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'BasisToStandard' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'StoB' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'M' is not defined ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:51:05 2006 Input: maxima('e^t*sin(pi*t/2)').diff('t') Output: _3 = e^t*log(e)*sin(pi*t/2) + e^t*pi*cos(pi*t/2)/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.42s). '216.227' ************** SAGE ***************** Host 216.227.74.228 (216.227.74.228) Time: Tue Jun 13 17:30:35 2006 Input: 3+3+6+9+96+65 Output: _3 = 182 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.227' ************** SAGE ***************** Host 216.227.74.228 (216.227.74.228) Time: Tue Jun 13 17:30:25 2006 Input: 3+3 Output: _3 = 6 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 17:25:50 2006 Input: t = QQ['t'].0 -(t-1)*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t+(1/4)) Output: _4 = -t^7 + 35/4*t^6 - 123/4*t^5 + 219/4*t^4 - 201/4*t^3 + 39/2*t^2 + t - 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 17:25:39 2006 Input: t = QQ['t'].0 -(t-1)*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'b' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 17:25:29 2006 Input: -(t-1)*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:14:31 2006 Input: def f1(t): return -2*pi*pi*cos(pi*(t-1/2)) def f2(t): return -pi*pi*sin(pi*(t-1/2)) f1(1/2) f2(1/2) Output: ...: ...: ...: ...: _5 = (((-2*pi)*pi)*1.0000000000000000) _6 = (((-1*pi)*pi)*0.00000000000000000) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 17:11:41 2006 Input: f = maxima("-1*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-(1/4))") maxima("f(t) := " + str(f)) maxima("f(0)") Output: _4 = f(t) := ( - (t - 2)^3)*(t - 1)^2*(t - 1/4) _5 = -2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.49s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:10:43 2006 Input: def f1(t): return -2*pi*sin(pi*(t-1/2)) def f2(t): return pi*cos(pi*(t-1/2)) f1(0) f2(0) f1(1/2) f2(1/2) f1(1) f2(1) Output: ...: ...: ...: ...: _5 = ((-2*pi)*-1.0000000000000000) _6 = (pi*0.000000000000000061232339957367660) _7 = ((-2*pi)*0.00000000000000000) _8 = (pi*1.0000000000000000) _9 = ((-2*pi)*1.0000000000000000) _10 = (pi*0.000000000000000061232339957367660) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:09:28 2006 Input: def f1(t): return 2*cos(pi*(t-(1/2))) def f2(t): return sin(pi*(t-(1/2))) f1(0) f2(0) f1(1/2) f2(1/2) f1(1) f2(1) Output: ...: ...: ...: ...: _5 = 0.00000000000000012246467991473532 _6 = -1.0000000000000000 _7 = 2.0000000000000000 _8 = 0.00000000000000000 _9 = 0.00000000000000012246467991473532 _10 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:09:13 2006 Input: def f1(t): return 2*cos(pi*(t-(1/2))) def f2(t): return sin(pi*(t-(1/2))) f1(0) f2(0) f1(1/2) f2(1/2) Output: ...: ...: ...: ...: _5 = 0.00000000000000012246467991473532 _6 = -1.0000000000000000 _7 = 2.0000000000000000 _8 = 0.00000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:08:31 2006 Input: def f1(t): return 2*cos(pi*(t-(1/2))) def f2(t): return sin(pi*(t-(1/2))) f1(0) f2(0) Output: ...: ...: ...: ...: _5 = 0.00000000000000012246467991473532 _6 = -1.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:07:57 2006 Input: def f1(t): return 2*cos(pi*(t-(1/2))) f1(0) Output: ...: ...: _4 = 0.00000000000000012246467991473532 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 17:02:56 2006 Input: f = maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)") maxima("f(t) := " + str(f)) maxima("f(0)") Output: _4 = f(t) := a*(t - 2)^3*(t - 1)^2*(t - b) _5 = 8*a*b Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:02:19 2006 Input: P = PolynomialRing(QQ,"t"); t = P.0; PI = 3.1415926 a = -1 + 4*t^2 + (4*PI - 16)*(t^2)*(t-1/2) + (-16 * PI + 16)*(t^2)*(t-1/2)^2 + 16*PI*(t^2)*(t-1/2)^3 + ( -40 - 16 * PI ) * (t^2)*(t-1/2)^3*(t-1); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -3.4336295999999997 (parent: Real Field with 53 bits of precision) and t^2 (parent: Univariate Polynomial Ring in t over Rational Field) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:01:43 2006 Input: P = PolynomialRing(QQ,"t"); t = P.0; PI = 3.1415926 a = -1 + 4*t^2 + (4*PI - 16)*(t^2)*(t-1/2) + (-16 * PI + 16)*(t^2)*(t-1/2)^2 + 16*PI*(t^2)*(t-1/2)^3 + ( -40 - 16 * Pi ) * (t^2)*(t-1/2)^3*(t-1); a; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -3.4336295999999997 (parent: Real Field with 53 bits of precision) and t^2 (parent: Univariate Polynomial Ring in t over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:01:22 2006 Input: P = PolynomialRing(QQ,"t"); t = P.0; a = -1 + 4*t^2 + (4*PI - 16)*(t^2)*(t-1/2) + (-16 * PI + 16)*(t^2)*(t-1/2)^2 + 16*PI*(t^2)*(t-1/2)^3 + ( -40 - 16 * Pi ) * (t^2)*(t-1/2)^3*(t-1); a; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'PI' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:01:09 2006 Input: import Math P = PolynomialRing(QQ,"t"); t = P.0; a = -1 + 4*t^2 + (4*PI - 16)*(t^2)*(t-1/2) + (-16 * PI + 16)*(t^2)*(t-1/2)^2 + 16*PI*(t^2)*(t-1/2)^3 + ( -40 - 16 * Pi ) * (t^2)*(t-1/2)^3*(t-1); a; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? ImportError: No module named Math ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'PI' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 17:00:28 2006 Input: P = PolynomialRing(QQ,"t"); t = P.0; a = -1 + 4*t^2 + (4*Pi - 16)*(t^2)*(t-1/2) + (-16 * Pi + 16)*(t^2)*(t-1/2)^2 + 16*Pi*(t^2)*(t-1/2)^3 + ( -40 - 16 * Pi ) * (t^2)*(t-1/2)^3*(t-1); a; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Pi' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:59:33 2006 Input: f = maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') maxima("f(t) := " + str(f)) maxima("f(0)") Output: _4 = f(t) := 3*a*(t - 2)^2*(t - 1)^2*(t - b) + 2*a*(t - 2)^3*(t - 1)*(t - b) + a*(t - 2)^3*(t - 1)^2 _5 = -28*a*b - 8*a Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.46s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:59:21 2006 Input: f = maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') maxima("f(t) := " + str(f)) Output: _4 = f(t) := 3*a*(t - 2)^2*(t - 1)^2*(t - b) + 2*a*(t - 2)^3*(t - 1)*(t - b) + a*(t - 2)^3*(t - 1)^2 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.44s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:59:06 2006 Input: f = maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') maxima("f := " + str(f)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Error executing code in Maxima CODE: sage2 : f := 3*a*(t - 2)^2*(t - 1)^2*(t - b) + 2*a*(t - 2)^3*(t - 1)*(t - b) + a*(t - 2)^3*(t - 1)^2; Maxima ERROR: Improper function definition: f -- an error. Quitting. To debug this try debugmode(true); (%o27) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.43s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:58:57 2006 Input: f = maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') maxima(f := str(f)) Output: Errors: ------------------------------------------------------------ File "", line 1 maxima(f := str(f)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.41s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:58:10 2006 Input: f = maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') f(0) Output: _4 = (3*a*(t - 2)^2*(t - 1)^2*(t - b) + 2*a*(t - 2)^3*(t - 1)*(t - b) + a*(t - 2)^3*(t - 1)^2)[0] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.42s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:58:05 2006 Input: f = maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') Output: Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.32s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:57:48 2006 Input: maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') Output: _3 = 3*a*(t - 2)^2*(t - 1)^2*(t - b) + 2*a*(t - 2)^3*(t - 1)*(t - b) + a*(t - 2)^3*(t - 1)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.44s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:57:41 2006 Input: qqq = QQ['t']; t = qqq.0 maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') Output: _5 = 3*a*(t - 2)^2*(t - 1)^2*(t - b) + 2*a*(t - 2)^3*(t - 1)*(t - b) + a*(t - 2)^3*(t - 1)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.53s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:56:14 2006 Input: sage: a = -1 + 4*t^2 + (4*Pi - 16)*(t^2)*(t-1/2) + (-16 * Pi + 16)*(t^2)*(t-1/2)^2 + 16*Pi(t^2)*(t-1/2)^3 + ( -40 - 16 * Pi ) * (t^2)*(t-1/2)^3*(t-1) sage: a Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:49:55 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,2,0]) ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,3,-2]) Bern(1,2) + 2*Bern(2,2) (3/2)*Bern(1,2) + Bern(2,2) (3*(x/2) - 2*(x/2)^2)(1/2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = [0] [1] [2] _7 = [ 0] [3/2] [ 1] _8 = 2*x _9 = -2*x^2 + 3*x _10 = 5/8 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:49:08 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,2,0]) ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,3,-2]) Bern(1,2) + 2*Bern(2,2) (3/2)*Bern(1,2) + Bern(2,2) 3*(x/2) - 2*(x/2)^2 Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = [0] [1] [2] _7 = [ 0] [3/2] [ 1] _8 = 2*x _9 = -2*x^2 + 3*x _10 = -1/2*x^2 + 3/2*x Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:49:00 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,2,0]) ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,3,-2]) Bern(1,2) + 2*Bern(2,2) (3/2)*Bern(1,2) + Bern(2,2) 3(x/2) - 2*(x/2)^2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = [0] [1] [2] _7 = [ 0] [3/2] [ 1] _8 = 2*x _9 = -2*x^2 + 3*x Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:47:36 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,2,0]) ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,3,-2]) Bern(1,2) + 2*Bern(2,2) (3/2)*Bern(1,2) + Bern(2,2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = [0] [1] [2] _7 = [ 0] [3/2] [ 1] _8 = 2*x _9 = -2*x^2 + 3*x Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:44:26 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,2,0]) ~BasisToStandard([Bern(i,2) for i in range(3)])*Matrix(QQ,3,1,[0,3,-2]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = [0] [1] [2] _7 = [ 0] [3/2] [ 1] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '75.12.1' ************** SAGE ***************** Host 75.12.149.130 (75.12.149.130) Time: Tue Jun 13 16:27:11 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:26:06 2006 Input: ~Matrix(QQ,3,3,[1,0,0,1,1/2,1/4,1,1,1])*Matrix(QQ,3,1,[0,1,1]) Output: _3 = [ 0] [ 3] [-2] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 16:24:23 2006 Input: ~Matrix(QQ,3,3,[1,0,0,1,1/2,1/4,1,1,1])*Matrix(QQ,3,1,[0,1,2]) Output: _3 = [0] [2] [0] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.06s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:12:54 2006 Input: qqq = QQ['t']; t = qqq.0 maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").diff('t') Output: _5 = 3*a*(t - 2)^2*(t - 1)^2*(t - b) + 2*a*(t - 2)^3*(t - 1)*(t - b) + a*(t - 2)^3*(t - 1)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.33s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:12:30 2006 Input: qqq = QQ['t']; t = qqq.0 maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").deriv('t') Output: _5 = deriv(a*(t - 2)^3*(t - 1)^2*(t - b),t) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.42s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:12:23 2006 Input: qqq = QQ['t']; t = qqq.0 maxima("a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b)").deriv('t') dir(f) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined _5 = deriv(a*(t - 2)^3*(t - 1)^2*(t - b),t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.42s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:11:13 2006 Input: qqq = QQ['t']; t = qqq.0 f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) dir(f) Output: _6 = ['Hom', '_Function__conversions', '_Function_arith__op', '_Function_arith__x', '_Function_arith__y', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_call_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_init_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mpfr_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', 'additive_order', 'base_ring', 'category', 'db', 'dump', 'dumps', 'integral', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'order', 'parent', 'plot', 'rename', 'reset_name', 'save', 'str', 'version'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:11:07 2006 Input: qqq = QQ['t']; t = qqq.0 f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) f.deriv() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Function_arith' object has no attribute 'deriv' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:10:53 2006 Input: qqq = QQ['t']; t = qqq.0 f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) f Output: _6 = ((((((e*t - 1)*t - 1)*t - 2)*t - 2)*t - 2)*(t - pi)) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:10:45 2006 Input: qqq = QQ['t']; t = qqq.0 f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) f.derivative() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Function_arith' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:10:37 2006 Input: qqq = QQ['t']; t = qqq.gens()[0] f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) f.derivative() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Function_arith' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:10:26 2006 Input: qqq = QQ['t']; f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) f.derivative() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:10:16 2006 Input: qqq = QQ['a','b','t']; a = qqq.gens()[0] b = qqq.gens()[1] t = qqq.gens()[2] f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) f.derivative() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Function_arith' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:10:11 2006 Input: qqq = QQ['a','b','t']; a = qqq.gens()[0] b = qqq.gens()[1] t = qqq.gens()[2] f = e*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-pi) f.deriv() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Function_arith' object has no attribute 'deriv' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:09:20 2006 Input: qqq = QQ['a','b','t']; a = qqq.gens()[0] b = qqq.gens()[1] t = qqq.gens()[2] f = a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b) dir(f) Output: _8 = ['Hom', '_MPolynomial__element', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__floordiv__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_repr_with_changed_varnames', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_variable_indices_', 'additive_order', 'base_ring', 'category', 'coefficient', 'constant_coefficient', 'db', 'degree', 'dump', 'dumps', 'element', 'exponents', 'factor', 'fix', 'gcd', 'homogenize', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_homogeneous', 'is_monomial', 'is_nonzero', 'is_unit', 'is_univariate', 'is_zero', 'mod', 'monomial_coefficient', 'monomials', 'multiplicative_order', 'newton_polytope', 'nvariables', 'order', 'parent', 'quo_rem', 'rename', 'reset_name', 'save', 'total_degree', 'univariate_polynomial', 'variable', 'variables', 'version'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:09:08 2006 Input: qqq = QQ['a','b','t']; a = qqq.gens()[0] b = qqq.gens()[1] t = qqq.gens()[2] f = a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b) f.derivative('t')(a,b,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'MPolynomial_polydict' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:06:38 2006 Input: qqq = QQ['a','b','t']; a = qqq.gens()[0] b = qqq.gens()[1] t = qqq.gens()[2] f = a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b) f(a,b,0) Output: _8 = 8*a*b Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:06:06 2006 Input: qqq = QQ['a','b','t']; a = qqq.gens()[0] b = qqq.gens()[1] t = qqq.gens()[2] f = a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b) f(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/multi_polynomial_element.py", line 97, in __call__ TypeError: x (=(0,)) must be of length 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:06:01 2006 Input: qqq = QQ['a','b','t']; a = qqq.gens()[0] b = qqq.gens()[1] t = qqq.gens()[2] f = a*(t-1)*(t-1)*(t-2)*(t-2)*(t-2)*(t-b) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.57.2' ************** SAGE ***************** Host 68.57.222.57 (68.57.222.57) Time: Tue Jun 13 16:05:05 2006 Input: 34x23" Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(34)x23" ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:05:03 2006 Input: qqq = QQ['a','b','t']; dir(qqq) Output: _4 = ['Hom', '_MPolynomialRing_generic__base_ring', '_MPolynomialRing_generic__ngens', '_MPolynomialRing_generic__term_order', '__call__', '__certify_names', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__', '__iter__', '__latex_names', '__len__', '__module__', '__mul__', '__names', '__new__', '__pow__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rxor__', '__setattr__', '__str__', '__weakref__', '__xor__', '_can_convert_to_singular', '_coerce_', '_gap_', '_gap_init_', '_gens', '_gp_', '_gp_init_', '_has_singular', '_ideal_class_', '_interface_', '_interface_is_cached_', '_is_valid_homomorphism_', '_kash_', '_kash_init_', '_latex_', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_monomial_order_function', '_names_from_obj', '_octave_', '_octave_init_', '_pari_', '_pari_init_', '_plot_', '_poly_class', '_r_action', '_repr_', '_sage_', '_singular_', '_singular_init_', '_zero_tuple', 'assign_names', 'base_ring', 'category', 'characteristic', 'db', 'dump', 'dumps', 'fraction_field', 'gen', 'gens', 'gens_dict', 'hom', 'ideal', 'ideal_monoid', 'is_atomic_repr', 'is_commutative', 'is_field', 'is_finite', 'is_integral_domain', 'is_noetherian', 'is_prime_field', 'is_ring', 'krull_dimension', 'latex_name', 'latex_variable_names', 'list', 'ngens', 'objgen', 'objgens', 'order', 'principal_ideal', 'quotient', 'quotient_ring', 'random_element', 'rename', 'reset_name', 'save', 'term_order', 'unit_ideal', 'var_dict', 'variable_name', 'variable_names', 'version', 'zero_ideal'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.227.' ************** SAGE ***************** Host 71.227.194.61 (71.227.194.61) Time: Tue Jun 13 16:04:57 2006 Input: qqq = QQ['a','b','t']; dir(qqq) Output: _4 = ['Hom', '_MPolynomialRing_generic__base_ring', '_MPolynomialRing_generic__ngens', '_MPolynomialRing_generic__term_order', '__call__', '__certify_names', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__', '__iter__', '__latex_names', '__len__', '__module__', '__mul__', '__names', '__new__', '__pow__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rxor__', '__setattr__', '__str__', '__weakref__', '__xor__', '_can_convert_to_singular', '_coerce_', '_gap_', '_gap_init_', '_gens', '_gp_', '_gp_init_', '_has_singular', '_ideal_class_', '_interface_', '_interface_is_cached_', '_is_valid_homomorphism_', '_kash_', '_kash_init_', '_latex_', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_monomial_order_function', '_names_from_obj', '_octave_', '_octave_init_', '_pari_', '_pari_init_', '_plot_', '_poly_class', '_r_action', '_repr_', '_sage_', '_singular_', '_singular_init_', '_zero_tuple', 'assign_names', 'base_ring', 'category', 'characteristic', 'db', 'dump', 'dumps', 'fraction_field', 'gen', 'gens', 'gens_dict', 'hom', 'ideal', 'ideal_monoid', 'is_atomic_repr', 'is_commutative', 'is_field', 'is_finite', 'is_integral_domain', 'is_noetherian', 'is_prime_field', 'is_ring', 'krull_dimension', 'latex_name', 'latex_variable_names', 'list', 'ngens', 'objgen', 'objgens', 'order', 'principal_ideal', 'quotient', 'quotient_ring', 'random_element', 'rename', 'reset_name', 'save', 'term_order', 'unit_ideal', 'var_dict', 'variable_name', 'variable_names', 'version', 'zero_ideal'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.57.2' ************** SAGE ***************** Host 68.57.222.57 (68.57.222.57) Time: Tue Jun 13 16:04:35 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:56:04 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = -1/3' y = 'b + 2*c*(0) + 3*d*(0)^2 = -1/9' z = 'a + b*(1) + c*(1)^2 + d*(1)^3 = -1/2' w = 'b + 2*c*(1) + 3*d*(1)^2 = -1/4' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s Output: _9 = [[a = - 1/3,b = - 1/9,c = - 1/36,d = - 1/36]] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.42s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:53:46 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = -1/3' y = 'a + b*(1) + c*(1)^2 + d*(1)^3 = -1/2' z = 'b + 2*c*(1) + 3*d*(1)^2 = -1/4' w = '2*c + 6*d*(1) = -1/4' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s Output: _9 = [[a = - 1/3,b = - 1/8,c = 0,d = - 1/24]] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.42s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:52:29 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = -1/9' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 1/2' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s Output: _9 = [[a = 0,b = - 1/9,c = 29/450,d = - 1/225]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.36s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:51:47 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = -1/3' y = 'a + b*(1) + c*(1)^2 + d*(1)^3 = -1/2' z = 'b + 2*c*(1) + 3*d*(1)^2 = -1/4' w = '2*c + 6*d*(1) = -1/4' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s Output: _9 = [[a = - 1/3,b = - 1/8,c = 0,d = - 1/24]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.49s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:48:07 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = 1.57' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 1/2' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s Output: _9 = [[a = 0,b = 157/100,c = - 3337/3000,d = 491/3000]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.43s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:45:39 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = 1.57' z = 'a + b*(1) + c*(1)^2 + d*(1)^3 = 2.72' w = 'b + 2*c*(1) + 3*d*(1)^2 = 2.72' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s Output: _9 = [[a = 0,b = 157/100,c = 23/10,d = - 23/20]] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:43:53 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) fp(0) fp(1) Output: _6 = -1/9 _7 = -1/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:42:52 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) f(5) fp(1) fpp(1) Output: _6 = 1/2 _7 = -1/4 _8 = -1/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:42:25 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = -1/3' y = 'a + b*(1) + c*(1)^2 + d*(1)^3 = -1/2' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = -1' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 1/2' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s Output: _9 = [[a = - 1/3,b = 1/6,c = - 5/12,d = 1/12]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:39:43 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) f(5) fp(5) fpp(5) Output: _6 = 1/2 _7 = -1/4 _8 = 1/4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:34:27 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = 1.57' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.41' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _9 = [[a = 0,b = 157/100,c = - 25283/5000,d = 10679/5000]] _11 = -1/(x - 3)^2 _13 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.46s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:33:44 2006 Input: pi = 3.141592 x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = pi/2' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.41' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _9 = [[a = 0,b = pi/2,c = - (875*pi + 9894)/2500,d = (125*pi + 4947)/2500]] _11 = -1/(x - 3)^2 _13 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.45s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:33:34 2006 Input: x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = pi/2' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.41' pi = 3.141592 pi eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _8 = 3.1415920000000002 _10 = [[a = 0,b = pi/2,c = - (875*pi + 9894)/2500,d = (125*pi + 4947)/2500]] _12 = -1/(x - 3)^2 _14 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.54s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:33:30 2006 Input: x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = pi/2' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.41' pi = 3.141592 eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _9 = [[a = 0,b = pi/2,c = - (875*pi + 9894)/2500,d = (125*pi + 4947)/2500]] _11 = -1/(x - 3)^2 _13 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.54s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:33:19 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) f(0) fp(0) fpp(0) Output: _6 = -1/3 _7 = -1/9 _8 = -2/27 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:33:16 2006 Input: x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = pi/2' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.41' pi*2 eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = (pi*2) _9 = [[a = 0,b = pi/2,c = - (875*pi + 9894)/2500,d = (125*pi + 4947)/2500]] _11 = -1/(x - 3)^2 _13 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.49s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:33:08 2006 Input: x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = pi/2' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.41' pi eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = pi _9 = [[a = 0,b = pi/2,c = - (875*pi + 9894)/2500,d = (125*pi + 4947)/2500]] _11 = -1/(x - 3)^2 _13 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.51s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:32:42 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) f(0) f(1) fp(1) Output: _6 = -1/3 _7 = -1/2 _8 = -1/4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:32:21 2006 Input: x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'b + 2*c*(0) + 3*d*(0)^2 = pi/2' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.41' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _8 = [[a = 0,b = pi/2,c = - (875*pi + 9894)/2500,d = (125*pi + 4947)/2500]] _10 = -1/(x - 3)^2 _12 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.49s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:32:04 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) f(0) f(1) Output: _6 = -1/3 _7 = -1/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:27:55 2006 Input: x = 'a + b*(0) + c*(0)^2 + d*(0)^3 = 0' y = 'a + b*(1) + c*(1)^2 + d*(1)^3 = 2.71828' z = 'a + b*(2) + c*(2)^2 + d*(2)^3 = 0' w = 'a + b*(5) + c*(5)^2 + d*(5)^3 = 148.413159' eqn = maxima([x, y, z, w]) s = eqn.solve('[a,b,c,d]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _8 = [[a = 0,b = 210663579/17939800,c = - 436929137/35879600,d = 113132779/35879600]] _10 = -1/(x - 3)^2 _12 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.42s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:19:39 2006 Input: x = 'a + b*(0) + c*(0)^2 = -1/3' y = 'b + 2*c*(0) = -1/3' z = '2*c = -2/27' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = [[a = - 1/3,b = - 1/3,c = - 1/27]] _9 = -1/(x - 3)^2 _11 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:18:21 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) fp(0) Output: _6 = -1/9 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:17:01 2006 Input: x = 'a + b*(0) + c*(0)^2 = -1/3' y = 'a + b*(1) + c*(1)^2 = -1/2' z = 'b + 2*c*(1) = -1/4' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = [[a = - 1/3,b = - 1/12,c = - 1/12]] _9 = -1/(x - 3)^2 _11 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.46s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:15:15 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) f(0) f(1) f(2) f(5) Output: _6 = -1/3 _7 = -1/2 _8 = -1 _9 = 1/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:14:27 2006 Input: f = 1 / (x-3) fp =-1 / ((x-3)^2) fpp= 2 / ((x-3)^3) f(0) fp(0) fpp(0) Output: _6 = -1/3 _7 = -1/9 _8 = -2/27 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:14:25 2006 Input: x = 'a + b*(0) + c*(0)^2 = -1/3' y = 'b + 2*c*(0) = -1/9' z = 'a + b*(2) + c*(2)^2 = -1' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = [[a = - 1/3,b = - 1/9,c = - 1/9]] _9 = -1/(x - 3)^2 _11 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.47s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:11:30 2006 Input: x = 'a + b*(0) + c*(0)^2 = -1/3' y = 'a + b*(1) + c*(1)^2 = -1/2' z = 'a + b*(2) + c*(2)^2 = -1' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = [[a = - 1/3,b = 0,c = - 1/6]] _9 = -1/(x - 3)^2 _11 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:11:09 2006 Input: f = 1 / (x-3) dir(math) Output: _4 = ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:10:55 2006 Input: f = 1 / (x-3) derivative(1/(x-3)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:10:47 2006 Input: f = 1 / (x-3) derivative(f) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:10:14 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'b + 2*c*(0) = pi/28' z = '2*c = pi' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s x = 0 1/(x-3) f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = [[a = 0,b = pi/28,c = pi/2]] _9 = -1/3 _11 = -1/(x - 3)^2 _13 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.42s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:09:50 2006 Input: f = 1 / (x-3) derivative(f) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:09:38 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'b + 2*c*(0) = pi/28' z = '2*c = pi' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') f.diff('x') g = f.diff('x') g.diff('x') Output: _7 = [[a = 0,b = pi/28,c = pi/2]] _9 = -1/(x - 3)^2 _11 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.48s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:09:27 2006 Input: f = 1 / (x-3) dir(f) Output: _4 = ['Hom', '_FractionFieldElement__denominator', '_FractionFieldElement__numerator', '__abs__', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__int__', '__invert__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_rational_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_ring', 'category', 'copy', 'db', 'denominator', 'dump', 'dumps', 'inverse_mod', 'is_nonzero', 'is_unit', 'is_zero', 'mod', 'multiplicative_order', 'numerator', 'order', 'parent', 'quo_rem', 'reduce', 'rename', 'reset_name', 'save', 'valuation', 'version'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:09:20 2006 Input: f = 1 / (x-3) f? Output: Type: FractionFieldElement Base Class: String Form: 1/(x - 3) Namespace: Interactive Docstring: EXAMPLES: K, x = FractionField(PolynomialRing(Q)).objgen() K Fraction Field of Univariate Polynomial Ring in x over Rational Field loads(K.dumps()) == K True f = (x^3 + x)/(17 - x^19); f (x^3 + x)/(-x^19 + 17) loads(f.dumps()) == f True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:09:13 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'b + 2*c*(0) = pi/28' z = '2*c = pi' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') g = f.diff('x') Output: _7 = [[a = 0,b = pi/28,c = pi/2]] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.51s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:09:06 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'b + 2*c*(0) = pi/28' z = '2*c = pi' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') g = f.diff('x') g.diff('x') Output: _7 = [[a = 0,b = pi/28,c = pi/2]] _10 = 2/(x - 3)^3 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:09:04 2006 Input: f = 1 / (x-3) f(5) Output: _4 = 1/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 15:09:00 2006 Input: f = 1 / (x-3) f Output: _4 = 1/(x - 3) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:07:35 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'b + 2*c*(0) = pi/28' z = '2*c = pi' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('(pi*cos( (pi/2)*x ))/2') f.diff('x') Output: _7 = [[a = 0,b = pi/28,c = pi/2]] _9 = -pi^2*sin(pi*x/2)/4 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.40s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 15:03:10 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'a + b*(1) + c*(1)^2 = 2.71828' z = 'b + 2*c*(1) = 2.71828' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('(pi*cos( (pi/2)*x ))/2') f.diff('x') Output: _7 = [[a = 0,b = 12833/4721,c = 0]] _9 = -pi^2*sin(pi*x/2)/4 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.42s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:59:39 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'a + b*(1) + c*(1)^2 = 2.71828' z = 'b + 2*c*(1) = 2.71828' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s Output: _7 = [[a = 0,b = 12833/4721,c = 0]] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.36s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:58:32 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'b + 2*c*(0) = 1.5708' z = 'a + b*(2) + c*(2)^2 = 0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s Output: _7 = [[a = 0,b = 3927/2500,c = - 3927/5000]] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.33s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:56:53 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'a + b*(1) + c*(1)^2 = 2.71828' z = 'b + 2*c*(0) = 2.71828' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s Output: _7 = [[a = 0,b = 12833/4721,c = 0]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.38s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:55:27 2006 Input: math.sin(3.14) Output: _3 = 0.0015926529164868282 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:55:03 2006 Input: g = (math.e)^x * math.sin(math.pi / 2 * x) g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 415, in element.RingElement.__pow__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 207, in __int__ TypeError: cannot coerce nonconstant polynomial to int ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:54:51 2006 Input: g = math.e^x * math.sin(math.pi / 2 * x) g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 415, in element.RingElement.__pow__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 207, in __int__ TypeError: cannot coerce nonconstant polynomial to int ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:54:42 2006 Input: math.e Output: _3 = 2.7182818284590451 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:54:31 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'a + b*(1) + c*(1)^2 = 2.71828' z = 'b + c*(1) = 2.71828' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s Output: _7 = [[a = 0,b = - (4721*%r1 - 12833)/4721,c = %r1]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.38s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:54:12 2006 Input: g = math.e^x * math.sin(math.pi / 2 * x) g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 415, in element.RingElement.__pow__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 207, in __int__ TypeError: cannot coerce nonconstant polynomial to int ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.117.' ************** SAGE ***************** Host 24.117.149.142 (24.117.149.142) Time: Tue Jun 13 14:51:09 2006 Input: 2 (50²) + 19 50 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2) (ZZ(50)²) + ZZ(19) ZZ(50) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.117.' ************** SAGE ***************** Host 24.117.149.142 (24.117.149.142) Time: Tue Jun 13 14:49:52 2006 Input: 2 (x2) + 19 x Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2) (x2) + ZZ(19) x ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.117.' ************** SAGE ***************** Host 24.117.149.142 (24.117.149.142) Time: Tue Jun 13 14:49:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:48:31 2006 Input: x = 'a + b*(0) + c*(0)^2 = 0' y = 'b + c*(0) = 1.5708' z = 'a + b*(2) + c*(2)^2 = 0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s Output: _7 = [[a = 0,b = 3927/2500,c = - 3927/5000]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.42s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:42:04 2006 Input: x = 'a + b*(0) + c*(0)^2=0' y = 'a + b*(1) + c*(1)^2=2.71828' z = 'a + b*(2) + c*(2)^2=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s Output: _7 = [[a = 0,b = 25666/4721,c = - 12833/4721]] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.43s). '89.178.' ************** SAGE ***************** Host 89.178.7.145 (89.178.7.145) Time: Tue Jun 13 14:40:45 2006 Input: (1000+X)*X^29=1500 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '89.178.' ************** SAGE ***************** Host 89.178.7.145 (89.178.7.145) Time: Tue Jun 13 14:39:52 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.77s). '89.178.' ************** SAGE ***************** Host 89.178.7.145 (89.178.7.145) Time: Tue Jun 13 14:38:46 2006 Input: 1000 Output: _3 = 1000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:35:01 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('sin((pi/2)*x)') f.diff('x') Output: _7 = [[a = 0,b = 0,c = 0]] _9 = pi*cos(pi*x/2)/2 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.40s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:34:33 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('sin((5/2)*x)') f.diff('x') Output: _7 = [[a = 0,b = 0,c = 0]] _9 = 5*cos(5*x/2)/2 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.38s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:16:36 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('1/(x-3)') f.diff('x') Output: _7 = [[a = 0,b = 0,c = 0]] _9 = -1/(x - 3)^2 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.41s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:15:22 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s ln 2 f = maxima('x^2 + 17*y^2') f.diff('x') f.diff('y') Output: Errors: ------------------------------------------------------------ File "", line 1 ln ZZ(2) ^ SyntaxError: invalid syntax _7 = [[a = 0,b = 0,c = 0]] _10 = 2*x _11 = 34*y Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.37s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:15:16 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s ln e f = maxima('x^2 + 17*y^2') f.diff('x') f.diff('y') Output: Errors: ------------------------------------------------------------ File "", line 1 ln e ^ SyntaxError: invalid syntax _7 = [[a = 0,b = 0,c = 0]] _10 = 2*x _11 = 34*y Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.41s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:13:19 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s e^4 f = maxima('x^2 + 17*y^2') f.diff('x') f.diff('y') Output: _7 = [[a = 0,b = 0,c = 0]] _8 = (e^4) _10 = 2*x _11 = 34*y Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.46s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:13:09 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s e(4) f = maxima('x^2 + 17*y^2') f.diff('x') f.diff('y') Output: _7 = [[a = 0,b = 0,c = 0]] _8 = e _10 = 2*x _11 = 34*y Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.39s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:13:03 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s e(2) f = maxima('x^2 + 17*y^2') f.diff('x') f.diff('y') Output: _7 = [[a = 0,b = 0,c = 0]] _8 = e _10 = 2*x _11 = 34*y Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.37s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 13 14:12:52 2006 Input: x = 'a=0' y = 'b=0' z = 'c=0' eqn = maxima([x, y, z]) s = eqn.solve('[a,b,c]'); s f = maxima('x^2 + 17*y^2') f.diff('x') f.diff('y') Output: _7 = [[a = 0,b = 0,c = 0]] _9 = 2*x _10 = 34*y Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.43s). '71.101.' ************** SAGE ***************** Host 71.101.13.46 (71.101.13.46) Time: Tue Jun 13 14:11:44 2006 Input: 2006-1984 Output: _3 = 22 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:04:55 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 f fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) (x-1)^2*(x-2)^3*(-x-1/4) Output: _4 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _7 = 1 _8 = 2 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = 0 _14 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:04:41 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 f fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) -(x-1)^2*(x-2)^3*(-x-1/4) Output: _4 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _7 = 1 _8 = 2 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = 0 _14 = x^6 - 31/4*x^5 + 23*x^4 - 127/4*x^3 + 37/2*x^2 - x - 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:04:02 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 f fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) -1*(x-1)^2*(x-2)^3*(x+1/4) Output: _4 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _7 = 1 _8 = 2 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = 0 _14 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:03:52 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) -1*(x-1)^2*(x-2)^3*(x+1/4) Output: _6 = 1 _7 = 2 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:03:02 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 f fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) (x-1)^2*(x-2)^3*(1/4 - x) Output: _4 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _7 = 1 _8 = 2 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = 0 _14 = -x^6 + 33/4*x^5 - 27*x^4 + 177/4*x^3 - 75/2*x^2 + 15*x - 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 14:02:49 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) (x-1)^2*(x-2)^3*(1/4 - x) Output: _6 = 1 _7 = 2 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 33/4*x^5 - 27*x^4 + 177/4*x^3 - 75/2*x^2 + 15*x - 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:58:06 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = QQ['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f maxima('diff(f, t, 1)') Output: _6 = 1 _7 = 2 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _19 = 8*a*b - 8*t*a - 28*t*a*b + 28*t^2*a + 38*t^2*a*b - 38*t^3*a - 25*t^3*a*b + 25*t^4*a + 8*t^4*a*b - 8*t^5*a - t^5*a*b + t^6*a _20 = 0 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.39s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:57:50 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = QQ['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f maxima('diff(f, x, 1)') Output: _6 = 1 _7 = 2 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _19 = 8*a*b - 8*t*a - 28*t*a*b + 28*t^2*a + 38*t^2*a*b - 38*t^3*a - 25*t^3*a*b + 25*t^4*a + 8*t^4*a*b - 8*t^5*a - t^5*a*b + t^6*a _20 = 0 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:56:20 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) fp(0) f(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = QQ['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f dir(f) Output: _6 = 1 _7 = 2 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _19 = 8*a*b - 8*t*a - 28*t*a*b + 28*t^2*a + 38*t^2*a*b - 38*t^3*a - 25*t^3*a*b + 25*t^4*a + 8*t^4*a*b - 8*t^5*a - t^5*a*b + t^6*a _20 = ['Hom', '_MPolynomial__element', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__floordiv__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_repr_with_changed_varnames', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_variable_indices_', 'additive_order', 'base_ring', 'category', 'coefficient', 'constant_coefficient', 'db', 'degree', 'dump', 'dumps', 'element', 'exponents', 'factor', 'fix', 'gcd', 'homogenize', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_homogeneous', 'is_monomial', 'is_nonzero', 'is_unit', 'is_univariate', 'is_zero', 'mod', 'monomial_coefficient', 'monomials', 'multiplicative_order', 'newton_polytope', 'nvariables', 'order', 'parent', 'quo_rem', 'rename', 'reset_name', 'save', 'total_degree', 'univariate_polynomial', 'variable', 'variables', 'version'] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:55:56 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = QQ['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f derivative(f)(0, a, b) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'MPolynomial_polydict' object has no attribute 'derivative' _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _19 = 8*a*b - 8*t*a - 28*t*a*b + 28*t^2*a + 38*t^2*a*b - 38*t^3*a - 25*t^3*a*b + 25*t^4*a + 8*t^4*a*b - 8*t^5*a - t^5*a*b + t^6*a Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:55:28 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = QQ['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, 1, 1) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _19 = 8*a*b - 8*t*a - 28*t*a*b + 28*t^2*a + 38*t^2*a*b - 38*t^3*a - 25*t^3*a*b + 25*t^4*a + 8*t^4*a*b - 8*t^5*a - t^5*a*b + t^6*a _20 = 8 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:55:23 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = QQ't,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, 1, 1) Output: Errors: ------------------------------------------------------------ File "", line 1 R = QQ't,a,b'] ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? ValueError: need more than 1 value to unpack ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _20 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:54:59 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = GF(3)['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, 1, 1) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _19 = 2*a*b + t*a + 2*t*a*b + t^2*a + 2*t^2*a*b + t^3*a + 2*t^3*a*b + t^4*a + 2*t^4*a*b + t^5*a + 2*t^5*a*b + t^6*a _20 = 2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:54:36 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) type(GF) GF(3) type(GF(3)) f R = GF(5)['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, 1, 1) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = _14 = Finite Field of size 3 _15 = _16 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _19 = 3*a*b + 2*t*a + 2*t*a*b + 3*t^2*a + 3*t^2*a*b + 2*t^3*a + 3*t^4*a*b + 2*t^5*a + 4*t^5*a*b + t^6*a _20 = 3 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:53:48 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f R = GF(6)['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, 1, 1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/finite_field.py", line 98, in GF File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/finite_field.py", line 90, in FiniteField File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/finite_field.py", line 488, in __init__ ArithmeticError: q (=6) must be a prime power ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? ValueError: need more than 1 value to unpack ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _17 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:53:40 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f R = GF(3)['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, 1, 1) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _16 = 2*a*b + t*a + 2*t*a*b + t^2*a + 2*t^2*a*b + t^3*a + 2*t^3*a*b + t^4*a + 2*t^4*a*b + t^5*a + 2*t^5*a*b + t^6*a _17 = 2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:53:29 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f R = GF(5)['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, 1, 1) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _16 = 3*a*b + 2*t*a + 2*t*a*b + 3*t^2*a + 3*t^2*a*b + 2*t^3*a + 3*t^4*a*b + 2*t^5*a + 4*t^5*a*b + t^6*a _17 = 3 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:53:04 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f R = GF(5)['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(0, a, b) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _16 = 3*a*b + 2*t*a + 2*t*a*b + 3*t^2*a + 3*t^2*a*b + 2*t^3*a + 3*t^4*a*b + 2*t^5*a + 4*t^5*a*b + t^6*a _17 = 3*a*b Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:52:45 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f R = GF(5)['t,a,b'] t,a,b = R.gens() f = a*((t-1)^2)*((t-2)^3)*(t-b);f f(y[0],y[1],0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _16 = 3*a*b + 2*t*a + 2*t*a*b + 3*t^2*a + 3*t^2*a*b + 2*t^3*a + 3*t^4*a*b + 2*t^5*a + 4*t^5*a*b + t^6*a Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:51:23 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = GF(3)['a, b, t'].gens() f = y[0]*((y[2]-1)^2)*((y[2]-2)^3)*(y[2]-y[1]);f f(y[0],y[1],0) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _15 = a*t + a*t^2 + a*t^3 + a*t^4 + a*t^5 + a*t^6 + 2*a*b + 2*a*b*t + 2*a*b*t^2 + 2*a*b*t^3 + 2*a*b*t^4 + 2*a*b*t^5 _16 = 2*a*b Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:48:43 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = GF(3)['a, b, t'].gens() f = y[0]*(y[2]-1)^2*(y[2]-2)^3*(y[2]-y[1]);f f(y[0],y[1],0) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _15 = a*t + a*t^2 + a*t^3 + a*t^4 + a*t^5 + a*t^6 + 2*a*b + 2*a*b*t + 2*a*b*t^2 + 2*a*b*t^3 + 2*a*b*t^4 + 2*a*b*t^5 _16 = 2*a*b Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:48:29 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = GF(3)['a, b, t'].gens() f = y[0]*(y[2]-1)^2*(y[2]-2)^3*(y[2]-y[1]);f f(a,b,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _15 = a*t + a*t^2 + a*t^3 + a*t^4 + a*t^5 + a*t^6 + 2*a*b + 2*a*b*t + 2*a*b*t^2 + 2*a*b*t^3 + 2*a*b*t^4 + 2*a*b*t^5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:48:11 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = GF(3)['a, b, t'].gens() f = y[0]*(y[2]-1)^2*(y[2]-2)^3*(y[2]-y[1]);f f(0,0,0) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _15 = a*t + a*t^2 + a*t^3 + a*t^4 + a*t^5 + a*t^6 + 2*a*b + 2*a*b*t + 2*a*b*t^2 + 2*a*b*t^3 + 2*a*b*t^4 + 2*a*b*t^5 _16 = 0 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:46:50 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = GF(3)['a, b, t'].gens() f = derivative((x-1)^2*(x-2)^3);f f = y[0]*(y[2]-1)^2*(y[2]-2)^3*(y[2]-y[1]);f Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _15 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 _16 = a*t + a*t^2 + a*t^3 + a*t^4 + a*t^5 + a*t^6 + 2*a*b + 2*a*b*t + 2*a*b*t^2 + 2*a*b*t^3 + 2*a*b*t^4 + 2*a*b*t^5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:46:31 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = GF(3)['z0, z1, z2'].gens() f = derivative((x-1)^2*(x-2)^3);f f = y[0]*(y[2]-1)^2*(y[2]-2)^3*(y[2]-y[1]);f Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _15 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 _16 = z0*z2 + z0*z2^2 + z0*z2^3 + z0*z2^4 + z0*z2^5 + z0*z2^6 + 2*z0*z1 + 2*z0*z1*z2 + 2*z0*z1*z2^2 + 2*z0*z1*z2^3 + 2*z0*z1*z2^4 + 2*z0*z1*z2^5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:44:26 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = GF(3)['a, b, t'].gens() f = derivative((x-1)^2*(x-2)^3);f f = a*(t-1)^2*(t-2)^3*(t-b);f Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _15 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '68.171.' ************** SAGE ***************** Host 68.171.82.194 (68.171.82.194) Time: Tue Jun 13 13:42:37 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:41:45 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f y = QQ['y'].gen() z = QQ['z'].gen() f = derivative((x-1)^2*(x-2)^3);f f = (x-1)*(y-1);f Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x - 1 (parent: Univariate Polynomial Ring in x over Rational Field) and y - 1 (parent: Univariate Polynomial Ring in y over Rational Field) _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _16 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:40:45 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f f = derivative((x-1)^2*(x-2)^3);f f = (x-1)*(y-1);f Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _14 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:32:13 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f f = derivative((x-1)^2*(x-2)^3);f Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _14 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:32:03 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f = derivative((x-1)^2*(x-2)^3);f f = (5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28)* Output: Errors: ------------------------------------------------------------ File "", line 1 f = (ZZ(5)*x**ZZ(4) - ZZ(32)*x**ZZ(3) + ZZ(75)*x**ZZ(2) - ZZ(76)*x + ZZ(28))* ^ SyntaxError: invalid syntax _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:31:49 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) print(f) f = derivative((x-1)^2*(x-2)^3);f f = (5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28)* Output: Errors: ------------------------------------------------------------ File "", line 1 f = (ZZ(5)*x**ZZ(4) - ZZ(32)*x**ZZ(3) + ZZ(75)*x**ZZ(2) - ZZ(76)*x + ZZ(28))* ^ SyntaxError: invalid syntax _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _14 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:31:23 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 f fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f = derivative((x-1)^2*(x-2)^3);f f = (5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28)* Output: Errors: ------------------------------------------------------------ File "", line 1 f = (ZZ(5)*x**ZZ(4) - ZZ(32)*x**ZZ(3) + ZZ(75)*x**ZZ(2) - ZZ(76)*x + ZZ(28))* ^ SyntaxError: invalid syntax _4 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 _7 = 2 _8 = 1 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = 0 _14 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:27:10 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f = derivative((x-1)^2*(x-2)^3);f Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = 5*x^4 - 32*x^3 + 75*x^2 - 76*x + 28 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:19:12 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) f Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 _13 = -x^6 + 31/4*x^5 - 23*x^4 + 127/4*x^3 - 37/2*x^2 + x + 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:18:53 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 fp = derivative(f) fpp = derivative(fp) f(0) fp(0) f(1) fp(1) f(2) fp(2) fpp(2) Output: _6 = 2 _7 = 1 _8 = 0 _9 = 0 _10 = 0 _11 = 0 _12 = 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 13:18:10 2006 Input: f = 2 + x - 3*x^2 + 5*x^2*(x-1) - 3*x^2*(x-1)^2 + (7/4)*x^2*(x-1)^2*(x-2) - x^2*(x-1)^2*(x-2)^2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:55:10 2006 Input: a = QQ['a'].gen() p = a*(x-1)^3*(x-b)^3; p Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for a (parent: Univariate Polynomial Ring in a over Rational Field) and x^3 - 3*x^2 + 3*x - 1 (parent: Univariate Polynomial Ring in x over Rational Field) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:54:27 2006 Input: p = a*(x-1)^3*(x-b)^3; p Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.161.' ************** SAGE ***************** Host 71.161.0.193 (71.161.0.193) Time: Tue Jun 13 12:46:49 2006 Input: 11 Output: _3 = 11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '63.203.' ************** SAGE ***************** Host 63.203.33.33 (63.203.33.33) Time: Tue Jun 13 12:37:25 2006 Input: 3000*150000000 Output: _3 = 450000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '63.203.' ************** SAGE ***************** Host 63.203.33.33 (63.203.33.33) Time: Tue Jun 13 12:37:04 2006 Input: 10*10 Output: _3 = 100 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '63.203.' ************** SAGE ***************** Host 63.203.33.33 (63.203.33.33) Time: Tue Jun 13 12:36:54 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '208.104' ************** SAGE ***************** Host 208.104.84.154 (208.104.84.154) Time: Tue Jun 13 12:34:25 2006 Input: 1086+220+94+80.33+226+500+60+121+97+160+136+13+86+369+150 Output: _3 = 3398.3299999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '208.104' ************** SAGE ***************** Host 208.104.84.154 (208.104.84.154) Time: Tue Jun 13 12:33:34 2006 Input: 4+6 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:18:09 2006 Input: f = e*x-e*x*(x-1)+(e^5/60+e/20+1/30)*x*(x-1)*(x-2) print f print float(f(0)) print float(f(1)) print float(f(2)) print float(f(5)) print float(e^5) Output: (((e*x) - ((e*x)*x - 1)) + (((((((e^5)/60) + (e/20)) + 1/30)*x)*x - 1)*x - 2)) 0.0 2.71828182846 0.0 117.793777161 148.413159103 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:05:56 2006 Input: f = e*x-e*x*(x-1)+(e^5/60+e/20+1/30)*x*(x-1)*(x-2) print float(f(0)) print float(f(1)) print float(f(2)) print float(f(5)) print float(e^5) Output: 0.0 2.71828182846 0.0 117.793777161 148.413159103 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:05:50 2006 Input: f = e*x-e*x*(x-1)+(e^5/60+e/20+1/30)*x*(x-1)*(x-2) print float(f(0)) print float(f(1)) print float(f(2)) print float(f(5)) print e^5 Output: 0.0 2.71828182846 0.0 117.793777161 (e^5) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:05:38 2006 Input: f = e*x-e*x*(x-1)+(e^5/60+e/20+1/30)*x*(x-1)*(x-2) print float(f(0)) print float(f(1)) print float(f(2)) print float(f(5)) Output: 0.0 2.71828182846 0.0 117.793777161 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:05:28 2006 Input: f = e*x-e*x*(x-1)+(e^5/60+e/20+1/30)*x*(x-1)*(x-2) print float(f(0)) print float(f(1)) print float(f(2)) Output: 0.0 2.71828182846 0.0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 12:05:11 2006 Input: f = e*x-e*x*(x-1)+(e^5/60+e/20+1/30)*x*(x-1)*(x-2) print f(0) print f(1) print f(2) Output: (((e*0) - ((e*0)*-1)) + (((((((e^5)/60) + (e/20)) + 1/30)*0)*-1)*-2)) (((e*1) - ((e*1)*0)) + (((((((e^5)/60) + (e/20)) + 1/30)*1)*0)*-1)) (((e*2) - ((e*2)*1)) + (((((((e^5)/60) + (e/20)) + 1/30)*2)*1)*0)) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:49:54 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = e^x*sin(pi/2*x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.42s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:49:47 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = e^t*sin(pi/2*t) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.45s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:49:30 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = e^t*sin(pi/2*t) N(0) print N Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.33s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:45:23 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = cos('x') print N Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 161, in cos File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:45:19 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = cos(x) print N Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 161, in cos File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.31s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:45:13 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = cos(x) print N print N.derivative()(1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 161, in cos File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.42s). '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Tue Jun 13 11:42:40 2006 Input: f = 1/(x-3) d = f.Deriv() print(d) d2 = d.Deriv() print(d2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FractionFieldElement' object has no attribute 'Deriv' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Tue Jun 13 11:42:30 2006 Input: f = 1/(x-3) d = f.deriv() print(d) d2 = d.deriv() print(d2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FractionFieldElement' object has no attribute 'deriv' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd2' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Tue Jun 13 11:41:42 2006 Input: P = PolynomialRing(QQ,"t") t = P.0 f = 1/(t-3) d = f.d() print(d) d2 = d.derivative() print(d2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FractionFieldElement' object has no attribute 'd' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:41:28 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = -(1/3)-(1/6)*x-(1/12)*x*(x-1) print N.derivative()(1) Output: -1/4 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.39s). '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Tue Jun 13 11:41:27 2006 Input: P = PolynomialRing(QQ,"t") t = P.0 f = 1/(t-3) d = f.derivative() print(d) d2 = d.derivative() print(d2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Tue Jun 13 11:41:05 2006 Input: P = PolynomialRing(QQ,'t') t = P.0 f = 1/(t-3) d = f.derivative() print(d) d2 = d.derivative() print(d2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:41:04 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = -(1/3)-(1/6)*x-(1/12)*x*(x-1) print N(1) Output: -1/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.37s). '24.16.1' ************** SAGE ***************** Host 24.16.17.163 (24.16.17.163) Time: Tue Jun 13 11:40:46 2006 Input: P = PolynomialRing(QQ,'t') t = P.0 f = 1/(t-3) d = f.deriv() print(d) d2 = d.deriv() print(d2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FractionFieldElement' object has no attribute 'deriv' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd2' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:40:16 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = -(1/3)-(1/6)*x-(1/12)*x*(x-1) print N Output: -1/12*x^2 - 1/12*x - 1/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.40s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:40:09 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') N = -(1/3)-(1/6)*x-(1/12)*x*(x-1) print N(0) Output: -1/3 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.35s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:38:20 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N = -(1/3)-(1/6)*x-(1/12)*x*(x-1) print N(0) N = -(1/3)-(1/9)*x-(2/18)*x^2 print N.derivative() N(0) N(2) Output: -1/(x - 3)^2 -1/3 -2/9*x - 1/9 _10 = -1/3 _11 = -1 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.43s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:32:26 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N2 = -1/3-(1/6)*x^2 print N2(0) print N2(1) print N2(2) N = -(1/3)-(1/9)*x-(2/18)*x^2 print N.derivative() N(0) N(2) Output: -1/(x - 3)^2 -1/3 -1/2 -1 -2/9*x - 1/9 _12 = -1/3 _13 = -1 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.47s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:32:19 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N2 = -1/3-(1/6)*x^2 print N2(0) print N2(1) print N2(2) N = -(1/3)-(1/9)*x-(2/18)*x^2 N.derivative() N(0) N(2) Output: -1/(x - 3)^2 -1/3 -1/2 -1 _11 = -2/9*x - 1/9 _12 = -1/3 _13 = -1 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:32:15 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N2 = -1/3-(1/6)*x^2 print N2(0) print N2(1) print N2(2) N = -(1/3)-(1/9)*x-(2/18)*x^2 N.derivative('x') N(0) N(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: derivative() takes exactly 1 argument (2 given) -1/(x - 3)^2 -1/3 -1/2 -1 _12 = -1/3 _13 = -1 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:32:08 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N2 = -1/3-(1/6)*x^2 print N2(0) print N2(1) print N2(2) N = -(1/3)-(1/9)*x-(2/18)*x^2 N.deriv('x') N(0) N(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'deriv' -1/(x - 3)^2 -1/3 -1/2 -1 _12 = -1/3 _13 = -1 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.40s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:31:00 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N2 = -1/3-(1/6)*x^2 print N2(0) print N2(1) print N2(2) N = -(1/3)-(1/9)*x-(2/18)*x^2 N(0) N(2) Output: -1/(x - 3)^2 -1/3 -1/2 -1 _11 = -1/3 _12 = -1 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.40s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:18:32 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N2 = -1/3-(1/6)*x^2 print N2(0) print N2(1) print N2(2) N = -(1/3)-(1/9)*x-(5/18)*x^2 N(0) N(2) Output: -1/(x - 3)^2 -1/3 -1/2 -1 _11 = -1/3 _12 = -5/3 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:18:19 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N2 = -1/3-(1/6)*x^2 print N2(0) print N2(1) print N2(3) N = -(1/3)-(1/9)*x-(5/18)*x^2 N(0) N(2) Output: -1/(x - 3)^2 -1/3 -1/2 -11/6 _11 = -1/3 _12 = -5/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:17:40 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N = -(1/3)-(1/9)*x-(5/18)*x^2 N(0) N(2) Output: -1/(x - 3)^2 _7 = -1/3 _8 = -5/3 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.34s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:17:23 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g N = -1/3-1/9x-5/18x^2 N(0) N(2) Output: Errors: ------------------------------------------------------------ File "", line 1 N = -ZZ(1)/ZZ(3)-ZZ(1)/ZZ(9)x-ZZ(5)/ZZ(18)x**ZZ(2) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'N' is not defined -1/(x - 3)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 11:12:52 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("1/(x-3)").diff('x') print g Output: -1/(x - 3)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.36s). '67.110.' ************** SAGE ***************** Host 67.110.18.100 (67.110.18.100) Time: Tue Jun 13 11:00:22 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.72s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:12:54 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') print float(e^0*sin(pi*0/2) + e^0*pi*cos(pi*0/2)/2) print float(pi/2) print f(0) print f(1) print f(2) Output: 1.57079632679 1.57079632679 (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.43s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:12:43 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') print float(e^0*sin(pi*0/2) + e^0*pi*cos(pi*0/2)/2) print f(0) print f(1) print f(2) Output: 1.57079632679 (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.34s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:12:31 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') print e^0*sin(pi*0/2) + e^0*pi*cos(pi*0/2)/2 print h(0) print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'h' is not defined (((e^0)*0.00000000000000000) + ((((e^0)*pi)*1.0000000000000000)/2)) (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.59s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:10:47 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') h = e^x*log(e)*sin(pi*x/2) + e^x*pi*cos(pi*x/2)/2 print h(0) print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'h' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.34s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:10:03 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') print g.eval('x',0) print f(0) print f(1) print f(2) Output: eval(e^x*log(e)*sin(pi*x/2) + e^x*pi*cos(pi*x/2)/2,x,0) (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.48s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:08:52 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') print g.sage()(0) print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.45s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:08:29 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') print g(0) print f(0) print f(1) print f(2) Output: (e^x*log(e)*sin(pi*x/2) + e^x*pi*cos(pi*x/2)/2)[0] (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.35s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:07:54 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").diff('x') print g print f(0) print f(1) print f(2) Output: e^x*log(e)*sin(pi*x/2) + e^x*pi*cos(pi*x/2)/2 (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.48s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:07:35 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*cos(pi/2*x)").diff('x') print g print f(0) print f(1) print f(2) Output: e^x*log(e)*cos(pi*x/2) - e^x*pi*sin(pi*x/2)/2 (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.33s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:07:20 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("cos(x)^2").diff('x') print g print f(0) print f(1) print f(2) Output: -2*cos(x)*sin(x) (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.40s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:07:12 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("cos(x)^2').diff('x') print g print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ File "", line 1 g = maxima("cos(x)^2').diff('x') ^ SyntaxError: EOL while scanning single-quoted string ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:07:03 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima('x^2').diff('x') print g print f(0) print f(1) print f(2) Output: 2*x (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.44s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:06:53 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("x^2").diff(x) print g print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1089, in diff File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 538, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 482, in function_call File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 391, in new File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 368, in __call__ File "sage_object.pyx", line 332, in sage_object.SageObject._maxima_ File "sage_object.pyx", line 282, in sage_object.SageObject._interface_ NotImplementedError: coercion of x (of type ) to Maxima not implemented: 'Polynomial_rational_dense' object has no attribute '_interface_init_' 'Polynomial_rational_dense' object has no attribute '_interface_init_' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:06:41 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("sin(x)").diff(x) print g print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1089, in diff File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 538, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 482, in function_call File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 391, in new File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 368, in __call__ File "sage_object.pyx", line 332, in sage_object.SageObject._maxima_ File "sage_object.pyx", line 282, in sage_object.SageObject._interface_ NotImplementedError: coercion of x (of type ) to Maxima not implemented: 'Polynomial_rational_dense' object has no attribute '_interface_init_' 'Polynomial_rational_dense' object has no attribute '_interface_init_' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.45s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:05:28 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("sin(x)").sage() print g print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.55s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:05:18 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x*sin(pi/2*x)").sage() print g print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.49s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:05:03 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x").sage() print g print f(0) print f(1) print f(2) Output: (e^x) (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.31s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:04:57 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x").sage() dir(g) print f(0) print f(1) print f(2) Output: _5 = ['Hom', '_Function__conversions', '_Function_arith__op', '_Function_arith__x', '_Function_arith__y', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_call_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_init_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mpfr_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', 'additive_order', 'base_ring', 'category', 'db', 'dump', 'dumps', 'integral', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'order', 'parent', 'plot', 'rename', 'reset_name', 'save', 'str', 'version'] (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:04:53 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e^x")sage() dir(g) print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ File "", line 1 g = maxima("e^x")sage() ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:04:35 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e**x*sin(pi/2*x)").sage() dir(g) print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.40s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:04:27 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e**x*sin(pi/2*x)").deriv('x').sage() dir(g) print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? NameError: name 'deriv' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:03:40 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e**x*sin(pi/2*x)").deriv('x') dir(g) print f(0) print f(1) print f(2) Output: _5 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.42s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:03:27 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e**x*sin(pi/2*x)").deriv('x') print g print f(0) print f(1) print f(2) Output: deriv(e^x*sin(pi*x/2),x) (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.45s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:03:07 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e**x*sin(pi/2*x)").deriv().eval() print g print f(0) print f(1) print f(2) Output: eval(deriv(e^x*sin(pi*x/2))) (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.81s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:02:41 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = maxima("e**x*sin(pi/2*x)").deriv() print g print f(0) print f(1) print f(2) Output: deriv(e^x*sin(pi*x/2)) (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.21s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:02:00 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = e**x*sin(pi/2*x) print g print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:01:45 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = e**x*sin(pi/2*x) g.deriv() print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 10:01:28 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) g = e**t*sin(pi/2*t) g.deriv() print f(0) print f(1) print f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:55:30 2006 Input: f = (e)*(x-0)*(x-2)/((1-0)*(1-2)) print f(0) print f(1) print f(2) Output: (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:53:37 2006 Input: f = e*(x-0)*(x-2)/((1-0)*(1-2)) print f(0) print f(1) print f(2) Output: (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:53:18 2006 Input: f = e*(x-0)*(x-2)/((1-0)*(1-2)) print float(f(0)) print float(f(1)) print float(f(2)) Output: 0.0 2.71828182846 -0.0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:52:30 2006 Input: f = e*(x-0)*(x-2)/((1-0)*(1-2)) print f(0) print f(1) print f(2) Output: (((e*0)*-2)/-1) (((e*1)*-1)/-1) (((e*2)*0)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:52:04 2006 Input: e*(x-0)*(x-2)/((1-0)*(1-2)) Output: _3 = (((e*x)*x - 2)/-1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:51:35 2006 Input: float(e) Output: _3 = 2.7182818284590451 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:51:22 2006 Input: (float)e Output: Errors: ------------------------------------------------------------ File "", line 1 (float)e ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 13 09:51:09 2006 Input: e Output: _3 = e Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '140.121' ************** SAGE ***************** Host 140.121.135.213 (140.121.135.213) Time: Tue Jun 13 06:21:03 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '140.121' ************** SAGE ***************** Host 140.121.135.213 (140.121.135.213) Time: Tue Jun 13 06:20:55 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '194.242' ************** SAGE ***************** Host 194.242.62.26 (194.242.62.26) Time: Tue Jun 13 04:27:35 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m2.35s). '194.242' ************** SAGE ***************** Host 194.242.62.26 (194.242.62.26) Time: Tue Jun 13 04:26:08 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m18.45s). '194.242' ************** SAGE ***************** Host 194.242.62.26 (194.242.62.26) Time: Tue Jun 13 04:15:21 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.94s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:56:58 2006 Input: EllipticCurve(GF(37),[0,0,0,33,19]).cardinality() Output: _3 = 38 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.12s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:53:16 2006 Input: EllipticCurve(GF(17),[0,0,0,5,14]).cardinality() Output: _3 = 14 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.12s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:50:38 2006 Input: EllipticCurve(GF(13),[0,0,0,3,4]).cardinality() Output: _3 = 14 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.12s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:40:57 2006 Input: EllipticCurve(GF(13),[0,0,0,1,4]).cardinality() Output: _3 = 14 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:37:12 2006 Input: EllipticCurve(GF(5),[0,0,0,2,3]).cardinality() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 2, 3] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:36:51 2006 Input: EllipticCurve(GF(5),[0,0,0,3,1]).cardinality() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 3, 1] define a singular curve. Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:36:30 2006 Input: EllipticCurve(GF(17),[0,0,0,4,1).cardinality Output: Errors: ------------------------------------------------------------ File "", line 1 EllipticCurve(GF(ZZ(17)),[ZZ(0),ZZ(0),ZZ(0),ZZ(4),ZZ(1)).cardinality ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:36:08 2006 Input: EllipticCurve(GF(17),[0,0,0,4,1).cardinality() Output: Errors: ------------------------------------------------------------ File "", line 1 EllipticCurve(GF(ZZ(17)),[ZZ(0),ZZ(0),ZZ(0),ZZ(4),ZZ(1)).cardinality() ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:35:54 2006 Input: EllipticCurve(GF(17),[0,0,0,2,3).cardinality() Output: Errors: ------------------------------------------------------------ File "", line 1 EllipticCurve(GF(ZZ(17)),[ZZ(0),ZZ(0),ZZ(0),ZZ(2),ZZ(3)).cardinality() ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:35:24 2006 Input: EllipticCurve(GF(5),[0,0,0,2,3).cardinality() Output: Errors: ------------------------------------------------------------ File "", line 1 EllipticCurve(GF(ZZ(5)),[ZZ(0),ZZ(0),ZZ(0),ZZ(2),ZZ(3)).cardinality() ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:34:16 2006 Input: EllipticCurve(GF(17),[0,0,0,4,1]).cardinality() Output: _3 = 24 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.12s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:33:58 2006 Input: EllipticCurve(GF(17),[0,0,0,4,1]).cardinality Output: _3 = Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:28:48 2006 Input: EllipticCurve(GF(13),[0,0,0,3,3]).cardinality Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 3, 3] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:27:39 2006 Input: EllipticCurve(GF(5),[0,0,0,2,3]).cardinality Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 2, 3] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:27:12 2006 Input: EllipticCurve(GF(5),[0,0,0,1,1]) Output: _3 = Elliptic Curve defined by y^2 = x^3 + x +1 over Finite Field of size 5 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.12s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:26:32 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:26:17 2006 Input: EllipticCurve(GF(5),[0,0,0,2,3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 2, 3] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:25:49 2006 Input: EllipticCurve(GF(5),[0,0,0,2,3]).cardinality; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 2, 3] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:25:26 2006 Input: EllipticCurve(GF(5),[0,0,0,2,3]).cardinality Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 2, 3] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.20.' ************** SAGE ***************** Host 141.20.50.152 (141.20.50.152) Time: Tue Jun 13 03:25:22 2006 Input: EllipticCurve(GF(5),[0,0,0,2,3]).cardinality Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/constructor.py", line 94, in EllipticCurve File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 45, in __init__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_generic.py", line 89, in __init__ ArithmeticError: Invariants [0, 0, 0, 2, 3] define a singular curve. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.57s). '12.214.' ************** SAGE ***************** Host 12.214.42.184 (12.214.42.184) Time: Tue Jun 13 03:01:05 2006 Input: A = MatrixSpace(QQ, 4)(range(16)); A factor(A.charpoly()) Output: _3 = [ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] _4 = x^2 * (x^2 - 30*x - 80) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.32s). '12.214.' ************** SAGE ***************** Host 12.214.42.184 (12.214.42.184) Time: Tue Jun 13 03:00:02 2006 Input: factor(2006) Output: _3 = 2 * 17 * 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '12.214.' ************** SAGE ***************** Host 12.214.42.184 (12.214.42.184) Time: Tue Jun 13 02:59:34 2006 Input: 2 + 2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '12.214.' ************** SAGE ***************** Host 12.214.42.184 (12.214.42.184) Time: Tue Jun 13 02:57:40 2006 Input: maxima('tan(x)').integrate('x') Output: _3 = log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m6.87s). '12.214.' ************** SAGE ***************** Host 12.214.42.184 (12.214.42.184) Time: Tue Jun 13 02:56:53 2006 Input: maxima('tan(x)').integrate('x') Output: _3 = log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m6.46s). '137.189' ************** SAGE ***************** Host 137.189.4.1 (137.189.4.1) Time: Tue Jun 13 02:17:40 2006 Input: F = GF(3); l = F(1); o = F(0); 2=F(2); F = GF(3); S = LaurentSeriesRing(F,'x'); x = S.gen() fill = [l,l,o,l]; key = [1,o,o,l]; n = 20 L = lfsr_sequence(key,fill,29); L Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'l' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'key' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '137.189' ************** SAGE ***************** Host 137.189.4.1 (137.189.4.1) Time: Tue Jun 13 02:11:15 2006 Input: F = GF(3); l = F(1); o = F(0); 2=F(2); F = GF(3); S = LaurentSeriesRing(F,'x'); x = S.gen() fill = [l,l,o,l]; key = [1,o,o,l]; n = 20 L = lfsr_sequence(key,fill,20); L Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'l' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'key' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '137.189' ************** SAGE ***************** Host 137.189.4.1 (137.189.4.1) Time: Tue Jun 13 02:10:29 2006 Input: F = GF(2); l = F(1); o = F(0) F = GF(2); S = LaurentSeriesRing(F,'x'); x = S.gen() fill = [l,l,o,l]; key = [1,o,o,l]; n = 20 L = lfsr_sequence(key,fill,20); L Output: _6 = [1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.42s). '137.189' ************** SAGE ***************** Host 137.189.4.1 (137.189.4.1) Time: Tue Jun 13 02:10:07 2006 Input: F = GF(2); l = F(1); o = F(0) F = GF(2); S = LaurentSeriesRing(F,'x'); x = S.gen() Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.03s). '137.189' ************** SAGE ***************** Host 137.189.4.1 (137.189.4.1) Time: Tue Jun 13 02:09:40 2006 Input: F = GF(2); l = F(1); o = F(0) Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '196.1.1' ************** SAGE ***************** Host 196.1.114.240 (196.1.114.240) Time: Tue Jun 13 00:00:32 2006 Input: rint gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Errors: ------------------------------------------------------------ File "", line 1 rint gap('SymmetricGroup(7)') ^ SyntaxError: invalid syntax Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 1m3.47s). '130.194' ************** SAGE ***************** Host 130.194.13.103 (130.194.13.103) Time: Mon Jun 12 20:11:05 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.09s, Wall time 0m6.99s). '70.38.9' ************** SAGE ***************** Host 70.38.96.180 (70.38.96.180) Time: Mon Jun 12 19:35:53 2006 Input: -2(2x+1)=-x+5 Output: Errors: ------------------------------------------------------------ File "", line 1 -ZZ(2)(ZZ(2)x+ZZ(1))=-x+ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '75.3.31' ************** SAGE ***************** Host 75.3.31.216 (75.3.31.216) Time: Mon Jun 12 19:06:51 2006 Input: 56+3 Output: _3 = 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '75.3.31' ************** SAGE ***************** Host 75.3.31.216 (75.3.31.216) Time: Mon Jun 12 19:06:27 2006 Input: 0.67/ Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('0.67')/ ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 17:12:42 2006 Input: e^2 Output: _3 = (e^2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 17:10:20 2006 Input: e^0 Output: _3 = (e^0) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 17:10:05 2006 Input: e^0*sin( (pi/2)*0 ) Output: _3 = ((e^0)*0.00000000000000000) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 17:09:54 2006 Input: E^0*sin( (pi/2)*0 ) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'E' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '66.231.' ************** SAGE ***************** Host 66.231.216.20 (66.231.216.20) Time: Mon Jun 12 16:26:21 2006 Input: 6+7 Output: _3 = 13 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:36:10 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/6+1/9) (-1/4+1/6) (-1/12+1/18) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/18 _13 = -1/12 _14 = -1/36 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.73s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:35:29 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/6+1/9) (-1/4+1/6) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/18 _13 = -1/12 Exiting SAGE (CPU time 0m0.10s, Wall time 0m5.72s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:34:42 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/8+1/12) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/24 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.31s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:33:03 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/4+1/12) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/6 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.82s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:31:57 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/4+1/6) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/12 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.53s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:30:59 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/2+1/3) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/6 Exiting SAGE (CPU time 0m0.09s, Wall time 0m7.15s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:11:23 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/2+1/3) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/6 Exiting SAGE (CPU time 0m0.10s, Wall time 0m7.62s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:08:56 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/4-1/12) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/3 Exiting SAGE (CPU time 0m0.09s, Wall time 0m7.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:07:39 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/4+1/3) Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = 1/12 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.53s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:01:59 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/6+1/9)/5 Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/90 Exiting SAGE (CPU time 0m0.08s, Wall time 0m7.51s). '69.225.' ************** SAGE ***************** Host 69.225.221.1 (69.225.221.1) Time: Mon Jun 12 15:00:36 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 15:00:28 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/6+1/9)/5 Output: _5 = -1/(x - 3)^2 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/90 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.61s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:59:18 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(diff(1/(x-3),x,1),x,1)') g2 g2 = g2.sage() g2(1) g(0) g(1) g(2) g(5) (-1/6+1/9)/5 Output: _5 = 2/(x - 3)^3 _7 = -1/4 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/90 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:58:07 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(diff(1/(x-3),x,1),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (-1/6+1/9)/5 Output: _5 = 2/(x - 3)^3 _7 = -2/27 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/90 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.45s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:55:23 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (-1/6+1/9)/5 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/90 Exiting SAGE (CPU time 0m0.08s, Wall time 0m7.00s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:54:50 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (-1/3+1/9)/2 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/9 Exiting SAGE (CPU time 0m0.10s, Wall time 0m5.72s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:53:48 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (1/2 + 1/3)/5 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = 1/6 Exiting SAGE (CPU time 0m0.09s, Wall time 0m6.43s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:53:19 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (-1+1/3)/2 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:51:43 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (-1/3+1/9)/2 (-1/9-1/6)/5 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/9 _13 = -1/18 Exiting SAGE (CPU time 0m0.08s, Wall time 0m6.90s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:51:08 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (-1/9-1/6)/5 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = -1/18 Exiting SAGE (CPU time 0m0.08s, Wall time 0m2.59s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:50:24 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (1/2+1/3)/5 (-1/3+1/9)/2 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = 1/6 _13 = -1/9 Exiting SAGE (CPU time 0m0.10s, Wall time 0m5.93s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:47:32 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (1/2+2/3)/5 (-2/3+1/9)/2 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = 7/30 _13 = -5/18 Exiting SAGE (CPU time 0m0.09s, Wall time 0m7.90s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:34:35 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2 = g2.sage() g2(0) g(0) g(1) g(2) g(5) (1/4- -1/6)/5 Output: _5 = -1/(x - 3)^2 _7 = -1/9 _8 = -1/3 _9 = -1/2 _10 = -1 _11 = 1/2 _12 = 1/12 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.71s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:34:27 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)') g2 g2(0) g(0) g(1) g(2) g(5) (1/4- -1/6)/5 Output: _5 = -1/(x - 3)^2 _6 = ( - 1/(x - 3)^2)[0] _7 = -1/3 _8 = -1/2 _9 = -1 _10 = 1/2 _11 = 1/12 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.89s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:34:17 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)').sage() g2 g2(0) g(0) g(1) g(2) g(5) (1/4- -1/6)/5 Output: _5 = -1/(x^2 - 6*x + 9) _6 = -1/9 _7 = -1/3 _8 = -1/2 _9 = -1 _10 = 1/2 _11 = 1/12 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.38s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:34:06 2006 Input: g = maxima('1/(x-3)').sage() g2 = maxima('diff(1/(x-3),x,1)').sage() g2(0) g(0) g(1) g(2) g(5) (1/4- -1/6)/5 Output: _5 = -1/9 _6 = -1/3 _7 = -1/2 _8 = -1 _9 = 1/2 _10 = 1/12 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.75s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:32:05 2006 Input: g = maxima('1/(x-3)').sage() g(0) g(1) g(2) g(5) (1/4- -1/6)/5 Output: _4 = -1/3 _5 = -1/2 _6 = -1 _7 = 1/2 _8 = 1/12 Exiting SAGE (CPU time 0m0.07s, Wall time 0m6.38s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:31:19 2006 Input: g = maxima('1/(x-3)').sage() g(0) g(1) g(2) g(5) (-1/2 - -1/6)/2 Output: _4 = -1/3 _5 = -1/2 _6 = -1 _7 = 1/2 _8 = -1/6 Exiting SAGE (CPU time 0m0.07s, Wall time 0m6.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:29:44 2006 Input: g = maxima('1/(x-3)').sage() g(0) g(1) g(2) g(5) -1/2 - -1/3 Output: _4 = -1/3 _5 = -1/2 _6 = -1 _7 = 1/2 _8 = -1/6 Exiting SAGE (CPU time 0m0.07s, Wall time 0m6.45s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 14:28:25 2006 Input: g = maxima('1/(x-3)').sage() g(0) g(1) g(2) g(5) Output: _4 = -1/3 _5 = -1/2 _6 = -1 _7 = 1/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m5.50s). '69.120.' ************** SAGE ***************** Host 69.120.116.25 (69.120.116.25) Time: Mon Jun 12 13:14:54 2006 Input: 2006-80 Output: _3 = 1926 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '69.205.' ************** SAGE ***************** Host 69.205.161.7 (69.205.161.7) Time: Mon Jun 12 13:04:52 2006 Input: 150,000 times 19 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(150),ZZ(000) times ZZ(19) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '84.162.' ************** SAGE ***************** Host 84.162.236.212 (84.162.236.212) Time: Mon Jun 12 12:33:45 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:58:58 2006 Input: (((e^5)/3 - -e)/4 + e)/5 Output: _3 = ((((((e^5)/3) - (-1*e))/4) + e)/5) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:57:03 2006 Input: ((math.e^5)/3 - -math.e)/4 Output: _3 = 13.047333715662809 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:56:42 2006 Input: ((math.e^5)/3 - -math.e)/5 Output: _3 = 10.437866972530248 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:55:21 2006 Input: (math.e^5)/3 - -math.e Output: _3 = 52.189334862651236 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:55:04 2006 Input: math.e^5/3 - -math.e Output: _3 = 52.189334862651236 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:54:45 2006 Input: e^5/3 - -e Output: _3 = (((e^5)/3) - (-1*e)) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:52:05 2006 Input: g = maxima('(e^x)*sin(pi/2*x)') g g = g.sage() g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. _4 = e^x*sin(pi*x/2) _6 = e^x*sin(pi*x/2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.53s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:51:39 2006 Input: x = RR['x'].gen() g = maxima('(e^x)*sin(pi/2*x)') g g = g.sage() g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. _5 = e^x*sin(pi*x/2) _7 = e^x*sin(pi*x/2) Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.43s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:43:55 2006 Input: x = RR['x'].gen() g = maxima('diff(diff((x-3)^-1, x, 1), x, 1)') g g = g.sage() g g(0) Output: _5 = 2/(x - 3)^3 _7 = 2/(x^3 - 9*x^2 + 27*x - 27) _8 = -2/27 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.65s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:42:32 2006 Input: x = RR['x'].gen() g = maxima('diff(diff((x-3)^-1, x, 1), x, 1)') g = g.sage() g g(0) Output: _6 = 2/(x^3 - 9*x^2 + 27*x - 27) _7 = -2/27 Exiting SAGE (CPU time 0m0.09s, Wall time 0m6.58s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:42:11 2006 Input: x = RR['x'].gen() g = maxima('diff(diff((x-3)^-1, x, 1), x, 1)') g = g.sage() g(0) g(1) g(2) (-1/4 - -1/6) Output: _6 = -2/27 _7 = -1/4 _8 = -2 _9 = -1/12 Exiting SAGE (CPU time 0m0.08s, Wall time 0m6.17s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:41:35 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g = g.sage() g(0) g(1) g(2) (-1/4 - -1/6) Output: _6 = -1/9 _7 = -1/4 _8 = -1 _9 = -1/12 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.59s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:37:17 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g = g.sage() g(0) g(1) g(2) (-2/3 - -1/9)/2 Output: _6 = -1/9 _7 = -1/4 _8 = -1 _9 = -5/18 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:36:49 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g = g.sage() g(0) g(1) g(2) -1 - -1/3 Output: _6 = -1/9 _7 = -1/4 _8 = -1 _9 = -2/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.69s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:35:00 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g = g.sage() g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _6 = -1/9 _7 = -1/4 _8 = -1 _9 = -1/6 _10 = -2/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.43s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:34:29 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g.sage() dir(g) g(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _5 = -1/(x^2 - 6*x + 9) _6 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] _7 = ( - 1/(x - 3)^2)[0] _8 = ( - 1/(x - 3)^2)[0] _9 = ( - 1/(x - 3)^2)[1] _10 = ( - 1/(x - 3)^2)[2] _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.10s, Wall time 0m9.10s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:32:38 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g.sage? dir(g) g(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Type: instancemethod Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py Definition: g.sage(self) Docstring: _6 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] _7 = ( - 1/(x - 3)^2)[0] _8 = ( - 1/(x - 3)^2)[0] _9 = ( - 1/(x - 3)^2)[1] _10 = ( - 1/(x - 3)^2)[2] _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.85s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:31:19 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g dir(g) g(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _5 = -1/(x - 3)^2 _6 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] _7 = ( - 1/(x - 3)^2)[0] _8 = ( - 1/(x - 3)^2)[0] _9 = ( - 1/(x - 3)^2)[1] _10 = ( - 1/(x - 3)^2)[2] _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.10s, Wall time 0m5.53s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:30:48 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g g(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _5 = -1/(x - 3)^2 _6 = ( - 1/(x - 3)^2)[0] _7 = ( - 1/(x - 3)^2)[0] _8 = ( - 1/(x - 3)^2)[1] _9 = ( - 1/(x - 3)^2)[2] _10 = -1/6 _11 = -2/3 Exiting SAGE (CPU time 0m0.10s, Wall time 0m5.66s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:30:19 2006 Input: x = RR['x'].gen() g = diff((x-3)^-1, x, 1) g derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'diff' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:30:00 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, x, 1)') g derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _5 = -1/(x - 3)^2 _6 = 2/(x - 3)^3 _7 = (2/(x - 3)^3)[0] _8 = ( - 1/(x - 3)^2)[0] _9 = ( - 1/(x - 3)^2)[1] _10 = ( - 1/(x - 3)^2)[2] _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.11s, Wall time 0m8.74s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:29:52 2006 Input: x = RR['x'].gen() g = maxima('diff((x-3)^-1, 1)') g derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Error executing code in Maxima CODE: sage0 : diff((x-3)^-1, 1); Maxima ERROR: Non-variable 2nd argument to diff: 1 -- an error. Quitting. To debug this try debugmode(true); (%o12) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m6.16s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:29:28 2006 Input: x = RR['x'].gen() g = maxima('derivitive((x-3)^-1)') g derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _5 = derivitive(1/(x - 3)) _6 = 'diff(derivitive(1/(x - 3)),x,1) _7 = ('diff(derivitive(1/(x - 3)),x,1))[0] _8 = derivitive(1/(x - 3))[0] _9 = derivitive(1/(x - 3))[1] _10 = derivitive(1/(x - 3))[2] _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.12s, Wall time 0m6.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:28:30 2006 Input: x = RR['x'].gen() g = maxima('derivitive((x-3)^-1)') dir(g) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _5 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] _6 = 'diff(derivitive(1/(x - 3)),x,1) _7 = ('diff(derivitive(1/(x - 3)),x,1))[0] _8 = derivitive(1/(x - 3))[0] _9 = derivitive(1/(x - 3))[1] _10 = derivitive(1/(x - 3))[2] _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.11s, Wall time 0m9.92s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:27:48 2006 Input: x = RR['x'].gen() g = (x-3)^-1 dir(g) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' _5 = ['Hom', '_FractionFieldElement__denominator', '_FractionFieldElement__numerator', '__abs__', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__int__', '__invert__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_rational_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_ring', 'category', 'copy', 'db', 'denominator', 'dump', 'dumps', 'inverse_mod', 'is_nonzero', 'is_unit', 'is_zero', 'mod', 'multiplicative_order', 'numerator', 'order', 'parent', 'quo_rem', 'reduce', 'rename', 'reset_name', 'save', 'valuation', 'version'] _8 = -0.33333333333333331 _9 = -0.50000000000000000 _10 = -1.0000000000000000 _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:26:19 2006 Input: x = RR['x'].gen() g = 1.0/x dir(g) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' _5 = ['Hom', '_FractionFieldElement__denominator', '_FractionFieldElement__numerator', '__abs__', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__int__', '__invert__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_rational_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_ring', 'category', 'copy', 'db', 'denominator', 'dump', 'dumps', 'inverse_mod', 'is_nonzero', 'is_unit', 'is_zero', 'mod', 'multiplicative_order', 'numerator', 'order', 'parent', 'quo_rem', 'reduce', 'rename', 'reset_name', 'save', 'valuation', 'version'] _8 = +infinity _9 = 1.0000000000000000 _10 = 0.50000000000000000 _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:25:53 2006 Input: x = RR['x'].gen() g = x dir(g) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _5 = ['Hom', '_Polynomial_generic_dense__coeffs', '_Polynomial_generic_dense__normalize', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__floordiv__', '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__long__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_factor_pari_helper', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_gen', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_mul_generic', '_mul_karatsuba', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_pow', '_repr', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_extend', 'base_ring', 'category', 'coeffs', 'constant_coefficient', 'copy', 'db', 'degree', 'denominator', 'derivative', 'dict', 'dump', 'dumps', 'factor', 'gcd', 'integral', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_gen', 'is_irreducible', 'is_monic', 'is_nonzero', 'is_unit', 'is_zero', 'lcm', 'leading_coefficient', 'list', 'mod', 'monic', 'multiplicative_order', 'name', 'newton_raphson', 'newton_slopes', 'order', 'parent', 'polynomial', 'quo_rem', 'rename', 'reset_name', 'resultant', 'reverse', 'roots', 'save', 'truncate', 'valuation', 'version', 'xgcd'] _6 = 1.0000000000000000 _7 = 1.0000000000000000 _8 = 0.00000000000000000 _9 = 1.0000000000000000 _10 = 2.0000000000000000 _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:25:41 2006 Input: x = RR['x'].gen() g = 1/x dir(g) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' _5 = ['Hom', '_FractionFieldElement__denominator', '_FractionFieldElement__numerator', '__abs__', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__int__', '__invert__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_rational_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_ring', 'category', 'copy', 'db', 'denominator', 'dump', 'dumps', 'inverse_mod', 'is_nonzero', 'is_unit', 'is_zero', 'mod', 'multiplicative_order', 'numerator', 'order', 'parent', 'quo_rem', 'reduce', 'rename', 'reset_name', 'save', 'valuation', 'version'] _8 = +infinity _9 = 1.0000000000000000 _10 = 0.50000000000000000 _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:25:19 2006 Input: x = RR['x'].gen() g = 1/(x - 3) dir(g) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' _5 = ['Hom', '_FractionFieldElement__denominator', '_FractionFieldElement__numerator', '__abs__', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__int__', '__invert__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_rational_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_ring', 'category', 'copy', 'db', 'denominator', 'dump', 'dumps', 'inverse_mod', 'is_nonzero', 'is_unit', 'is_zero', 'mod', 'multiplicative_order', 'numerator', 'order', 'parent', 'quo_rem', 'reduce', 'rename', 'reset_name', 'save', 'valuation', 'version'] _8 = -0.33333333333333331 _9 = -0.50000000000000000 _10 = -1.0000000000000000 _11 = -1/6 _12 = -2/3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:24:21 2006 Input: g = 1/(x - 3) dir(g) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' _4 = ['Hom', '_FractionFieldElement__denominator', '_FractionFieldElement__numerator', '__abs__', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__getattribute__', '__hash__', '__init__', '__int__', '__invert__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_rational_', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_ring', 'category', 'copy', 'db', 'denominator', 'dump', 'dumps', 'inverse_mod', 'is_nonzero', 'is_unit', 'is_zero', 'mod', 'multiplicative_order', 'numerator', 'order', 'parent', 'quo_rem', 'reduce', 'rename', 'reset_name', 'save', 'valuation', 'version'] _7 = -1/3 _8 = -1/2 _9 = -1 _10 = -1/6 _11 = -2/3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:23:30 2006 Input: g = 1/(x - 3) derivative(g) derivative(g)(0) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FractionFieldElement' object has no attribute 'derivative' _6 = -1/3 _7 = -1/2 _8 = -1 _9 = -1/6 _10 = -2/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:22:06 2006 Input: g = 1/(x - 3) g(0) g(1) g(2) -1/2 - -1/3 (-3/2 - -1/6)/2 Output: _4 = -1/3 _5 = -1/2 _6 = -1 _7 = -1/6 _8 = -2/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:21:41 2006 Input: g = 1/(x - 3) g(0) g(1) g(2) -1/2 - -1/3 Output: _4 = -1/3 _5 = -1/2 _6 = -1 _7 = -1/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:17:00 2006 Input: g = 1/(x - 3) g(0) g(1) g(2) Output: _4 = -1/3 _5 = -1/2 _6 = -1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '12.110.' ************** SAGE ***************** Host 12.110.58.10 (12.110.58.10) Time: Mon Jun 12 11:14:44 2006 Input: 1324657 Output: _3 = 1324657 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:08:58 2006 Input: g = derivative(derivative(maxima('(e^x)*sin((pi/2)*x)'))) g(3.14) Output: _4 = ( - e^x*pi^2*sin(pi*x/2)/4 + e^x*log(e)^2*sin(pi*x/2) + e^x*log(e)*pi*cos(pi*x/2))[3.14] Exiting SAGE (CPU time 0m0.10s, Wall time 0m5.73s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:08:25 2006 Input: g = derivative(maxima('(e^x)*sin((pi/2)*x)')) g(3.14) Output: _4 = (e^x*log(e)*sin(pi*x/2) + e^x*pi*cos(pi*x/2)/2)[3.14] Exiting SAGE (CPU time 0m0.08s, Wall time 0m7.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:07:56 2006 Input: g = derivative(maxima('(math.e^x)*sin((pi/2)*x)')) g(3.14) Output: _4 = ((math.e^x*log(e))*sin(pi*x/2) + (math.e^x)*pi*cos(pi*x/2)/2)[3.14] Exiting SAGE (CPU time 0m0.09s, Wall time 0m6.99s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:06:56 2006 Input: g = derivative(maxima('(e^x)*sin((pi/2)*x)')) g(3.14) Output: _4 = (e^x*log(e)*sin(pi*x/2) + e^x*pi*cos(pi*x/2)/2)[3.14] Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.82s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:06:26 2006 Input: derivative(maxima('(e^x)*sin((pi/2)*x)')) Output: _3 = e^x*log(e)*sin(pi*x/2) + e^x*pi*cos(pi*x/2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.71s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:05:45 2006 Input: derivative(x) Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 11:05:33 2006 Input: deriv(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'deriv' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:55:41 2006 Input: def e(v): return (math.e^v)*sin(v*math.pi/2) e(0) e(1) e(2) def f(v): return math.e*v - math.e*v*(v-1) f(0) f(1) f(2) Output: ...: ...: _4 = 0.00000000000000000 _5 = 2.7182818284599999 _6 = -0.0000000000015282275409923828 ...: ...: _8 = 0.0 _9 = 2.7182818284590451 _10 = 0.0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:55:36 2006 Input: def e(v): return (math.e^v)*sin(v*math.pi/2) e(0) e(1) e(2) def f(v): return math.e*v - math.e*v*(x-1) f(0) f(1) f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in f File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in f File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in f File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: cannot coerce nonconstant polynomial to float ...: ...: _4 = 0.00000000000000000 _5 = 2.7182818284599999 _6 = -0.0000000000015282275409923828 ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.33s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:55:16 2006 Input: def e(v): return (math.e^v)*sin(v*math.pi/2) e(0) e(1) e(2) def f(v): return math.e*v - math.e*v*(x-1) f(0) f(1) f(2) Output: Errors: ------------------------------------------------------------ File "", line 3 (ZZ(0)) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: _4 = 0.00000000000000000 _5 = 2.7182818284599999 _6 = -0.0000000000015282275409923828 ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.22s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:54:42 2006 Input: def e(v): return (math.e^v)*sin(v*math.pi/2) e(0) e(1) e(2) f = math.e*x - math.e*x*(x-1) f(0) f(1) f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: _4 = 0.00000000000000000 _5 = 2.7182818284599999 _6 = -0.0000000000015282275409923828 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:54:28 2006 Input: def e(v): return (math.e^v)*sin(v*math.pi/2) e(0) e(1) e(2) f = math.e*t - math.e*t*(t-1) f(0) f(1) f(2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: _4 = 0.00000000000000000 _5 = 2.7182818284599999 _6 = -0.0000000000015282275409923828 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:50:40 2006 Input: def g(v): return ((math.e^v)*math.sin(math.pi / 2 * v)) g(0) g(1) g(2) Output: ...: ...: _4 = 0.0 _5 = 2.7182818284590451 _6 = 9.0489839002756484e-16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.42s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:50:17 2006 Input: def g(v): return (math.e^v)*math.sin(math.pi / 2 * v g(0) g(1) g(2) Output: Errors: ------------------------------------------------------------ File "", line 4 g(ZZ(0)) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:49:58 2006 Input: def g(v): return (math.e^v)*math.sin(math.pi / 2 * v output g(0) output g(1) output g(2) Output: Errors: ------------------------------------------------------------ File "", line 4 output g(ZZ(0)) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 output g(ZZ(1)) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 output g(ZZ(2)) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:46:47 2006 Input: def e(v): return (math.e^v)*sin(v*math.pi/2) e(0) e(1) e(2) Output: ...: ...: _4 = 0.00000000000000000 _5 = 2.7182818284599999 _6 = -0.0000000000015282275409923828 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:45:59 2006 Input: t = QQ('x').gen() f = math.sin(t) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/rational_field.py", line 100, in __call__ File "rational.pyx", line 105, in rational.Rational.__init__ File "rational.pyx", line 159, in rational.Rational.__set_value TypeError: unable to convert x to a rational ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:45:48 2006 Input: t = RR('x').gen() f = math.sin(t) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:45:22 2006 Input: def e(v): return (math.e^v)*sin(v*math.pi/2) Output: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:45:07 2006 Input: f = math.sin(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:44:50 2006 Input: math.sin(3.14) Output: _3 = 0.0015926529164868282 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:44:37 2006 Input: def e(v): return (e^v)*sin(pi) x = PolynomialRing(RR).gen() f = math.sin(x) f(0) x? Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: Type: Polynomial_generic_dense_field Base Class: String Form: 1.0000000000000000*x Namespace: Interactive Docstring: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:44:31 2006 Input: dir(math) Output: _3 = ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh'] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:44:17 2006 Input: def e(v): return (e^v)*sin(pi) x = PolynomialRing(RR).gen() f = math.sin(x) f(0) x. Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ File "", line 1 x. ^ SyntaxError: invalid syntax ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:44:10 2006 Input: math.e Output: _3 = 2.7182818284590451 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:43:51 2006 Input: def e(v): return (e^v)*sin(pi) x = PolynomialRing(RR).gen() f = math.sin(x) f(0) x.? Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: Object `x.` not found. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:43:16 2006 Input: def e(v): return (e^v)*sin(pi) x = PolynomialRing(RR).gen() f = math.sin(x) f(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:42:17 2006 Input: def e(v): return (e^v)*sin(pi) f = math.sin(x) f(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:41:47 2006 Input: f = math.sin(x) f(math.pi) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:41:21 2006 Input: math.pi Output: _3 = 3.1415926535897931 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:41:21 2006 Input: def e(v): return (e^v)*sin(pi) float(pi) type(pi) Output: ...: ...: _4 = 3.1415926535897931 _5 = Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:41:05 2006 Input: (float)pi Output: Errors: ------------------------------------------------------------ File "", line 1 (float)pi ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:40:55 2006 Input: def e(v): return (e^v)*sin(pi) (float)pi Output: Errors: ------------------------------------------------------------ File "", line 1 (float)pi ^ SyntaxError: invalid syntax ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:40:52 2006 Input: pi Output: _3 = pi Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.12s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:39:28 2006 Input: x = RR['x'].gen() (sin((x)))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='1.0000000000000000*x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:39:14 2006 Input: x = RR['x'].gen() (sin((float)(x)))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:39:01 2006 Input: #x = RR['x'].gen() (sin((float)(x)))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 202, in __float__ TypeError: cannot coerce nonconstant polynomial to float Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:38:45 2006 Input: #x = RR['x'].gen() (sin((float)x))(0) Output: Errors: ------------------------------------------------------------ File "", line 1 (sin((float)x))(ZZ(0)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:38:27 2006 Input: #x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) sin(3.14) (sin((float)x))(0) Output: Errors: ------------------------------------------------------------ File "", line 1 (sin((float)x))(ZZ(0)) ^ SyntaxError: invalid syntax _5 = sin(x) _6 = pi _7 = sin(x)[3.14] _8 = 0.0015926529164868282 Exiting SAGE (CPU time 0m0.08s, Wall time 0m6.77s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:37:48 2006 Input: #x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) sin(3.14) (sin(x))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. _5 = sin(x) _6 = pi _7 = sin(x)[3.14] _8 = 0.0015926529164868282 Exiting SAGE (CPU time 0m0.08s, Wall time 0m6.99s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:36:02 2006 Input: f = sin (x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:34:25 2006 Input: #x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) sin(3.14) sin? Output: _5 = sin(x) _6 = pi _7 = sin(x)[3.14] _8 = 0.0015926529164868282 Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: sin(x) Docstring: Return the sin of x. Exiting SAGE (CPU time 0m0.07s, Wall time 0m6.88s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:34:01 2006 Input: #x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) sin(3.14) Output: _5 = sin(x) _6 = pi _7 = sin(x)[3.14] _8 = 0.0015926529164868282 Exiting SAGE (CPU time 0m0.09s, Wall time 0m5.91s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:33:05 2006 Input: #x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) Output: _5 = sin(x) _6 = pi _7 = sin(x)[3.14] Exiting SAGE (CPU time 0m0.07s, Wall time 0m5.80s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:32:53 2006 Input: #x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) Output: _5 = sin(x) _6 = pi _7 = sin(x)[3.14] Exiting SAGE (CPU time 0m0.09s, Wall time 0m6.48s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:32:10 2006 Input: #x = RR['x'].gen() g = gap('sin(x)') g pi g(3.14) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Gap produced error output Variable: 'sin' must have a value executing $sage1:=sin(x);; ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined _6 = pi Exiting SAGE (CPU time 0m0.02s, Wall time 0m15.82s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:32:10 2006 Input: t = RR['t'].Gen() g = e^t * sin( pi/2 * t) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'PolynomialRing_field' object has no attribute 'Gen' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:31:33 2006 Input: #x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) Output: _5 = sin(x) _6 = pi _7 = sin(x)[3.14] Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.39s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:31:30 2006 Input: t = RR['x'].Gen() g = e^t * sin( pi/2 * t) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'PolynomialRing_field' object has no attribute 'Gen' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:31:10 2006 Input: x = RR['x'].gen() g = maxima('sin(x)') g pi g(3.14) Output: _5 = sin(x) _6 = pi _7 = sin(x)[3.14] Exiting SAGE (CPU time 0m0.08s, Wall time 0m5.61s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:30:43 2006 Input: x = RR['x'].gen() g = maxima('sin(x)') g g(pi) Output: _5 = sin(x) _6 = sin(x)[pi] Exiting SAGE (CPU time 0m0.08s, Wall time 0m6.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:30:21 2006 Input: x = RR['x'].gen() g = maxima('sin(x)') Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m6.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:28:40 2006 Input: x = RR['x'].gen() g = sin(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='1.0000000000000000*x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:27:58 2006 Input: type(x) x = QQ['x'].gen() type(x) x = RR['x'].gen() type(x) #g = sin(x/2) Output: _3 = _5 = _7 = Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:27:31 2006 Input: x x = QQ['x'].gen() x x = RR['x'].gen() x #g = sin(x/2) Output: _3 = x _5 = x _7 = 1.0000000000000000*x Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:27:07 2006 Input: g = e^x * sin( pi/2 * x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:26:47 2006 Input: g = e^x * sin( pi/2 * x) g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:26:38 2006 Input: x x = PolynomialRing(RR).gen() x #g = sin(x/2) Output: _3 = x _5 = 1.0000000000000000*x Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:26:29 2006 Input: g = e^x * sin( pi/2 * x) output g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. ------------------------------------------------------------ File "", line 1 output g ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:26:16 2006 Input: x x = PolynomialRing(RR).gen() x g = sin(x/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='0.50000000000000000*x') to real number. _3 = x _5 = 1.0000000000000000*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:25:55 2006 Input: x = PolynomialRing(RR).gen() g = sin(x/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='0.50000000000000000*x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.42s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:24:57 2006 Input: g = sin(x/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='1/2*x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.52s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:24:20 2006 Input: g = sin(x*pi/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:24:00 2006 Input: g = e^x Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 12 10:23:39 2006 Input: g = sin(x*pi/2)*e^x Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 305, in mpfr.RealField.__call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '141.3.6' ************** SAGE ***************** Host 141.3.60.10 (141.3.60.10) Time: Mon Jun 12 04:20:04 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m30.60s). '141.3.6' ************** SAGE ***************** Host 141.3.60.10 (141.3.60.10) Time: Mon Jun 12 04:17:53 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.00s, Wall time 0m4.20s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 23:07:22 2006 Input: sage: naturalE Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'naturalE' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 23:07:17 2006 Input: sage: natrualE Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'natrualE' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 23:07:09 2006 Input: sage: natrualE Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'natrualE' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 23:01:08 2006 Input: sage: e^1 Output: _3 = (e^1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 23:00:53 2006 Input: sage: e Output: _3 = e Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 22:52:50 2006 Input: sage: g = E^t sage: g(1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'E' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 22:51:12 2006 Input: sage: g = e^t sage: g(1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 22:50:26 2006 Input: sage: g = e^t sage: g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Sun Jun 11 22:50:22 2006 Input: sage: g = e^t sage: g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 22:00:23 2006 Input: 500*34 Output: _3 = 17000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 21:31:55 2006 Input: 500*33.35 Output: _3 = 16675.000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 21:31:55 2006 Input: 500*33.35 Output: _3 = 16675.000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.12s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 21:31:40 2006 Input: 400*33.35 Output: _3 = 13340.000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 21:30:21 2006 Input: 500*33 Output: _3 = 16500 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 21:28:38 2006 Input: 799*35 Output: _3 = 27965 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 21:28:11 2006 Input: 699*35 Output: _3 = 24465 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '124.106' ************** SAGE ***************** Host 124.106.149.195 (124.106.149.195) Time: Sun Jun 11 21:27:55 2006 Input: 699*353 Output: _3 = 246747 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '63.46.8' ************** SAGE ***************** Host 63.46.88.75 (63.46.88.75) Time: Sun Jun 11 20:13:31 2006 Input: diff(x^x,x); print maxima('tan(x)').integrate('x') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'diff' is not defined log(sec(x)) Exiting SAGE (CPU time 0m0.06s, Wall time 0m6.83s). '63.46.8' ************** SAGE ***************** Host 63.46.88.75 (63.46.88.75) Time: Sun Jun 11 20:12:32 2006 Input: diff(x^x,x); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'diff' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '201.67.' ************** SAGE ***************** Host 201.67.83.116 (201.67.83.116) Time: Sun Jun 11 19:44:04 2006 Input: factorial(1) #Hi, if you're reading this in a log, it's not just a "let's stress SAGE" stupid thing, it's a Bye and Thanks ;) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.125.' ************** SAGE ***************** Host 24.125.34.237 (24.125.34.237) Time: Sun Jun 11 19:43:40 2006 Input: 4 to the 12 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4) to the ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '201.67.' ************** SAGE ***************** Host 201.67.83.116 (201.67.83.116) Time: Sun Jun 11 19:31:02 2006 Input: factorial(512000) #Hi, if you're reading this in a log, it's not just a "let's stress SAGE" stupid thing, it's a "let's compare SAGE to http://www.luschny.de/math/factorial/FastFactorialFunctions.htm :) Output: _3 = 50004621666350774187726122914267288598386375013045139279067311923863137019263193187072215036078229882713048844868286949660402518382631242420679391010612332449678981079239414470819601522370369563493342482360617980017309151135161770854063716097826253227881414657698532107995789817785146319390093196745286856907877148272695233803634953673258551836746571407390822035545667972624831727469686881429616859742369122417578920121925941318581079763426953862675765067882078656864278164217835977446368493969226593385144319637321217190046540140624330129730246200266937618922378948853903409374816950647160596695579524645505518756481266589910570062652401331304241440878206188802709240321679910824623621448210589588286344407275092558680280940880811910660785958079524972309645570551368994682161121531653255197351828458173805249725401661636546123399325835274885494117301040239455145378647897519422479791870118225538262013253852795203746614048229022805194703366077221309716623095661885381724124020557515841292774331753465987664102958790513506140615431322416965717921457385942587653548050130734133533461674189575445954394327204271363508472615536564095244337261118945308561562762072049111868939486475751262263109559380254760593954726637448001071840752552621350979938609026732509925212361442282500815694095103799545979864744746961289430421849840948749266258619728371304306181765236825277586710741856865066667369682439528802809967983034064722710041985655169787431372974795365038167238709315006253784325362293414293599848939103843843048827276463127961987851461439364553177859306996854165794389722898905314002842167452234282636976684361429307181881637804436202746635367135408797514559377596096944914252047240921175702352846234510801420453378408443485912940276358791013451066059387466037584824877513079548968729329262889451167548963349307834371155705052880152386025613612197272591205038438046048092418617776264571857736223171656624821636340863429455954862197218326854924758768859895423370002133033440715024573790622765150742017269465740451278468467323759913084324934157233756604458011991961459557782900509001816190857149064235085890732263112351089029800374492088409821625441168547489932712482762856519909915278774340347538990757725053400310289427106327749159650549969814698601326388757156842825013398035412143290774537853295593084981302802726138553041875930465174616400567605107984901621129273536489566437910636508350653677797768860161201786048170611119128138808358950828947043086331097422145720773030074235863688771203549167572000938264386805957416674136554203952369123082288408956093249062888529684807902281856962304309764300173758775732812934577458314404473683131444414830882023109743390038717561693727096240157972438692451198945161809572343911724665564722500876160704307669874747520648643823936997165860081797467537914059314994447392704678683035322464488043393917916531921887495812690559360147108119729065793311396194094471788307768411634148026836709902773070370679932297800152819381312829247219841716622574007235087656627418741642330147598762803103743952189538801345131062332066506355907016155234476753083960982762924334857211238076422591761753164556999122477658684202960456714389202553569780163880037772334465734530862987195710393983248929189419403917402206148606182983710248017874431433573430208858920647488278009773819821975401115638059270175640979112036489073381516738442974394280475577509218987645878817669567430335132739044989124979416645249107818841670978971609782589350763992525142735276282339739114352236135120475220239365565386644478892398484990807821894910807819672935251902633051240333009244018024730477249178192839261715441319605696000152041411848998470061869189383594846382334946346882196904836150175190250354423181239494396531145914379429481340854093212782943135722344885762269947294468509932377138938441563004559606362238765464406713429213607152504015015929246247203225028095232839595834621036036705391415019269676900673454254259153796938364890797378952584487990095928018272188606973946612725473523913162946997487470034332703718211095224784403268461020395520437596871396500780937256094693946097534397376035001209736727709855610487846099637319055255305173678250806409896447890745064990294293922449790276264719382734009864710072529865840873185618652503766218051040296821505888087027134204336558706059834676830412928757616125408584927177577884581875653499702880491980694886700653109684188446682125602605147739394841779389237357273075576813003838633594064812159114873740269051801100354599294210471188923821780635208730307266883363090060769069111713008645704574145290865025368737639283787735754236854190499044512874436313247899129257364190072813753900662586019574446300848068693936763229926210170262083460905340380470004748100772814032268896991257519734240010890373355944780014200528630803195695622187382643732696121064320719822994923396263134330906665406660119368831360938009705564889096105235323392931609095569737738714996634801527864545530877355416143924364594596384074146917738837411824105113081347541246767588051891970128134398304387475503054929446735646091993364668624177064473941569499450875935109682847706926597749864668177880058737223804567377945161963714687836841155700785914113249541318855522845931425099050973849254660692477528171380236781937061811109566001023827781163230120764380843133689630766637502314399231860535805512262546427155418939474818318115063664550805476164659104639880047635747127655583049398774675281586846791867440141757868798204547135719536711180818714913898885274834544539071169228289365395541145761194362666540518146878215896708050893099852025169412663570930791839475879455650223386062740749833764309170615706894092867177611255537607812853015461984705912336236012002650371944809563270244918144192685001176758744231201786852192401206577543943493160261357503320250319759740423370805854105338681292168014536157066994690519667824177788497112160400714513063840274159110551311920097576835106451209444349714978736976740219547423612753907300975564533388943264106253388677160054175965230332201011804933188210003723613729810199229552162924814328580875193819758626653869077399065976495134934124412198341166887047617227116880218366629457660070275755000030606216724738921427538384804125095921602197566492300770861698409642732145728111607015892487764657035873954146753282659173900856827858509754437193618190873048698556720902765919994614609160483295433623072839320568352832946529440647599774962523162133939091742599604911212042372345918385351513472208135209540682370876093840861597717252673137814593587835834385320227924939967588939033170960496290660745597371740207135083619153553260266909085716308965356603079017126371853535177511425184170676999105107887870758301749219824467194041948708418136280890843064520816264522850114033900043166010119348300270369523231952489372932707813231440006796594506623087349076974059001781570153256072723793762899891902552854066344574858698912395773881536224150583931165210097478584480401875910892028903036287370295484445518324321910528192976971687096296779709932722067497844186061124506059185900757835471683512351025771430171868195170668543745815652141300442912997791043562764744850287037915026719362778894323524645858101320965390699797161302193717076947418595950474079074262238789224605422410665205186460688495435565872191023382561395100940150899045116429271343886483438585627766060897633329968080047698574599700385867259933193361467077622133959715622602521600961172454755879515447667231963503452839946342578336461663273949804655982836875278542511455514685936585534907197147733200696228913949331854861930592052466822282858629659521806532874413166073356299059443572265056089033094035897784959659467707982965607208494771577939697693245247685894543971572057281315726517260653405984187554890645475866869748992052655351795367907046648557780452918146274749220895032264730177941185525464841190136804666249502996412746549763662423285479977535815739990949001390675216647549606445048013185405219318096984143587742643901050950808844687606950854134209902218757172837762844403890594712477407357875111271449613636752891853170391665938365690783989051523147180963842468827208956957468919519682608858273392139748080850080762852336653195467649913339856529518082886420392838043444257283296782883727049479895181050824658617192021316680053594874275839265724596426024252009454192313289126777709426535006049314687217207991434551588965516793489785586777041447877439378472912339806017733831909710977213009541320067817997995390780186628129823498966990184946982234436055535934661824213644719305045851529931986728853421949850452282224043601289334009565866319034775934204152187072175817182145242449049368034253686670242717404722060121475499010313594354690693814745222654698014696038910786220620955371440226517211608951252716632514186005343688990571145725463402580889075517986436737330249339424362547167844430088103892943175118336931397567019302834813284879039580847710978026804941173105135030320768674776576017404162984095259156264239665399786331141705359912060607993093762224703521706066505831423244438512016100889120819248339092016580026111992752230646979623308176121024787842298868714424458495990281263929574053419983070047432456494263977379593685642429669496907049924761095299576542211905776839817061057096574911956837673405826530737978561574966188129099854872368212329379533621672684866443589066356960394648395126475867714277945144288006576678340895186339162156580199217719033873916961777044612058878769030724245783990921466946077876008287229327128897640489223604923694989381629657318580390282020268052503412600461352208973468470217194723570148859809556533181804011256503007146966733323448264108925131472115711986889267211883853931575968031867311043830065081736465247492810258248100602819892351630188903296545041647066608533847058305358764442937958938198404658316358983580753517953463125452651725180633845108629715074503716572852382249986792718778220147323790758733452495597422545533080214746332870955358301520266522787610871652844861291897726476600699306605722619473834043487784260313107215842677660309105617599019120077233429935469704230836640163333954154138602902458862134867695942325073009227174960516301036509121648405552745711934089755647039816990173629665308828497912844861006934737705546111022287422346120129617459158462404020645252515425460737914493973724945569928337591789936931061654525839762995199141072279114165321322740193014043676976815012632732493798870804171707691416289533518161257576087838253565099497458292934536872813796375691106347776464617182695355027255222620158255402596225034746969353245442177497222136617235308485700281616538602328550150420966161273321895526456435202288122339964995289477432694736571004138917230537913722376813265794301720515941403607704498279441903751072768811951287715843947783400254114468532972544592052208957861385411839737077602881648676533110882805049535375079592036251876926600716423717622517558298145002569890571114350908747448677081606552419382251565115534774578710675927581116387572513859140956769814800464968215867339605177099873761587022557296086250182420026954510473776549561813023201443337305787612033853075408146459544436825383935333683838548796239220833160230534319623003616293027770117775433409330076749869491193831921264939596167898609854944807167437679364229506861172803603220169592390304388131138579279904077237746395377065750143089021620936469053006103830042282640780075796863535382371527082086927907635177676733103227320451528567240944423697739513304837483208588052905473461562058991589684080887981987666500183248100586776292792187565713472465715247168849465399031303768678133367233386639858591170141468098972367371780108781924481019925812957366714223886254777118446443149326741262670536706884803609217075025648244538462834214323654097715407106789748722570443071333826766026892294911989326802771197210628780208838792223419283685686625918204515444037594876720939750531671451584705669268460054114750968864519108829466813080458243956242664583061582478668772049470002992909960950010044712599073539484934202236015716368213708969529317609343787367370417296825159226888678649299446648162639585968853049201141556446976635950128232050970534628653031295483025636533706395501842782023611729178071133006513197843182353042136494344914520036630745097894800882352897877125636829297594975087834223254726377723130743583740375120232750449817991815776469556513971298709233484284025230317935894748779104132050985312056193173025104320312702206418511018842089476358711774094843320524187974167942347068010146058839954274575731563755704639160375342283862674568827142744358381802453131841008965262452948653601852416882740582106774111280725612846689330272778858644348697926078866435935786058996223867335811918670248419728752355474480510283288861226391743411888122306671237304339985319967153387597216276319285941356185380956934854504630986830638523275148401701090162679993782626749804432078603050780471800020199577804575806063094776186217213710228428307968596493319216192247292632422244979913709208317630231843813380675942352600217099992580592295307741416271392872134716279831434121343292643016726167342776657306413214478912508429091920156079095223281118105429567858658233501367522129997915606001365595240407299483616384429107570203034675033270610601587831945243079978354529058320251519589967610054550442839619175855504047318808999663954983965515301600942842185041450478987890311668293073947486584357473745709088113114789075619247905022527555589712764135702646694670869747495790298942372962625995923955957412511237076874156534164166557810664202787040932544479764226595291409173014349012162090995515135459848218475565285169920316365000814757619682778681433674243409652930710186415536119584608028563415806425869495321039322261674858962143627208264561831177280063716783439993523479993546789396529101898864821282542037053227681915956723787441787244094590711589379678883785655974832193146546687317635576286011657328871063650755787885368950991408822917973500218455427275737309870402993590078574052840844628956777364002473962204956823009524971384783783409940485802664261345939876986325452175422939608706729090170572316505477547475668479708991465789486374872842254594005369549155741511183574882119094730380108919865164270204846631280154623420614203431338198709246360338452956484270677300717216705793085313135969284483769489791497132175591060835766889041540190911274433953926584557496546463629285099564620129053233062117005141768422852198101227147181568303041640177063030153692260142637161512503581956533974079884801226795669362372419495455360857116119184485386246819608446863408335181384045252377917460553433825311232872628983374730577555213477295670202209380449654571632515852025500161706988408426208107588489691116374359683607352274204874788785827137335916661182014955611760073342448935979491076117298372608862646710028334483553582823437621335613794724200881925570035246207987515063225733288694485297847408755528278675684607548302031846330957031127176106717566633482212397843225683751018521308608571837276048307213273319291768028408425287883373192772023322102552281601843300561006071913897421301304482297396198849239969766524405054119384389920313716021914900178797182038760211828979891976493749985042082420264389165542111649139823865476057881986353147867209575520456982835494716281640921334735710397138289970441575099240535823920414011567949292835673569685981175002034304889179142911056877170048516429865301825845540600282861986758396396645884409340890939693577244361072932301243967331867298180753627571028633635595609018068536893223968522364035769878334378417554799719160466779451886790016997339892070601141702276070398522475170944562356090051557794687809658964723228866789254999668995281359301029551216584347482089927027807676266525888404770913430327518695055739199356060805458708415256550233886537842834036184132151238028047075995768264149752618051042059336935784365125328205994832919247866857974656740694716212242526280826908450203962093931512778120603406453201711652574321433967549225207497729999588934138643774030270104580931056785931612072292152912691823401012265573284674284271604358519287053305090991554245417363717617987597307557068317985739477069198446385939763720659995661185370306686353110966660418152103323372371422448739758269419096681256265704908146792764262169475419720339113072320418621152098543585514781247515029933640308039620383778831677395861915925370963502176212214152414490832096369159676154105364637409832247252305261778268711552571207295629914813162670808261274800424082846033136871711546405080327087940279455244301194117537344502172478192529999263980219594867959671027595899157790848370663630342777274067423461785751908041658235893914866240813630883439008157036492376018402865336684899203016683145638905453886550790062463895748149570154312890254596207274274685819844499759137053401969305532583978286886498089600900103314954241392471057502730023178463730723348195628989888843298262382534368243579106908402726669773395370290301102553359302603281516612814586922704408148013883095765845638422945426661840394915111646427108092923838039981136014684151206027737793967794977903769449255369506220954847306156756573968234907285782117495721827033923774468901297567619437254890734632235074680786864118310541520447574261246035582114849266663760386906852430574263745353263490197432652216828594578247325592073249763596905028911597498967571852281526675672382201540775657020236756865858632533541373905535857022894132919730792798220519182309266890198109668489273584795978522691410411784918621691782658643843850966014658686017185806972073812339460910229344536252193850719764277280628220978616181938790016717795537482959492339821248265283069917902678001410989693929516841047255226499487895750554162471964365394063909302550232710624005090045732722897059730030997063999483733480895664559174471844181596284845860230119244523927157858261404601632080650831992000646311028449906485822288488133757247036900576396989196298069599273840525134173635469283675676740334810606572287745346274399655011799631778037413378442116796082730957163925677832984736036919774694625115091123218987039620750903274104727116571075294315290361515994446037028303782691407358992654965632712361775021441424120484821687996531883593719401084558125535204615932701566663703908281308577678668426190607955562001096954025582614618041093234785701169838028431102945697977613077526008880346922622517497959743125394149113825713123899698999950520934313495500574732509346565486348709903704352648302542036777133307353533174076066682324770253355069733492710601996372120051855451031123762127967594564643238531974548937439103530652175507613255156472837715240371292539396484356356111875836089776665818577925792487765655472505231153415427901916821648423433254418236476070700106427076027659817837901724809895057900704485382363273848897875042692099652955169353167815795443334696671256230011869376429606138469115609893679067995300795154925056763769130962541022950877121015974484240678945398608216008117189912147590806907930663240516972204820254427583754324116303742927781733866748376057344057874442439771029058173039339474917802256686478162557042453949853153619699338081688240911346437953231749563244928960380799505520008883778423781398043646401663076071687116178527605396884062703798943648033049093494791236936478949758324401437164902068561087540919117890441322873459675575073239727281257174665060815396552715763904081406872093555494817269445410339769889057825608281501634749678155011026395091016451496925830029971449992868796440754360227787821146122569274221722383696368676468030201446472120178609057894979263362339602235114451276567243104798503728295107997375507889648913625633818651084403731819645765481360117393388057346592310329816004193126184837114750291547662804600765450245929214110581397514462384793704061769757845302940998590561353510212551065637340779158187240640292791757902097758397470689100334808674575285397711103520537202731808518969136371214150486329386217589157777491381991979596155358894902522536503874303624684845008430638251816317726316734316231510878288923206951526754219575023220951200291298356807979717699658524319503450915371267298139461715962322223311433686613313298508209013849490843051811327124847836377193823004553493576359448949547244341789960596216358566594816708569958837073969535549916638655925983775013628204550912245264138541214011253128232176690090555460857995861981638611130475596689726280230618700788336913861204028571524771391894796728929849911706365502541183706368087226881484775882498364047048585456278779978242926879635652721080461301561998680680202399178453811074638048800090870572221707488634853529236585424805829001811375203855967273295927591710429450766245345685683792851237814192980876372041125428639539326770059567323813962483548614001239665779741597418460497921335483293299454801595570868632467476303811840496831825244531606429264538811555279959729117835719072116108475308346453201124907048303697505578629571663368209045603883172980413205594465379567251409702294164273805561636604671959293791036759963984395176997486731472089128707367301201629084758611213892984424485424842756151951575337609864572308026866650431407084044901167728946067016965958264928812415255445721559457959260957006901454800610247519972121901972519865295000061558917041439810418828731906977721559561955441931609363806383882547031788001173017574004444607595955639761639081173370946630306294111079796486211777528152207159876447263429474812007977989449068343143967871873399850954215907035249997698273838915720420665014660109858475763331394036469239603209715741651695803593200499754911540050785605423165183636726028248516887524412317113178592949679094834327135636029562238477263337751794208849316823917773048685122413881452724714503708591276540093918411444270249597430566899027018034033539292930760313490787110511645594395554897459768133011756741566099434417727005906690878359653349322791039775397647581211605223485058719859904883821034438367234572918803469087971509279188512138696575568641286935181774671526772546113251981832794497932028172392280959354441974322501727605779297280663504986861528185117974865691673472711774368710040961647830493636246482467495647638191758206082236006669140277301590217858357740984680996623260011249501184040682653583007958458393898266842392546947641613165243101331821860760791047536955179003220163689845697406804777895159667854601440477886855653450481525436141096447013301628976528939205077161507848228089891753034850310382680911047703126895395273736659229640941392837185126228678821549698909661277236939926070559757280432376052441077287101136926390143683484748012115750096804578146785317226483507260576239025407563252944983986474438953147209493600103745319754338065205238652319239579158946970073108062127569355680417454901385452213357630432330159575563374604486417091120668021260454317162362630859115111247547315899252480586807265570670035739423770784879523116922064280466295736703976186170660740292293198342461461358081443182471855813927179375379487203087376436952094947839726567406285846256627959504362810210335219072834414699990148242287321893009221095802498706180206564911165819544444495154962208555241649245490410438417090666643077952007240015512343904196744762431047274676141587559403475868709170735597911256361347858479525304917979089381711252032116487697049843485936478809505139658445477627946747280319691654046184224503167322944300450577945013236048047305810576539075672791027029375512148263639653404836113348312042956032223358739743176895120418255451519696832121259860973978592688433737499003529514636991104469383072653036207861422019719345010751181472207963969398333501075077588762978827416979573993350719725884667637253573950799150299032455905097376208166748760364998035392165418955430056953195941428523816007055437733592382630991413301867955516696848203856866178877405702728077759356339516007571341384732846995551765417383077154667644485392308993489628895387714638616611291815504411791264299297347384954747304349914742085228567362056524499767226102661364658266337667978370176137543925257577262857790032383529275727562684186779573749091336440253916116634365057536987743664803685268860309825897527271024338038917106125207458326877169401404887125659460734493146333144066743827026890964913957150482306654888978345816509196191034538484732116923533747377537212462152263859238316550545996641388543470443143159129894852536317768911752267259888038209386286801048914493097465482024141805421852472324797805700734617018524973630927142205890948158900848508996480845437474184364518310765303083548624490387709894242607832888373337708195512688010529546478451056369467152003501188919071819240227532312102390069406036486227496052745299630188964371042641514058100597374386939666843734616964359825177851927440238313493880445373999672625650636989178493366887518637704929164050236473218005232246229787232619381763308763810155507590083072236573706739702240374121771958739794192977877313223877249418272213889062949795282719366866394308025375468820430138478498122908617464919131100385890584732269742122114834918349615822664860989101751635355842480911910159375698198421281132800344790961604515754012196926714455665494468484362378266365821283364176610961780560379298956793011759378414431640831173034242746545953156269646062008903412931440003911411340372119567252606622974565251941699141686816962952264749943055491166225281785634160118293664187903343941005959003456415682182014662881369668579038760484217641210572626598979290151567670957391681924525716338443714219179214549941676003204117675938800776477157705833741167117792562968893945449749805090517150276967780474927165250267314494549348302999031073781315068853575752122765681301491879916301390117152443731522626710704282825312665753224177954231769347012412191614568768065499007709603279480810229429452088263257675819039862015913718069374514766682226661579106112690981656433693188524322646984592529067246919830235203196105913774667606768907636701762387417732298327314534834409525180834237331773046151101408202095744187411862768661433440742289746376190747990410967074349799628301138158116486808796908859899003957319700119348218046663778099420802093726675811932814305670136753018495305646361255235540290349697658072554235286205149508259930315486745091396760884606678473331524272811268274523053560532800170504925245089348004290933589358933458230677803821622194464036486533627690362812678487172802379804187853347213358322557556979649707041751110712324086635817787363414467352981417616304719129905682566283425206595015773776659340450058677580443691434940713852745762387569442744411193630845348463428981950951073738459637286110439554105127572170901905512557185427793519253207677814255382739114034319433198477776756382074016874059361519013828780037740141464524958680185690656542290277139282981310495215973108037701249859150984724822743056549672088909360998180908239377765637383071611252988152417144605485327605582262242926048259004363253442459818783830567263763752516238689497132017691714137167685738003616820867812791282204377860511869990126193439344760117093686526784062537052418483025629890882844248798530342485568952951405192292059750620504957422683901600943525559384100534193824493238935207664662264948772739608360381992167830367560779509527894751659769628892466759703959004751953181338122617062459483478569513410256992821753270262365037165069423245882166048157934292224144990689288030422403647657893358864900867535235525561404535233149676128430505063407390744695520096395528901441994537200112971755736315615138949593539402174794231627390170774028454803043057548319499952657523057628050197916822478861170078453901130313579643889662084214205388499534171810368456722359681443160399962571647545775796575029005942456573358083633790401470126346843225781336981565210534508684755927855988062758878195967499656193086031301244895063061637968255910606451005708498212958758095393606045397411800190550566353292602100007741263171751768600333410576837676960889569771011134856464718062838613547132083696319999173021598063048335871931239868484272748896414387525131553704882631228274019364847509876195836502928744490301486436129428279104174723546956980072761457522752236034300940945270116071756197001903555502912804787922487809285152665312859186222242984859776014017777636240267295821632247147521351738604697676347953275844423899438009835584000810667379100776523720768123460105748976697821923015304986459434844808045496376896792677790465836330507625844366511890260808377089300467199351699832148086067746505198808418213396220897583894491530791485852471266008301475955165768651715352804111110479635015991069866005002243380785031761118509035698328684208883877707670178955602194462725768069216960877531108247743613684902138403423688008064054687297010945649960113960393945503638084742995906560547238691789196612899568489517290721210406593311115058720735715136954054459082823838961807507024338032679976973519865944510867049271986091666681084330341088609424104275181589771066736811250750997836252977980809656490853952340522785807491468231227232506204486322359879850781715568151710243509841424496803008929541484816682998869408611691026870578705089607712546835981468787922774330648205112119877318619495456933208581010517186257438541179109966762475762520756594927345827637974388967181956313096959934157905786247479367451075589716076938810926795553365306985029486331724540650675034121944005049554259349994218358821337590689420629191626063446669318734249706637954433592139821238671203138857144339835598052876587989381114643263531626614364167718202044394219795662138426379176261183413279848425496633285636827009910199334397647476853952377483430930948752867454195320481531750430312769651295972487089069019624630540543315623297188103996027846313772164341672627642612705758572480096137586834693372367733898800141045844029923375119561288495847197899642283510481466073900291575081958322348933059204151817470745810272409252615044842646379795972545304608794635612231320888255052253511794454951870078061358539739882615217866074895219534094688474466761396207916754438165407646467303050861104869551998084625331061444881242087759368489800864329076939419559218134935759208845602909359138355118330223157511164958280245365853285451758738911573851976263292311752001951505923492342833199269619336298049800644109529910462599718344637656190669196362988891448101076707905703802785967815039391352501597860900847439353353435521001294616031827903960775930452807877791185743294444478385336006439134451249218749042209042440106813007801194755940464555039266682069881287390015189948910121785383814765595976039275719952880991693269719856355866405084456437159769149220385684159517625169634902345147367959145140823675787047700888209285354909354785146975674695610161203222489724700570765939718531490573964659579767096810977049172946510111275128649883711740163395250346210217350438138385905696986602681969702772684352012694960808170171960414971646538704429935315446151246458327878712488557300150030466396725406849594897683972577894503990467157703853136179947188857677750098933908863400346200596919727492969584261503246308613063624779357193127888451803183482649957845535968987149386214140563676702710158140268348667389696577439322347693009689561713016483572476237469623782013068537444305447870523067407636850647209328381247696226996972916948991156412983842789667911888390830572884412685334591427913964679709928093850565090609103506705293291044607772976045304636814036940929256638936763104910149734975043051948233349162331789493957299620413222650675926870961073904409351217720720700014600234082729084885514342938520781787923456331750978433832615135841417757197245082210515315356037825394736324227271251084607559009273048211149513318771993825208078152314219634483549458890837650519603160160643283936973122970230092765050823240041342522004099923298216023703589676835831974079490509446996504777946720628382553764474091562260150953645005411391662696396848945701800010320407068187337588034696033564767865683097262568801872863520667565696187115940807915393336080809961411812669712710102557093679029922945365195270914604248054333902759153664126090498204556428231466453035013481040599931035842055619259083456963447495245139981497186192647104789267758443613982340646913638792411769303450107650992168433679951910527636678654907204935560789516060916977155917699834012902967456466696255503532565853887439863138607247012040697002220721137283845715407494284836556956098626535864030956397536203160847859910163163022805861124493568503172490330451055881714587803561422846640457969745345979748053076863195853606545089578104351325026205435672535834919854948233834152221515696105177193772898434277944713859717751478707357382526964036550447310198193429352298083421317083847733263096766856409132050822793638242297614623911232136041191221635285899365147273386149448759551729072602734952033833352612251845032260044639172114613411911309822536756857966217161862387037723502521469644899157226017099411598529298802376033957048086330051913431641111603062879180109787906023877665069861159825561812541967201653440059747789308628807480514655571638646061021935325618651102082433415821126110148053477170074160921001829685503768411032219246273447615757471790270651713036436914490579110101890108910050082800918661249765202868623402870431669315651047380838373723246229358496949465999843385155854499491492683259340039165531409175092047960610047710331581102036980852615974604552834727549636844430174131633379035352373625294954771018221135520464723749690297224627677667699150821525635444089897764983075702960614062010104584048349025296712398451775088267178732733013800709526817480771425091603514729183379253174431597476358180969003259495283404410251858546209902233054012863610331160525156193363199251770538783001580789300092500723360474105518541286553612206840450037190966278596085103420938575755638690232334216537469206479051074351488220545809944789230892233556972387195565537063075388956361122711810872190766570572404757594002580295398959510398291965258787890493264773726476904047142187275717793877894998479277947947810385071173780435309346124221960980359621631991230470256860054692258629731666460280245305493061093196158041262912844750898867486255395659702850374613530400622930057901895368317023362651506176672314856298798479817204381220941182098218826004613686273022177698762576739123191398828374648004965020756778929956692319840013925046815626729647830912227091704345615916811276904273480555212853499219385363591905940629744749013438156419872615263330855166546822211384250481059945508256453055883736327807797319722747747553383073206780339867388200929609466329516845217923218200881926171565824001020297501041716974473738535878117519249276192068942473438732457261210647741359098714091553290372857459393517996022957264973808286092053393307414565956472119587135270472217796119114150606909100817062681368975062123476758399071741304117518573487962604342736177375240965822736908990720650665338439056321796237946410952439611484391726623118974131646836620009501443305546098655444842977792286069159997000732745759896618952987752782115463657865108879738082225808748787075352729759764173353039996593077679769718777550306781935267419829000849867478544923439019144998305936079949125956901466865822697807640884421498188024441754481646658539327267748295714582042025191554035170327344099744254273385431762101539570332960341241905734900884079979853123442778603058656724525680761415172079500679694010118327406272682981662680706681270345975879000562269256516414776503335671884633478219123325588867487278929618489477845352145128277932498564246435087244307037744064078197274590087961727246980936691037111562570053627390328117834101061956803360081368730083862100805047216652479627840616151699522538824295915349394995729512905167776442226857211103057551211485659493009487852383865988176341435424180243991492708838212589885673319168731293709996598992146616003285731380618921902717931613742933165100639377276266960980504019359929491846641781370882980810080940687417085070856911087368819745962265042494230488380388369206560862173575961950728143819061803980486976516856550422861546035439496306313024198260395128752089150479234329063923927666052810145728420039444640008493240335670989775877145626031270742388717964172303675068572489550194108108678408580574057285123784420513996656441485536453537089676333099605448971668865794610333896080791339549611294690985343580684605240966927376746133299778631243112552843744856138492437361072783571170837389413020629816977813582253104314566639001159156523058118531773625501336847489033635053719232510495255636672688463829937912599193919347439532864659787451246575527888338336914772832203120055682765032110210925089726161915970043321575619014672814891110233060933814100412626202494894015995463915286429577355479237575781593743856698476130092474767493253021329951749009189501898537111234664144205954631467047629721753196638680478853586886137261256253493537127404224590315802644329198811143363120408961176021382838968567625629226427730531557323713549163516313477629994869234455787683018616961497642193441851618334922798161860689600440021783811233276400595095219853212144568633894827084506120488988701654348356886743796241165249260760550583509511025544808122037408190968870043415918465772511696632812333589248843863768074096760656371944213899377861490690410651399574737698670914732104378285101623973343481238025777654559080681367383919929251955395574190601885843035733723891004361611576447980307595978163808794422022047721814245479215266683145242741531553075773696956044845770078034346204173914169550001013503675173378585322898946039827872287755163885504931578488838901080300921305045330703958774748169808314496880135332078458010317557625523335688340589738602573935074514383454118480033267984862724403622621861625243085005144742299443686070792332068086416188259007760532529553711515915535447706480879075879176662907646428668296121593543136785485695144297692004933474747884202295922577091272324750099021291044808776913779529401293256239391995836788092423023872723211273646672529513775368318975429701190564650167320902130687984050731290948321175576100300363328775757107884906323692194231657231694446383518458613845795209545461507637966673090115776100130755466052797190850196078079930017908679516658534965069706007305814470716190816464305289227540972200069766830483135596356312843892897371483044398067718344104139162678313116752636164976630164359275005567537648678745498637852933728743303159088512503232174912415596966637106794673044886816363420754895981185097461792857123412586815167403707874129890733109544789768635292902859394070134367786642871316249437138789430944862428385505104133844399242633375191670223648892452177969931823977972572283269919506755116650211054323678334077129471706136303141271230722991508817181825922111283000806046475680833842307727820582317137451338620170679451871701513906935949131386340917761828373768735849808753011868740400571513955658532053128605530512281857784401236726339946748386037714402314112177191889047775778049163262233825955487430699096869278343187766927434611246046518745592652064088646118450248178560083591935970797997657374102178395080094317073531357033480067022205627144784406520753664711003846279082394372953456409323472720603310998097885323925824469182018595215413450462134643210021007614897108574231189062135586180753016717600879518504131582746429406646631984171564604648873737227227796381389753593226944011210224024213867430557996763468460410851530206089729489807634826144789633625337096150265436720124958740108908362257177960051592636382416862005915586859464598954266377730814269390211287193430099955001106723504223472350826593385473961641577861135827285384889842407971085223434473844865120516571702228242349897320372328147431048235896285104799097853962934145281320450221622421910754030023724531652146542646666686892582511829127750196047763294977427574794580241224603875506121757270666934324980723058086933041041218195886677608087260471163786693419186385808569616239053710439001908338166674218528101461453008756171832432046090178928763458296797238962192643436614300493870816503101377852909477145614522444169591159186119449597198338770689893103043771497038292592339911260272041335438538012564870202181080518467932231432406606325638916075132922501905255762242324321195987707115027005765895141762270182795190702407507613122893677294374245237919622553870771003380803513950024216369167856734002601603778886226058697919519519435636807681945403766352132665131788788098644455707326338557520133372405501413134335841609179456906774776048189793041279294489199160980210589137499950641889602836004649982298736997421802187107910517606084737814293497849591214405601400629372517082951610767803531729269457369434050339818972117156575994755952454927228363387249484207702848207739927258607869259764411385161652205250489136404415975748315690786793782296148147071900052846444901409039083378214813398021932172552153480346165934320342799011885984495079100148948730731238785008917708403437955833404992164147771789226599257265959779884268522060544409459818548513734054185342827183416617535327800816220410580545902491135473033660428100281931427463498170741264481863705815916073886295655252677620386640812035555187124851691281224539196654105610438583061344552397462245201867333124235570486249263525031872976868414004039649716835977636057261463365154681650482170850740375441562121696352429159163094829406410270140040732039415333338300938315434251195604597799872387723437383102022289007785713484272035846277250921722433755527082855568434216298078436493098290606029126394685609970726404884348631750232421758505363450881964023607974274673926228220206229096737348744034272945204310359143832704411925687244441572601333927087790794298902204064430608629173577811315283515417516130561581363619981934566004750998781933445389374484595364483885352072574684750419254375044138337050979739694238464478760560105686266116926656966489883878873960081179860026214712878676310698160587298608330924249466791938750269632166345180201909170552596326741275929399638435364203432052974829556323140977367968154908865425852634236461647948756707990828281748283821781757691152643690186942916148123392733766436133859868542266701416901667520749916468507954972072007557375502521136540188748805277472635137101577197598943837239219103385446046758525694500656599591705056419980382343891526092391166671043092083171788661133247891783194016045425179792594837370853237682917531691516402343614787221461615885859875254089903125368026226491021712662723302278580254553198378433007187325440476188548767892027984432715579213312253801596447079172563497778146343951130169900949213090652335945961543064118929109114268457292568372697832178948797421640534676835647943740107015548324210675394141489120815858339031456399842971079036725199138009910579592081534951846297862892450246596610752982463701082238946234416790405695518296984906084740799058582680451843193434325288145499941424835246088353571044760932139161838454058371904615902366330301315593856937786075323671012009441103203372563755208684863953173663125032140339443262314509755268202280828068879134622104487879076290795059736711671303883552457575618915364351166923588492987828812211838872697523304344647234275539449929501439853137001905774439752765266072742691455792352486077430512120189320687390582834951722118039001281883016715664682722307877632296775017783781640833494921194344487058112700465599379988100054460816039828168461998960417832881189227221212574134878789378148022517825629263892962410690303620035535310541482211257425058030967572907508884613890977830677891990858451994733580563204975022036146620374871067336273454272906706494532871509052041856956752064614675953830998033841433120581011894826660146909810185823431020625358690118894560023605267837595722371524510192333672207291806621308162400655774417966435599991705167591658284318405049956176586863583251394863807245443742521064669274207378144666085340601799267529762824604493655885066132729291801319093167961903178081084994201720610652758841595810199350331983510185356692993653082344956937215699908998095734078989969490180968907646819223842757229412978900178484601955953566607006420589912435423296479227702199557696700424142973012082292225520691048306545528998191229509066775085153889150006383033880145345089492508078132025869549865531854308170932181178867591733481443791546898202611041349521848736521585770451250782550682313847171547419072577713721085131783655702950950357432658050947822275362962430283174200814599212734496645835854857284268815673321470654297742399967337899680956477254648099037072812354477259759103514288664222690145615380053516674929668718514433167949827270629608558803250364872512188268233568296114261856675173611134583416249192523586917638203918966978898970366950219873828245784784265240956066911440983024052671214733470854153971152731998065215135324009288558498833351839499047505196202718841263926172394473737245476055999003240821763930080104722803704750205610298865223546583663205818993621356187346504091754751040079690378761148184191702708804317476506343704511788602036155444163151482776580284536320591815347236670198929879587521444601493052341201236925604865055580796436848699435006171444112730044556195876606247590916310992939622377162702752771497526767187470227079977170356500803169794664382488702794305193893219257992119303134735785217199249073658113740659137754110488445607049429197173724659966656366675194722655916218718331297148832080767878361307948998604911481637849734298371221316639572767817185677532384546562377496618364886952697227622120061320612927440484892406189218376088161327983116405036395523691539947774764135453694274206980307334923814227839761317971767115863082201441722325544366964579545942556885282235895720406184917622146254353277402158103826020460391663631857035999049099180214669065756780514653142290437276886275171672553764285468956194606865926155011014440421691296748511798418146671725953752128785613990806047092239746095067489397464643994104549958085688056363834356267649019469368427196979038687690385666965231204650322914392215569330422959707552869595922999984521179748801590732814430684739869755583184784278456504520415892237182548999415539496067268978357504601323949865685734848812637387304663670712908478048858751901709023517294011354428941448057978662054218686116125598232391934897121104659600134991381340006676087605953114342844754378639324740475777577701618603542228600870772034635490439043753224854767217591062978769565935788520107017452525425354720421284501282581286530823421883706815564309673967029771816368058496203522557198839759998614140508173460180161724681470678075880207893319601353944506515238067029111744896077314186821488478863502165789669060778572559449938220991017401347116310652947515546578372181786096877975380883453967840968478287203071879796296878989643424256453639880893080626965706486735080733482902331963134936830555176625524848430158181711745682004644270961476314492092267033713108204599612405815639217769714635330406897156652241508756508199722724828863315219858206990325715153836769553661773941922040594399411259983101545166471552532362451849969816069568392538619159539706069849584451056034261193500516620654687852469784621014579230208677873856163039067183979455338273381896867638916518093364727156222366042220791490499005139135195450411913168307057035188489405350462903910655230139138761694813520057474533995666421653122192584624601221895376784441092637107444378559009807621659228527062834745274206002165137475174169417025555116039131153445473324385038087983064349164783399422493019773703297793869347249664610759685371499881351697499845491261944167893225203579369168724555187463139868482675404617932603648062604150900936062912904883180460890953040532683459751929796761147463990813447135105776043852352614619379508839141629183105600154605988282579839984678889070548431954768355355451784908967734778349830376049782715702637654608667176299450260864648384844577276842504580383331244696415312913051033425718362433175810072536987576807784840923793243918258841215958341521289282316607319939743231873593010140400762492626182994611233448033747354996814548998043178284375616903417499994778740603940840924480118998845401749953822989279475983571966610993530046277045532305678768087187335532290868199897372970206742892997440443811885365106893330906731694015007167389169708647053665372399670776656832604309664233068378234268391834557335433874052611131623633094538481743811731569117780612567485235204385532176908782298748627489465082010367843443809130606944011846687867075697220176096571346005703206308821842586001435502389034353521359525822514133684144989625123758157942350881083033143030650700523858018579403529259605111840931387889088847117818527747630260883733630145279339489970125002189559611443986441927892871520175221532236657449771985818348894261421435279986910763635811948527548954814949005942633380714353157851971308096016872009347368053548583897714467955945984148589598649349056852192560614015914163357593036545905323654624138886389684740049366254962671400258753254697285291094835822846014738957805046707499303932454772649808406969192889279472454905458612890497071257895452988568879702893116526052110686188773676796215950046680398473788775472154254968052618239422838153596935752021760519460216856924358181868938376281636055577976739628998299883626515568804759009590730165634917257641955999860197008407722095680463129141179338151244995051620126144866160324468142248155638952500904120137809869261292084417404871468030291996778352057130662209436817366536044744012421346477568272826124394309707126505442054700622027959162688201247144477251367679590526812523626891708380477620545146441159915617725134710254702575035508806892767696000052702266534379950406627456859573390459584591372072188513419383384001952257534239726225654421310353219397183785164142286934167133393331455757223652050305140277329115209302957831376995322392376744121186579705563388254340404604817021549548287684106143709628710230137458614378317470707005523349224584363451631888885604352712037529094355432093467572827952238402085925135192733558397131885181786475300937932021758111836654872793858570976936049413624203506023681407662828572811692501017237770425377115193283103588030700889488694473197401659021746909655355936535593642477912734010860678522202288537216844473140929457176521190250858564118529853043741982411553539884330383472147049482186355731556704492661911867295143241148289978027476698292529071500990353751211237829901963143313145759119189436782524315287893746787607291032381533329922956069356059342305781716989823398058837332480777589351782084191427399499948545515021708294147544703571495256019940227055659533171704512288138467340757359375465551054805470594605931587921567260659508977749282805303652469017406866142384091018369332478087301172148768522046481070486875179070191994024823168654014213326841670245774769962915435365337977098908029275764030919143297745951872102537231651514984238112909333813014595463476625458885300368890932859972256002693550413317079363480700106515976941256949379913276240661129202381323579381132479430739051277524962945639745192093833398931974232895597094808895432513890178732053071125483031737472604258291899540832562109574187025374415400590066839534251389365794706914554339889715737507955524066920019629403763730494908553529465503072540313468563515188961090260121415122658994749347058949127007680052532759655240050999549273326549832992570283184904216342266378648558263952019903699016957348733673525302418658266272867191825690715600870235414944835346462820794278454425184532967429946769881391172989950568923203667784675920202154894845246571763307343987747190371822264799037397950352350509354900282669657255303184325870722494040570047227097314839505334816285922028045549951811479002868438766677346516596696193234743909210853181845535036931420904241315979546747063378907734433505220710789154985834727150549587600541224309265756679986425895848431191755865095116336536116509567815357604177095927652799659125731815255533593247138613162884745913534767458729597032144956491702242765072865206905422545389122837381064534318538238385165000009325246996283605371945820059932997391465049328538534982644277071662142831377480464981056382400011127012448288739759776891973655245050471164969387595816130850013665279373408543737532452007921718916856684626060398786926221449911438064799256152830167508174503552828037961106404736630275834469597188967035642917731688161931138402706542264235014404567054943819197147185143973077367148608185406672354233705137030463220464569988650556515081757680169250650208575153568006682821663222786214208145596733294910266723376877489126154463345907107997742218167215494981558192012442251245064686303611767969502182261971668373752566296297629843026271375475787456910006241573266005318127508201395179630484479351688473404303572855928969942999639232216524128146693615577845349878943975859845874093324985564619803278970223210116113545421208683445368113680177352090817877223527842245623892651442387946691515255571830293528529982734205562584725599111490414083670725265276565554461725571769411678587075317947609694995037265139307484320695819097940038042970616480232027381616245262782660977592024922952067125430261821848703607583576225006544094714028456954147989339908622711360354163452897455602310250213021809011297108744859184937202139470750469482890399538742516372782138074648575697603891127443508387841216214292757398428178959211522519169590649698231002423110912843641270453848804250391899083883592891375521403918194156955657536825472673332894234112774638692874498937265882581251431998943900882670576084904594088725862381214145936369284087164059628127648293727896100295784447120849375347127323545175190417155850294007045896798756397666807853113078164416683305596916777224762805381898782607717952152631826182102783625297097161145683020462063289499250735177759192395071537879406507459364261546587863720135653986581199524964930422064357742608471038890445210631277432965293621590624521021858303684601919076693000481082207543190160967153934936929384451694863806470812338233187811766768992943315996901664751618475014108942889114624567645906552672910975283427832965487971789825275896256226527214284591796477375783717556380042906917411349839602140341354664015334411087147802984217683935244520887136597486391035319624065657213113837919226969704383666958064484848987787026937248482640052955953371105344910113848744137181578429843862635852261198553513740530729599887285405301362181614773925112360238142158193207444977917704381986209870045401930053091160367805617567646260015276593263147672158278987681741334773722791578145458633929183108708037873184211723321678160830192852163166676909220621216395734410313309710199816424121501594814671412296057213265072242916786483505073626551899698256297539287327364608356877694181333884707198554793540642607874582073655776761686258041128723567930077502382666502717704963796823214034788921080999906401722783675388567918294231660783281900623025074930336126850831860318851678553144977639348368730382761308019892655882259420338528826334857027179438648056187175158201269527659599559312840003681598390625797988364632312049320147876993123099174055142110567948746685802074804756763214765869398178622921211113832420475133702969266462062247723738148930660376440385155942929003773532768219169048468953645910201649307286404299892178734917578958598411775125864085479542294528629029312489030100486559080637838444997609821235943948245744922030913345997595544395949881213785047712170329867705532138983300503141731099517913411694389847395866875583016932736882052606646474370329525229581357495261140593923458360314591466198012970517880470242149686855256246146820096889487199663779488049808674767900044909090269957058098897944538771782012448285311970462002004995912301844898615529198583631692032934103500776075104765182249330789067146856835783770351578851473739225727959762014004107880786524902190903818348340819886677038200277399695026314258254404265820523103797630621334599323564197341232950107498726186548828328443911147021980220897591973945559410100699635933455366377960120930979816587274651267460392988294730280993373910819044996087231763630497797124794572077019509183859957354355487584334130043793736009829809102186744315935718650941955274773707641530697104819600095695472164255844794077045525685806138694449875717697396642642734132065024535389768773790425889921431447741581393983079940258990578734386664698183544894368585980155694766306813096408480567252117772842971338915661038391711270933505330518167878299667633741521715190906220000789945169124371279420170747800770665727270945488789386027041972624382166129822007365449206924731703103034664969384683272514948424810320826091313291318991819810605867882067341537850314761847420626850911874468254160369236014288833848100041242446494541263556774565523490436722129626731407270291066318689064572693490827799106408947110611223155754843530260381210024039822532581282043863543208990409827447464010158793470694744243713455460283570843040150240224653693950073058779191336802643952353112755361340086860107855601014470343672723441911181244569789210928278715778885205227059965751900278125087218698910676441656491203719610445635419865011971616673656669795359755197690354890594471755815715311520809859220884715082204451134076473437950429201703609127114530024098686904225720552018757796623877637908169905589772737462276719045858333101237101924085613345335491753120793415738682796413939272750047706671785431150936968208119464804015604288679167777655496173664621352518793618600156044508095158162435527627289091827204575837508754993027248754599378415620117892054374559468816136234665271253768735194667229569589238185457657292157401821908505198303525206447675439385318074435234500004539784951417817799544969515645043936529066429531063350312488614384180594056026040682007669388148782940863204485180524548089954500715033139878836862320433863445876200048089449482949949639377172224470595268870256364581018253502589189554833404615175512426032274746338353368245139370285519786493091933450141827923127884561037220756933236467485999376279271979086549657126735551242856075923748491821410347820747457760279736463266983479899731185241421153484004025619650250876129141341245085248174783479096008486068785180924344494606159909611653512073886928578436879696269310347753014769052966809935449328261136143837190881421962193114466896170180785253508176541992245821947791220753887437893462297473419033148215474274278430892663878588089538235699847661790843528879387638685251935561792766415050546167201673925734200910037077967694033970832109288350740988742404970352895178323575238741847273683806716389506120417277040790600920452368541734419946138107726643330427095360574482312924351515141161808225899753736042146578606063092804722654243814291870356291679838647108774115403408431725157825208286970679455322128301635747201078724369574453924317709665457124079727727794108291304460754575700509474099421040963564782861032785643492061013839498244732509984916627503106150732403765449716839916281039501857863197626512152129877388563745423924035332636992672241054459378141219825726700048428005246432570433730433405194957466784124756439910017595331285773194160697566297845228537992551646243706066699690975525309879747498913289310619666521007622062316632544619628336081082777207024275078730059545367112653129371663211656243719604638603279044352441918036628683868945114930800234033900612626133270909959069804925245391220751388553774430116092459736626339540604505962227783881228936817147366362810248977734117846964977120802058912498724409826303273520074670447107347728724272317153438872273986166786362876493085919608982985286407723296827720193927023545135139677811086201094599101297958547800283424665916484904014573999451078206782764198276657601623536842312425603278293695981555630164046528375025449330664229539993336013302073831203327830945357113206558555176584328926392352912477400918369311011251804132793657484560021011442223998613490321716456210696093072717915697655582556568027720917111450642072095515464909486991317490704128125696046858525775618759210305263756248729834076498958975388876952363905484913150213596015169325838307372285805524107002338956322673627976397039358303940247914534797333496663749056136552813478766570092968846759022134349357912290396255304185366811196588106660670902960006949823919896402489116497140707924563318369956157189907735702550214020755390490627681510066129002752658242849138863806718384874115380995759347995125117795373302862304632156829892223666071646070377035596131914193112606924593938327072849465440285199268893558733270520810217506382969017305872751951495214025945509204380036660005381387080008214069365682082915394799478565719399081895175070610056593712734237582036916295506724318123293506731261729704927244164550158606187943294501218355970974825429752453712062450545305991247192684274051472092836982018786394210471779983482747026853677658221184936457572394330414535365076810587008778472253598035115557397353568731580286909651143041759203151954529072859024018609022139336735535319363326163092284064048003692197292294992673325722268843450887194107537595753842336763603980554828295212550564909147275128727302648659942282052545348368418078955029089873732229979490339661957747576435364216327444245806452627450502999727234670738308584146222657304855739126103762283786289828199210104859170644631962081606708909121831232798036465627965447573237120234583290271292339584359964272346990156190710815020527215969908544543524980403430220735392897335142598285149856970731767706640840505941448531703677978193199892028798607928584791980328133566910268913081741599440963711768123027435707491216248241659023027289981918974173839749950041680864312761013215046932020139126712562083547491114882333180881665130549009699658932815476415688734072013165351015703524788816946244727853960958184869211394231483397915951566739570474604269066108372088393668846082031186868174763057598717631786532957041702431559687507413446136442712197516582433404057150900320294683165204790344752588214927284066977871606516378624497431685181799734126661738426492107725189623329746504785651982065202993890038219457861454807275261481845242584634785163690259876916473958896831633922539006916125439618083869046407792305197641089515975822719949325138754229422322117138095934294638632697455094904136032851811536772460760128091977961285544932785412573967618544836221286513463008331204758753242222411038035260510471279624229853075324796386651323423348479150461434972811144582602642865791152762777286997109094884973005509235870709161384528405704964325470551952673398675403659876654357533344294222444599337058947675918790601169481325143848837028750119909837503585534758311038427724789878032220284407689588045591129932392937596778193199311329424166489361775590469791690711813159312704390964700656044935378332955596959429390029634175569596631265910071329879738349281192740193379867766153930628626560262206311208145787658342090423133904110139035408310339082779685604907925762311794110530489260536781076161781585533886259215980993260118222384122011405816265952774298225645787101595780411545046261077425837006211647349823929454984127818714323288324123651053093087862903306754261016404992679905553953328205576501769352139406890930450403731715698954991842046912441365218897990640776971733609402702723452712414499418959228426126943267863798514199108410099596395349194288655878294670654183083103327914947004013089976362311399446375575607531155123961879481032814417917924993666335535156169582484654109547268159783419992031370332457012930285136643730516357681907205652980466208331332324225809550437087354032139911664469388744365870465436819014458774170717205359669899886271078472606918778703106961603199283664881658864497296662241803256499975366308869792013364580712161841579259309980794465849360155034914755589979709971418076460052240117409234843006185565919598527037052043886316969102273324201528748696133269487400442352810239572725995631573574847085353675311446605692768294171316980281890027657227218705911353538823618272185148303790763048620022029082224301033405123065774553151757728080961122368281822929878971812708846383940436077702124242656269957529539917483702606414609748999284817334564245904608618082136765054110404120878500805844843514800968461459001075278910425103035871855970956603514648075786192058626902546859742407969763951410444166418751111766498927776614881038531134486628618765850462635510243762120179305198236697272374338492445463653082098891617978577238114419368490824972353776564907527708220973147754762648509542798724655181906455990381193949906727794560368650949086287133097588173902943663314595882901729111431101915767262923465064063844826996869491598410645505224319209430166158881078456698033708789515857391864159584920031190172874882131065314727364657919811503888477207974932274326285763126055759472931319182264643781302358923381428851269913165428089270428095249310314046677858681458655880203196236016628093195992636706293146226628961909705732138880312106074513170960070669797550323858970693625997302610285472426885255954012799205517041627512273819117607370426133019912766005923857498615937711343464050109767182046692845079304542179181452844854759276893865375702562906667355136972909494776620397190830224735849816940235092974511420967920324987605610343851771900371880370094069947526655886034391963592863193317109541515339336768572551905432386844515593222962054898807139063652072472727864553827036912338336771013675356367570648801697597680084384830458590433238044170515235527744805855673513507205419676043174477142003431850495355442678855926083704840750009518695767092388754573533614617690308070607723798543990334781371425414359633516108940798899652654816745434193966855439974679472530630201346893056417755552327862134866784717270305311704477024627379268843910877441020496808917200276208529966831902981873541408160226542914377573501276694049572737035779110554982034599646627621416303839690910845933507491610406848679049809334812898483408854984907218243183734028433189149768550450141892670324570816487644302772927282027133187489736810757043842639312757487533232713133214951141854243493968200928883795530247263140527264632336453101788303775805761694605266730520434999189637426556006866451121325076964285753320458938538382936370677056810155239501440335808347290075904930510010367997188395150040888694145193960096665434025748722842621480461052071701495963315160662597886718347750310677629835608687319468793592503120881385282316838537181914744557031612525001589848435806188962572315660663698355973801749377531334700415128298012775266746090159112481499995922974217206221379503606346627728005499455586871706762621020186449345813348880198878548842788611283101744448113010336065064789137814711006633097646545640974892996649797575607537990224316070812068607887600606035888010623252186560948854763308783466446277629639521351337388884462080930908653041069648872420651850901110681530746614195812340529024560414370185610316180790188840409736133878481174978447263966375593793948163198187862819490288874679410769363788846041944644557301828427136087790036623150550646375160802256392081162213088613752079047747226724001542557389724784968094302344433908634355111212175660564069824900225772653785724878140303652097752091127727899110277904817400391750182183693901271451479682536297769398439233537208678027231751496586256944745478094000534502837477059477982748079875986828785585723828358458290365723773390542989933299267522415561009291217678385702406298856607553177100287669104126491867500705903386116852738079871719472472447102608485873174480850298064417651243622632225418198784626917488528211429862154449857059601512087302924371246816584403330226503331589551383731933771051600656914083876951438841981182981063338490378319177634126069981272665428708985805344190259747583098177643321823099732203202843177027844579411815318599696558129717728711140708677289341250854763629368190024349330119828729721160352690395909940480364969182748263515325872557721127541796055478330025396408959262288605008022898617042654081148852363698789933589540102139516386509040559724797320325660150719874438865241748067599156906976544475073564316694275317114148969152964729965337280293806526901174886364325898420459206043689092462953244030282058477659400465255373137380589359569347518319668021720907762216419881675979577043878060087792065398626159110623017588437981264813838420454837036591210261854099651068784613582990251992338589596511720380225300084146259049156790041247931107601784913016840639649850023742486967108887245424025345533159455964626489342217248575234405825598152439959427440646941317277755476536045710991364877759729858596500110430434961323581680505070374147561581003103547234084067035659333893915703799789148584355127155925966352699624861398142826195393293929559884333601482619973056150431836324077210049925328560111013024329683231582617162928193451920883176559829504892935225993554462809805674694545239735019845417520465098761049822037840402948771479709824103217438740730673736220364019588857035985206880948639303463926527962515776826028321685285836236281512830954555435832732446733696669820782307669716214836406236066207002364142050182072499372432429607289290985646950655796743988979503052069801115178414623885289294901899732491199127335348544446099624158069794337538480855459120306898663358719013500649462479125617257712130575382805187453410237258187307032509273709810332024827085226157819934772645901482504787188283115141331763092544085478556168077828484958742630666170402599930404875882640013008319096571800641503807992349111690701485254142024687466980030507770122403955820629685190530488787396515775854283581426479746089642943081121011592724641755802365688537617515814744826604801720763836422871088355555941525739752738471183287209865063533997690373586445057408744403321743432051917596201473594255526988099805250332842992357872943017630197248664856567869862558427170125603311587164294420428714706442996258422023589458060600106005325275817304717830719577941328806552033100360472853792717434089308616812323784845485748778407581311338415313944176896301167751636994070390623673480700248839122941286101869502491939414984701361606582138962648506657777511588431430602950259856440531550171128030578181159152331309449565553785264207948728865114360166049309097030460072827767581089977916445200772217640990726810405126452113454389318569772159612839160498346468277680933368432487782500585745389239535688088428921098989728193160934857552375275052722908251148001695111028886912910742169427649065279633625513205781199571584373770433431898430962641218588896619852114956515345196059277197114139872276048927874198351013558696186215720979880187702014430211914267847146511239842746585657467907490250854500189582691492626628241995641670838246203392404740595977228960238076905462070855670607851103203227092690968180681820794726006687804404059428082265062522610990326264831545946220628857375805850714922488529664564460949780663880371560004519180917803823738146588665754882134071001394367504954423079663966904145379587172788163575319086072306070614875063691792021397483419298615105523912236805361332073621314567279948357691288477025724343567672395808513225890659903503320590947738233820297458887241869422874719106862742156712523008936851539287235126769359539793312504932366310020275690131668746198415249827246130976381113167232477753422432742606016316122474550333666674377777490671937849162548259478896688225068355025322979404341244461188966853414978060782469185802998987240382705382622977918371549023569499423642354382586794688839858020842184332208816449315615094200934269466039448656174134494045863256207272934172897806224076739999419147901699520367864597385147533792334905538012852605621082029236782544251546492012513148834226729126673362254077978531361400665638225508390808519627323694147181837177215986022882300165426023987344017624233881191705626012247381314218763648628927701433900998616985984037275081918498581071067620105940346675164405540653627372304195027288920625714302719920796445306746960095870307894604820232811187029132720691103626160007942814936762574494787049897993021610754076161176012740117095861744647073841169505293643828722627670592556714936943198737533134767419841001505283666647628865039711872437575581555175403247081840686010943857801892231449905656687093354408177608478895436560207426420201010720783024540374577668569104821934018948729961036314854089863191982648491869649033819264241117129047499031820474987230125034463724708510965266461971893863382347991141232302290093620587909359417094123250936965164253000632908808403372967529450867266743094872484512724634870359133734005954077583999555866746470904208568736703144172794384734695669483195352441002533421061798294386844326308939915933696597195021854876688512483822042498010234116032467287912333472543795905699612356371686640461776781758078350092140353750923631175755790588555585944877080048252080217939104436799186269677767522006310368865604564964096578819335615155480174426177598956129229925055741414634891775509691678243386910343244297237802365303467897020594606727269423278906838597123939994168327854933887262802814238706102558771538997705529801684810469597926989792255163889942863850406830348053222783495227980333700861604995209561188644024949526107450993496599347971672458288669148771441651698877656130788606380659525549721719554069689580391176788086216004648614133628282599865559715717881465301699265060477133093646200846619050757791651850875173266740998181583678785192361483306132616643654198172380804185363017007381367114982998055789396150606615440397209249569635252339506591758188398385680561842514306941606691594354832196341859721542439334841456299568064247311441152013899565564388429070887215471717012302997183698870309260955712231861695621836835416876120540774229483183600440642892388545384354403955866463920259065226947340443794227495799374501559503881263400007000132864352981744891468292813526728644219280369256733250590536152588372511323005393399363155981080583315726530792195455515316995574329215388205366911897815005263342093242463755106574586075388734202968750711376679331067252575389488912464422381187344405642614405427745354993145188035639078785966952291318170904627790421337213052441728690831332334444308006765362654695153797427554162661057131344262767773733611111335217572120676540022669105373246039382547921036462210885792026842512130488570003883537335344803853546020256381289368578055777072612061944014667267580929900929841775605611680975893363713640706748597631715141403228106167049871126459101100728147924616740663122598084851768807908705334593623880083920390584779081498311856316838579317901297612391812767428683934922887904020705001470794741673771762652280220473248148571090333693524113366992247575573543710030646614870930990192481759609149537069415004834148287338332375381430815863862337185216509340665789900018942416803158157553774919942422714561806493900455001409775098447319675700921929682909510973642465894845076939201606131084535519215401923242664540308647413330811243214863796374075305273979534409792109124673823560729481199567772326515047310954145883772608875861107439576334150498598775551466047142179838180609020022986777578248046017230653731528862578645280949919450161633741706893285449607414577159918374417069647170159205929154766146176351352469661721793163464866232986789687011201876462883782126787274378935816198658015516603403508232953213372358475540804980558682405347812065309094262289016423660124118470313187412888373327008437035928126900047797046257829244762640426825630390996076997595179841399027419336280791548625548329356196519719029555412811801358787243896447943171619548501982279680952593643718133603623884520615622779255013537363661275740418744570758786838218446471532451218568034623129901407126377759832528845322881894647950473227012697635949906582128009616240301105720720555680535472064073460515390539425140540494698823509220406766451751985660203287563508333878971396602555528866098903521004740847113514479243976088299794994798517931095896650286919386073279057230911806369801587608525623512261949757578879094886467845280878682137431868998824939640702240101793394639658698255836194373670151434692816415470368767381481653045482756005484580095881720278387316693531985819704138317074554495996364761850438123490074595523821503699405353930154458791035141788732708592404741749305502940527301164791287279402463561802782468607688239836082151558129513475914551980283098406995767885437160690657099631843445704741298593966981651033365282722980226843793656639952004528372750640704855506368179352674219204397351792786484016109138019070282563308469095410399653583917163646458206863453371435780210219327209640642428102409600424223655345550898828824599257657807067837113900390955888935784293860715409602835050980388105630018865537315409986939540286418348310997796914419215831821711073975596059633380798939376880624314432246149847106889507945895102047653603818103601399938069513605918129576108937357190292383779418407356804452093717694665627730222027159689138294887001952022633255527036355753509515820437090570493026747892485623142497499904959091428602941122306146212375432213829868058495117420528037892392596759590247142158747753291830445657130129342057114899213498602646592335391123044027942885617121905775220103755502830226896400068132310878852733315731519499451651088726789764093144496253178007520048747785732747216153376249930099429495945319655886201586089284835864384481853420333216405622893606421627309063135238135192292791007406677051690374707131704576990534724193263931553622751088338525446514696220994717985525933921068281376146019825070349697096840570839765765519000578546644817217742886540689308975217041145245336010489279747391739749858943360756635918163986744091767150095718217654103141589709840086311364353005846388087698812340965830278889206922996471476218621415045833756179308864790584921954889257662708512918372831247050819546771583504915220734976084490203653124013996849962938504627563600117033790443147408430831371529376636919163456635556629593825503251411793451564102985088012291058731046572575012566861778296551209050310729949601020585682981611104613166534113903845688585418433275842796571505400096213146432119616759737793474844654304722153601046231873447212669526547972574933351613770285020638711684896042360284922405358278055503157687663745360163893311611384856253046308597245951479878731819389204760082883441319043270393081443475311147331538851132835341996283637906321515219000904805093641775524246808459695207515790511847514176681878027963210025902759790049121219882761770854073336944884309005509639229426986474204304088576649136305547377635415305161653799257578689436852128682998080626898807059027750120917400917324080183748703009473401937448501054140129449200297380575086295247985554878873405740878505031361442369237869140180779743997856462587955867919433145888124520152915559427044238365063543285605687745736881076469356966733556245712219572366788966019772313546068251933242515338056865063669338357326786309511811361107898670806867687211953345680258414182418092280537198147083827871018989405800927781822892384432978127319145407991871563408929224735069269042106627633790429330490411842387475937149269382803044538572519219561484435035848941394632884201419137932808907938426281687791960033024024108133599767613044899402680811418200326731705033623705675783000139153972342546651572665494771308772782205250961495326592454232613750972249443028729191433329299019364686547227159868305157040578811336412282011579311799835782783552348132398924336560628732611794341159971649173047140899383083952562085245727356850537006885857093631236614302009692224282954013436449536142738554881249190795217636533979181568565754168233795859615542719354517860706789341909681067379711502514290602925913797541884415325941503467782028670091061933865477991966787665446629361985636888246219845324290237664391284574630465470742337575560330912835574504229720093065238563024554239591167576758067616639879354515364823330530078302301145266832081621536887164805338286570308375228688388288673064622243937785373889023019556226615674967049532012902216897910697225920119319748808374289936271574232012941597442877425004943621787584409559393875507479748352524407765678281598647036265993014723010150696180537869150654853699710995625884270673319805857564975080011781035496814861525895743516430839158231734193393544176814479143221917157078806969124427087200978197325103506243606938529477226489584957111301898859142430168428021001576855114131287772805779918792298146363950481535545859294862673445031108007443577325880812643338008748598763094936519322888118391694660032715759220893573973328840866542736056699293722179614009613069474405460672278408679385184423021965678827772805935737075951547402790576320452544059047989721180233838547184545377197579623856602312170383988462284580592972403129194674495706636372936066176039871918962402098050338706205597858911202769606874106103208113000841357032862488147473139284938646000905136080750178871242014925015966098033931628674632035468687813120345631713940911318339060104058215270714501956955393939267395303808448512240881843360871787268052295861942986509794198631126841441954636754385485128001559774786967227835070961015686090042844786816653641526826052603154440785339376080227336010628762915063153382012937150634086361799100657880418600509811086695050034619852167346077033543840478260937418824776901493627698395454932368813245221477817096915652056274530101282981014676286500453213983441131134683969143838721136308652577053985465754459053292676315936656210348068441660416302248309856835976672219341218852759492045555491496927721206026190506694959107116314567360195842638681185401079895666976771948445400881287360191710489007829463066880594069656876264310371351216005261656912478533109250522820135483533992221919476715036298936678738882906081174364522550516578157350707308432417095516298427906143508032201092307628690331702975714483247801580275131285246675683114104287143099679865725523116179619991492862851423799448078345013207942896850056571989883178285149025713661715350015319115102345897325815866247449259769548143140376617455805174112011986226362162893893515752224609156399711303322511816836583305404101797501582275283173934605447352409424742445900352679668729948070440389028590179295860408265768967781078008828166276221309481913880781140537939140294797749385058524147979039287129215220900607642267002735235797132273492717308722913600803874093166785389366131585315739169441811187264276299450542871705866679405179029113584269696908643543098330652204729907837534363307709093682009904108781541125539892895960894170865345638946544037548973145553637008654235802909024217261885403746891490094911890356828857335268573386386720751829194047871462152868342757008381792086035343191764040240572255264948351863539224089590001842414785477521749717951624498989797004787918905953363391367615966347423980977180806000601015362970066296793108006410267595649100976794725245100027709951032542600435597580366575590561448288666668088091731956771639526717866379567469746559987807664337914049939449652945469562200106891073052675693751562078409172376989605286321824467922749351054218433384314707689214875550332467371141117569832705540642990191220483230812349973115310776607772287468758330408501840288360933598832034855667924360221995553793778583148062666381298143440861078099912156850398546739575603904951775373710029128673483625768892137513459619058560270048985232868732002692905295197073380412363521841483573065446987562073252992071287539531246416759449484999923234880675663461116032941291190006412551411734048394915964142980849755279107602240153466860310267882526841122083443386639234043053045164907699009903508896084845254533024172576720694564969665363050786338648621340887350881923030394895954150755277027461698183957822970653718078181504490233879729472863628076684533319290728743213540361180962516210266300204559832048792906024996774654879513354221478282118127467841086336276028396588651235021711999792863030337167488360195481020939590402445849110771706904750420345393610273524626869670676227319990960947744365294380791453148622618227242063757167939424638517264197643285703382458220056957972333475864427201805729117710286306006122802914278628107585031425933038918908665468717983899917277871313975913427561582771116669498676819164328859992582112825102243568274644036112968107922510931205417201725321583776012823435782311723613979270871325343273198180658677355272174081400610808077535441428622829767173305175248579243856277124941803198461410190543120484317116061391803914066464085021654254698021928130570367186465309028401277748986936154630987598047269821931415137867003120561822621199139113984771051931225106113405832306411241537500052514075837572556365126633920770419708545887797533094360256834020704358767014801195877319475001734849261676648882361232970736338446673615085022177888845109556091528167628471731953395839951273263534732514474244752278486252861831841730955162359332060885359370141470152478206571557662438767430466280159087857137620425179393520273261840092302497562708597850012383958907103540762878336871859721706244917995141789706427808472471039928187333901134302992357977011423654095415003432719060797286106334363383558691796140334666931468949957269580346640982845813181603163428283522768573180014334144309003373277304273462975967348952251878794612007655289617043181072311761286286156080294226645785875532826216344854675796794711297679796513785150341560955033526231362839360186006721890847343931465082191869949659396030546991010421261227755436862839514380071190251378672836144127434712106111582515529225777528694718140995168080800722380686248302356780215450809518988873893341905897281558553902412983824697201247750357037397063653012613710887793778923647083302595553943144827994625595609647132196628661050988624177958831112035443292162262129626632826102955704913295913876860803361914296322075797983884624364550284731357730054410540997302822673064244429609469689293535910484612502475949483171046547421070107863013412720741639127045041377018089262272468228940120943901600931780625515534781903348387750315617010696594696520218929297990960008589658624771331046063597199526727345248572080145024935966516875219587806098573563720689718246539118221715942879167546999128844751755626300127239803729376177138156676458691981155292724532246683711019859507994467108578111432593953070194295993577775397053659137144281618095300034295117633568284593669120850625778974465858056426814138319288617555555169816677664241219478199041804516385187422722223136424491545617650236863041616848572439593963091001223612631305445571627088088045462695388387402549779467099569878325029718394879319889292763660268904229545357775695082766108341041355428899545542299252123335752285501019797673055966663499343912705648484456913559204472337041296423211127395699849471168001581876616124583158117311736955466159183374311587615366536539114196027649138211157811570939662748076056890048699483209357570926948725117869931027047425587351708236816184546299536131184729319977801855309598238042734943572695988208582390103683623149234221058247430238174448021319628158139022927791247873285569615619529756529701983295149859846362161556410225040162326487388223008854219056186175447738008743810971868860547937609928236161601588492243704253072629186456209858329677187668665442614674362558876532286499087400002210184614141599037835494131041232815948467314289651560358759691526981686282779317647368849131895277624328202769473119470971632397487527703544838622555504790659744631407627927883996886367972763293462986427035981165597974486290599072843483338358903460096242846626911534204068788181051618121550109309739964302668546516316750110988378446150670183650803852075990668557298325187247979184914290118534846861579191206808648586504337552363859037605635610361998915947032405183069427941342825672887646645303345389989375118266853029907363681805683652658398340142900160436335329692365029745139116356012019680708952286633783852470620175863346544978736314450255379951297199774522135233293874939633572104143271854427054599066814191392427199803540954411520126309911655206210352424251271769850883769956120012708421757788279373194986605352931471169884880728751044691920672496893409390557315776516540983622852086558960466216931667248808762701179406552759816249837006783232828632088519558373929111033874502954045223087857223623158400007745183891920897904310530220316366898280507694897584121529427832645953191614176803308340854641831718023998380110721756952557675930499344796748458747110232331248962267025147065525620129581706819787796790672483041869987287958815234234706594772006085949302353586145327431530526119165415153126240197991780478864737223301534069862793357472902312481520632864017855860114072399307455388136470067362466859063096562377024224230824585132932267442406622965798653408269563933509119545695561501954494498425218864813183567835313171535241278351526355755905638181689340764599713205062811505664430961422261420534833995511440340159957004906434340554001202820912373852872803327846287054985641982999627464715780406906115919050320187203283811425775511208946805743153777916183129042834883670597237633581479100393118698531941607012492488921520376613098070614066558810960478453066609907173449199474232758949981690830064311020289810399204931220570656948898056117717355301380196620515061377924425232203701224343332849072235427630535958604458725768363985405931200348069124778585052862870250602411014248020926464438149074051641724165965414998509629979450806373303873332942226274527432343289661904324196085326656288693263772077410693142122555177254754876308841666464174110683137957412517016666131108479747083046014561821658945811747017444275518604965905471208652053769010575208270516763535608170520980437657490212399228248856381969436214326574981753250421678176619065105267451591049609630483466859711090300320242845451235416311784226070745358561825089789399188438079974381408203901718037695260834492828962267232878391966414044633648559079481800504020788725263523116911165126939308321142027813885104280355884694635261841954110035886887129109877612067196513212722234290612805073318968111986226273969281219414080861015948350038064682679114312940317310170014781606982583128449286705529957955744182589687164190770114135882444089961868809881431917699874902015075934907405001369449462581107709231472766858593441334613875170500952179650286100712620891488791285166176012858960468746088244938582741403632141636172071729393423628268080010821358050536913784209122651299230142111229736827577757878909630934354863707799980323438277171306207291267070520495837826986660339491044530210347471309531931937531013836855137028129889418081314952963293417661781059895122335084073566802052363811112582015176720464666757402978639096623657764480390965284933930940050439920454193004724460892994801693571889084304884280809717520072608792660634019876218885947317789595513494558871520601536729811425422969799864991191480328994426247201539147865794810935975485551710394461890153254307544064718025051735261017326540263852836778155875227041490044472962251190609660225423427074420803275888270985123559290863109052436845380930023677295804506925178361281075424591639370748808520387815174190170444956034602596796273876313249233382159164969546236286417233739783538273567190123242984369103725603311709645811371730847281075629477774681478633349289636906909234444771051153852927048108085444899146894569252464710555773743107606034525734708826397443316671849206990408789276214366950452591220252655419718960553330685873882816548454387604977558524002239463424772212659925430433077452349981426310635528344401647544169951818068583610305042476939370584488817900380724626258239599333084293122407764389020198123260337814514212372791572947244454998077781870681182356364630470605793377432511411624971633984424733708844627848573331901653561190218692888041467777909834832727207835362225846685089526275570446736982775594824209993114788411471067725539607879636509468816312727400196832425548250779071999768407947744112059670884078781743877102755377674909974623460542471607821854429968228899859627774399177706908270272209484343628471478669917051920600137208715290504606389984373927641344099066467549089916854744749772275012198071258106267713074858750101352282184479187745727984113566266647339904406121210744443420949558670751968522060281048155806725234014980943410813907129231341208456460427966059553150126919609418738164439242062682676886003198718491557793519253866166102394352734679396340882391557429391843050688686583255275582801648302814169005232989254229722761725450403649263092598636846758369211270037257662973147171404958447956991854560963527295265072217050862483762359139051936366517054172444090962007313278904650837014565153056365564078979553830921403597947751883298274319078510882247043645079104762539291440325667604038802041157845773296758151521556931851533576428933433126231122274066239973543497998531078661527542288426286893229285495200633967396231522132791097005240752681673787619417093299213402837363652911857515569242768256735275499876507209074798696839422143137490400406325428123925183034139900104070500927123988850147122616938294015918643610263794947411209373983215820115728491888700266995185733490559922081897325619519993745350364057353960125654281918281315170805979982315522573786263144497460427400339167749663280751734290892117120198492428327682999783284308338818211974586312728284809964717392590299769829015792081359732401398770039069687555157585998727613456562538806958943228030732180561310865469964949311028585818597289531734585793447199319582197979218570197830144829903617039852349946955514933674165851928178470534414448440746933763714395566987000669650618860457902994984995050913865372574355327095739602027840608764854774382138916607169539058592680174374339059607383358960650719465199564047169793058505596258738718637096388764517312667705933351162158351533727669515556758029877206536139636871224198550237478805978707391477224738823372042359700729342992576580756463526216701947691186077151097133103985188110614368416483681229762990113030407258694173528915902023143312492988387151436885848087933555429710825066384639092743676731158808688544706263723902664502399402086309024058536659032654654066724251007160126337971480905713007306976658990037079907719589449018694558185045457598226825917391171671741171500488659538380567635733090304100450367996268966734107123891579949828208390575433690903906399128133740972095683669019016989997277866860041882377883577022555022349035746769196272702736026491046887468715010067018860657531010810126740943609619214326691226380668265939753438742293711561124451128213269464116538834828425159070694095256261994743895007792744133528536685118786589607501040033743610473618711644473447479159397051701815076252583186078570466630162672327324299101624186598510191156535084181358666805791892681061478746594236606991548411070988596655891368605650171897862655120203019701907617023170167542335975415761781567826659898053983703461627357369905423850608886273140486573298829288130218129296983659092485351435518242738758604988987944603343720466538506722042578309418871665043900824755402957661819879442087752183893263885587450956003468340901281057249478336273133571628098309865961891230002254668520919829271934050955950209413243104392460585925679044364713669557160767100952661206015552708885322010808437468134302341759026531409413156310607470301613340232120766378131700952610936139642724425649841804283722381156068953871041453575189278088163161037230148699099009239093941224804083249223545981355551041545834070544471567662999246656219870042340286996565951110456809760173728302554236160634982060834944565268650548923967181263992985180016214777877475256870298316317915208541052866757171148541566111825095504012785417759744843334594940048735630933026160969173860710610017656936769290133570415915942220765609808678043594532626377577250369798299500858285251549651592264641004930274534929808856529064840709739175753816796531619605672855813500019317889727115489568579313178450562783431404355804672089341138469179410680757121225998553092349154464949551942945359065324918599403273213164402899000719157887493156283556357754997614505165818493323190770267418249524230532204196512355232983200061233545579754691561453376827508361023958422534459037829864355116248388758406969831496026275456214081816696024773264699623507495978159423532030164643732953211931385336753028008269675157456060208820439531225754744669878868122751281015021775831055212195930374750699266288666755803452142316919135298554642623190703471019799357914147831317474586085346503208930696027802751968776525923621187877006627530848548396410150445476340485959528243311541678036084172444059114053752811801574077183463707494524563284551745703424027862161980616348355323992311593525566047534537476779704450552248974388586969203416003857030056179892293434392086128151756923079033991389568379344756094976171997857154949611953146359711292603305611092463297356246922732603915200387463162509423101380923795061815140310412255368670577054341879158272386436784095607983770075135343805226749351302611286482048104156674489363413846586792455912544987302561206745053389515741279806746402773714264667399617344589651601749705364775218270137020782051822136366364175977817671972886056377438385956334554903197878836763436939273367321709638884314034177369884872650296196912404521058278435732690731126960223268649276928195729110399227476315909207764941734212656826499715513289845964229028264045680367422253431466744137281792437038794333337563656241484830880964449305328399895875260422967935782938884877342136923957255468492326517314461110288431048791191024091194268171187820238620313703009632884746646707660290003428347497782670192600176688960662323468011281828655937951766303183764641356580619718932364390392233901159497597966137881989987355771071663660850308719300397994133033790171426066023439492703953898859726359222534832424796249388236404860726759865314535812526233992672139732462404774146321939289895877460584955701252907446584064417414898269887609966631977825367243773166027836569450567625411741869921418166830215263264701096872131649291320355632556194685771252301652145004740141834571733589969447045614640246902910778330251653628875279468295550069572852887549235882777963928337858654065400267258595712895069655589469800922209256509311966778383083354608412212208446195757340880146706577200648823521876890610141247310624410950070212792918989144360406445189192398222457878886224523099922645495092762250150132701597562855486120999585090654594408079254550209577037560165715483780183011287375169432448527946906883172786279173725112601567178391241572720218859799813383932283458529070272341667834737167729059035890941133542370613621793981747625098671256530311482381226200486184113087008077464841967505653328354368986368559481657750563322235367424650832586605621631380470947223035948056493970434999720061178572816308670251965132621875133158404726830296890911942085027080557061158980602766361766794520934359726362863306255236489658593298463628126423594281249303657728294407698558994468526315792521608458420009779895542702482940711450178891832392889967594017985176589145537966847133893959874490142486046952685658233994269179473909526619872568749405370305286984210991201140289155717540372646508776812310575169059321058326786764005431823722778918891281647120570264837085381649361073998682332197175070190073482394752553082909992939369437949332232201316817557440629866719534551089349842344015511565821009069202563572144629635741771809619776520702090285796132493394040654733615537362028094954775705406389679843934679045968394310577181345386213416610561388492614502333331935192994200337592931798534998686475537978750673522767201464487705645847610177470698847413357435624930208530194957834908357001010468188583764406849387769371389146760482154860712229843735146864261232099411989971582259467512176703744882193473573185140783503551143606641368895492414105559886031204549707160241372969316226360324199078680891575931825875527035758499210635483611800561511305776827064166314737548393120029969998960103397387612404451456166932773275604677357973453634886365986180900628729251501015769360914588629915284661031176643856934692729543179954311232788476116376549190751806090957381209454566920737074553323136844466034286588994035257847306135762898215843812833819048794727322932533735940992295300559970891012346791497767495950311286535417361506763576034190261274318034611631369748392985231806344978736509004198178314470674592879620425302070266551552902540659280514431928640473231442222413670005566839388039168047646792071713388017169359791151621108813317428319084961374557818116340991795946547374403913355534773205291550104705763634018917702037625810540586277893463374732447743926719375864713642575706088119149091902777132235231234863327295880722677783643015014681341627412822557213572964930145931279028434980488252267436675256803673217691751676664239400745017110405229370594314133556856832800078889556435493272910818790794515171022154987413875937457335736772952235053112814931246057690975016087993991755195392726561240133309949227591549713828547760679402700278708085594970859279880274113157515402054179376620526789150362728747908615774400136636281981575909194590343077143500471181477996387300391989576746038650692285905071408837604719777926160208571038111471754810722908101491855525586309964355209408868548592964825838032949441543546912913115464724001530480103177837403411857265357572122466509763505248696477132789377829808521284349259736499092199073508183804448714367389893155570240083355597251030513509456310688804826502777421034883691544457066587247402274769845387730519075371026495777289826159237358654484094727589421328097378938981875282764581839932564203612652295993249511585307358589750494848211995369146059696341751704016701638538003090584787949580512659659982543177053647351617694320278201725399351639956673616568662388614783720930035236792640566805135098510327024181876687295678058839884841065140141923153363989604601602515575122420357959794447810108938557243451219796904948299903970316576863143247205632881166955244199076645667466245276118230538824747428616869805404457454125466885413606318407327166706095556060180417051930933425167884645976521441280383638572926582739029503768712720520049491309082400491067970618105462161428819080236710980719033454874118453847981183123530320013197985692802877234273704280738939979362532992397156062058657028797519674266847762353141847696300025836215815577437173114271742544148458401303938490066030939135723193216225557150088302795102640234088546071370700307189816704040096898184638741269455359576826357520480130456598039535949318621875151858223177272807506165677720257954849802742779544081511182940012370192572230050398644956972101225873734346028449487980995311442527777007463665846177656715656354799599972328281306957755296150013538292568320916697932883479291453138436139092725600168708820065450377297935779410262138620887364493559001462395927324664884888402795633981352398383771226104043740042137917993497180152636092439554819859901510215380938671844498438808359300949621946173176934124169106510553644977421382177502501798151025397166233360632642878888718236470549305724765513920710751198844530887197878114563221905983908914378655542656457960442335760364444004673220628063236315685591054561144113584845842615592021252710367024905876984187549208800545622086285205542799118813265777562253537047998202576076149228583197190707983670816522615448322575806787902065858701452325467092159047541433488543159628750917825544103385432743413613070336374451128543553226421521330738473841828844977346342931706019275605013850245490799411208750708557527302319840354768076682980258240684690647351404855493748691556177750562150443596644672530537371300936752547239846770786477970514599367647710564247473468136958069093836098409113845537459251832541145350350334817981618951869158857191125749180695181248833504713528837325030182992493822969412568573085525727752801851557639563293954179595463648134766937101358318879145228631883360504166088588229375654476076782063176392037214842018305344679274913352533160576903605507151583238171693234123558302784422870098703734236658527643959960336495554624607925025325629205705648244451780790627493087957741974068083989660459184894473775676486018283398475128746211078498850560879800331792817972269730598491476864356843428700652411384684035082812683947349705206454757879595633373663717659047608639279619848418325572257095102302065208151025205586014734715433269177911722050864461855820296272964373045335771633179993678371581751706113704391163224269175653627808062817637427747728764668358977519411172894080008889408786026406035193776151920277342219067934259263430097868395808387290091486764532775503289737863146850090873151787067982711018005925446238248971374443653838412258686292887660291668344707092641483064365911246983865985290730744323354723222675675500119462832258755363679896541621709918527076033916811789436600007603529333867526811466366534698511594659213492973842136923445596797444536987408803673409959488300779890100724387273079795434434279477361237675405482259134828934625062909110899469528788326926386009988228197355083268265085987377496735791782974151995625978377719978764917387653092840083816707981401835076692208565411385009419772919009497979733833391453999009408624185456298063101525483579702936001381523842449308755216348925087710471024164137141523433500595293745363159963168258152752202813367638003884357892693130449199130910239693070038557030128184204924048245413521696302125996099702318183338396921745184222048820577986185173668540205796736449643330058932570361036324407952169452943463788537819419620229631832881474895188414014185020741248003424818038134084774108777847876588702067273878537503603006823320955816357706517182124364973272736331715619874775606684229115755817117193071276172985644065851361230143080866415438713121617766288376046831778122421806754930656975291512852060400857690904641162351968499948801724490574980860001122480554418879805642012824278815548947178351593789072476894635941444131109051339805336209026580718331713676756484793056150356602027661716234003604347065103566342284830008344983705698177600392245296522525410631783949045238690731191917524315118565345682036335783529947886656589818010453015522665228821757442708307098340579080332816789206893547155161467432202172976357408425232297407191018806448647410021966459338854604288007263427124260071200932061945968414398914237530466620458304307423588386749675077229061809328857301203751670514073512866557329990382468453571424559602814913046163924066900583139109276385913767915299687811944256334210212702022261596699869014300987747351956518917370632899563425682471987015105707653443909760955014879969910259616770395740663019826768733370448842620880354253465446551332346639264743342021022354038399013172071434033608945968950513742242523042582478004832251441570873444774851897598498396479718843003802223963515030763309461687901605843085318037590351251160298170394482258888161365935892498809243653279657320949900988263768370323071141244457400692277269985662951114255264403323637090726418846264213315377313187420123942415279458335309978526907020686478945493461888723372428968420003624709269648952044703256732170914798286041616715730859120413881730158414008332647213808897485740552467724713904703340042757684439432572802115189997391486158158871747838082780522831917080995506146721747743841786243022875773551929938870332179700332037310175228932786471919355976462111727966426604235581448671090481958252037605845248731282469220248857271999222982096630607341775816281448522945213979895960947616481781517583647941861481621032503182428961839724470445274865235753158487063756260643212809580600868545806024324497326565164506923723710978900924683847424865773098846428540732734546172401385501219069986759753502997443137824347294207634177764714370323839702171113982756702833453859856324728354381475426130395255810657314020618049524916444584430442088621565310451231042867456241397220245332837696876856067551224882710840192667620516927498221388331594051298492365562193333118674066736510882655045296653005113422183820772546533695345781671521868715340351924075700062718067925868676286537639200565330166412610123253248372345767052863170169879952693081437800697985397491032586100426327928332571607851961442209726499011502960568391015713429339222463978862887560824909620066146236003199577816496900824368762318747731005323241524845222834948132931390811463400788290126297633495418581114793632236956544147075175447894537413002282549427944085294087551510226593093241734300013924346473368770693536427251242661819683370544982491195063506530289096932052676793758685013949147130722521297708893559942047734175229038984615201484405954315113841811717987983300794075041424035526453369895466672907284502991030565723689525401473201593181674963745064362400007201046757355269930660719106015825104437621270353657102869872489311852169076188362765069813199024655040786919832355265761677807842908967481258765425622654105186704877075132040209792240295454163176818225841983556146159741502578014141564546050135144945183157156442848476918822032510358273559846016454782168973521509465949691356163147913439889123452584227325531104758469391882797661661113339104932869817276997917764492977336138871733258877012376838327229253534643243782088429342791828453321033910337619148309364463771434593416931691018802070496303804992174554121220270589895826731411443850247462557024433346129544885698574533083059249916294208524243542523815864553814943474302772336910532478775163116627484990388053424018078417354471145159341978961153211770113014510762035317305748689684168733497312769188143672312692325497832537178498163068915333931464114144972128945061010774141587941504764464412717199391658968130880508105252951894588492579140526594969797901084005894313401327417560200346984578622526696325674045729491346787931674647051114817653979691289709105962150212164994885334598183093677197787165234581623503437593451767323805291885102886067120443605308412208047148185855471162576551418476220540488984838559659616580300156153450660447714973618995513118581150684954229579274597862018414163334226003411313833334805274419562197372246571217173199224160806916780442872577863239078566605911568553284148799539200988437315532982524524923424905190677428208990582432447276460926385245352513682130059482854359030562968559822718280016429843062413772207433186353823882358266366229279613338663738778357253658772214591677368302268769012006811768779787438831081239307913528204235476201432309764826481448665650326053721941707273440633136422852386847533763512788838343057046826570310698648740731214234030128754167701951255914590900981064806650843175270599579483526018364554836916200699385466691094239825384271873917869303947130811368086986793088053816806161377189272773968000045986608221866315292608721988395755585992632874990994901402919420701563081548001433150745289708288986783193569542558585637854173135524980624794965148352469592054709353570194351137831197777707597836629168558177287341279682045990000226410584784473119368856174404350167150269505560300005773254991590751644094726695560231149354018068404010925450815717009159232314470009901328203067707700937362782758483258988135917408357729679618109041620626766320844473932603244110320550585354259928893383706481979865535015880222678203130870187148921864746189385009433811458677126959081976908596916059637903069422753047842297461999107051725766730927382312494630608943613788793880462284618965685011930787990602774376902447469471579717403942279090801733835627460290367627218646124394254105321016904834098581081156684830928918870514000947393056959972796479413310547314114376088912756352592750410375830813661810903960426847128542034263109301094852835084305911150715463406513766330231887512708804604029306655208457733138369893995429190084027525371500959882928874232969715783168815662310037438007247455533611368626034080392974033240420878103793116295957119219553514101995986446776201859209825849006762755651228967573977071295393384856751024638368107750708483946632597794596302245592368242374141688986045258478928315081876326268181048355268249912677902856009779496002146046656244756406618165706256207961675831888553358069553254100950765769954421274626418962785433904557348563722531818278693011016960580012119839616247848342305714235712318826226230060301415362516619394830754801758597403999926463956990255532854836162663801238724768384892230414272699206168350217998648496405801328041982325219422668758987831514681982612777683450264417707643950576934663066159580964386937798592316870450989586014520972678306770626340072452138976259898949603956222680149087296923485223604867820577816356819308015362585512167307214384931169871682776105813268478561279833416112785236005064556565968013487451967343187763516515829755651501513833903807706492492611776528246856672658660583060142578759213816500518291837973387569895579751383322968168920030681402377382150587005986803769140047528666003170951925616229619128722113712775726745395770843948535003235494204820782528958663585530632428306724273125657455224988213910606149285434807618513702733720866529451476777333575173279332773146390174314682687223393372679018920333563485050117821118465972359581958893234037620661670876434265779021539821144932266364771526051774133669134433851566874162664879831807623312201567271335913259241619104136709555770076869230576880228234835124141124501904311942984936559329255348577021620747981638692068237044137790920908542757624300870476257978505073077621445423392682250564393157664650716077976701623005002649912803974660194018376240834666631415529316373427349012357756776651605379320995605041447929166409216374741521374119078604955759435518445832354642382068021843727697382530005971636328347047447860715481537944818951839640596895853053651025992644057671533387488768771038617807926646599735422414772489696781539336400989910928426943180481436399773938617450881357270163445348747906346798116899013633142745866741954748609766111656522644186406973974509132257402175244881838036879048992190158381441661161224026027240392166344442332795291742906784736681529401011406975305869409879995909882557444938168792230484527682212143853992138119394712426849378575879931903114648713292715724974908233705464161393468150070838975668747669525907643538586237800002892774567103628963182106651404161855014310632158977416384904539139758308487609683766948606788349541709409236726139261380565192805198651946695260676200407786533873204240643826173630767556812533604388758855724170753030663235706913090961960314505223164914759520004496752405564103281545217441759654775761657037616381146459360961541121151438459152749128497885699687350279297421864484999483231089491182044731401005198611838382688090945598426153390056834387187360671760795250316800644522685169029037360016926801476924358723393792100848436639650592861271776335204087845800242116713060950406590319956250143472421571439397000451873983536612372754362888657437305763137600429188250846844079193962411470790150847387100373412040208427436752477358787478874061573628425119671412722344155148346347652822741722232584652049650702446514901883872939235694812861115181247753118436486460583128946296856070299220188287350595730414276629558493208893130602279198178372051642262484554101098072575537782360054069851279665665824655362274856824333445732274764458385705308065742396687074386889775587097774314981478717034791061886340105734862624701640882712184465416460257208149045543435464552058481877028911249102238400659377217865877235038819005314648289644108740098895568948648646008442460897918156366116552452513229596153403417907041995094585208762846627902411714827969518847015243352411616456951571636992850556997392277162239149138632085844532385778330847168498744426800372551932742105027594960505648538323034553450996149010069219152945720486954877764399997437967730824648078356922027529597339303927733971764328882441694055739716111078057991396540002523729295184905806341552817083773084989199439308018151946334129637248338685834609413323349065658898910160454166689019997845312751058179770541926594193963760710535128595801125678876615303132902242676161027660285382675480510049510452693379506773266970304850880607715592210115668422056459768123846849486263839234327273623928975510640630077008169592774263518123161906510801197772545102466391824879391410323131096793429735111045023542032145484423284803786534938170526049480407658500538451732426592310258423074664269034581873852201122794007142679037985481308141709286459225237754187563647229510608578347549675914177332928978311038065205659550443112975182483257700729974135719690823357556098484934042951865466141959874166037181860317762215865849560867807082565183418138573192080896393055682690743965680841563710359568669628973320000355067592817780700500216026744647767711284051047200466618338807537947062757328777266371324722872217595884521630313850701692426173177175223299884023410638141161558015681793963186356472070454265540788362495618323927229826146596015401053326796620647902464204798150561744580147799153609425678043602318732128178755115389549306777183364235501748738788437133297539216576195048855724011130749128708058901926743766024488464411863646812723393766368385126289773566404151709477634087475552752559282136903334324388765939769557254912946453428128970351218700539445667218051576736375041453089014020608051397661562532138693167540155404414928982291559886678878634700568615443165990828238099793979477826164847042080485169911083322945065295451718883717302477833073550396115681314930903352088455312437912326973364699046320982231845564255567229411219013487267482935308323879036305633933862648695178860224138908637445187708661835485300231686478537014885043845435416214665210220928410530702674726798249282700801559423281662942222978394688938204533261181546769506780103196193659346778184917091765925331901836743579994634449232830477503687975806648008746179153892437600640722439562641005280189755433906359657031936662974777578289471993893730720024104073568812763449440327101406607851935483693698443950275977475976502602675888365294686829788351363187616406674552212755413050532448830677035986545907644592213719505137057213101941413597408482109876653433086832820520641578298538856425490012654834222821586193324804454691780543578307878157453851537273976271350298175401991442374418331028798249616094994381274092463691109207240462053465612807814873258533565362695613189205686820221863568678539486755219039183626876253715135212693821716223270484087775607573709588091437042301414864420474690965035747975651376528285744603768862930041186925761509865429841018813219219339540688466752161644586497349625397145266931653134925313320675673262989559176158944882068357678552093605964980398544392039996743965442090748468272432317589496947090868863863854464402230988226730575219919219292174434993472585415184047975189691933331162316780372236169145761543834836071663487058804302877746467330821159566962994154145245854565590118876945596280799169524451044455316418510012845838133687969482830948417677498117414444576165253159593375811142497775211334878915326749659719383007715338961388867489685126640940598166254747803819560327605314535738050381874848645719718171330806599614745992533721743260420544236909969795421930582920750214170962748973311286395371341264517581304772018646766602646400277574947481379901923858693575324978269063008816199147588982947569438686682989015388138188375898128182910079494224352525957039115184957360099444176450529732229181257507054630687029363850964014082375430708913232312843307820224924836146584381593297254072147533699629878932608575493566803876676251808842029047245936502757674481975471110543657617033354935997109281963317541815566451650280154041465294126810424492374632682755166110584000261214211158311268014069069480148352643086967387225636418379612966078783429981791586564497250529936006103745580717725630441132165456584034647185579228967143200826838071671268034231691802059751966962935453807285424474426425699430968350728940008311031549698577240696780995389605323254751516513284039738072314711232753409406389807064013054495457302411858357895030269495437555536327240004201212955504460293696214100367672837669661986988512564794210257541900588768985722989944952429620723518814800926865727668324878937908198751664653566556616974935570006972188210869676334164647689441590879332743198415185446060218626303713046885682151460866163409199387261007960999532291982857362217101463951479208776206718770074744080007766590011302029846091888077756544528482837060789125869921624954274918144110979046004976732461272194961637194747681484473852508847621000846557070787625552472242198586233445837739863265023945618488942150993865772095923796816039138994643802967639021018091787461992576708947455152798946796406905694112813542967781123846671920066495465449483745658217343992835825520630951843052988150261888116867119317826337020070919172545785414848408166079180048920310281589217856770099013716661995424770672993025495587263020259006514960473670210735976948681049760591720309228767982117757146713365624675646443397164510104994989605709595815926492660064757704293950464898071864814035206466688412340066157581828217251770364536443512267763764821314672098561729325676933625302352275953676676548867996441083022457336447421744810323551819603020169000674624827465084079767183300951472120059905032853422605819706767108181822030752400562028997701675526618293830570044966818365372531838376402295021364777921479855782428539121823456910310995471498105029792807141850112391618071059424286406359635269376945548659201054886602645472168319066126875610344030045133956663395024445206793286355772438649654435874572600873477228836015434428750695899527087709445290453990738363922607353776387857000807381155848121746191903589037823945416946586471064845014743314502796646888434476980030590985268003105328860173706292284160914479921455084737207509362000625795391853135564296265662196443270271433577401938486009559093355824125749893538389631105609745416353089820525764488945532159373070999368143204958522294059574996184340378938950945412082751133142868553789991847864572384051105290357917480776637420690315224711096916278694498119354769613315220725809031431674619510982654639619439393054289249564378599694897950857980974005776701911029129820650109520567333724811871767826293299751239505577514008244023735523566481673462098432122678038469719491795354010927002140122966121792408212012346587242195415281207808140896190831704506501744766202574620873630733469773482857509574920061075730201149962822601949136607063999875212150387666578601661360612989190433714266618229766375676643137430610400905695604418907732766707743478202549557821931927579711105712013552112026828727533327029958824445031634316862501735858433170442506441261572673605904529714358007335018275866513667517926369265662210653169241776408263224139911722495174187535574435161780512414926448288529988162607534491721146978264412880343076189473374910316232741079833985469785429697961103277082844581520647252590220837711768477194374167717479918600135110774413360649782286068225518006945418930355060332852576446029146800658600990152984869829193946514380921636727309161122861718720504957866531320883463132645469713328634315091397686248738416357635860292025986112507379158733445157282397655939045760668982628943498057625234227917892428789204075829017985175593064609875293106284191614613628347897702681003947105241073314474949642704624434190031840948536527289706610755056802158464448320694964025120458356760259488984816221800451038708369583043171755655145308408129699309671015918174789280377293846348916535620162525534787659049486695840244811317137496523079479120134026309310644949566703602133975884845109147857286764254913576894137816190771555443915703034468932931164751290049079954173527633092854382393715716387105018131692635077146476348122600434434397639317172148879267751793121503976649062198277262242584585061476559825077756824727241610434609476418648628977502515581267405624622704171901460854493698636384105786547822706655678696423982464957963446548530765365170487512518129844351128046864036856559850034712505988405801158186003143001659255095702187238194503879445082098775569858304295892787650972628280683937048307757388158841762420900874392734626715709134090995690982716342280675841522304683820502255863243842513380378063377565986274749777940140108982347247882763997827704156924692989254636996314691200335359939815347803063203695484402318293609448858018028866257759649637440828437444530264317588236748411347903589875928515299699528199142370276352922028029844806879956296134488687377412336340245646312700640813234722123381397033115455604881039892826734178654212845134529581436256045673600963221463084199914858116764752038126896365098397618680836433892680102174422030704900874507163966939323993849888429385713355508356933380406398449300591068504951343819829345711282994459653797217819592646765940572210425900579924313308374911633058622781613626884819755609635058898864191738132764872360327314566923748008632154519746318847207642082970503425326158093806789554479016710083182711976549059133476767872671636549218370023558935021929393984381638073035684572387814327597929710896977474347008419657594204375929790942286065367712737218602405730446066403426577046396448705234725956378504544732536508843571029587157176964133057505305678056410089537835531834132760595100084661692334230968579851592514749593586250291662651225141982596215020283563349332676707717222281509006577780949431649821209973922389222886678579374265590792019934975034838329814803076990075324189746917401075142709313596368388662219434608365439062877649760436079969879474787411467349666909457968457778983236143961884796137071268219675036438036540925600941145977365294391974987321346659243225033122941833308380203127410654249626852166521358961561259528961746655859912820869586559248493563658680340480159868675324711801554139529869547271291639650022894800039455992682800828960010919034560476684709342450622491418873342262170597744766939594653837466387729085772812100977949704307847861995342271310134188117804416224441840872027957387274720438774254009143532720327383841617341160559074376134711660599079475186755600725007117241944605590765788000083379075179787481163865308688713147277293659416637691342615756755563680280222623934760090367445485089191010568887159404873283346923407996422274894887654662071026160505712173900417402512084618533212713464213568887917606102520384693477002868125549674865456952339737924130808765847580932428595987552703757164643952957087293977291430906420224064715133388928761098176453935615444560514581540416988818269745198833751071623794340432145034469026302910645365434350705228145487841766135850166213626594681395971137758920328501347064428445650457161231539110855096239339701746786953574134251249123143718814115964662219616381036045694446975480926617464741893321518981381070712155879333427917771500821609089107877253639815139110886005869003799944254389725414289095361179287653917135916325350540831460772125441408360591230546177841728607965149964665134709751562287749297311404704877452826851480994331090279804502955390233773516936520725121003278505677753784813424256628599387678927201635264926012412075018459981846203970144225218686656576205712263687303563951782885009168778633939275316198018680545387046154607096085310797614783191536677826507881204105025987990139821685234877049337451753762349726081642413323996312531985985863199506009850633010972223568869436406138415620902479914151092493950962353578833820848773128999997620728752509242810215908652838572174761515045169354537704845982835316921620501789226309227337038568537892040834290784295527661432704717078517534048720455035715774358819650675347387760995985043978129944326525522355399802288050868842011374270625462002576878643873916820825099802133321436964551866188042114432118163022425652846009450876384497722255198362537422977161369109245818855241122940882798634626393681533581428865627004951833020718838067469608686327926449427205338028026674593663012438688564507279979410417698894412834288370992420129545277480025096623995871846826587082104512389087687100590920281446707118155891079344934316352351218013461426706421298072984813349652795468576424113084847030195375123838527787982749735823360851254576046659455268954561457284462086735860360818684196610559113905267594412798784372745342846328138717180087005725206994533430879283072957313790556638305239848380380880831518169061981886204451020712561751146233171208025113265897081264738031307053848441724252754644681484050277732967852953768494193442528539731988326725048195140806610132791999051817478479226537337861302739451091228440897252199265871788027961842049722959753845363786383645492817706723017353630629868138913920144107581272145112789888549567264716230293773842205317878804171570851641272243826140441714474885158800396317062039143348976515866417642827306402851583045599034756148573834333032513275773821448167351971613061692541609924887133905815206658858266942236928367174304474881661312947643775665522808780520436892094037869812149641924239432565456029222790727938618096416604228554218748642327101375431267389755155856523665974635451392567487662683113356036672654512330198693347712028168036461636242566096170698207000345080040429472066200590540213004656586590354602798170292053516859392058847908263804866387242593203252100951650497260596955274530772307012239442240434418664944210834897783143672915329888507356912934366516797798446236064309694602267943845447914858242869742813656484458690119642323276058266869177341863981636152782481248447441145587562976001131093184166386576075566381050940120901474622866486946643978618482774577819798098589952463839994098585699710947335425161109250460612835252299408453814836926807892571292167379272261233552946455025475784766713707781168316619789344579271036593933408521153995216901912635436823563091879825137261454645883983658998256226014944489982874647376184459854030203700222741799422953583131365728022618784575759259070832778044576031721130295182866042769410076506342367344532400335592076713709818109352939296304345999513430224023661190313248944342181507903903699177749489369523892913709898322952916852434709294236543629400538118087050515937971158833850371809284858508559650756437037525436958701310100751405400746239650184873590816320973936917720307450968016319760880684155846979836429397855133137654906195203123222528405072445963898723427268087178220209006974095980051654574300738894069096346794581276160161149301038879630718502427416441900857173808139312488258478172114800017395790265976254619879678671179764463063846274066087646472952146994242757799176734453160271028119894271881066906689665776093358982995522616171271528045514284967235516510454253254209029581218470816772674290164317820330470925550141001341427679437475242472517682374780529605603449184114304087457207224595981395694808159786534340240867820090008909601677616717616814055383558822609027898742517042333300467575507033171020857568037409660976924301332645809217543225583364780977151127323578271580378788029146314678237677839737650927395872423360721105237930263305520451437075354262316183442448318112531849548833006907662636915562549436212072608566327993794146767790906307832753550919819495960161412854709508523613864646563523666008242743538406311138048600277489587892751468065058441370105437813111894885941971283453309438444575663081568346902968520827533982604431159868041261061350292030519869652304323908453761708384286181744918465295539989334571386179946893882019936601797018804038487173248591437125430205644268214658858965314679272363666363297433756390493215031284691109811736567183086254286480507503836749502084055467837707903430269836387611255745024002813239106131076075528321392096713555208560464375524558745219250403950722178241178442638029995761051828527058497439682156614826572362918180707786914206739356670977282440071854521078554575183647365221294083754117607108093857594268799784455588555072768788853020552958147247465079161603983222627330033823689480381177466968714862932037401929703899477656376304350669432575647605061968706003718805817956214922014219853903903232272564945547816459490251952152306533341460083193243539674459165350913680369774019241224075634999770044690936906284216541214448834834375426520841812427121753628382875018710852346142002719793851140794278572163956174676483238448008311831849774649003345624200939013644355412550486207105980399259377247940475382399810992431092804150106214940943149875000213337343984723962317326758685272297337806790562894433918340541904269902674731556894869208632065320309614975072797936779858228480471896804918202167266228664477509618148301106331263777257510422095115969261812008562338903663638782508826696926665647305443254272241340518058509775357223416335465862222621057636352539060830081109030200892102311604554679546111528529695331669378049917879140373583786381925844743694563408520073662601568336451307829787706566905877184956780989505041704684860711612628628836055284731579174777019951030486716346761893497871937906473574109543369065588856756629356975863256136729863260779083625647520206718048440344142857518245202835854081585598416556294034029057765358790355625718398218782869511932624661236053382239893449379836947208088817463330586026331918665008146817876567879751402225300861779831913787791114858402321836893451290393884057773956718828316324161195261246965966582777981518195782058204784247952838760760554803679921436464399581256361498337537760898883681962879419455171201277990516156228849039000500113355927468156415670164381172022793267571054818541108361497144815629232237972777701245074044753558127475303714115220656070136802214296325378130771749920848232636868602170377603814171502059453279532559204815831922233883308565679373222620436241570806827491219133726215066021591361662371879431010669649707684534319212211667827623259107970420723683978276716952664072398539048665875369627269240771093358374592314126037161938814276694771047446887549761183666038307913591446334476287705538465834841853683860242885173273869656080914198744135820727637773330182146167935598815358608193611571033612161257611462423950205255475518374758402788381419672372716472667664594267415066122280857948837358061112414671079712835684053975401755752602547576084476368450760445707073560941766218071411358543143331025393109034747368235057732424406940722225262282583444624452029355217933505963417879847055901615128457583920946219585451255146714610593158431291536670500163199556680513512821459629253237616242206829073754420419742041033714724238423537338275636017420338981783578465832396187100410239710320655807567666898593593254140500284968595976979931176453454286019333033753825715816474955854260296754829237708100998188269571174173641525383961591384241421866079991916909260430583358760547379054951168101559020538530966082245852458108058586659999933474051701460545644368078441449950810768432784897781910720373543079996924425511869993111203903797928218426506130962476151939715729199660690135064120701230512347708755108899709876338734692589670824890200074829598150896398142535580507778337099220672327656976379968065086798383249314517070305750737659738927320367906743139954920799742441847284357077857169988437169644692894369098503836389906864570017465441064461713956778762100327694874523506823960157650775231798374697017118456969079529619834218310025301802068440264974670830102250075453777087656988631332400341718129380571773201479824794435673186589951616847867860397399089356360390648414759121318672148042616827551706520380228748928356318523908279513218753273280448168766100647161770637267967883512135628887018091334280590749463908239239683466942963690127194653839159540593547413809505277198729237218020639672758084571205997500765434739981473719786380191372726280974698066637226417235519571082339367284461056862226005318912605194157956596811703346306182683798493460291635440902739013101653119322106724849182951839891840196345722224676639853838711645203348464874579429400514020398591428445708492085760186098759424144785087522854940988792098257517392110550758354099281424482743261414473880592119290911608400843586213390014338447349626997881760869557154890901340407160861392584071088227443778809579450483533226708285160950049420298806829332174310457509347736160139202576333067894051538835699428540345939603388059089871782964947913499948515157642771573092514546983573063310790345099733818795206291121254452795701308049284060729565987737809070258005462606435346897571461906262598075214440758990575275129803292383049039742532573658894001892419761953954120738578214289846237871101888601501768566478856879969289338006341928382897791006063022043044913479883566432591528604201266818657457705450496676107164014018521406858565531610745687118865912104352511952931411190693579626392237284815837465449816946729708843062467768373761384419130336763370269504593296184347182335984917781632057970621604505465620633944431199214974039845447883453213152261991328816914877067818770932488493526735055016337629081593654069210375750249183100409470626956091966689468190827593399060030220635883152904055295919680244497595653043181161856973647634652593644245105947986640357195706993206853458581142297245265430565956710834333475626280545385153586454314626343988630665968685618142845276001944104183433343645035329026753968110805431540327922565213190176260113077142901512815520276053571094624163930204320403851269033443339543690672797310254102010096880822123804755242944885166587780957522579581640079290786313072762612219914530185408160753142677161831042034945093253953040543887739373896998104366400039733485817426849219581920871697344740671156584122840877566676910777964557943533413094155817626062434306994295553105161624147051828528554443650039564943014998370612117420870472720737980461082490207407970782059994039597883283955256802566417774066855771687555600051780844581593763052359190413593603922643904247208019046394589166595280214521130866509259414583228961680434285874092476580351994798007311804957364014345372931903115141417011769197196604246615396413613722780840536518427761275702332774173546826009585320242119211991498911741604436770651228882704706302264263384678248852638820293949643729494973464193311280173328312991460497090313653340995437318739115068913473650860955990890139904373537429014119790831345235786853220758131811788123166963235156176603842480877051936766633804746827496303156719619182151456728668442823130999432060391533373113482773899833240279544540851224751668979373025884901753104009169710555378224521789955319132809190418576472678746367165045111475740417288996366433588913253113970121730982824038331089700936190432223293169109103673611889054814789518755252833991985328871041255131506694167530342577550285945362696106290575044652580433152875000499009620300355896120641660573666758755572956748783822889540260146925605292301235390323707522497134505322509584485973856979234014739157480757089716888412498366757015058541653948307246595154914018446498934175537841021009291617192709938790193655162371239295522247863298365550300084883025375133562591089697448844449652562371948287040542526967934639668569822323199267116758007702741014681352499396846850086702435299824452492379231816279298913387254264749516578484060762264521582585200187711886640380574956958546704694062944994602941155932141382040071897381544112844122361688242380834661583650414469945416594442751777940790114785053660319177552310189582168397726854813222979953765388831040459076767948342028545570464935907885644722820378784107435397395554492493579440551799290523255717783218411778501878563900277823411923972450031080377877703387269502560144981532483716528463376481064430833448207085464897805008876047365358770077730022354966067958640751429995863349915270073623886099432156308076824351596343957056342579939644339756303934300659646178753882917301242589588019373379918805993513476943262184120426149342916259432314451513727088486981119410516988306992376737810443307150021908688060257206606781596110082211789091224981800471876827288186251168538572436653140518918912475044556622991359130715126870733716145816191844681029084642051256958260558947663943017600028649436429472087765413514935984057640112510024225807901352180617721614608420317375190609548231701860755428226783391088131395013013750581734874945021200015328230240343434973290788422895371610350780187635897756006656803431131224702583835543228307423921222344015200520068420046413656667434251261989182002659860420992025154438566818174325106065694111285939911262694824319943692152008566189562131224340349502552638004936079150225801438778966348267658041942733024300747900563953938920547918214001587199604893921853468736023244168583691195288413275458645742266574376933989356482296881982631358206615335865742593355168064592015928956284749481617380976504746986688964342442877133213296824645151131109567162365566720555286086763756521183735725263446889090876964272702815052201597953128178334330098304549648484185399583009155197358167684787235952382975360675987316554578059969406593158721513721132602755811999495264912526409567514796718508349665594602750302685500824408223337241023118661373154062443075883323268433200044721657931148999225062552869216359109605599301049456207776053527436014301392880096891363946486870857056595547757214837074465781200035857920979249342239184372124513292132503918036378357558748176916472777773103557118178370851715313703640737838317193347876416171468574786625981366071590262788144348580924397544203910367930187121097605979786487118413987987051581690972000621691295675793733621882215790488714142500480226249253664848499555536984712751546179230310476439648167093970064589709205063651806976104087340986810593640051953654709685624910788047257320283430561921646290621572412647495518528928192142468782798459059603227084452517026637172501836610606716789906628668016423999396136683264515567889575427861419825054451971862629468663031849286494738821060678937842374619006413590330298302009271053322830352155076108766054568336557574315507142351795851166801829430693379591181595389063547235415805136278075114720296676920935983499491265259827864585714600468605748213463622318344688085177640110034464382687090964579047436127789281247536784271675576223875898732051927383881277037081658768814307349269235558815178455796262501669572304995169023484428601364086602626959445424721073252617675284987313813269267829830673716678475974461171641856548800083741802977409834954624807080634022199607774041693478065569457219596856177937263503405530638801852693377494928441728041734746833703485330124904572874362399433163846048720269154989441291774299575455975094676165592296278278020630808154313934848913801121820492798373018695733120438493665605905947807170786814420738344713143683348841899087885838109490138005441114293552951791758855312831607897610830891282649040610257923747705004290025436734962521237153651932835085484630760965571204869541577293543842742467004490341342285695241814161195194554339471677206977613572866149646230614001980468586674277344410054658922199670142752068929293832837024284194205332465939349075333929046972885997229532727280108519368694026332822217307135026441925084735617362328659599360697019398610444629857884741161794966656995340641920919406990094437749780740481603152658838098707270434056939148162534505775558103435633527797947837110659977110214183803562791371456225408170047708046551230441591404634149718302881604865651756050040592954281205825454933892472791967063143551082035259015579190112721204791401690310440326955791869579565282182662644512366491207886393706140404165838055103674254054522206078524861143753127093782349813558865534837025076524939570809705133748133108738514018494993137120434091513520026805991928757431017860615564595258059845976308271991605066917484014258717620486110935787196713632182738655603986398988703546067517898206004073694849766252095920034965863653273961558581593579293829357745933951978605528262934762885183848068418054824475737824145572319338925253638622738827154838079994091549615104233756468568630274323940826813290155037494140027444567433613287668369261544098574111149992019197789521029374318845444943508682843155900180604037239007442500385879491991985539862204516797469520605645981047457953975472836542027370720036322717849653181423296317680822715110875309657221641642776055538326531026318435776238236648192337767763699392913450038752074064038660284457739984383338145109185393049874371053479935159621865133199371584990238054606652408181889790591530286432258774004135477297603510611704795625544734473193610593021081747549780926514416998988799888928248382495134073337370368371919821441413021099926059507515385222946054234436764272995848365393576782050589664440974869114384055119692524717603188047100501525983558768578507154424268792783703060652325886442473727856394615484330460261597404525071979914923289304713069460786981678899662270078219077024111679867914825492357998359827990090503391582143342372639637380733406241624026673331655241268677029749772624319683056073632816060504186643928591680973328153808311087972897816888186314609041689377881347800899794930199604704690448255216637903387630626638229720366599406315336655203002004658332829146658002591273276354563405489639669921274255849041564674642921912499102948117404098342453281938401512107569999131481367723700549791593019590198280947279556761692390051883321509351667414840569917323585358103837796332884289108082719104207225011767543167466804293567224578605082669596315011919551421674880803845383218507104129319655033958406415617404680407209123943521853342761766856568700613522278839136749653813345227165847537336625479113751041165731555740034614142989233180785766327657781681958524274464648055837410979221263187152652142902736796695518685350724896967938244662072487897188037085900294055241694742166964679379026989881186381656574030300790758315617468946966536018691981711387485047264237345735597065337167012862452288120722917934666541930754006167334052511955602825730075481629173416478309487515190667308588323857834565673527631298729351737248682268376651469908759695016835641394823506240995160474955160281905344073105443476815016000833060948963093138793622379365885861765490268542316322596994044385744131180766287306439623466316842872111222488357909329277853451213428874824455330171596389483775622872138126655355536495834600480878389410325327846076456450187890660580336365121099581958299104529596973771544030513830475999225182143716494815706764825508395708061770210153044093071445968872943235815255919213947736927858713640361291794211822963517106648016603786083246873660492003910720904721924463220322272699134273869022476928463154236572333971805232300195806816264009375703175974992487049650866891601828088774902358837027760882177657685671587210528286066476883192728428356951072532872103493595498920400839594972078921374838330594776739551919114633498097243948548405182020036317282570152192340912579553867900675578838890148951297816914196824044261209581641419331559719478113932987527430518890347480624055147237509131399030071866049347764934538210793472306888973236916524327322274097697396324014701811730823176658990317812659713795423825085654689102747024104915350337316190835415253803165294440543789354952323184423860908002711740284923484603859575793852725037528694856553594577806276866823570629679711454405193071495283632730030454458162008902407089677550154353173007957056698458660618845898843901770979213645203690647005633668895503387543372600722644903229694019302003940487157038134875162405932357547893652805011911879346530449094391236168615875121243043368186550216195017055675752304280015899598774115024178200205170207588960630818062824643333029147743232642364788186979530491443213551792602411959589957234434000173613800500601416512621575341075169954368744975276781940201174207335363468962706114478086895381048844226633141765198114660398362337184148595622205440844099359795132393492226318289508904657543349005380952401701471736097155163482112888903294056788553827963319323957656016577322221582027892637461388191506090697999635876602360608583158619514593332195979553072593654105954551490532305731460300745544361064409268460962578866248315173162442413902702910151538582125865980418237737521584204944503012915667678664248964216366918868218011508870449046530423583933952718536467235268627133503295932998125853854949151595356742188390827352717174932288735815833544057057096233747801775161320908785668533073825027573271370423457341080719611256152250330816484117483184915613254884276387436962811219739385382146439394756100327450556088976830473146052824614035265489486577178882791093265798470868486905500254011011143895326795745782389649961993526142365831494493075905837607932914489556869190589986229472564469572672848715697046464549162502047872011496444969849852699473995558091176704476449182925817589546080422989055688176095159837547493107173244413569891801568038047095568199581964468795320041654075419332762289075567457988928667590165736308615651513929970296509485617012182907595014078171454301282426658675866796431731422732984904212897652320905966027422316863793097543338313550992914813051863675896750824529050040834811730397344752845726454601409151489261239503754641325820068461032024004158310921918073092330558745878572880072773932636848631483049385251377130099853389782889257503612174567305351940470315543390179026241668112329550861721611611151061570987740962620655760180205441190152847730826328229045137506616931083422509463445417229139711585301225301542988485615745911405128485289138318889405067678425870314994771148366613791215239567142931334897997785350474911268034318971088580319819630597151553471794492094734322889873072722131999291975397427592667149081173652859330461237807721464739027436064625450481114444800481694315338256713442670121816560663158450490296200339292328978788797121214249820931897648100537222286945538023655563532028637884870688639035272004912742715651549857019236750490991026517355109221260404958746326915148862368854455646294376960202832768645625591786694555724587079126710794293580507092361416117949186529892680855115681701650477954174995914175723765471590754412103746750961800502658723004896749948983196069556690709982720939680945450418810951787376999778537600903986585289071911946454798505127294451138953412734873562330826518203251739361640792169885416550073375796213728233426012755648773370212994693432822580342543368005663926863342202027292046483304197183133227000659207876893254927078067614391960867943604911837559537914216021090631656894914854741585409701459155099884440572924268454287413053990304477278192050892134379686753356864714733938883384137984162473645987714835440596243988119169016975801905897323092752978805922387201776031322272831837588839896912510776810709579435840332006566223479649043374569094603166952739359300464453120046577223474423938788616558801268187481375501377743498326435147984045167415301167156032108205862903937477100542166192110437889095157570146572398341165218161844864608140048576048558789142610479904385251793846157965577360553309702851725778061603719672661139678112007364647519412225175702574563000031710665675635488504447727662089056539924067443528120606414443483186615842606280316436357663876737552485505037991922111048129354139549271739166032789446920080187510573201285205422702543741066534540295552820668871204486789479088503137661004184087602273787775035105847317094394694271021416197949396508145276746329166656289448907272038705780710373948111301277424775553614541638437930426466397109321444580065198347747149501203757407219916669539584249164574778099532938129048568318145828684549573004890316294358388259324788331168807233776737572548735544713264959710818268254373332258954687758752147000063621004088376164087326181710479898798592753807315810466386138552603230919642865180009057392745441838655775959386762466973886394095453487327787878819197614765275121265147883351322592253446590682831792659419938012915168190514134790821776901438845080177144132461173213480385225830486723964831845663243767611733914909899471626748258980056648487090522493226592090378456089026498751466172171186669418148120664877492590796532468938421821958214332912611524920570217235339677495959173510017494456040106112022354588197416445999763988501455184516961477946086781359454888772758541071582395302142497201528432397931305837030341164811922882653780681308418980054351143580213713887861754353899748750088051441279653447418123243670177931132501515148431464847869994868808576665262458906590636837723360858213236062734883394769996096961447520050123529950828905703253288182534950139667839647353917843566727318890739430419473188291041801424896145489187687669288947632179195697603337469903722106660956930767057250546209819516760742446695882563388942366425972520766996971912506067586729193211277536748897569111802661913730251935453759232404183766797190481085019677488362576350348012278839922977935001950118708958734056757952803102716092560695145370593619207099297346530667560041210951670963422822161947360387966469689910431248584372280911599694919960307196335115147268365926695877020600987164619698964103185003814032385659099700795005767468271555437533411829559046204040142355722615618978874704883892543326528998779872216024503964587045294383110384664938906388391383806845852604796800871717888998559946256700479204534367188105877287417866999200761324485281581339558721057242273484382487980057014795955509597295311089903249476270104251481801922244725428236546361579579420687104033587959539987484224177350947596962711005075660631570887834920650876572385684843594840776461242813139650642978004200514071174303692647183164398369979585043672746142090282351441241260205158404063576297424027326492361589092474277581798798600363885208944002077233242533614887714116218603882064599805547238241878819506110107531926258037388731100839730861304898304941899370623419370906739032219097319881657031140676902971998455818148843299855768127968593940224886557049332616925292700687236699819713309377903041354274196067450370634160704019676039367474116277402683479126107257248678716267862729230151716808026638082118073812130552222921977618481602360792719014230634175625859060881756999512307820886751055864094153137421439796963200785604202010496360717245034244917409215422286439187285442423488822216302084032666578184906883738062841119762281388425938174116419322229752128090973856514132771182649689929757665002865813980573912109344092754662197089803534292109494851761799539241089951097921131764103400558910309673896821237260325528025041900590985688179879954195793739481089345393805842709029046863590058875366186033301808719062118266804830119798358322259994926625749600963296102659874126893679039627733218396873426243874161272305029499054400091088135088093095599635064058542668578795797482211477579596109074572867197754986536661965204257966898747244684939603453302566112291911614666720010366011343437408878178243483483844104996595651461468195701730393401412482220893699995615175723274388906910117312341815922411392880555307429487510495339724171624596342746826157615868018563916670429480299708223006033209641162471952433158048889651389585808452592250516666648771377547852283041127274865392230044487279301458113076723814400026320712001407512483533125457945965202878126295082196955531666711145645821050664934660301712415190310228058716034617690157789895778045585721750054511740138689064111279257814066644098780347215920129451390010279871025508241369243226442766679017861736318016166538524764305418705813262923601116956029087069622184937942328237314619183520702791713679843435794922403428851986620115659603405653891277404742917803964183423148456390575884077734995585202608953243995270113693352595093412361942649325423587804821616451558381617324172664656448392505555133961497637202299225797501172673589509357888668734857581114159993024313582210082332545447884554525238275757836607334466057697393379511952910064939190822207747343877168836864751904686487342014140199587607539314382296879914357274888727392708622724298182345047788491276262362756841896389160821452675425434978601391686153986511025452914015371443345385416004177258351512739149605365978579930652883168903340913289223826475667436629296354913690733711929726411883985722516059188567865828194280778814731069221560900291925053648512912647677793421858979268441328248102423010457023675349630579293174807366451928111757759801218137616928087932143817825218663482276821241919237644328400017404972611170047784856578919553550000023510571139982667765367003543002121223676946660693879871148696358366668088821066646930318890155416431142624797395028731715032627562725577415216247109232193758820281407493608992646201949173307203174300645310011617179765202316997965464188132372720726190264658135070440487588001625478346726556056747900629658312867108059266896146060677078780722748586802340995554817722167985228604501601734941591247387557481567639425391260629755104353258748223410309877088859889505311660469154847927452150798007905005541998789519026052932043538731306372962574063537945794994520799461689675452771541813929760405416355679177584144980766101496930627095919269728336507439396231241205489548501618902595529349768004326171680889936696943310686921460957766644894553595632848432913732071597824088119888983858838885932390259413150816352424269907545461547870389549010551607902443654339904671016794699528916749387867696686988217465219857451729103094797860989455057863130425397410413429033404281344814164832560323226630360356034016725330085466930828743554235084131262696600110422030777303325349560372077467568243526549142192231740744849731756651215461179887967320806594739119670529130778112428298612946598849878542554969466620731452833644464809681411564786971488140255001755258178519401608032499179168641366992448872877354198506013088419105666881348163048202187709594234380626844768103888231684664875115694597942443149253031940573989137110309573552754637660268501513899518035100773875418541644804966499884684685135152970169323168134168940087021261008063747018172072013102903926312551468788256860035979737956962731894896570532403164679818489438199681112826620352872672835516324771262503351247739823922702302642072583842048257644758686297886311864724060757327068565741406770525600298512727475025130925872546461103359785550759519472898289577945918651616508253508122382368784402015620325364799885150830059226766653963582809486229785810696426001024980421150667256041670045678889230634044661312731059307320944151273348392173115265909733407482721803622806555699466103317571958401541458299381209620048731502708461461824483061736246233334002369345615521233512456343443053515248772926077486498968702785419208584845677569742158664218844847850185506538120771703772303890519392368388396172550376891608637004943810641429010283957575268384858829083408112941938457528383446173610520308745183702073527330638436418027605405898759761525870209192310763549847297201456277909889462977929737271656502611220404635828552727206351916167655471752123946685769557648125820973657220173833080483357047697337310945426668632686145258224275678321668972569460216878975294028216506978483941718039038723540239718343050763974520907667824012686544562882906595709785014045727909391738382594678418829728114952995976762919290611943377696628972084406888355927850607736720940089706729696866980321551132092517722560819466224112482190867311871252322358367958452171240394842212131112780181955678007200624617338389422279977775589712573155038612477164044095146759755065774480085734091035603040612476615797507347337482421215409191660429995101358422886687008371760314535467982500259761552916177512868422523704671099029017735448969968273724211042909000685067626803276107259668893766184341005226554716734810353499112559563707024473478801498239194481450643376697709367130691830346111782824372547118236047961221741116789830934686845720414602798199984118688764354292022078848335285613559711581133812388403991080023900591383441072352226911178938602840557340117121138776786395495686721934522815659411167355664027619755435639812309029849226573637391127617706112913297765679954200253957621436091762087266394005389694115576217053333667058390030595971748126085030953594539694530739124059312291880511985460276093472722261088130739596031277515350107509027308542727155008149147087702190412253340677492911595544195314860026012744728893255262184714611925809050673553033566739952854820356286209978565841352654598109650058884891572091540701231509275892572221262846941079780111623187770468527960648220328920145246499334950091851058791180605038058814073507874559072026176814205480794292824771661466893356026410651860828942866271699955951749096440866644742520616338663971070706801195667041313637122599186959038704526306917382215977820031800439359430907873917998084515479361849604959996768354715267548215673562067124915954521597737010958845138027967224880738085310570900892911445909376300994489024715098806151169432120725392738765568442085441191569189670356606016815940722443266341386155337375742278716305979438473631131644835714314825300435020212836830436759480938480886698757779631152587922713013101357727724013679314363688810647474088793513970926855354695887063232371045573814686025646636632587878378616035890317999157929780478382962969064101665127793213371333936632971107472980590485053966575051157243882431623614022660498804195252074632920026685747065114186191639304947481978372875247437347711382502324710443352741820589842648914968037896985345277399822524680328620577656703010810010552463087133050576704426961390778393306706211857613154475796760585512197890497620797877140830923022782642969718566419345142411301381592211093368838128200972281135502859682309011653708920916376472035356401709776018522127912490860633867727312190389992608151598790272221658992491510001504999345442728153357652826768576736664574332981780650643626275351209786504494103025355516705117030283598549290472998175766455719878534267286769827737709899758952467672040645390707597979802275552830067727350857361959626830799475668448969989516363365307694725756646443109237365891395375248354523903507736649348756449622940305995593170352439644235056974368789053914050189281825586348501656888238607780648144909666569856122605654339245507216299693206411272277262908289457405066573179152830276859993807631047762027995776959993506130551044254256622805579629222783617328999623082860795264912681320948970914335692146024503776950056196493281061030495369739191765349834199268073457324352245371354019980122849821042028615172085989057527061458452499899482016033282840913286754011335727130216270689618571798157668740753044067929691804883164680270657478731693374494862546910007685628588945959822587973147965987556039617655818268937822192470194491838048825420393616456952006829333040199201780790732511184666181222412390079751742388660909519369886144946898948067907921472885773465634315526759394317683166928580372202082309729228310046787459764000234167585993270223619942988904697546334359454804157842293088459803426928325510159863264754475350649123308551735659546862700990786469023080327387668348980214815929465827252911441035385739334715858065763063606065870838007503547372296844374624148280075512870209830818342974794570538768030480593514119215472599395792819088770912970659325877684054557829756303484105762409256096635580122031696486748766247428669659570023005837648350473261574629813482927434293232775550230355480054805532631710485021992646791987339306725620102142403129536014810221977720726661140761564647528368408502070367044889553104739999089702722624164921504573014081213390614227916134390824465575846124939337098025676777414310674992589451299337431611847141118707131614017985207188435298501570377925565973908599466865914940101741770423358096881642999413474969188405635738955089694506851113309987733902672224723432226269010724353140951958731858253794323839897853393768385762479290286855074312132205950504697402685895717864817379011483160192226369844286149873711565053611440719949128355383673738906483129037769629649209490989920601964920959873594339934655939249115113202203232074844210835826078250495300686501994937316566062291411275557386953968554267094929722461115404200405288340766796076111780002470082671897418331161088775809714049963674280912248421423276848390485864258003784543471968387313473816110598511420933845519110852619720629284244714379747785998788325539058591513738746351999754037344854610975860222997335532877304870104139867664531098183991579476429627013242794472021536205925454471816498948411287421014002294086160918020760806113913400600009351639313030846121081657315900349192840424411949318409083054420971846536309002873763339735041398533152129001897486140161028327137763897817307603178251404290513996458536511884675987353296929547495313455059852223575691893329966815228092325513758704982323552167001655080076194770579461225310951279332310553473782177491813184540440955287445263275108052156065570897456664397034797701805727237009564596215044815105849433746864038240206341548682102350096359258577327706864291789946238604492226330835304390505935889836038977126079921752889341338086356788335193802794965321684067586151994956973515289096597383184094253627158609187023101593826916660991262899033863189141261838914098675684009976141793046929711035086623170436777458448548704500684979272312441444027685661707261532209096644845159315270902937945928287165575400569185189898539941528092476525860880728795416875963050039989203045650068543842783515738653692672677018059908832728639946541438927217932478658487266401153904881654448180328506022091283826753133503554701983986223596217080903858118120246577147987474728045886506611944601946291609691983580873591717119156973954716771218836787380444843879015310474230318735787423448642840708907128979825635103223057466142172572752137465856843086813601559860406734214328498715639343319624839156597858664541211447841148784472219806515807604606450286456361581852787751106266683613921259358278116613679022506787174536137430098449465212397618182875381396291171734596699967549757476217326146825109479993368901194433267726876539651369065097871898393004264157349292073392091254614957525783797711549038735839229103692244332344438566729050258159610682429409702192400687082184688026777012542325486534629236114851733266610208612842322873291410076491055819642275508421852897428800256359564113381483663743239682733261353237817977233460648176574826116266439898515295526726698412919954573188575526460933673403123919345231568003630560470042682411903251983557155369385456082797834553646090779011095100330764691227650989519810671969885039542228716860223286725396612812327351738055111490548799395251324487372986817367143046633522570355050951000431324407592311247071840480093891525021668407139573615026835609367426980963191072882068417165958041674353655600196879136693834187095248629420286256372184324789500232008360971245267820659831558672661009928727348896300125766164494478030392902994984824150099309195797775221627023242794251300124949325764466188403556880193713796730290340007246078282875453759769940318233650612477446027894266739123910226844179009631631701994914758081264852802200114871748519367451117761171746966236408925116303411908628655986047910134016347368258019770581679184748415501569012662200238257937146579966171947446489282392129273520752568070664653805014392111982103776548814746156258135801162748866736538444735912881189882424015847133376455808018728047824792683484629370851138899655890534009213424484462158054550024264292870407474419956529190045541786980899338488522048700122232776756384492065377894634015672905760840753578411229282374288954168628334083945884352989717053255400175447936109736730732532741185470762248286632511979297937552839048901568611593456818995675149419941382388807019555778759391280537608610417049025517260743370205137503019659061341618094096813315186009813200566728498938851082363250618996560592795684380919148816713754216191863820246643742901995934961804573104205693754161170936164965633141551728097290507495123845404489949455239819020324326093171613512302910109749852453980504371083353030197525978552572986056333103584596092559059417030627294694744362760787196929619214630807554769118996034665213282743701258832402319658073282684885930909931539714216049542095343633296212979577778890351396332793838964981104965071016661673539656411846304134679698822684648293898059136219278749565425232270510074559216547092578979987398557797882797399583852527897111988974413260595210757804435769788250197997458115891901474342691736751891733470257261240273536416737651651656422790472846133877379863328637478618487783261529829473270171051696298714972304701742798766922403515201164525624714374988586821741936689213749920132267010377693030195917400897824865506107181936581129475742784368123664224057983356709129643521873794114244347722899990514073268599857655504691096496465215149368526726428658688728428647348374898779209737982404773976417351477509740492294612905177186714374834709343931036106924162232685005271009827810239533222246038998694676242144719846229764187972713111924564111440482209132792196878023636495776881316802924799758426369633465454825709600637677072718383381818930914023728175421567928584484948208019839818534932737179299279399253790814227623566376093362760665249021603657777999804443513258144647921012388261372763420867788314272603152609169082459026200835377683738289953007495154155546810618344326232365557148595571090407655591318112611367756005506183462872456641458504420522060323519143968303075681628404852615432069918821915843755811913647432395762522747210046471968073999338007923378555060369187883757315770741092333256706978763968253425544056556896539698728242017855470758687307917910903913181632774220733854803682478193222518915992600598042264703182178201640385778677869178865283986015504738786515994305686537286207729839233265505453690227031331888605185138050184041813913275493074826989694731745046887614799040743200754399332827096064966287404627189106614379559538768351972844619678759805763485026115054319134887039089565390196426687618960354328542780268629707213760717604662213221785008247289746530904910971849224039674884610441404085966805312070512116919833235355852157526919642518587876951648524159554017259794603675218487025992419549289481139189775484691770093761341854600827817884643181008478615506799477911438207704405969157604704956528389671503757776344111417715017385714921671572615320976971833390515022631422392734091450098152065690902023319083652577238493664103464222743090023009878465628884986514774523093293075440083998262899250778609165171843212258341002840682192484903602425931700230453684674630099028050376769782461820667898700985065336075623549690170793176831354258136140608816592417685641709213914547264017091756582014459978865775197389986976254332731673734207182188434317428294547479919059087639431774986683531566217510108763940443210964371727227444633998639853061802837195828942482069367874987091479519596036979790383765772774069087394652134395499993895934304935975168139830707106936317033562015894921703219388731414839815968933198056471625249420492723731735622821343781692650962540623217924993811699254546485839547901483842543631305743331432543718640392659695866041478856043820154753265720299696326217099002662675025121983745047409675976327446405313759970747092332245172848505813411864969723962099369797924678729543951936077345745926276490550682867504249996547680373521711589216577480926035508031416035317318162864180080133350271624749459322742176842501395990443542324490177801324051539480544318588678099704425178724803234432894703200086784747025767808852475555734757308535892862175854413362478144418693619142687642569333015417782842289895953386327808483243598709937394115646463391152395288152173114465492757593460652340591719094352838612027232553540230799215925281647885080370715274754153382854008177452070865044419612779697776083212705034290122374228791080177756487437923953505890930998549372607483589715746223962380091677312775953053754009297285463781164956401430606402110686118156248930386966426493370745004219604676107778354706564780523980643090889429031106621568499390303649999492928350411270755799821188431804178896500663274290299958488419905447718876963519249722162790104326006382307020024694065734098595750380557592876297296778348609125839774223944726282876488512641285244885924461378109890419965527643524379769642775945362716335478749996706616816047314145922796414920178213284306892081420393441368421051861898107250048973496618853410390247327227738540490587231315376783628104502589360963307808558967738841171722305420722897830640224838169048055186321280981335842291481724603201115595364071724310196448497500863581891777542891510149677024627280891906759670495906003348486831507797702952654561923686645284123639136773958224902989411681228544858814578253443351198162275150753839116680267330070079258866010545718844822149422648456545131931884917518634807005121672447697573515824355985050460164495780309067344876117148936360834652417220876525932625857945226347138806606152590330141078997511555709154151081017612463856143667948338077217571569493291017954106246093407198309558726043686934491056889526114258325684407126944442702417435136427416875561897713193227781941040332258975633236146242396593475716813000299262623086452191331351275800379566948267467269250458235601343608131737174063123947888895235827811884854064572797057289386463484436002832547137674648958414190088348145917519106703159226793750543607816936916232588119093221028201528272154370388865516187121799814655202995502591569392095135892877487169387725837979555330577901549177527318302207976935503720144817621731312068289486071626493895024310612433384121356665623377617038382983387641169241197369456735117128284424932911071865321051249128608066316661188159119458293456891294016825361735372972474045308609273730269552238453364654460338063162659263529636099776806368885814668850498223876556232169571124349000182726098485998594218519778868381593774231420079073872227071985239358631496946660875907398836970812623923021896876109161995623725628326452439506471197038703376921939853811924286225372503324098818319750048677062374319515514109382544527255980938642120155752265037291360229018537601453448218867955115735870653028783092363684088845620582568598349366624108652076262777919835095428737916977615897787384899576162315412321161377992217317250137063152981191737018940107086030342285072156489726724361687593076485991575760772283341058126766036638035768140090715078051560078986355307581080124553747975090847418529351078265352861819712105030570570233425676905528167476467347214295390126826628869187137107613568690190851145441771951030941189495717155159188732118566537181159257838541538119692459746935927361276378010456569173212948389547933533884115081900155326272008450031678679297648083202322976401578161077559193058569043955699148626083606066971684708030295585617752642948293500724102269365273173212641426486726694686717852593518354384993773462377352431449016159890216378272389873372063735780643270934035924650369373999458267106286422140853706049755802284714292843211973807483208745742072914629078295163310087613502754207582608348675269647188037834374911079506031455389020637778190856221668282239757264054533066544056540857760666559145756107177801196184156973267787876608730504303603488167873680752858858095867870782368513081319376144915277239549285957881589596610718047809432776962885810262777258851113618432662798787871913251582282699247311020901437730285005485871591779966285769114390121409926550285368594495600247384267280249093902235551166523709504590279859759882839448187916753826292249268193064769264660837591394743168507066699330685827625300207609830887790308205117080736460011293276933908854625969753588341430913023752625866681281537215860428680881709984559647590698614542666962477088555176809523143402221554224279289648923770060911208025852040814874654729291595633326541790257502273813397466093145416245072499118824665266890148129152502152993820385351448169886553026545563689018201093481594926292198408335806308830149216642657152328001621973971291214137984692391264574915602682723505053531786981150280856025415159824904796267112376871446824778000876189535666267648706599078552668463985447312569382681582188019668252702943451913281947724179163529632846886711388251507420806017210072308445996324807189008512801788382663386277195962503667720899220323823808165433219712298657634711599455162069435802428425383473401173464586115494263965037578012728419608100127167059038443744263423284445750519668457494160662004386786695460123050627414943601862590433535622374371452614055348242000076249287295013806212527767820113283934667373941905744468320789413208340115176614709679768164838012894274988098872192256468980073140482208932224370639465234610809115123410712475902275921618793419383538005805120349210261559416140979924726664786718400154214042187328116584551886017964216658088283854761184952184898624416674901593365707779574990814949112250633503240792707071138614155655192203943942101208656611732208263655306338899300139740867757911290219966538558615299295120264906384460241248056445929748527469089846036788879872459647891432625558293222586285690584151589950134266991440965849517511866785187741819932870258075334364623130731116676589620802303423788669656227996711864962233652987410140787687743120038107898302995648865159644185122168064926003644222600487622848990138804384283550398465678233929769676604412775410173700265079863114225702815563334966761241358330904564178378375903543908113781587670159327118719006879334282058433952132525410571779656130344741243777358379636839894384149831268058891579888323565165881446526309870046698802438797735797046329078638242812557844739226929138137239156045188405717583884051217001000569279178142224049965865583406440174513988279914004311282498287127896942191005411407988484832104010765279689212150334608676961450527102841877539555620918606529943485810239131546982994808309998216479471532510796797123117174776345956648149683645918759266491973341667071069915088208230809416815310549890684325370871134281885642520226633636515037937095411495336562999103362854106386257153992057288572937132887394829976629055520454710227568617493098144888741193696548313162969026321094098399550484039788636948434824951302949595929432703482624850512181700907652059756252466977005905107777166272206807080753414596344814391237261320012638921045853372478159933162826961274168316902018934292791627190938405465966461142776487269433927151188665220525877111026079892589193885179312605928646459787203192770176303044452963787397874478081748736982432354069096798130285456140464950363470535306483678531802990464264658091317869085951743857379294868320048934961145853867898846172535890117691060799402161868706357492664909330320419252430416265792157571856723953716111121754284152272897642805531249363100637320491615214128098951801948178240827235484415311297838716089373547454923380306717855405892846321680682847913001121562219394457902924086252541907925426749485389686483384077459317542931516225041026879587931561376648584471375706017664693099602251881822395071606854130451245185594448334627037343331064682962290874017678256069036480099152320012241582754920674716115300718824001447573684524047739838922422312245833172617889966002789364880271507734706219295548879215013014059952271255132656516873640363568028957767483738448020121401651499260834318160822668390483001709766213808946498557733623440330510398675508870835414713328833975313621191879722477359495986283365802850017972566065339149763247046367830600178703420358009600210826882784663390062452296120095350299669100196830857102185278301174222939006590539823476553432889955646945554566755197213063144883343693861286886262191306311133970227039920472800255608516782001665226466901116695079942475803643295480556364739771448618325169482257174218787126442636941738989436729134544015547538592211492082404618965075423730867385471952588596363529009137425243580002614603482571299255265855938855840579006820206494744747246707545072205735048358747101658095661718183545933407981661134071071616483155865830552349952531474669394978058907736116419400023383383373137707429708485058800859977175620668941423229769908854357851601019873720721272831340553115119430517418787667952076757359440564164389490349770259229165365094831418241394762619134448736179166328813464274998631215765004515412542809633511632075888057288033779370490503068101614476057783566984621214169963131101805637725639891139603752637330037263365909274422392379439764551361540767780230429590225916764778965461760713466500601161493042223140095861113677015353670012654566985678767311239783571980098790608514520098080460370165258861216027784707691532105950671501791461309225706763622615433392359071421760851312470230487332178914803037844957337841902802113486299080676994078021064271026722977889181847873351049212079330031094837115000453267614551110789406329712194953299098165763585402913984000170973436813524823452770325296171865849596800324779401010860333019575562083978946833536036404016785609154891570544049500073018633086435130243029080940445170925899201797051273420394108398232890416871622200441365760727499679506474771180357840411316622623819084078884826372288138282495256833663731949415763606145046926443901542264909212628392301205298094532118701362318186335219788028200833374260528756810752715973681590628166993154241843661755440464331129714198006311707217411372914916873963229367297725567299903876373263822217987856742736021068242415548263069586334160214324031806940844537263045902602666045503805260738670366918692784101719550038193454972913870936852156317528895874916474950700474524497194927052351808600859770843808290401062760520522279717361321892954748053710818168107382475213115851764336577915481679094697877280737854698968020747651820892163487957430045985227117473358160029028127813761984744893602110845161999739952037291372374930377455644191779195605535134818816831219111968877828446302921675310177684099433173630606742920054904943278150386762883944333100341419446678567616910223136207418417615070697891832705931652159928006942718211454531404931992918490543956556532099497121024614501137831439553493769945591573697789782657576976740330193682509962964124104098358799267580347568991661895139693025581633506122863474614719412057543962513993056983524080646999840840899503607142580334985577515083931803839567258065871471751737129314856044270965173508438425243565889493821191897678512555067669504228992441879390223810875572603405284325385803187868351400508516272591119981330872431990346664101973250065670653635868711826140606643937737856838736798341860715295905466124566405119796434197351708249741973245138148009614579353535777035491962262321304233046365644142615505705980694866519781476849636621573666342724904566407102201156172400019279290985743778284687429273037961473740566412439965361828364494115503656399691301312640180730984167625353220965266284190609284185899462262634062095042891643740626255601444903941329122557031085394043273577180744066862096990052103751019755572632471449923148010824437041264370034185877874579570293602107171967399031420267700625634787037213413500807416693787997572785148109058143066237828504201632184929404338616853289250185985294715484288211894678067075288838092802650841351974460515074318264446168109550403718637977464784703040848788721820353215024042519328214687382164983462793908410863368586984323960148242551670366298972621173776546611162019126253881581834370547173744466586479732943113391730075073154162358423883427564703768114792446402983200795016249228037973434026068130413855792659781064611513726341633553239928797458457443950666901909169934900666455319373940035890947790516127233478079276471101628620368654765263523228645389770714439063863673821825745598144344352993779044173829459028321473611081391514320026507828101753218735534064884174238297444714020548086704202164670320680877917442475082874255378046666311963541586093961066769115347678479806355673775056879026515137984409031972848636723122826041944278309772498988129404423025181508461077804613099822032582777910978427999978202754979913628404618564604235860988294360868576564991738472597680679349034194450450137252583318682861949321973934956805580068368942697154999570227294109366346483265621964078580890821821618344682611168074440674406236670182469584521157433313713962104154369507018958303658114720050929572287455830918071715918914500988490200062544932720070462442880999373910503957611111723090715098411418553300552043387195626997140608604577889292991238729676101019509726497725200358514936230026919782536635343175910235899016639085629597925891088688544311401429750474830500350488060033718983245274482873001625504492205950956389823844677090005049739347448805129074298913399918538776240626485447333374092484987153266834568056719477145479521107932940374649254866358725597722221524489349406239874718429122137845936094871517443629409767249842892797303821001975697242213904644470411559143835447480342066797519095948836932289686989562570002586989407277822796198140518885048450297855906840132197014159309789613060339728656268184298940294379238354558943540832705944419179882701935261233599481956724173144415362885093186380542715477754872162660323173376027340352940068896321039783560008618129390414596942407381604854616249540957694109981323112051780370564382981576124022313170001204417478909521918373494499226276358090871089803875695138882960304878970230916370424190535642568832442282040948601429585449326533406016237092711552283726360312808352419317181384056409553935492695354780304145300718761017429460986900303204585569987160557284888854532893946630724460508707368800455611964996344127098517516273381530911937281863722340848163295469031003613053040229466709787043823341626851746251328601223670459127064191737347348023620970998362321472636358402111374646018902843140996418297734309359408896687886048374687810145201525459508317407752614344523494546852609442440606231403662501926795792708372359080338204572322033852071910677530377423372389872522784417879655544374976127977808801858729228777949936212873060887473618611715177859570295738156159000792931381269635038756211560634911767128680564004839853500383600684007619346182932989691474389284501439858868487975121096532235881533259618355350466243447991281196576412683652123242744932403987396632423578283402672888108094221442762258771789728580584395393115587673439237477016535044945590723800668609760716356396236143399521119981663412416150345672507048902533266765120395399497492945938065973297681326160054898164268872134587122779007788415868027496001666015232342461617138119559835879569582093976745955924911584458901804264798414852447866976077835162582124391380797462603323287103911339548365643448390986944491299460424593658208326724770242713513598420469735990505280149050463950485367280525808376185870035952470754191002688099728616631093479553482787944467710286140860263257435899497402585265135218889585429472793038109272199499548343967802018123054405076990480870311094520923271138217447424682754676474385457287330808487399964613964203496531218852034540988616804552860065128104446414351766406676700604244147638082734766509265712188957194023438182647680693045180749574012270792981919486415845202002799346870654796034978026744259744737853806740044509327573339266666241482911162775132216449800137984162002386993019382869574068886199868667270284873362485269950621863329312326920451921281204659414685846067909751929763950750995401085788118080598383070000060048643165531338236231437324253175887887143219139711868494011117965462250494105318858201127865472404020499383452506649479674775577922316075547334623178820588345954814758929671886891132364565566437563427298651738286994619856493634066866342072265110368327095313182699570911500629022089521904989054317599151905510821617006500980555714907491366865820330754090769429645625119920102236497211821761147236916321769531949918409594390086928913505439869445852199882376899693875103838634323369402051447148571530385338882290306569887890054586403799526535725844448099193302736201155959292067874053319038493188343865726149477885887518386650392441691743188775078484745430478222972960421551781580560246823803396085757752961116338078452846986391089528923430436646226927197246302514842060085215539216672197306856666316610507073417987494575199416157383850269825867394764124029682816082354746434521413613076013491247116591585583995536916116525305152243242482000315605915796588229860022065034378000990183959952718264536638765965744252730124664960541644687090379087488158737637742314261243116506269284174036169475937759856503869741318621775554780390128602904901993435482434245102971201583466202728913995426556721892399606305128907059377893681900879502579010794079756223784566687655602309629238231149657859970825389406141758482852725115489670324723581646102194404540886255223023483961775869842465057132429248950212548533283382917333567176507479344635437015704889854987704484672226238634635215610853277711177752966293415318830892779955587524097799483002037205150926665358451198594997546558882874744212570909686701485625259112606409253906802185580602571801944388962904291755878892747377819579183001758573843160146721228495799314757644734824635863189202733940780373365574374441873394520805558513177136505575067720326070309508521858910981713688883320020087300715604697056524649512667097387298582842418439638516592103214722474750359682455096434197979018035985192928571485940256352424060170620763147086687648732048101708780084897800159661283696613252096369720479723955780743943547919304077788302687010780432803354177492370704690252673455113355825544903845363946759731746270730398791713377727951617968015545269280943781086208687869177825139716036864499046329436014915580221529313677750380226493095729666908936384179358001549746868948948371955723776782904514482443881948296753349130377852689243684293017409375584168003816784691313287389053800301906725369607920626828980845542617505751513544141430168387264140243828169000307317518700489909404731856216197948101981995668131481294784077135184119025416513147200789707756161641827042031945484888361132737030053030769814064702744683743985021998515844508052315146714374289998135976062389051182798015916355682690468962023052502303436707503259417144092539021799775704415390698253423944043901934659595937602009391624287734946633375972084850201212406070656953280159448112151871917913459526484426288303598672007034096856145613548537332436236707716564644331237721206714241607146772553573223269399474255876044505159848907417396793010367564292646154441927714248974063918619863303567178619410220657905240702683707624160702695181710291139209337281823693039907186111133761060383659120039484979735459309529225639580365326727657787925341255900882587039430223956956906902628365588020398527057242480152032972256047743911336130009258501082413277342183026618559824041530262386503525340335212491315079606065649122697259537124539905247251670134502600149874069078520934715934462926460124972071086807554953917021445301428777374372346851567344903838652537365715936559144212386211294489071758567941428766997984014721783988784028034561693626969725240624202963762347279426336747294388736775385521513303459564804029074891165272081983959116283532226926529735698269788068254696231419557503719172564091396081571713075563234368057882957061667448831526927129454465437051318759447975645365263311405918391739929783392055203656922955141994704733734141049158034463665160738916312215595946114965105556179027770093619329180204302822049498886669065195854854022839729951989032402722008669360526556830796988426804893486710601286724941346921661360240803620305886939473005689195230812538805511239873352712221965483804239393958052546515219210841683525018405076805426494236183293965692693746577810192943008512439604612893292852982283638720314578201588951783297251981515939604069398064803636260614531004539031631007368545065612670376674703152877264292273476543590506913034188627452494485656973318813740398587989274940555343333234156521124668734718640877273367923875276142813128341800778376132060951338147792958407504661187419361140709126690529256632914907325690735790335926735253840480290029804735919342299110598619881943513587684071391389183389434704527845687544167531739406716506598632094330284743745744829336926733936602301161984529291757566655734290092516683273117723280100972663637721203364297842780469089119712211233283109731071102884670951484603102727554059410635504463510862310838762649601202398256346407774852931143847666508783028776854049645551615295986277685917116073374743955479271594772270611165556735648359324671295310199531052065129062749071557502516219222659505411779764900677861895183840163032311516740478303766974970607346274551795449931114054343306946370615557809523373858473144551887139096067652528412776184380972400313203734159672268315005183404650506753182671714927901993182531422114968742048914121859441374233712267677647123885177205111337274912206021772878404623380864226560650391937154474142016781300965983854423783766263820916116639949983090276346209626746251229380400318337664412412009729304782548383122701881437712704112956757827904305145249227798071555865680366567211383745997643919641661191245760464500447784007586905858047891085891890401512122490607980082420979267849454535439326688616736059647993452268630340456958051139992206786782155056161671159607752802689031811899018604201794492652309772915336877004281206954296271521862117173448633813210578105204037707229651798997878134342047695872614700232922265733205796971206151799106748731830305793990747122934535820999894248565820326731852356675834241120952493891405744947645920288778824144109848471135976420506436273056095947075904632153948696594051390686602916715313003310515142482330684886574745443433680597129606418594603162104956013013009558021494820023751733696327771382270630821084149350410383282772156436178307315310438414172863682118615786935211092216772712063564189843444363432246570309159682970129625046811378320287261254927811226853736619194665227598228260372114949655146071216247155361935726315161749579224150675349264407375415245165458964662506115459120399258358009579868146390288870431126815346070271694636829215361192218990372445166972497877648207522514252330028985144926300149640025484479261903503599713966028693698392522133765087498762797725959809633538178740292801549282734326744697593581963188099152717625934755443137638314296911236217825978493325841616884008253940595209166825199361340564856129885488336643026989702575037346690490787594389119787458456049521437359130462286177655549275750287941331310328939571857583666152822115050673875090658290224164817477562889249766525227794366726434040507032524055530913535366659925826617333271866997553609745460325389635499471991246407919135949244766403426519766863122655747444088793166110889830822900160921186495970120247012996001621987339285959949886998851365853528194563900200691912807372065810595793493276816511515751834866602392785130035542475897559522636086855617920974436245622358424724640947770167166848424656543268625279706203011892783561607235175026071983801030916913004898235832789486571172201792495247813938826423968050047191407311789706621234615228121429173222758832657993894304900046714094113014134769659341932414130787798667945298501372690475551833736189412990573580565509303249320678271799581503786362775271259791226389520968187215951660935398404389017227834037065980330740351477158023646859325639741197680493795093405263234382091092712668984115726785829003476344583020879027028813546148033753633348795524776158533967500366759230659845375348486737898031179695278410152056671345545539600272675752460360601943735595006980349652446456520465499545919987506644769094773824140464354597042831149094161581781952666791441058013401121475241762331728344663247787039938395766585967396945912571183597669351922842014140160210068148382366795727490302600925903516512113987418739387429691522889179648983939522705573344117314781233275330534305905406602896805286494096843598768996951847365743880483321435465624507459577522630896467684244451698365113739593017337129921399586220516070598741775589530632570593222414320382796707544919079795154773495709329887725674294199782157640622872951488169532165356987243437965526206354641338724997784414821158280657716942154735859277926646608165222753993982736507062522783084559145043740028784977593263338481872176806941645465614738393621611554127278351160992839145615111432345964789604632391010498064006895981480890750724639025758453666093935773949038961028593567221742031175227881877191819596726483352166243845762281014065365691264046887811071050633908455571004757363046807855613590105930610747909304148104142686519056053839712003430203263832727566363275021953152846883242815485344858813070981427660390679622527743336432313008955488379796640749710208797833110645837916105958329368031111236697762619867019308211919353312503875149042815197726532673070105708933685414766383156291560778839197266378396809826829094971352698611430345676210587160183201507611306151704893032848509637530810342672518798087061709655718190811416698982807851050944247828336988665204676596491115321714030011076148546717291118423690242711206775673479354784557424791900099339957172133146068729392338691720959305092597348534335295117915571014219820111029635917887784495496413108818533481813502970513272847774854237633436486006252597390432792901884110603306056353791552225288197750366830086230609683012203372815231715477856385560294123068084327094498701526641802032828554366400663122999291265214158319914326297146015498687214390470670702481727440347658893138920509764411406361493873835169343144894749727088149433978584686561940048745197811224898211663915394459421564045421400291033657394387572002171234707897925316013115782331294956560564365911630608357780786794970019039276678540716812995911746024341560873668035114607315517854013210890635920183684904285797779759262828325194709311825698490160896969147891174180148500835680081448876853862879519638342869360094412713827463545678055901185848461818550617056793526413526836877658629429479083200075316332597922760945979589807170425796617649543683199062048339355554117708468156000949423973079559500444112907930473068728473032124836155269810973990827707737364902334750820516759095682160659352378468555087809200543629722676603857696531400914173090537501565866014120186477940464794978857393570870732208616111750423296675195808650761434677769926520316042785196754769684601985802160886788081063481215889563690119706926656274930390381067670481787596326342884863012633325987600784234429180701664238609699806693380910900972903074974131815063217882226356449310745078231786547616457130287220696611326683488161558018321880319565720367519135113489477358688351694655112280625788925356286716626092899573455369187138901983077508042344074275299653033004549079866533006915123873666585805853314990488984385083153229092319251588197825433004156324580901043798485595230945249246679432461024493259353339998060502355929155464323198583136785560063152898071562231170095460488238915079864367883648531321055808737593975973682474077168817498791321060030453939195450899421678703583884694089271818526452264101260067943488701334656418945171484919881106655679922274350318207361636498581093657649474336868738203506624457158773413019634796636199400426584310741198917715903418117145484756863440101132649279026817540241830645414457760677983604662579520250665907116994825025646856167039258332304906012492731809267226123111599623411706374881279223963058688570038608766600137120131631462993628235338283307027617651399112825639637918962703317648069913350238479857797278203590689747707756324644873919508434694220513768710961115109811551235129409634899252125337959245533579596555380366965363965189474211704370822990429609014869454818301062687510407389245386139026900482076301405475748611880471726823264595722142723515719175470916852447680439773160057992283173268306453608187616761706008324124301647605037260633633595911268991254692346370584977498325222332195266356069708039812924471065679379547835218122275746430001007164601778586172279876739757643011735968953164063984885442585074765569475297504485904511581813218449047271872568246018406871718090851567571100201209725893205388608707289506341920439590269596643882006896423639275541217141700833179540519917587623263345475019080099630397666089938438825162011477128178929454286278040323437701467790922416354374174051609949865404999216420039442809466524459250950073037522029707366929800183179645971728400059800669983684604687366285432540077106004381803174750367579901299202269514452027400761141132900950212061210163930429491405733635951977032613241811103707672596936371539791827587738760346916356144200177285482905316337172325239463014970678755398301987477623321085434516160239929243656926763567042464718966308348625832438039948215611992065179280109500502881676121802134167759929354017204494970533015503129864842837040809042979171670563955756918754318574619010151296531701213177429190091696246014321777713873657662331838832086112566135499559120026121285623415041868253624720689376150937566079588950112110252807578822842937692242728326371489013551448134360690498484155280652241753131569940315635561712985381153302343595636173823488031734932729423948555278871701931985846939236401422479323742607550524170501392079493980335646878161896999200045549737219809619515366360358703636533375518828898470388874166244957061338277974139116941481659198513456919853189580339129891325102534349245630691753502926147357518322076442412829869409909654077645958136227674160558416074297856829926823167002358554415480387108794220844969637315160393288979084540369805359425617777010543389364280716655099860350124263149464632196715462669094323642993168843558271216047645614020677801517452480905069118054209397570185260233484965241788610672869597322729249987560792238454313875068336216008320804961016620323906396340940327804864341728985952447124984380732035942954552859468637599759691316867626678494608859140638292485727987431862256213402607740164497312590321558114010026560667969223180297176647769137515012582938738847884540733174437954319598968371272966374227973201726501566561386024816492988558904279786064330509226641775055605893057254536033782646274721412151171883872119142450408837700707517109647745206895548205580591771031464078719659459579055753261368376776568389446187535831421059958238209845040000824136711237771825039485318743147130877210502953982873339673748790048098446632080631965335033768837745298111506297724705809980244962383884455729615381035478094223375298983153898498244003751967837311468952385236639900501023023371314863242887375595519381122640827650364988853232245645366542942202275073058181905388377475031236137692911251767242613037115991253983735768732922496680968310971194429478438364614854269910183182398308174782346533842437189359534404185787240056519285870989362496599096007191260761739017168152315149146214968844945422923739721531930422958456866475683162858139360360040931223769079753198168470742356575178520976173557096623592551155448828761007047524055371479294418977227009276048275286901832950593986110144145350841432686329577073968401434882524948281817279799211267817044884407403721376755021655570208243701820228102794539620425887991841533621989490659155485654042377921250909435512797088274484422389462105847343907812472454788526395871788370020034066269994635650407912596459058912114657552392721852527643081836770255889310935459766058157066428687636280440760912207049949528464300067946860717513200756211801992806450125626938551867736896962531461876483136107564104654510035004189361545018504749068311633108110341876882085852749660092888589043307216795942614612804734662455492696530605716547050879316511427076791414911128002637303873828163310472407481140016655851308459920602230342467046025166685779040749160758291018014304190035152238567200890088447723349133304844425797258656093759967316896245352949266560954143410887008092891378697894070732605759723437034366689603681072177644654670054308594612398113396775073099718960568953004492842961799921446032494325452969205450171742499964540927805171008188942204896383053329495523277417410238134739768410695278125597050649640158165954703135152580972824954195318439313943962756781275226682698769028751801426523018424627908559643140310752962152591928486617686992187742618736880946073250429346351204309653450383469195827422583438714609373795351425371325175282279639720468689580600917163921957103099727447003105344696443242360493381416474611946784839280022382643384240130697401208142210463129051213292911133190638277399530877777190836477053223292825653364988850445168261420123594986478048221265280614450435340711064657402705740442680165515892693300533786754910376789986282761633428318594293648499658145710472598259265972623167171777049834449115418056423141075254645125173976603342054686582616380552100170246173016540692149744369503895825601757486310663980453700455907208482891387761425173840844552543923917971900772613972358759414554404258057711443224924648187626997121656618882781545192316676632810709488879778833197693529769853066570852455049937668845259009312408380403354820545763911529143035472508279645762480605678339879014279834845425965731065871437544242724139991139045725215100727424583635145738715787075772964353872936746827149370952129191929049054579464023733179781531889820508711497549325768122127992749245274447411431628710823814456222045853211438591588127046139393987936136891179714993961510872200055811870945153389487410454401484599972415051954318085387214563820572185029217306920862263165019189034258318781858910209147712884523554612894928990245030788305105712751275073044658775259366013806932437629632343953388512761128923304638090798588371231463296740719910201924657512095455824889731172866541070460431508649297482393691426831482204825854252190385778176381116726263429113248084560279004618237928868207266465031703294052430774052058022797690272950382358139892124601370715367980198004512311140025415476469704254190518194514777793621901095848297484564838538841831531282412283820735226721778989453816132194124237828562130574998005034406173791319044570009664551028633313868366883782510886238430984518580075656887630918732229021374048689464739888015579808541406962668591301691306990781264851012198718050174788145135278647506782871740982532950812966555162761672896072588492931948672323505154669403229834780018565178169244059244194570881627861444832048366878607514186344953641877213462446053593125943633100183668167012234374230454450543382231512403731848418168704000724735473352582366584847140009173081889354533923128952694684405282731793226328138514270587223555943638021573806378103890585261851070745275367036100590396913217474252823770174630513047471297067859418015071500918697727375952797506387734155456329863766358455279488200514155520181229674785098637673239906776763251717710493821933249437015576961278408729980441811051425228372390201285023899717731980418619084881078071397579373956452744087472350592165670645538546201555418958478621220014398003942820312060009389969468079523850084692974998333303585452705683832171900934811159547503432441373486709414140589916470741010368326070103256801682478794037685474544774744112566618787711871208599684295456179793138841966304446101210207143847210611214907665289753527455621964194915198332713901682359840989663182198447894229252918997070752558258591840620704380342145905060549112164967873800157996281890013688081869708422866604675087900923522919519843455207518334636417947595264784105655765275042470560929801155384750780189913097276592075948960915406518544970821828018215100423545345066415888525581637699218146695481286863335783615553645714952371063779912139298410933584306139823304929729458121579419682627876049573949945418216181559677720981288956720956007457396433553950153682182714436071220025899636284412690216464993189976187653101450967281720002618247417171276661416477385206881518743616970055539371577969553192370839690224783827473621319516541016410436899568237148604658136499625837963994883853392122766866556159095961890165565213043001680014573432616873969391345789035234613607384711065923095230775939396867913693175987493388122420207220694726171163964290446898063241069850671315822879072270551650587315695316805822674526755486212492052961803087526145380432480266705289252436303556690175925026876810651524348151415321893429650672023806488358158378997637877515287284504804646139430297721722877264772407434349532484658569814193084985569451307004623443110851950888633116894242794784496908342180776045356938509913802320927311363961616943455025529323792174595797829884531538151575553450092637904544929332367901930497100626349568389517253163057422492592562648377091026650403944998953591012818253634499460372924836474171316400369528376020133339467553592450604018132957426468380056453779070616589240162747305612876339245174627176919968687595695787300448886196034463829275814834782384798476429513536422310699362502468188843320665283175674215954020384045281541286639317804171535241543075168295168859312960054431807089335202315722457155748539424653514580292779271936108701646246997973590595882198455055958545442755040818226065729244907604544270819765317938855008061369925360742859865614951794262800729878566594414472091820024005919069759279660021705197952609027529583406011067343500001377222109977503255434511350404726207774385544009717686356088092749421827452634046361110219641302852516660040104032849050153075292508843745458615378479602868724495747775205190466479793453097969765818362632291343423496194666423965301138756424997538809537453902766377470983609887427138874450085154550091543257472441342615836485430257363821600523844823972897956085435214101138429590771442366953274767261831347760620911848978404601942742425521997367293442433000644046390620729997498422828326088170756603393157732516290531695911841075689815090184015267317968590046917593508945966427386663101355296434274167844302988699124136262836628508931363075812795033310187312374649925348540455737457375433041390793155265348335767974014268772652853853319635024253330297570046514014080881888981539464944932770448150255771284994871317766169635271305041186024881337018119858466022118860792694256471366984372105049754647488659795940422077182382587193912798663690744548350461973134910456569076212187447759199112909064496592706029136043089583409549686811876772828855748807657819811569577484292518790315542516783628022029231899728330235620008332318181381285466986362356204411653646176555669234189004596145901425202209464615039557019788035347668550049293121570390536357236366791931234060545332511618607693603552572989904580097195169330613252029494882235331899290304883928618830640635126196682829369324193944479142832793552489302454726415263549361254126026587969472069793741962930561694234237169637333393975858737858503520662615661678261088584063991433840069729139555352401963409992803141511414788544598883088114218541756144004956475232392630716392147906669349451480637543647522236838896089581673300970476202129857254511407989653302517466660723525958917022353770891305861046392399164894083845684174287656240908416084515713634471564779650186329166198674769289470125388755128348237100556868581138755577093823229834396736511963604017961066253334453928695494595495914747363781541071842296252319610262931857031107405468788926715773296920147415305827065817117556347999371656727623414424113728183858176481736673649952558821401428639671668368679997457170853424980735153044934321319323619778540931989453873817823287968822791952846195700963101454438896769535747373611880508748648119698437768932932306502801206536806215264540828975765487762698588982507851118244519802144472057750186486329585935142841040018460150940772720327743163636910647541196139725274296518271081357172737541919757466788443930208080572825806348199113597462453926982658378142430398282931036322204338119177805854557304072390713687899856258303483858848751718768871981143115509929004322356783132500615161952695656023506983527509990033027715528882806932878749481329916378646669421847571749894535919371701730190659849729074667307183070388161975439415367925721259855096089495811790592163357631924738704883532820135290066651932643187573352802389688220497119868682164367171495723395054509003985351442093565932849057475331423196532000522010993733049918887375273248704648254339243351471752028259389987526479055176553436171991810014625322807278083258802023169160196868497783201577264085682490331529756490714577227283035810602943347620935659339601557229174790081717040704696656889373521714965767995581388924181369567275385704470664942607259502584308319919052679108088396646567477039803108081409472260532178334437482502252443335549325122612569130171069906964476284916155008744762349288299550156680242381372654368455174320482342045242696980252962377374206989523459256697651512687896243175599598281707914891007353897889813663231504746019932059020232940333974185491144285837836529164546001399546815358576609878482288038508857075342686954951900205580111883515925488700017999283550430239080587204226308604674843155226535752599957918418605852546910405691183930906692054454347298446492945093091560299660656597278181416710375918160084367447139711462406681890183901888566587403458265562196991675525325868612964448956014680476479665875397497853786202717852207592157412776496295230315973977276074579060439848534031835328164716270247908641880748360112443354008373600893017028676108171869220406655862162887028532496505947088409789782645536149293660589332196273667143566077533892245408847122881163048571157849243319530328688040698164264772317456185168463829590350265241046064760499213778524438017781377340638575182806413854120643952126277146205401587476556251663762483845152512310912982926339443455934287396381734307609431596191295840583571963859785144031970399654572579442661868138003674356386256180332375992848428917148424885415392019842727132394464773857330415617315886525398112186838489197498168564796115572396725897451653951085025454447639253815350142107770891618846968301081841176074204817129202607624836755954267764960212932191253484846937050800886774359535793451507121572259733104749140689934400354795221511219783843662568470875493277829923194193668016992211455074627473528950096796287609807320202632752533662262377758594557734386373529117127567041729559335193129023568270742034560947379750493803730669326825239723482654584846932465874635583607197986532842655207509125454997812543771262028860827775947352744892392870837352548224616281868454241680856316493106017249347764066032625795079614618790063810189706634883545369186701258624993755907498376424261540551285655014781081534170138676330720557366996989429122815325726989432525204224527837797519979476096231325423647754246585146744923966154961378860399533219128279493577060180383681291546226312859796325639710615961933178582222394062938137201829630562462321616432416806547425683325296344396740553513969610758589878104931549813216667767750676723975801754008086718669061117021403814824560635470147590317033998513344812700151710140426847502766911541668526818476302489989269371426227471180154114559765531923886881345061078249414052079872008217534905093323949435918765491222297584408865838290799415919373819441636793548613046205562988070578319890780509512965176194378228122784384150922158424918569996936156850576008910007847925668505391282831132636768106756271778229655092594384314166149243867781813121807717581136554026409118188670629665322669104984667481677017287538225234837372755353756087868179226627452991289005176554599836643070944688621209467103064302423311833375593613903933730905461066495779313245346353591796779614223760437013127643433588596553884391619303826772622997807038610399076132521303693531572680412901092006673071448394444604322716819353790648738659562256030057963248839887479704321596644043897066151041275297835725662829780478440492441995367577196872528099813586693598622113966695873787798803938714422128139851756267141020731147015622682232858889915041659441593152586400143892068934207107957601646145088309373827376307016275907921929378069326798718514786529688461003786577589774080040940109221049437961835733784387878886421871973536280393157354833969620956766520979988135464738386568060867850003808372597760429302852205793734013785297590779088969417764124778556856660878694137677304528586881745867209019103879997077879158498031516080515880956324928084435698126722640520389848536126032382762224338922758627559114314977548989381970542488508200824646875686963788122353353801833555515002534389459603296404266439695276712634930494836156930342871895608137758723717851416836204384531334322224405572381810100720941920565249827379445793089494851127290073456538158523261171339089441434553430991089555848940104564769702135465432605002195935484033729752089210607242827537514942200063828756951784335115681686845040641351086391176033763119373938997611448276685696473121381842107195078574021434993965410507429433341065725182643502261763680040779649704640836156338844363266299229120883649100832139601010687593722231175942943117826659458103926855071782651772680927752661334506269788315062299581743065329409553411547511889767799599075514727737308539160206202325470612889467739974323446154461860525976607498657985959240602819106029424853294156679499297573750362706639366443505808686163327757301757721519284235983278852275381910454581805875968750546284837186131122169395171798424265269950357934255718723285037305636511144608309053949987100124137570129466776397789773575532580783287654645402161698116695881042961492405718308663672775574766033036081713422524740166252499304881854937378557936524419757143201713408711464137241260979250282737642383090121800940960683133853744293434602269015636568322263709709351940772445531835773525588090812524199281950005256149294940486571496257103921503410799063888722513058491455069727023391312602019584013941149133694670460227568460143594399752096011638054837218804479548348028046508309909911589178955567037272830215848982353432246177507832114687920894384337175143719303381739962494261923023671936236793719574181300641845110037252567210014451647105044916828319332380352290484665942013063555378706649638946013706725686402919666491474966237722832089407186272905201185635823460308980460428911524251976085657550771649463548504616908615871624932792228192084299927295267948392497607086726495541225146593374553680222202107213047359461119224510855694585213471165419824952391478830009939779530978310236690730028153357979057158676434962346821857887979703590750362235348538497144411923452352585543877358094394874981772104468927652686368810968357194104338790512517281538000050352727497735310740599914928893994736957013569231415790777292489202571846435240105185686952192930983688397544322597298349569843003805632603226382631044105734310280860713530979911889603012680266480893109146148719189914983091359556562971984692690378280060947706203832158646354719931905365067854363761857442948497364335217823060915021202891301420103806198802805732928012473020866637233636141816692149503248033854480959197361133934525613441846338687919883295024912953443463191016011231006297067844842966190241954388963102337923551064859869867282783246255087566602890982335923328959343754217500963163516361483289550656314676265644332695709966755379412348779767620473627289243262841426808877250006873306004154159024536991748112245620914580790526131949266596833307417881073928788578917057053212160991111385625943485433627033376861420729329651548670322195216904097016355177360151957617400596552671553514635773133602963317623759938288030435462548329888184045380658418471368276657056147033132389009599665530313079455280414486453194211092771830231700360929772620863125632894017897958179477465007477485022160184207324137020437879273449569383450134623000137479764764433673145318735954913691128548696829761877238751312366613198357652505482154655987951124495614434112651222624794699569847118887755673264561288287676286097453341131095181177787495966606343038062903565441725469779935373306483789028616814028058387232468550584510909299547036019863479193756712889776843481053730357370290232914876399587589362153316945078114077471824440978643549142604709683918064820749212116115512755576155456024787020469538258825950977523835144191534363380742798596277294506252668969704464171191513788427554517464991297752621680450619829652423187413393714283180531477264077878559921005868685520773652409634495898874359154852292114518094816348256387905572175820570920730780117516791611026402563309715264580260028856888052073044734293440656085445893194048167029506773262330442496851192017088129131918053520579781164329626808405653132132440274502316903782199045078876269517967100488059971251784260081348235017811852172219511347421688793306665503812173169355273909662610441593259438583162125610176725013159966838185934080564918057966349341199946728305623491983485975715029592013952100428963052968203005641052235103551680339341666997472409077796835354454595963065014782094944513925367279759813834945312505026628604279336187862111903460224586954955351386120883488647113657378626440187726829409696445026634782379215163208083617695937990601446223312697313722082232926920012282914467929908222876978574795559350052293491884132505616457397342272574769134978980837196182050141661534694123786218715321190182862916477069303548990552138837662284386244837445330314745084086537610988977818077302583083529571583020585872018028673586749957781683120082620753298125138837316818095247911474511354845136802295455017885278217342208608394500397157645576878422888786685194397040654795198862386581665150494119941483999359771768128622019275010749369922572552098232138153468502018723766819396825822554567262131237841462022839785755362085658949386900496671806335420127245476793806692108094286030992759211975036967852944393314929217583263065638234894914693322318333469809549462327456915158061742793247574160704920976791549039615331559090224095044860695627262006473853809948599262389710920301562218439369783183806010116049703453221373274078098062891055794408767482768587559515617195568299728346114727435761025647773062778607987272098115095008763344816188781044785534204123001595024519975985893735609450596080444627154401269542361693995271227094167923077381761546568464132719302557684872002360604070700906539461059170694611601901066948322107246648870063122337461418448735008013181418981265927802341980154147069570463531594599447565321996197445823845631625093782741247699880528156338900986300233944445703640089953808358876559105127642549983570106104106474535340213448037069347076533934890863828066699331785893359940616260451771379180476152279489832150477026187332539439499465861159670786539311598984079910343803309801908430922583728423026098269404790248686444779267763934046721903385899942201831276523617232978622478164817214447149670489937543589815054036059871074042110309044572698148093403337931744275604253894118034992158649738742111153280982960316980286330801221845862215152061752140955199988346441566223616663152137311313888932523524239368817708926558224620178581525440808436872826051497310556219234216068489108719405186882081724594696256225238127762332789509364380546209661657180784795095295714181151733930185008680407332851324057173960455937166274702781263284929463482115667828512751063888095445193285882739517325073952428310462213750928321421995625673972252158334121462443056465800500408269606056551110253027722987691846076200162469806304844432548123016598640013954978257385237666506189141000154324148821062553136102330764303893126414703574307990455625093092543910388810204699045378781588217400079461700110432137658748235154312915274525481439552206861186842656409271573846606156418172287978450588977140078398646876136076788400544430565608819721581812890275687218875144372425488467735593898846609071925414066560392387429879989549558726654281405895515998436345633325739875454579248398255877242034155172910783244476448848879001128591244241124189457804796578572967524051566656513955848932696945521534872283293823239870762730234587209071118574523936308014242520303656249869515667169649466211626587361980517114295923742921921156890875740324109850403127224269107711022988286846147671318545984237254278450111759724883612695993984228190793399413755041069214260162300419657320219335060003133086824693965467360743492774840198014263660804806886153274043649133523529154930950269799865085933636907182868117099458930325776458480176028490045083284754895579950297388256304634781763952423474871469160554205241889216044755635190966351992594964811132021587336655443452021880393044714810556880322771562958735991079631548935608697272966908303645880759382703935935028579159109998934528438451684676917488245398606426171117698549628154318006297388549610902663718749993618403298752588038049842165172644453878337008782695913946123028054927638066246577195623253757759115336662972932028109578402029995069936140274205447171602344125438818310206411189763770056959969924126554474834438781889452373207682616321095041747692976057796295384372951375811578619933323343400750861825899751999135130164455233768760678804696890958515757998476221205676496892459998029609560080016951406108847818189201578728503999691758184312899859665996442368376680268164195985224782785728637062730777641748133250605873112086295498926019425007587507003018356663977512341933839587518401423968244413876061206435282165031505478876379546711649835883367283149752061621568699896963205886474771418463758640882399037981541193189839031810697260518363345764728496994967743783139478327523155452964124552560788835315085581851629770494222530214775118885560670547857872197627821776113505799278256204834709053983905003670976037086128686261044438704419404381828677576328829130313795096204972535908485564931424156867020093801320890668836964190527224765935779306615711564465056355315912157779291624703789584770672997054830286000849012031614089762215265081570928753992408917620227082609778210825948615608336621917450564872276550447596748011665988486745224249788415258014931551448541231197189369204868281843629659456316247332470773522728543012231680602824460019219899885645044934234294343017666567529343461338124380921672299534179585618513465557349251913132973450074818570572986188430468554990584987067025909406224532657588595723707060252561531375348947234340208988468525416270420987594976897901737798686399837001721183286169210116214094424367115768174244999138063252922913856236760187896808351497988121843038236486602915565726349955593985397334829156963554095511845213199228851682911248512371491344555518003387922862716943784788071934876016275383911400906575025762490985478758461334582971565817210645480025491942422104662771665831753284661484115520383047862024498960066944533231379295271783256026633138154093404541437810283990998993882209227802372287064879454685651449942337226406765683446837731470204946376074613159242795146833180017677656909755593238712267701042075372714404037447186606162729778108039330924896803147257780532876212437103247421924604769584413776999024534499947905553341334787488354094621067994369154452979130033376105593360792945560930062327974311176108569538997334402650439264504166853900736322628475938391142765717781562934473642856200960119060364598488751095987370124214972088400769855864656474698703972926617375609091386120685015102827234721010434916912991261575714217178329018384307775166770432850813128721270567761202616194069637448209850134994417171612927420309546574944218369616146796048306870546811015608654103949906016332884693927446140763542564683753532152616238847532617464340471690636538250086864610687425244857999793378984643424422026974060772448888961105701843722748932468830292988888744783536926704137894308071249237333105135876896916497647468698672472764337830128542064114843621395895573256576664921740789600588747071763044104467608765675945429816160787964753569434703721258272927067917271313947969691338820794450764367743177870383523438002131362258389756138479034087441295319693805587549022515523523630780927051903274450606798746823797817282192970282968540047034106273247785007682290255259434058092062575997728122075291880009982747863532883199046719091850690416481565292221628180615983255333656997335410780085253137567445533630960581914994887890188973772968349507548798615810471147616836017930625172123787850244473394775097467802702400623224377144603052547305954323321787250735943857487253239503365474902205132254283548462316832301443655799515496568733653681924925930193395617198613659435448231860972903465526737087318403333962966480846677801184660801936827701394019302070958761719519758766045757154701657104921021783723208982168109954340128791868771847702157963231440520126294536248281036438041970794783021809528935332097758197628194397452606403557139909533534753816113272904481870297842248501260873457570846030590921205856806528848113455268221327380290021005905524652190002870447919030515502933308147046457775464437309471500869990976594688941942142875809201431614591606440333295597441858069386861116793498592981812217578199819991941947012517850206327441219419758187326474951672296346644154228995528137949663346715216632982833432161748376120061117860370369520779235786944838427475566710547027992085610530798376945807024026397452437237350212413074709217796041138896074291999907760579669632267596517581442468384128513619858383089963095135937746689301294898012321334309613442737898333077065599197428196767419396541999839020434023587054485550709526441253713186696183373971919722275793804262741545888475975894193214142607002266016251772520887769880506677884207478216626329913288438108398381816065041363810549519547892101693726534432832117567325944201533030142852211153249759453625931268289242594820300129558282743179275485307446549757262156059528294291704792396895623312052661476313260537223271741066074631770935782341138494698618581114529001401590104704823797742273668463293124486184696644088260073261591045922683878593118638634345006268814877749395482263338019553292700608969639168466933395281490460034220105875011102675698552311359025276218109934069262703328614825322892859007492940382775179516785650528489758800540197818331638535835093197861228150873916871920415563539206457726158417925432274343131787844571458619727977434105424569389436540774913425886662771950795810425970223468713402554851701682300782949238165662812111159767844451523928942037872633792588256509966663883958967402860761891284485181233865862270623896225951257035129011895090698683378753337184076893041473488061496758707481430682594578494921045523817144807783300897689096889501701098214250229962039892575471949360595826340353023922202931966026043879490333646375094020949139930844192865533939286785071362898552267860804271535025308765591841594641936646367255384112515925222580230158508033898625888885813233737399673377096845997715885907650856470916613535005604850182008144738556736215583816619768542104121177539088150402115949913301836887661438650713774288466500220526781809931417009720364067197693381607067352844011300121816563295002043277480674786640870881702714660718702610432984634999240693170433857051127949707634751191296260613787374210127451133444229718451904709367851938980803165786513249399825598751621039486112954129180012554925949192307764592654118648538903241275236724322748432692883617299962675788401198754690954524541403707094187069330414922335572060479424679795484165079181621358278421560134814611603195871356581827103896904036732159470774491855081607390957940528064699869796439837635144127690131245788995518863560498655404708152658312479197361440514404607781293987953044829013358872381946773265573683740094701413530917130080559324189951785181814506070238803871635521350842850029243008369444039761101716241600552851486109824395562913882652576354469283691100969711533838098704643814139819884420716166394269695144486342711464105253842813563801227305420915055292957781269808715110379236941384744935129331548354794703087662121977520242696069820484751797126095659544376446802014158641514267020394626742537814444433434166109025424967395427451470352162521899507461439989195500210803792579902440667072761899210137010500509379874442266240705071485073291999863732851469302243746693451901337281956261271640215540962786572258753936418857238652894931579918401301086176978497332955045697612807578726541451336776130835056053493769348497504527183356531070463397178757448051008059844624971171687221141148936289218034884125768675377858800492452794544529611080243487207865491574532191994553356602771713417138295429735255058241501850559931637913315932217106351120079252210107581375030125735331588988215738115719888601225189382915090106509564228161551859007083437980333072228193675370991781513284760729605895295757821423079186913860936038478121333332197860189114832140261246296955452854056658117923687967191893253181105925908244777551843700753259055689365795672308482195475600834609715210809044475964525769599073396007990679184397183723739104294833384519946984058991092436346639341031175291614298558162395970985647097447743086406309360273319379708651827329048245026219882750818238822592761551403750834342035065231120504483368897422659943463451058938086004289791705061322812663929264328669398420778061209156060519407311317132300133663117436105719791523290339683711180815815920561219765760394709627006653991192576925620743321384606988039107476481993736688024335318068892080133434720752007783517002864640331222016228998887198650245315404660511590435529578549552105477131639861101467159942319103203995187157170780160178877367047625812079445944086682318287935651521491610397313595304331130393736483175533294728407963892440777346926663927638922849397170208747087447011296605197915398874768301569492701527362035767127791372008379506632495343054094576948401122606358827954891703201639749327103128778142775280991820255793400417146546996414928714019095896416267473573348791291870014092392437683815309782371089941751728655525472519275999640425212048188244875763070305808117990002805051837910324691048177466208475414370126370206676654803056709139002927239302803406572164057909814684869270359644923679290140162356115172379864186860956822456004708517749358366676552661600714051664004923007377867010239559725063973103131113208915569346944237052033526006199172266966901415803026490883144219660401540884569894925399897271342606251486645415312970375962747959949185922559657131667157572952563433686459692457696788006886866440673914336789763929284105435937609303408067836920940655539218262665989723827902040397133412939515833546649745052750697739412153357603763339403506436654846993613522136339622958490796664181048468852002139496560396928222443066595682099606666676877312122951806673185940368981326155820894543536576231562224388604476362147415923724053369731086842072191088205944205795411635577314046068285556925899028173465717054171782939848758295368641001549745336271726297968560403096649336627374430325985213731500544106073259798838094062861204308459608103792457148580714262940098806200782219192346724208990931626830689683950481759460190769976315403510757306300122865855547021211955548274195990962961689948584529582058450543236610906595769490970704031264316673590386893697129796105075875026091331153111850387584355230588399355064215350625309502676678754699808249886168316644288398367771492976504945277453368987616613562830367729838020499221814545027133260915398280648477190105051192595985623313420660410503695521508829456549071310359551734604217080209427168333653360972829682974842794870391735652809611615955030670018643689224668912557240475075070459203096321321932756357078942431864930704172400800390324890962573279031953476714573871578702800532334581881827005320062034289325501289530013244897295250296284598283694076589575257756866970974898427459666308470455558696052381023010760972652195583081507317623092252755202455050317195128921123143086549182851676004841859763674276792495312072115369047675554758743791413009977483555784088657599569472457008356511749174480115748368506186767971449266305114479362937842764568195355079699225005302972380252337205411400247762355569281098789549916963006632962553361941437084242486471953484418683357638318686197575745541800873123026185108087257226918134079758026168986326530043210720668500015380089640004376292638793847417226357274256357528024081150285146926470204785437966420875724721714705724394911310232023928658078694861864158023118298265587864949917776921547242339798312715299396081002173935035094495681187274981669752225023997346486594812791656128887159646474082534294225353877058480305770903065791158644865776050865407684771927790165350247872257175655852024923350275789090928729535956857219620436371413785056419151867191795859030289897229485235742631951188060810259016758671836110304819500154155598059673852871602002830023118476630406905349287229201882946689309578005193541042290020084726064750085295876253476762441753868207767341292889180611702556078658894650680888425941798525274253954549652796634884198418714002428358893184117364300745416959571683476186470680564538710586335298379366167417337956922496863398107649608632241355274863129006343417559499862527290682486897687111622000508416536491981645413282655054797569859180972770090833518619029268240881895381803007223046101287390683336270584010879489088053900608132046720701555468869512960293382424168880700640266046645095845700167704379031402613645053977653184482563263946088730214788433442335422787158483238600416439408530704030675850349537484576983631702993374954171555640017959287294234094435138462112627452850587432153685058172805986910840468100398902468739713263983798498653225565435067279571620847522913386911329315777211164017774954226280296037097950481832078605279924271646067511258185362852215776019567892086094283723548756033433793734819148321066609317237619353432147006372675444215059032984178537186778621165236184642932169296605235276989792291989896670668239528812363483512220058046525092962105680367692115569631721381995135662646967301889715379388780097713974208554451492566680586161676520113374154586877769474957668207593902832056872077667081588251908253069487849101738802385673813774095238855233754864865320555373951454115919936310930279413237266252466895052250584258806045845971909887471052404372193886792290391583274463935645280569177847949633375027614009746525588607158364380629610948479110840868949457450486334626036645586412579121769210669757162819397031610027240356975456250297632116389017489819356799936227936905495299192316839221412246783470296466642587705588906269712333389994034142637101371799414721436692214361109768274047010173272954492103668831151981718701094103772393519876238994554498173344615508941768433407061112347328676697746322094601858472272560283900113473175007365930126014446530595121085568426270037438232141729471730945248351170555176035243010677152935644324668043044901367932382567212025674003118642852162618005389612124564517909085938196130561175455701682050040407407893567930979998052325935065189513661229213047663897235599403215253751456983541005120133659735697801265569714813050415500032828237927429687217195433097641148565753333573947310148858209812370963453924589905302356135193520363831219832518421628535942733406673941132131586613435707858877376047258683679794792710632986667694050822744195427525897108005566680343219929347939790337396291606222691275373268044269789837830215905461013397154229111904006166615421563348001856720209008007796155033921757239015017005751111306602079673734399996666982136153270073323185108961244722805481995205103677302526541456825996349924997678018461701894237264030214605361033062132385954551901059989063557883721848316140053528872723831113229765045812202601640803147061304320719818769933797479057109806834674117362701102141666457481938878757632429324630661130380499176044432842627293425309342721542902483640511573612163701061311474529448038792114650954607010901329785650488490979379426650224643261641052122608548210736705559729659163730413069004325377924162442202467269976323403596862044198034708724531257694588376597745922320960721176537648838069165485624153139147769766261660806929435185725612686611921955380289537482860828794560268281232160294735220898791743602943181541647438986633202215262631455345102748992919043918829554980886739006163372704552021520629215727955420935653827523770908700137203447416376266570249408753712643211903741073078371064785674268665369596363308889943230789053027690133080142279131314781728696991190142449023642247615809468328348537517754092472715845062695894105138098013173718977357213441425064132938354044837665848121577018755605129609607419092905301279103316477831785069910938058456763279554707059915978477466961062451830277502556872608335638132022196431744141057556875404478763746208209503240787074512076949849370737287962548366058357792509058301643309155922652867057612291091610297853046426870560521020322200982393371308248406767250850054418397903953231962726276502173075988729804032662387180956732573492390674621051287246538143179688745283272968698407799161117353490998935750864679041561741110355156768070597264724530892074500582725399251434723797867462645171901649035823336811723084947469394410422986640245513439439096766387272648693927416369364339523158354924165369564009339086066404447295105440983624451549514258466571556650526301875466032476584896720364057668940243667569214157297840557813032811346300520131067300750294749350284297953414700819902052048485980462494455942192767872871502407403580198111399039197829762394707328565598986290115847650411730326444431306631916134969435566102534106956965092311910385658090144050019224811350748166379794389376101825076967987411194380925459434222886160025444307746076225259356428472164331026766673131214967349111675904529691817623202604211853465994247965926223709135359757420966029482952280800022432681581716740971894981502734989002912268015063699924763763124856129809230625338360170366770955858086823847597257659521443096196831551953985359537472550881948009916342029008212565438515534510237241797469459041835464894399923874124135104486468280050008275236701295148472503829954595053341972022065848253204566532776655519043121347293185641319610150680008363773363638644090290502457642438679722580842907220345417513970091697387499523572159430064047176606814985253491931221592521779556687692728222605395374962648143566578626239549801572226127024889187957839003094085212115015620550222044816166610914943070320556430044785449336706402404214310195585452779586026997506841915772142396339584548706074078942690048265635735808085909847594749995009279186944483267914824321551996347328706502068342870538801661905255858957091623895453538334825899537285133516978626745260463827231311378221470844602855030058985537336889084241839345077732564765714602588318420516018071121252337340156967172402654083069868567304139180338298753182966308718111778702536760497151687250533242608973162290597963349407302153398389115732515633086205661907061482169299054986035477597129945356163555834517262102357843572658965459661378528171372679400235070161766768059821531855370508794890029569138512042588169399221676450842842040920300684824238880955938275632596814542886669428775172782677501215330518626268289553013950419889723689268446663860325495007434425457497876430481354135559007902545532392620426916121172210946144581928968957978571694154885497751081843541708653078091781397536506158944558264143362563829787654514845270399657979276317963019924491711619679680603580711782294362681379421198974668995556880747029882696922803768614602875375768570062716805605417583886534139570437386942319915747516964375320370337812850589070695760529635917978394614667178912099083464762587822935989844835040701811736480107410048428547766768301403475021007225578440837722636601929898742364971256635985893352584280328830189975857934469069221657019492812768168683766710142819047884663074946168504440061369543175999473418948036227300344122612107864311622466754360782349095857487277200802738828578998781400309081397512074666309422161773368082633604566223152421034941938049678387423215350792765739055132923043125738761664770055135144226929982552437804578051229993162314021490777622133708819508049203887209430166181103802676071407830385625194012743451161460984410227685221484848940469584794075339041158755931526684362410445426701365603222697374117634690784027829699616871339437994932336022647508812129620870442427678539431274884333954557949116092678601784070254934402582096104699057926876003731683544414361713723685088075924803427782004458269387796379334828419999819272983883190538935864600407500507616049470011255064314959426809538129955837575958361744519902592522822673951560488005743671002162073843866985128718369551853931101098271624225315344501719711448103298400037774981981964918947808950965968249152222956551081393840867773913337467835436385692477318009637916050764169024016943096089280968045483095896619174384707258680911069598913226613838461574933694926964081189482302972620894939368157378311844102720971353768577803772577322234533662791524715950388939561023609077819936470038924593058091033316691676387220080265321506526796347035955392906909736878693307355486350142537964501540501466298473743295680548185890434931423331569215370623785753864486422622518680844466837787675896842371802644459334704496888512333561923361283779809046386875956231249860179442704417252503162200556477024243929679386738799311232983702460095474543039997653893966450834551587255698195479041202443577550013821601044794796610107840253683658383815273078496285912347244137099412367982165477419627260218255638955222748528164996317263793884181138966783927546311129157064570121667848247143542818817933343705184361509748174490698933761425740901445953321355893864100796495089793461002793335740619439906239354507728469111972153104055574876723127826827856704951571420762580253737280253289183445834932510801242838768960817884379772519595544108066959931396395306776102212411685912266960979866437553872634889705427931279804462806813195809881769349740384351762566093832902427561319564867894805847471326144322137387492103232226537940670627356793272795792652796410674078060254520546260407682079435893070920611569890006560897593342671062606337771723687168959083422831605867396873091628097917705395671506166377122521709511268989563717099522278209575795434488750381994354224063161483151817085626951274784198116583422038698948860644520835772473999316497387931860383375280774405170796769047281376137030213489361836997264924165918219640658673039912880611403242810322133333474762204702519374771973795050151338359147027860622229132182306905711014267784815369751576190911112212257356844444238055343531475155994093880329593135388403690533484175915156523191922953107361291536330679582356590750146164267371490863576146357733064284785094325701622386191811899892741373322438871892765931620031608374047317053232179182538466666063047763503966884224455409798949289465980398159186256138147068821365931542578410064624132558176424992181740313593542942415655619467590511011431863320041501407523850472587367603548014688599769390995599797738198025991029688693829045719990832280912531054788717593617735086747136461393707705796666578402812147464147969853801252784780257468183961781598344266581695579254385108612805436182710260744786166758680424007219547708406642608902253861880111348778120442559886325074227186795278040485044904914026837849503246754522758690664412665736044926674708154533030005912488924665586645879841137422680680758328882268031536731959217839713616796454629053766365064660994606123439702794966937939425385667275650803063985938398723697120209211920687861826218924977659432498526551017799259378786910455209439330449473044250886948073220977499046066071709273967098307808385419381191446503929419734344509896251430827062143785356431598170145521872489974064025354725013187869530656215677261348445515626420083763385168501908944027213698576538033398833920836559165539549992320874221113214874299500608988885037371781858152834799353034689413691789663435755932651940826797527295521625897464074275359488760903107179113974983622458029271004604347045752804223096411411618816949636170583934229131475575297243211726129495597194679191251406159027123124064729346128509069613491008592464040548082853558430402192858926838915277821609239004020685122654153648297498860226099445897326289554547031096766051791241832584255612079221242658818718237396971087985799372304901358659877273406250487950863839167335821784277730454286966748061091499338165304999969372222972707453796170866791367275115712955761297147997882578424052170081843934340167539709054333478833635291584256115104331729046462434005971310354974018207661474217933623810465308007517614156036564329165982234238530092799115478068880770260590085179663164358240960032238726727322655429050574550740643957533790175808590798865907542050302569195982630739474543878137270081668763799661469384054366665515690050791337984581717373842161116046924195902627123727126620294294909748890755814140965936613067653602101750498403638923444063364729543881239780531971089642948126336755890476902001022278927138932653334522726477772797734088544449842863821588681227127211218726574823895405645263517828488291260122590065897709026568699768311471221958455772043565908119796358724127825723745209602799708051143401395776702940323543870096971672725770045428212950105258005644529738996959097694490599151765965539646048835933653133588555873615144727492047494782701325504211924912373282324666916970173223320008561548220381533573104153413261459332219981383767283961738963822936229189994220911884413012657270221778940714759952301895081203648953297151892236169402108160485968641602752473459697973418649968220829015116100976279573826223655576854695504910903281862123477703536871121471831393024857172454328939563619768750253965845729652320064873779645923019515323983648228054999637485856147671870189818083665412856184795008083125473803376060191205633641089157841278402547648627946880223148014457313258461746001971832886061916848718250254210636993330054329820999237143894822195102153367274199418787104376471731035066594625075715700390887817337050341600916164298094264824148604558460329131790380540639845843289051920157961719666814669881765410323952623641368244714683515342915660095301381036435401891296583752431413172606460437516509371402507231317099104011891797567712291314945005092051409431631731137696424809402214055631651346143972852458658960938287540539558865212011744576065246885226666230084776194832620509309215359175002535430210553353882372100213329755526315437858455057004599581095829360794360203251545391500164504082943726883550678755151928396491477077733148886264352251268037645690539728135803364135788772988826680394252828425819925732392609711196576150655836379642865915756143681139410870787490725287633347183073092532663824249725725374227570329444326857743717277575421127451842085238004361952913793202261365375366639105846847761108987467217604543263298698785604342486751629885026508304611923901335495378741801837901060107030347996070902864577117402165918171114992520567009004719442678287079289362624668501253145520556304962249322797927932282326812158527524046462611484527487903702938095756292242080357778331432193454641095310352945107873334376770842997790186316823124101421575250249599981385400027157555268085420928532553699551877901644395670441116977763449825255968274950564795415883263234774234679062240375490317720796800711403054935377717658723837702290802353214205726094108132852767374273699908506258274446894539846477243230924579833028143649246806459031573459163120561920706844998938004309139639368694227900912556381576615595537524070756636504572787920332119993607354558628445816265621340439385807901388576767199246603496676616849724285332111681239548882271244537591157662402182380956257469670372041823839433970338353930224804931152381503088283626498873778748591381441478600902596458917319197109882858303424477492423124220907397598107398597965621073700265128087229628743160163583725607338843714492285625660880505444286529660676042311993250382934823307184190091002469165042078065526580938210869326781832656182885158206196350866168728181247113224199929935467016761877176189852827105909249876948168928868465193415324097119741615050955631068027188116296989488063226061384027748962055561940239780049167008320387046727644913957337627372803214321628765065781257596441251326712719212295200474428309927619699321069242201246107997181036892342728874847654024319005428929497068660842918712532797084298079424503107625306602047363533735534305688119034397159749973819808522831473950993544736908439670157792944558721722903669370760275888596911112815167298348382702504331281380228582249304455565805596811899438854126602214183081786542664686916640605420410134017053870774008224389982371315599403864813878796078271306633489549874223480911793256670955332139168773023294075953481019072031032204057956914094832617411753013221252751755095610658679388788814713792274064822245205667168780552712193557257618997415332185212559902691455108479096544451050476814286299904360816416958164742518459756669813896146314000290434099896279050836703753081018232429534548704911329262256700197944133257753032554533939563287765467246277409348009685584174169958993352096067721026491651876680331617047582444767727349943033599251648077705690462985534288202869700854577903097202565396617661511095746303427741250165005966076850011198066966672261508756519700432014219480725848425191847448712156742689154905926386260407964346136800261304648486194820946085750265500568326796879239350832414110033921376909597245876542404535527292930798005475645367486093292263756419625469000132501014302292884557735306352134804106178687221222024226585902903966325331628392276733152891438158232559746016422343057073524634394123481290693424837720440350908250626497048765109785203839094827532694837207343702348555773410993618512055148807157153210492045131153782604335013536429241684656469691966883098269958553972431712409097745752467919302178407052090422847558784779036389558790752367275541238956263767489945661469248016024727310840940375249006010834675723246821111995822293068307065549723182198209046090240776717954726879076481090703690374617856941498486582567262598890760710543387969694288223169375215389786566491332644716705348804665986126892323662008744603441426954481352828513740553794863251035810133654967360228066788682133203944897409625218376278030327983948142713342409089957953477461546609515411738398612908528359442165294650047615929515400555943395051335975484269537594037881079441018204927768353196805196975643734169303085351146689890018688616228192216609927302077170806600526005769634884748886153763216598207602693176816891077165657300221015624231598697464878933429098156180291277518500300978166361191079356546713865836018172441394783350520517668680085423650130983018904398741404783053909117680950188708986559532050000098958408896069036580341901498622364336431300438965759403658967094173716250963675672966425924752425294323089753718914378488263797584043092606494492498059826846490472471521151248882416226570768664746031632772072768707449923019950628864384741512862288326735238950895421771358616830080292259356048328604541209409886562236371635965322622834439825212833801751414636672279089552723902800353438115288559824323217083025297300423294008436132712289887494015693015469948194346823154141791596970655619317316995504388488356998125920481925459178136375502565340338054917594459499798895980471922123856745096306243057779901459254980012922132723258966030205083824849198077860951239933024793762855975848997268295770283591322537725510923235839299417312830179036768736461632447572675327389005145856503453915749347653186536153906994110120336484651825137073767226141837348007818694617628155025631268705095062851602502307955377587293500726096804289429508470691539597812916254531107074512198152866174852442613770332651576086221039152368187846533729873153724527884625749268053766510450842813332218261336555392780826923776873492140752290362805928001350845095536883094732612902958029345159823879581706724325296862254293086316027900962210154693788151881808765320435174724409662473135430890268451191570674270251922340415090636967862317127935058657533419535234640475011608017535910166898351978588941591862490639691089852564931713534026462822786308804183891757183414154766899749714078943101851313157981250244780413578380680216745737684080135699570621572383624634628092559549795594771623629711119975959093537038471956994479423103462576810482663547188094021412101792628509142648795843713447751932924253691132044331680931344827811144700449298671766834370656316548392848778262903081981775109489110363270109426574995110572897936800679686398539398233091326549172768498716852778836179859204309538566410709509343369044352380200188583529307693479545807321963552825074819069029479867722403620567014731657384432411252106802955095196813660735684724279239904654736091910815142584908635874812126286869806038920690704305267712973214861034924331270180208702517535137243037677195649397897048122525832473562430480188849271524805919584677741721643653580972679578788292336380061441826807840016170544158318740318248110974009329514584279554578554597156584410109388291396599966309931386993661055486771871435485183907871981617788359844263614792922691214113677929032593291132127734401901788738056873153118087768760493918949159234754957260320657220076185027453104569744402764385464300388375772968883783558410399012544446661382396968585433229770842376604738323247367637283788882851717806647100978203907168362186744029936564610589940100138582370503391724366737568340809229421522591653428369586511109411555725522656885446025993431749428168623705605754006603700086972293015886949519742571363744077015976107822736820965883574858162889272664049606331250608992323199316844335312705510948557318220300074998541161613092017152338494990176640483504989849503025422348766272394925732016213996073977412521405641671346648096866095367114406052708266223957852809302649571628992216165836903444830356816853810419488818712111773427719370946579677736953783326368825148919688102166573250861856625329205125685119945451558102378263074629596596669974502177064076422333562175631652970084384043800649016190102584887447449049026388192686304377201342701148215996118128621211965455286693887928458530039874026939760080415433866901690526936367496134998554690696985757931513774952755896477348709761709066906951186009766485921054681342022491517630673128378982727215014058558201954280354220499079346112936672094747628578435467368172383912580199826522198070266954778859532103586531199657601917447083703287021840912991447263965744717347809765930927184829640335080615611936285423126016743018659276013734985816486961364445954658819919032055632650984763274674860074900069838461289281357750826145227512303580441310789704445735829559943349886363076098283586563502665156357208740472436205896840964940658220789993528637363258438284949502507860645928730377953831781333474988821495405124824837828456966327701821918900665725984311760329428044585726966475881941453689992795123757389504319220074736893541313382636046521293369954349481717691637687461448379036807583699583763493370930547350707375951476963741325574054620860303937373311188488927360220011846105448755672719306502979710689263028934166211208353410299955996772837689759059110905218895912652085220442901070533376368773915042647629561022626560792298640484511498618099983398103949663815897108004804004830192224118102265163996284552661449186962827010962934348670185999860722488489062906219619277169203619740918884022143682523394193022914960405687102338151980902286094647469202603309073292350470249207881907002858687419646931019702538623506361458710108484641151341401718277600406864938215684433761174756614814647411987098747312722232418143833808034117828608278710775166117145049707684446223078404553069126449713344376008018170395582196514587874917254319654999815213292194461825679045988198373277718387993467734324750107516858505717419482360335249415150220905961356748280667269263365008405532034653680210122999346121130769101243192635413752240254202060388425545774306340965951097523000514363930047121844643853148785140657310413337809007081163484420666008746987723331144654580964892118659941921023899763605783900896820704830205433822276241959945865575368721218252242285887519245168571605257839028606215396508004716477813605719022352548657093156982704389515145017299535725839334481246338461513699761807299467284572617466556732884110242512293719101953146138362315696787129851597438478973968602068450642059968524779218751952094549625746070588104463999031701911420202359509562400965998732243088889034423393919932864820410498164105036050972909989315167208046566731284981398425198497688822383435312092752092104189806448027412349289239275786762159115513522892430251364629148689592716019111834538760611188368577870721366853790393155520160562223383874275941030285826511684575271243270645500627028280388438038397298649002464117294609902384541494820277470886347772764655112021688107967072262319728731909098204695626400034401164031044600399807209618575524424735541226642216752475538587672230311513901818568641553758957730754140674722455940156018349667061342289355606004848416518604211563327717454220646909595379395516723383428564555149122972936961032209791604395004114580822820631331926399407083064021156040137544342080311828662209590915631900972907263699901856732671934369923140823560494007957748892467249624011677164440420858400660546025563837996064334105741541260597490459934885840231579996780220020334651916369299329196982742140086367781810977737943914980555114440064726938743020215155244402145436184794051772319236383817935571119377111481824485230055783364667753971529464294378790247261698519220879584774078814190218068434400086314174552985020687677484337623458273166426623454551216927050119493044726070387660515030042853098835443503653966909841636795363816038976058134924459898611328812014137264221130452192084773810191122783582820016079982082515652816031802216962274406384983423307067605804935143691790579478218880870838233627042142839145814013866223507979175735898594056475887687501784118355898431504254532305622920502134895271990539775764795487144809575333885463303436166652378501225082063532248047742431757497256461626399871213702462507279717119027663575188998523722462350576070971832661801799453296177097995129622591211467289451636680290969265793350181035837259716383458368166957093646658224363071276510785801724038344983094866929264279366457916066706841776981965936159232930848829689500727217080982656996689797515613821024304388356808273678433456455032439867878512495730635477395010953925467597011716495412441593847985904819593555084755736876862390189208487692933295484810792735677394496043964624546858028466992204704200214831452170607134054000851571627780850810093603168242670896453530721570080173980774313150903712974166636896653747510368111274301259857159300952176464173202317085180153389553962373722002953816113660797875983896725975260683746095195725622535174468757248239953556913561614651377125359516986073227131010345601313590734089925790230672206102349158765593672990849271130847379423263575069678863878846576494357698388272277499338307119697113428217809901944508360495957117307508674268643554798076618164225979461268015758850625112139803252573166668706598987526862945473739332185820771991213599625455414697973639496293949089823291402372841723984711104583054793631189807814024415550495078195254387386813375237678345968479924888372539932688251232538180503032222767018465940789225675723409642693117280414191777962315766553064940972675644549192678778879398180908787112476283682166251055010080461607164000642090125305162576930689303568475305037323696227481737829153940339836241146331644714558638334216587717476117513353929023303142526139772727647281221837783426297771077374669574376896658055802586514854287058590005863926731765039900599877037488767753014203803247928882500989907631269236152856786323101540651253314737591847605272705676571640540921323692426652737036402343696558159030892189415727269014404495411677891525305289941340187844806644754362550562107822152842544285499742826978425229185164952990042629452765691626666872595875175872234301221687217892627510177130487016743175284679349671987163356192418513411434348829044124169820241794576288506452761904689626650680611140331212443617594761046135494739332604400948334298072126042685403955883758532675628404335389654921027918973921151865436580643185115546969288282755625128617724479661076197420014030070766940114305504345440112182688580968333080938908762607373413576267888819124251459038429536806215928032448582860006799720211332523889138774006126709934038814746281502791773650129899264165228246827501794622884240546904123662700976616343854524879306592513678038025416768657888262308242158965861334693665042477325256823473003823953587081680547445282949522862283101587362035487912203427465569768077023700735048861614489341928053372622276716414978843293111666403346741354960433952574666832767167935177056482499404139161381633247699538366301499226191382656620156401346815940247413653441128274597779043231866001566511881836102318423240023730205719218668140705177135095830624168882877551247507938580869549520280577660451573849147394706142159325733753759445083600842942840080285932146575456937853998514041095174339664600318898181622988052981758429307323970426774716946469546142385621652859062716199043146294854804695885110160469403493467060136920858654394412038699115506154603801926533818157731448252803706076587590054724209347804863714080601797172354340825892243256468147521057488596318701387970214142073262195842963517758404614492590573784029489862478818156725193102609905130118922626994256781052899338208125873237383488533802295959029734819390488231957935857688751948429434976274839980406843226436338839699507615859672262280631582744658367933696461155409875626798252284317198771452112232342461230092067310333439913038905164868992150402875621988102739545041906801962849702463219002783004116028387958769241180277547178495678320119442335354906399175604906666792296415212004279416773522861139056865228040341848388744098735958063096599423409426429519923224039385747124808940254052041407770784511178267686074528978017612374717658992161540488298780954833675356069282486155332050249235452212662535622770815713593531007884334663542212526860169779070609251278461908193976686588294373661551266389043341497154592826992064495934208466844924274789717312904425484470102946965642764608316611802218923860295285459888059750929342616808208425991806173262349345157916704338836352505760639920757390315064497743160650812348767546605716579484567680328923318349178230188901661201914576516402420337891082670727740959652888310004225573369884734575312754780262076499018077281268578021337515973493108637913729459599451190590508555793683522947522124225420137994412534888958440566471462945892781850065437721409426061163731805105627277088958600116943927706203385365385340700040764203593817508936034618474107677558239913492992134682482868845871559512489517086592786422278615598684087574639904330151511592899409362373863672087673223854197809864227823890003225147336602170242913834431009254742706002808530820957324672430280342349284347050934844821499516980694696365286074423539774867017983088521033058946052967332384949461280012414759282069952959775597187205419761551818134693656922021996654478363066066286172492875537042085143351105373506764914977357447344061967514280444766344859415395966382900254255291145880654894187471616249034408752813033637229478220468346794683161843041694943160419685924108072268705007353817017564760662685918091462594437890800878510952535754623428298289090624563484694749315890824675487332580506335003920238099184772815576828017395185972490713691231771045915805105177286088991717831526877101640742181285773578904164235384429255339477211607439825763642534742788928483601651487805097051055685257701216713365496078221373728183622813270001306095104515840173987286579280030480545455776657379680814642761859721825191976825323958807007500782292125254743129489020227958522352456221649143775322986865921047829458898843297556963932012889758204204837091560924767373770626454704689892302054567700827942551205148115235548235332499261240492024948528280764328950344131473713998490990371414145045345501235180637929751783961489888922346518383101376308994653674595524672179729748769138716586645581616201822365770313420507854821100171252471887016686480824435158742852789479519559338537955876436062900111998000634648861338579880044119081920885320435411845180747953163174724694376972249742129247292013355130653457040602810887012828685540665414057941049228780114489829889277896735613202538961068250852595027083896773904597420391076786064104823457181575956038827714661897260203852394193786501777031850744144219783383129876655027080628511267147106012672576866165510258744704908391787159671650566025779218486689504124903804621507864500606699293589474964427396131520618144974684813930942268732626017287467459314284704907859651377124046096404084894015405870946953978091901570505964257344476943646106327190078211148546463130226775129849576865666182887236734585281418797594449950147059956008274420956429967658176400549841202188161415000886276319181981932507573867694375744654248065590158510054835845908041430855517862172134886143986829488443491987365326650925040630146909537707416383919914740526646489231036115811204942820950542468548585667281400626353973284715884913197438183006947723387968077692099515094227946838709566320900289245477739493397042342975089369198068726096144233717298199521267362202532433210599454517047544960983630446808391606726602415350834447359383179206588138920798922604012162798170419790710894796632912681273723210253061974469419585343444382966032111583642020559800483845344733901664373458333952416813309492788838452590423297090190762086624513781773954062023408647324050445230828670206814732395870297152312024389508240442557284967865799482807233093778683399240339735866072813352354966840751592984999109062416816140220679310860542120540659102590580681019705797377494041086922986265984202568298162990983827662986896843298247017046632146375661909634005629005286219861692484898042885979496883863691204352508381378635778545742210211286766666166530832978209678872286104272751252179632687710099166982451110390521240059868996687929955000306870116767174837989303504144538855069836856302787172046325946557043600591654221494117054847292043302774399046926642221610435044167083648368433196382363395955390207616876857418559654922668128561880612050030446196949931702129684807706595742019757312138669368947081541822726478429104441715563316537080847410899258756501202171187087921063392690802722643408040140760568570661908328272148033223975037962819626511206401923225534961881981344539972080014976941715410055955268382766529207854356189334262731321033659233233750715187220621220432857114800039234632726904503502284308117224438236276950807408511630488358349554112712910535120255322637993546362704382836723904343605832640229207740808561585175327980003084296224653809308554339611809296728382120282269240417886262930911518931710360044694482124529191495989608390511455206771001079164917906078304574506808071562867411505248997533953299790940875218437507126302416713535777380849944983833693589504001464146606598218924622773577939033506423257559809279427009529927972648038290994487099765301147271884188985502051275503382211667836036938801976529666359494626844058372225402839910492003932120960364754452900949373948537524652034466535863885405142248947342503512239774987829005556828799035386122429800625919913818817640389634110266882635761847774853506709876936380418816367429706116475677378188036293969627881166072931472240701261000468052470508382755813234840671834855152116485704285338630028237499224021721267496372673712058924292563957851239882548742201746104421771805232345313667541088785981576218917963222624388396518584699328970183046301325990627207312982716250271637876743788012182151383775559876350821658402878333003574881257282729434869865199306458639219608599342741489929001434550043227527244790451047238540089746677414518046674830575793748103151993524904708329422732029021809043072095712349070496720124063346668213211081966002367911035968917398822677586968501298444872193733621303389046254328184845102557720102750555552443739893029199061488347839299280144765930328329374308985478934468206912181318322497023736141313850252243261749147268407586833313111695963062832766300582342353732949335618813702168808701973755261350640907083050335976772706793715351406943638047398527707349016830666789992347540468946185919221602114638906915516384687942602987237432532177793892275540178533699557211794153596567798464040314886847310423555121668985362443474479930128546253286602136798519177280656042672830432332547146148706041009964557079002301423228733336261645627975880486142411199955614131632420940317830452938233294878452055201116630010050751019834415043260335137348357070209862052969065785824138515551805552734384057799648443750387797526097167432572408151540658964920926055198665128970483962182609753343644043065934799045296609978736565229310010275633788085746157300441981211388277283196706905840662624464748823698654842446408847243172607026948510612924163701312739621251053707401418770703857397672274923026943524903433349527209472795940128910047069220178686344623165726527347086065127468513687162903935708674737981822466965670197912074867486193416653905724305049078098275358943293651854919238204088585214543034570985187810341166037268846934204589016032341116404591593832184823226654527664973042598446247797844535136829769022471461926386101687375805708380700355094795844342951656633815739214902596128460192983246023577043999070885005378061450506710925312830050480973295877642520755628454249874297862642757706212326343180730637705769447092044590585376711909388539217468238331462925410261983539686411491236355585625881612227576748458360469135744384005074746086517890365371968315659533694898847020659761774834903962505893485518819173408675800287761084106106097093601858703135241956802863288569006566617401203616843523246343336686332589722627624522138339426976792909604983269546348132582251479748718554957301095753220845656949691752802006919241599485738663371668707975056421564641710549847563649970013996543633158103586425824682268097843583845827870535110529583002212964417670601883751892228582714870856926447680520965358132355489033773388044578758402674999391682367474681074423498657007819713344333282164465807175371923066380590014727866789566898098589813580454689852183193733310374249541326724724523638067244317907489064891307925850091015289671277336577932309270449439507368792069569461871447985463980381433290468598175160395515460316269140530149635009058348052038423398604206754520257538172903516133288104527891678399021870932804569732013926780218769768655074307753145363376002624166662243379122793613084536937162934194785466706139514145490211953672632545766350361827109339225504053827094847266063845403068234198750380156473779062300367196434503865913615080702760022288959633233755530262636959823044558256791945138368729665307608418249736814520320105152387172219180507112340376455716556498666847648870594050143288089388565113218248208515857614780666315306640940142699737465863994658145457423323863104170000036638055106682470706221135525624363780776225113385243678924817365793944889651938257549558733219484470040862218936730521736709721091570503954410411843952795825610815960483533731004295338952583687554260468617210384122121120259691792066242746732307808616929322101891013425141245408153898224389278612883617130332305415020422216571546811223530590853484151985827705683342172454461710004170922038917318282133085656700552085100540422316730869872724374431894119137360658438475605234831995010015153879129001699472972516020215230769946321894306368549593747015610540281333355457504087435576498179865531023186551380089484480731423557631778686378122337726114771136921374613652568816508034103193466711778724095947500985954959240632267277043887992413957886728818948620562485422277299638617604964763304533405065602134974314934515243207024117620703418436336389550895820367146935186825812082241288270689227710674229339479327055578863042131666544610270682187184918411724332086620097719236826261466637698546299479925087720643776692516606178593942464978334503594890596592347827937251355033234740090511619405036747606535533651442915615019107029324909752645517926101004402048373250296281307920897617703122265813563687344549322143356234142148955969086123033417910477083981101998591871447900527424927536988930576684668947814648929822652264727221774381155794891739919967571378865928901342631328687716287737273589368361496212692038050737217515782012194998151838042689675718313213629006490276052230082606616328163590735874126185780888871993917034126541556985194568284287606325143984016692879571648941864452962640584413630738784600404758179588154923286590524465269287700945351429953813818511911356449948688968537074960672447754143676430745721115037947108370784061309683933230963506907321193946659722298958411469274576973609054850432768651844486702022737388064462847771499070523395924510938257157943124573843131762594273231115857607646176701582949098481231193517068564737206475367054655700815687171978926832256606357061748011141293407608999055761396164954471421524079299307082533906584134562946601857032000835743514501142294298932195435790847739316954278451140637467252573761267455828782657595630693076398358750792382870579971016837782692954218631227781638409978063468902228507487962663774762830766112064809611711671572636136494628271623170167367296098926715921661094137533651892916971326448153707499034699552306876339691851460212752583415882586923366182561907556641877627647771120123541394993114545006819729611918593355127103418891821173973395084448786847426858655058795901528180087229843847193169775201107316205694771176380826498115000709134474841893048983169744420509411575250778733893277454074952807201479379930645296318177393121032039581892949555208968963623276685511494179764845065202533062488699051600074669113430414568831006416656852084036872430648109197262143036739916784503889971408980574953733979033173068756882780144945116266803233835413471741900493082110926578452568133842406651411919900686464990195299521816042172904420027997973193172609029896669466780305321999732321775094233897749675837710388393675203679781211251385102284298070049394809657735123297353914285885791649040813647109028269903081647049662276147735406197441323544542975708662932530756572559709367287755084120406063683801748235131261065939016406753454420945370239605281512223022169210900221945443862606077861386791275998368605171677491539316607088555418686726679848028111707113019987065662188606261853352766397923023124527704861064657088706064314195706448987999436390131610207980199624950214988253425464450748761432552727835426147454888210538635956228673234947221367761368350232501194270198667335054635227465468565286872451850420020470191808295406304361114391232181227277313514699412582360657325816768072909868095151510669497710917587056322098065258142467404071038034256606449083245174358037932121867298193350954190407448057473416865844662810141980444461639133187613459330880689523536073043004739169706406021882220907643468578266259134515683482956546904818876969491913538498538337037060219172038461016048695446313616337049066612793164137711803886271086117922984849531118765809048392150914524314558259619601137550568446816132848624315729425027388250487466323869365853166549905277213901318590181082248219501422187169751423604419878427786730545859911703718447635342193730895263986076809833887405045785319435889711006766542978931850286968241006272293942373482428643354155076890449526787568977397717383226030491291848640542605218247773304600444115221218570220635296125240876319840215841741356571988525003405630792401681158532006859042364966248366613307210767977517111714795921505102039811861764830464743252248858373196532778300873880240011069336447889111665589290122397850295604272899727070713384083787969913795734040284891520589827529120688092479708347732965065572579942879201703847035891207180767487628260149169497362228150398379073572550963502131168895623586893582639765589277448147766696819505155207240232776884294595399303275014077801842189507300537176331608995663452437265970078201132684090400940875541337590708821535828525540540562560460353257326328238477274664879300994878308836860448653040236369496472568486359834380722888468533326582613348483826174435253712203011268558592317715040376384723121585500448472371587800247229863754597761803955295719087804477395255768872444667322832059298916198513762038194439118699134816812533759173141494223737294157066136699419710985173658363861233024562505971460287016336119895433265660819190901846122984471258035497822322087046978332986413506198730835175352085294748805339638432746396178511323747313174333340526186908186489902826790327032746837510162240192223263550922674540729990939518278767303574485502621580914317964577815971985395678580824892957913840118535492076629716258579306391249605092230453411681233812049257679668893468999603074091392474149510334276243963921995644895408028278965351208646406001545116451529013617839576470170942577162167337002986648510712973320464907031084749064562459723191979208482589193530908583394848500827456079063492537127375102263953465251627870718917536458641609394436237000074422730622144616996735348357455233285700038105922184837962713100178012675601630855642925753186361148975885798575570734653448870609797858384008523148670428113827686070775599933292952012756834244133748728810494875158624942990112642606900975092737171667697183098401012908714621152514152527636451512910343289560227870320167429087144451409892309108495532888706458947368855422171617480399402398561963440324465146561215442852003394529383107997991691794880404484818764051280604214502049310724975975495820546732128805635679220513282115790035232967909340293533305733826789882845098920358504631114631851857471905265066995643414214575060682460619699430118711231964287824548435919404577281026749772726483541861713683897160701428611696733603616117333610531492579276939632209910231118041130325697092866549520205573011014165793876944247066917890656170681815183083025244149417482737286444934762037834057948174250273253083573089831936364509817310376625009720431704521962934475428116872556669000900724374849292823109410829001635795256556838602036058130962067516108771551240414558401590705493682364984177307013706477809768342895047924552607914308085036720157523980511357567804477450311272594317832649456030419353791616254031316392250868946629539059787105768102719107494754333572183086827484208838882060307230800919318496109657446213888181195676192668936965012017904372047831481439736171662516349981256658048409877028319149568712809611500721866975465536285273395255103150815532275159007697585260276625961630596096271289535123463506014704533761340976761901776448193182683139235890944191702190103140283387846307873914551183942044994984528819814441558650287120159287325866088464778687720822049993360531510637781589661826951820090645141742997926241283866384428632365396662337428605383248510518515235811370282095173770217154363395663623576269849065483713052756261804035418426900980962188384067315910766333559108583777962162330629657588440627387869645408400458606773329989247206869742199546194934396037655383333390094939667456874393411535149257620450247705421293931753883419863018840502905758560419078857635882629978857539062742567752588830891438197009417829827675243286319483888336168151143003607587090485033818640005630821874019673469864090419178614018258476149395303237381560742237388941615262557170040987469223350306070178996997931247526762608147693664271838030555925013652906037596965824731069886274356487190392672514530670081177661872015562337126214174773227383474328183861365753949451385947592862734061220165116901748704172873259690902203948856810373282317654230358314942502608929972291494575732876629222855472388715701088097606994302740785317623790333567280115318840035068301825271613537141686784551946925150118064280557311102463815526352424960522687076949329487178913519044508350938553985472787117418872448615217128364871493208939491387363987024550711234018538761815319503102231931399277741382185977436382316236220902025266440676168804317602122581318885868322846872120753005642852376244432219439384646917628793632569172849043657430736546243032300825238345197319749028325434381843987994080727482498833471681158907901898183930148400451980805429920424391089727019897612541348002687555114819614749542837923207538243971540065105558994730014704848311026572614420532456556501306017484988172370725238515307722275440073448239933317540768653870945104937649395636321620289754411626855034527438965074495118366386650813580696891355720611488081798979265884695107148913949228074098292221163590930272003961547841681984341450143898547718130408469487584521543034038252287418942551300892320240196145209274105927947307641853934393499581328310482623805535556883528336361145836182927336299551801027529684597454581514651356154452610593439376109688280104046626013648408680226760615292087590029057247614279872715834308982240404634472334983188193690745909591808484350992637889716562005193851049804753460501248926568595253679026245080025024865575589713081793964796970934851903523655822373813544906890328172800903669745174049212824101585153681193875525286977727301355467052442127453701386138100886790662937162861846516246717045508621503871589307151126875785170959510752567724120828362848105127554324398550334423093399447230326158140674015341518583682514960493394243497726812147492656058751892310507487356584134658944178402973651322460917059351109406577944882751737187002750303196060052124435353764155485013275086307898128252847270737516741256519584707735637399479757719846063539243401964481321196816715648079697315754083326120837702147604225387690154399237630868082890522366706512377142033863641329029799349866170691070006417706111471749303717249532162050840150858757998082359296900621528987829249036199498747954136532143380689143274846490630426284556962238953937428284872132159838794414309448166829785376447267792006633784916393254303229321956823451170037961705581727544659095014593942070142170350286542102257390532172547256249754373168993038105831380238991523491974805504421460581581497787773172317736264452214797665201934945380810036072049907229270598125114581809288087633956641205584864644357587763305674436937589658406506058226624353665501423006343686708581830767512928007122373685248847384538984169579096719111172597747215098749268924776777420001018565916397674612177112753947550453710477039042622273734350490376467006772908389832240412608934216143221130928986530718632865980355187930520813403374211921420970747280971106543887541688713165814630757165179365389866712145609164854908921762454253716759101511944767527432899161187824278659826707890577031971882589507252396922226015336616593488778212788956871491594928672792251707542755055422517315613346300919396361993244849254179617924784219727563215062973767814445470408051511023646361858333446023721103942654914337583071269668291058759888187547211510447076185643410566662223850050297002484304967368178667128927467791714314652755993042308546309984424001939994179486439877573016138421321496720377756236715311581829666891171707964426986148807140433855815017779804732065737395575318512716242741141189713970571464211184219604402991755132625225542146231480462981364277751608981846301511567238193862012330027896315415420386634087196859570404678710120492084613810218814876345161758711936604825817572843403914696395661934069250150405667108187150688154169433655680811387172040082231703736085094858491525589412428394831620810602118346225037214724167906293051988688394011182655868870213697036586207445382244853620988604438827256634282148983193815069163901852650007694569012051464177149441706010913689596785205281687012234384926547288337094092414351205733947813793298480164375578530031548066964098739292259604821772790986048005526004834669580242622862365997950133006584181347252920171439094285564821973412980632342436192887634686339440359913579836681863201258718916133744697915742260452773637276486677400380312949326635135045965236745619362348745828375496568437860234221962092350042161096500875367039922772370561268945197749042562495324043284645730627666156655199160643383319401451685626491706246382314854431748662344985758590438843896280199627927823559695142846133540016437361980494930942801396366765367851094367206375592391432809020027481864524787904301158062609659402307429835106202487515578502085233003016203387388467914967442604976776343533897471142171736941398128590927742723715032822960379048128528744457021769343777013784741433181206275314694406694089164228232903181581182008126436645606906912473938442197580434235336353134891817826523915890834108439628295090759184502732931328281695864533164666447223010379051746433871236386319191398512485384666789887358004428746299654118070095665163206554817442408198137345522968967869394321153324793354201485377398678560522024908367962632342403254027424558414982219175279870138458624728159861079060439416589224540138221260055876053959482510217965011311506815673756964405505696853324200031825392860351279347166244772430466094543652135653688306189957290923750011330674690922564778221057547881051428609897028302092654745347863575135486658877847439090679115198535293159239872637416983916760554299466074287387002549469108145989051403456393216194327488310229092449730119829563656113324784925017935912697514533105955356986825676877297781396852874857740026172919616455344532447196220951534947238113535192695846856391200667514698262671020104242170248473216608406190378398143343947363564800916075814454596761011614222464782722814776598069199590298313404332508804224284769740541046970471375780540305745195121954405787286760148453927505486533541488318297896421708063576939883869357121386574867326821045784139151163222703647373692542373861981395808009252532492259592585367817950098629347513920490488097960853625339554683099954182231664046982872811287536777335621017838077676186886990754852369488110503776798656915110857638778379008440687629856428132113288427741906327752408264231031454728669309319603759720221567749013530136660787911245652003516147088423111224621695685330872344106839118497562951773266817682952049097145885856555108389135124033799099663783318159794839339766515609462726544972944889208884426117087325448525030489767954276967374266337229490796735870010032559605257910242331916022981198448305300503440418141876852890785052421850679149530587302978214253284419618476767425187538177151338444716024562952576466402623297807370092141553877266777643798780630246367057750370610030396249293604270069537233558988745555449723514894495472117082514514691174204914845350776693233009440392095835834905189229137210112965166951947028866816980806557971391640082773631116549103395874842722808690781566993370269787340481100458503850765495559021241488827126725527295226203821496560222148703787943085040167961023109632792554196683275325305239178875175201211513243377225759454742089681643548632775963343679679361009821503255429709765149533048052746505073543341076400990490201395376703298460469613594050628596755062047896727827703345690362802064884833587703867388291522964357536491778732988848373075672506674301474841643567660993916993196998817448526126098542216827282648400177639338475201088021918594307745823129142465053197572095196394360669790048302962582154014975233093941459294979277883984917283777571744635119965732918623726839769275811427525866367948676743114012185867140724614038830779122268150281807306531915074580134074741041364917636737361330780775987114734684025227590008335131123023224107193960033601271534626960272477956896468196725504324496854525699544161789354029965885820375354494183257437152472077931658591536140003130509276432117344790873498609287546086224595966481158289022835599269830243816319004988051202054800947482979987877828350061943469173849668705679325166412794957084378502188757343082643816221517423050084841446982061855543171659959421029315812080874656318846593929965666128959508245981872227085495273057081613083668464116183507966494052243183388085423565048823535649652445549698362607190142348803759763015959608779205358778461744561440398238811954771215786697398825362682911974802509874347389510729017332939058462548616426873456691669833556731472403796358629921280147013407006495934260391473318430034664517214539763453275809118628229212288792862826883961138402317182719543407909015525838482023451410793771503138170316907110412826269141914688791783026450826703212406191450544657405129574104917145642082254777786508818763032911806142301533316162334877276132650528556604103774627134919544219228660218032500174277371014914168372300608282987417230076066385767252917641415267862938095011955601479421990625871661265556086862655868556349019369556154741343770703989042030578170408979824135322735551578281234935099881357433061319661715415677226066137168379514240112486953523466935421566675696633022799458300217506801709972055021172835874261527488415581087223157369205271966215339544813108670798184453292100854073621479432337492663396835284772584234859722261556265646517110428548952480270692692572976706223180658990238471655231373939019959865127051386316943822221644514021500755048467444954522215404889701754280924399684743101709938085218114778865572329734011798825893240563756728114174553170294148620836386840089507183087271462741441548548879633490557972818203618436642499523320618338299744982193022624064039564392011380711871349815886720109587598179299661335260664111594142369285896228882373757235824626508435141738802487082851497051289946378822850317116537809709338316037210116723230825737852109577745616680355248773958645436829957146380460261148761554827344553153204556171991388918228526671448943021594977505241360597205644505009546069987863876679655105889857381804629593777165802824876612083272032100276222992227043045044330542967311989217671623575670445389709968716625326147201136906331365426682527263476256370942477661368055897073873752350466105614465621318550583731724577784564000123997763421680308390210680806049302185126622280258334599180487900190428916203284456821864739033017765152241985012560190178124072392155628541547967962265963424474022551644366514829708503390287210388279486916850521747783569297478132167004549259715591882876219304511996360875812336408314405084426111559481950527974272637355806201711192964770721737126579195676881210182926041413873481555635740682577887330180963344107214565479797643288144940645712962599849418361385021598877712380162856181504682464444125622232645646497596568969003623844939387452106132115940514121271072568516997921961682720852504188366392888253419702716467028614432349994983883869379507404916145244671559938558959066142736018350094647233819259289074866423334122925189469717631572068789207407869577912871641649893754544496876212078388028045613320075719334282565277425977932473027645760688521204539356620154673974338466017311409582721705831390519642673472997040408570102161211567905233828437452061077531666999367238574887037850896653218402217454303732304754175216433671385044976678107577269197643094367795851078896366623503249504828755664974480590432372197932936301756620410896646614361551551643190076816033322673671277585048201920633519662998721625968204187183132901602551420912136468808087779208231883175616665941081011202455440241713342044030096943240672571817281206922365450204035394843115052733765346232279329480806952365610543186992595763116731902790074780657641765027813783551974362966050259993967324531384604777505567884030199892294459062265225749154954171503179250756560006736144437582299379037668932478597902482828790257328217146345551671293575564930650964779673348237891602161644278366513297032307803916556226495270188356287202109038599198236576538940620057676768844525899447097748138798937411270846645665388376297844114586607614490970139605767730733238976397400441744186232115177055711263755429147822548344004241441650186870817173707784755728072272914737899834261139872635774960604173038114880499075658564289533519661773598843528106746400915742525703609392207686710854526145045096393878360487415103550842097861496585153447612462381091977703873200089098195178492829548284435916255804682869790053361869271522790501728677813787305441887800852620349908460384493053264888878420772047549453744360378801816985286803639688666068620453207347196646798954114653840511320273069668501491807943352402981141843367379038211776794492403642001250195736132014613136499948163410914232442984211823955135748944411560489873267881111584743195118826898809341319743109509009292953977971566131385725732942166938911689408074578015854720207700196476979900389712670135246676893536354526503131419778200017333061441823389984599161654937974697865354178675691775416819474060559113637561764549350865812294182235803858283732072487297031888346275571336805543503338603826186286165168955953344900983263641109190466216811768148018781393769254077728627022277881437344984949819608563688449841593111881135948288415546408901110405458808182222436264358610056345533389837372718266331356202322712674409309734845554758506703406814897691429191781303829942780666759689672598392998196358282358215212863674703659519332045631526729948858075193488449522418465803084995768305464006522293366992529067819613685703668410028601729646278537783221205777207398176055010882803776761005848318041465133879558011342226982694326016391383805349464149718588777541508622538177329432044420569420662232118346634472358181156953600274434817321346518001928371079866042448044484859652793256015889641198080558173439533241410408416680528603250655039299902918796527445633022713036507859307832835437868571989753211601554016740469713802454306916641600666163621112378516394928310759481422681802448437709991947231575658948292137264504542857754354447522114584353596810522610908072556079451905852884058476946590079043328324340366242400491553510102542581557660812941614601748544580198404815009196553500470504422707828966777199159328939050056249186088231944519155144192191238127335643433077044578263885649115381766831872213503963135220376306116621255658897302386516556056028216896818857281227876818603485071971649144381618756642382726630414853076682799915795379733344977507041688807325165644071095755268130515312885707171261697837356715493777036106543741172790365904849049699593314685983147841756308539461914188869312097951421426926179669782619202252989892985533674679741775964230249829634954929091960202386703791880233861830408956594572150524122932670822760391306709929914204311232572491674656791454326283904741346375589475894358112204153949304832597956538194149796598015938879303011854593489107072166308118227064097779314627462328476621684865328754840341905151029632266956841749576398644016636815395840014402716467607196949901859324537207090880984973871662596470559924279132519374633653582954802332084096959817037981255468547543138720731369595563047301445922582554220782502883775099486113151561636451117026692189422738918796721541419881758645864394182146747576208797830583072365395191312824333116358994418231700074114360909410119330232157869426793461979964021443991592886371988401612910817479413581015681115793550443225563200250264850623440402636689616020567700721809823290251232500431589364115815047760720367370465320189246807336796501539177506913653268796168202513000443330323160190009494020598492911468364520350258693927438219272162877900499520606205209398027119491254796987732630177709728679844888947550017039551141193986493146707344862262421299545807563926922322729935717156881628775031630345058445088106101776884511122577782851726679866710088364285604644150198138789287049764353153950999015302576795134600587663985402297904164825522746082366891060998923304372168520281285258557030039156765070491522773167522171309651433458213351368296742089297534452095348173110479608076539941453078237889814552964891391617964608351152349594419825071712000217636615176657494391531079539849812915097697985830759776942611234970507869132953019875244360577406159374631515523185646420682807193100067884823959641176889353533591311320224402013654699435415888869618205864132602927348608252165994621712451002525126748624718759043281922836192616323096851615356692841959088866888461439223374637443619695520521668807060950736117638084645305733788373771461328409938729105163740028932317310095893481251493120356275393900805730133048788800663580184971374375382361272547919414914427490058644048078625531237977007245556359411595962928976813191933146623090400272693516861831042507851310282046806430451164565818084662767695918387806268308829318291867838324349721210396484265397870333953223705096017159127842163961837327465140561340363557225491991723499432027289338231930987482322262373499577516668076938236847541864383089148754149271780672774840250707267141471619607371191679439040592842538292747284157978992953394936756886155985913301112221154591137732617422126831645873678506395763998822546185065542302452970951652746403977215885230290985115860156231196066082630840936438693369517119709274214943317606741076881128991858773490174638856745374003166898789246590205302622776368232222009658735864187579049297503733542120711874243542404746861650509148489597023477990651331953211188604604104090652330698541270118761433548439992423740127071741379233573086897479805617922333812060455566076192463137050066403317397833434430003477757826850049439553844432722596409872474946824245550870994616749516755750426582502900384949484639208214056854481937981883650016867560906892405423645196651316558511248382888571490267623189229580853127381867465166863376526393056430748360788158523172552231786732985931706278709244647718266028874957994762782032187740728131790142637447038811808111713957696245925137766101570473035242925700010446981959032307058430336166655812463300905779324566842578017584695697019169036365279557361581914393051864902115193646037357657971935860686756019519737418450294649819320856741788606075407840235003564271742754620047108960439241618463661739950542762780887975125269866711928676687985125980950628028867741269373907617455013307299714743161003090367271028809534032344400429066254745610640765794036950642785910940221102190343799700164097188576055227511800685652836386900412579475987173776875420536002458517635878180146421623598129218806402637637837066412387478195161050718372075965345942566705050740786028220696680324122538930862293333806246579565366455729679493908612331354905387348725394219115738657833561655935852856678735570193034317613583772891934323268541518376044502108914735754871583447768875967427692006569072223070575283883285472372146053965372672712313616879258023643103674683713447843763821118201582194044919289189742114190352940778871242868612541871767612662966770438159544598674023631324246847688302704314954392328980301395668304709397990653008412737898331100040215723155140044743549087930042645682763531754692681020853374704364265353445985721868277015803483398366905092847452714427724825791662848510493326255653597984698993370086629020025834242475255876932531970273333843800507482930512241485623013431668199779651954091753033195001265626089285160690488427440455693080127776175389207990583937184425385274410987746167216895451291055069478521604396926094875771134241994715881184328113827005577578382615395936229913406121111821523624582809917656367810406118870793104505326960173720363108744444644646961819938222006311947821703411554443245445690594205825571374506491265083217615625639640497446184667048189977941532645701020999580822739495300007862004554360252860522972742458932834545950915275229778256075864029114212450425482933182615230078126867650022379006730017028868218855880101278225109047628674789883308363076318899394983596299403076296814099843401359081570182921357599323577252669677072250068726283131223631992363591086317514970922994320959445004816340276007090701438339379210558133593478106744490766790088913600990898350658193856306438423442277832888304265073808613674890992858531945643380693704312554951216151709903665192769841182117470891549699257911873488544294808998496601101038802425600349272747345977505100087311624193947734684189524505577903044732353014453474204063978230321628357606457688613626101879951113083525759607891354925588262657743437022516380404207914614464048067457226724426048944473027251028340430958577321566943974314989935500778209556287171737356258374721480746808405052521651086950597075766590704397327938775006015659861647469398850534829793217521190360309777826663371490131707189411256771761066180707774151448832209554262710148045251887895915908145523106770001636025404289365328351949872662120553800613267296985309176619086211205088068041514671232848305609168194220404570032618212679198473661025688164216421521543638971878830490554427169946866885672786971178783077763392480294146980634887865405690330886191342192729533445151099856615308671937395660135982883410550347211482785941113296856747696071159686229386380378617652000733371915839516202681829296062404877477873870622505731751952632954711123781667980016852706964401000187793557987593478511786524688828727947064012500377434918889565040563477448573693402725819086936974976929923070548080364601188950429841591610778025635956690228298630374099480391564544190313651330965463213852933691039122662495002195856985335163218472000945344490101748701782481976132466349389598086698403719671278583999644226934474856090934075995897269185568508241279856980220033768817079404726832782131643023530196433482851294167829754128475950260273611717654130596913034958104430996505346589683973312194789934287159658646955652359378958442837090852595386865797564326679258018090411470572503233669607018883513002021471930238804065798552198275807664349594145992550673476879337306476147332357972480523371161663225369094874203291169061804669912152919119655808381009672394346241630369866685146578155708226588464301803217096173660737450336036711595181141401077038932784562614786369961184328221071470454583380715761901046218680858625355480696668981571785250400745707624513152303706973520743195425456150391738324349717088202794475136508367648731168520081353922476891493233656019617161369841035417164043037395079612523084788418892472706003149009120844222415906369081711579403310592891148030695540604962590816440545675328828976688568411157000132648503186268740944398568458188288893498509753534639975868092925728972939864807086211256918659882594223815817073815615169387372947136244549705551597522658843869756786615967742027155993389130104296531304505364586660689212720027972807896432290254030379994212404420635756245418967645318982792020701488792897059985736659457276710683730732120226467686475432158541020503986534115381005147641073019532190995313125875037130280289616303342509727752514158622790086371794238761402881227258076174759933648942270226370260995084783792977120734101432116710016432813728784023550133246227547094743919133962650859014368401580407036649396851099807796409611512723696450313095203961641572697250316052606375225067820684583568178448599417173038783182227849882275884628945763135681267242658118905765315879897708833914224466074282597409580413472346326903296930771909313108743489157226025124121004300519828259063956410764374297009427404715129722800019744319910440571036867319033997029174292071149443914279818047849151840645766686934210705955927912670818690936912166347441236734295513370143457071877407335540711672863401509879099540056185111253038008649176256332157945252821287710121526280688724195243322492977084683518446251987184078722256976378220338927001727463408434120900999042609687783893874000958785960002151068165216778163681518532633248593352563832710225960839405165549755745862623687766387012385586674895952930963058253676054115001154835718981268138676326881968679990144758632629211858903168101730379504411156927001002902874037271639784314777805292728571941289488535363314709548902801955419707856893955264563547245301753934358495529000173692158755307638997764789967722281910406763382786406863714903412501356813431612880236985316635584469868514749830906834741464470213918691137800656926435322420750985507074682949363444923700606367521912251498916559301824056522567240081626871401837391340194346919829789351437021322360054974260948927852960326575978280126380019615385997880542950240960116166044532164425043635002841843696487400464840306891149223272912000517020030052741620867553291947466437328469917162045489934039547436612307363290051044905860311154815056273118437111064427333559640306492018852656797714315821833509232370349939623215945837732123691856835094822654726462389371986390701302064658269862967292030753983233909833541417988802146487679196827820676473766284270881402799690169299301654763476473573321559611354454742180214313029619395447636799987696462749039954351437201429029769696916312962287274679489555185127336847768047159449279569456942871408444348778045391481394323112685214709657708628165709044049057717087492718644062621670981947104653916820837983464031446715384380389089060685150070846501096818272613381498154135042294078681170890448318323840630205066102018058401287112511739677394916795550793163543475509533205788742140007406815844243720431978222530625987446646781448653866639298214220070892536915404489434721941225093186430957860022672512000643745038961394494323245777939944886557452987248436579375780228656401983605397645789448153157942539314372073733024099118096673339754877030275051244668596707546140116632383355079742508925296220666046197407559250631759956681601358259728000491489814507074918709034667032850611727285818482277655167569570747802585779001218167159242644407045901299740520098180854307056827675090914537040205445758058617061861922454087944137608376990589948011316258880131125763416653473512040799136091373594291989105174599985515606504476713172655194772603903641649810792490613701871200834732974043685012530438517558767985268919630107817914878262616656650406144268072210594539734946519316780621248820509801731597870160609664428269172178822972518112814446829324912622278298537478507878537145188567881587999725370256854584238610873988033954180016589543217273407299314856520364111885756610744421413868092694838089902427403146246791185775979266642589223049211155901667119654993201127552247088477797018129823121604714335519618249437360676600349129898985660628450839478780748150392933464238033837710557339627868537190922033510727116834219813642818356219776634145675787199645202170078160494414908497792262672295136677933314517412272818969589046694436432658282190808910035402871897902482528434155530100270128462097282040887674321110792390166990188226321141464746650829887623500413473056970424818538924158620566891038403759585733997531605842356480585185309653974181058790776787624525899115705026628107799490079638006628603465137935224200242445864800780490986938131091313293802398049390411274290823313903675470333950535117695478019792122219075248165549409485087894528610535892909233029437224787334471059977877036724834461282946941089484671642165417974704935738116098586503992116043174189553537176464504986071239510207777818145143085297051826383031674512660929880820603291834372801149986728012246509169195092430299558916492828493967655062825538861857603816182503527644557618166807259557914759925478120205158971545502061250070933581113058596625667394549317946156833945040837144482121748853682808000528657090791660175185495542761498206960192641987757684319831729231144441970291862500833434033874022706946844685854079169639367349840535218899266533442182080926147884020552460977203139268242785361711217891731410152904251331022009216694638841024164529866387887088953896180219137999250511429313805135825481935657534425298965697686009125731252934773002435430336159027218393698184901883044768103868160350844201949321841261419795931677042544370061124467479485741415228330901168282780016552520973898115445501658978203897032610529889336281701524597386104577665562789305140995657260919242167895158457568010012660663230116522205820034593637380424308067865723501858416556073200629120066163713043626673775449267485178917021488596493785376987588672564481395386599221962212452240155897059467389223681054378860537484725890274376158914623539778329862965508990392123945761015108443224766235628029302916590086426293370435496983143058692297355950477236328181631246924334816842921703627717029433054623533535804644016490613817975212598122779282438626351665399359175388753195409434587489149859229840204805685921332827631180476677712875296989058079750627638870860937628883810269176088275354269902383200719675298573514028605559019222422576290132632872335639846098778453763923329923081602886025828241165345915369335744979418154572176323269968984366478374328346832385595803709601235208020504452026664811664540916967560093446726516509840021587524546474886260154897038842628931516144226516465254681547587253043714856976908207248433878798324474560399340517306981798207756416963556037511346325697619762178026558939336622103351282146313734326936204028259696667758743829325821702964091237948049356704764123210931099032701824236528397726917221751060345428213650444041830768239202501097384879766457909986826016479655553733534205885475534667224199669908934716810004902851838070187846835747838800140772891235673408064146837147438741350212850232287056291917873070067192202827705973935977753951694567008822603849278447722408986318101591753210945511211800259366824114009222282351016496869715001065679641675399541005386792830329657456930131091825766657075424398984297847777048856732680479748507021628179013115847875039832037357326877825183734167301538352875104026338060592522644893285753697012632716737119393868037572780831555263552299478875029479409782179562402193458861489732788627683724860652302711291428253840811303445851620972738043735059520076372300039722029068033764395189507274576197735485579762880158460573155234503735319094139101975118124965962272790344098733222085759677085141006383383016921045205635930462217972559252447548566643037336277801394237513340731812868352245768109751466507551741371053601211800165234085779643384776541826217957379556691110525331373334622093348705524318978763141489339930812915131728714231913214351273113913030782146034168971813958679257288252839091576884565123655237240858919364924215214818040925003525609482539897431146560390213096942845206872352740001977337941505468654202179956390010468153702215962958167626028379431742053854588876449102909037031085604796805713227823509888605960753055595779916129955217508644503807843413903459146242830263414524492038928549538452681065640018133738800460569938515261268798660067049313925848898387394478000694869799344534246999695150673521611881918611921722257995571249698651738872571375031064187543149954125104409542700623478655826539962860791800402028895222429326081674329448652183924156693990046013756945294683355772641009469195376175691159836371133611582100128346870999867061384190387874844987658432244798409871493628248253341029640017450861378921317116864261686236990581044071354144059566664879788385332664248028586195795962428975915644577937575381428983105722075489907993433811484547078726809414019054918775459205991334432854049788837682229974214441503992867461448633046266690055023479835715566956228896739046318890406361017050894581588165209014699622518402636435410111136044005169154581451022437707398017773190953685240791170271742717750351692828356250678166697337103191608568320352489743356643616234510900206123340942870075055256742476884497149195319847792870733490874594112522241231244826818698797769220059292230217074445850094376751034425848616016576876021456532440424236211023314649785058090506901311292281863328087264489945709155329973992331200592758813287528625687328612406822414121951933665040754380389682035101504186845320385542887444139984922959746188020264544011896977718833222417377284812913367698290849237066484407466393917698312031162473417773380007540226814220708774491000606117396320479637653594446850702227670875442165837572999238632169694466169678249045788220491932513761201143150762073791335732486614517888812137313205832941597349653653610014338849359179699055488531135876247864956151619451328424553411218154719801511574304274781535739549991202542821277128767972706240306808789134286959041417146328504527924712409869753885971031667635921328149672088962317757177739248672163940197375636448373527788168300380305739974778072925160747152799558153998512147374929071127882666207640110290552384632226049446643741259370504705983458934337652884666552341630623598852344252771856910589629570790458039777647835079359510047953591348253114274012286275303625890972841572366690381534258525407202913809277076332586523947291826082276708318665568924894819973739765642167678813816332449813291685649615433287930424223974009266330291790297691042634033620138512243497704061693265012371317520112224117890321991395263118066029525895827427965822927974353633454947919415756406432439839621086945957213762804755187738255608331521608935337677780440282705497446768326597677594324766847246948665077994808116076422037005297740221375061650270394830400031870352986998036447526064452295423576323021245046046773318051294073433993938614150684918774107605844013952044083133704882676687516443649329329639462804206435198452905850486977058633397040005069744167821982566218652534742241866889688724640530741160916547469015687252656562431084336965454048544491702207027067806084103780882358971573206904700962535050001015395408111762595778714700602863008000420919149370846108358423940577170613061486074907264917689628086683778508648135338262826306425911400586443133384797051328853278360411816343069893122909116603435915942971085737379858315680540409586797692275570586370918036043003312612960687004039252764663803505472800725315403605014080540621951455648956834182829902729928296963498958777473022536421781338278502259167506645633962414674147011792060055732888471771941174265176676951737292393275489258216856900374874730046676120885127393107091632961384221596663447479382638356736386061187551159271764025960794581279270949471228438644707544413238794869610060319868105044521060344232208553096498347546773900375300254345534836109573270504790785259329195788760995877881082803250567262123935261328408129945388659012160009434406996668630271111800976758213092326392079512284052429051640696627587772846929655905263348916343937341918796927840277048261644444279122063058686387303836782159762548734262550744058736279348275007574092578829558830623013787349290798169549204054664243821225724286254154422528241326051752610976724288934668706308282453037793236652904944391723618764436735773891415218356517607467143592262566263313407945005048967805130957681970195178190478900999323896196674517484003656206915648479489522413813235834327997073586537871773341094602513167414271141488580566923356361315014828216297266712726564963855175800915477778978482649586274134856753912322630769033505607900739120671557256812943001375795650103808537874823638456040008544527590964860803947047225703038389356275239880276697983608770263685155869887498634408319700678675400559683691602118806145077443493935760675933675515859051847925778441458495392010075439601410059319734887405928948742213116201182301188574219614188930098799567514268733982848530295197039881549723822776346251529147244867397210361099493701768459217548305171669281401401182806552966617708588412076972355231225202412978705884270109070722312384150872997725784186820670909859507323526860055776345371876752976333495959929614560866577063527917857241041352293418530145508543000734423494540220651600347178395590563364437834326229577604639720887735983512562193354413712654375992808276035605415544237472042362958957915803344636512154253122065354578040240973168599070086759753646747490841700088206167516191698910602523544910385186909583753977825718902212044445919934713968926235116102607328597609200862881052336372009277629426803222567912304507562308969539472010272441090019174634135685446703275974938094525863399274307840818954429725312625231518138823162641025034028850192380098915337888216525443589060195540171113169627876620696104616590705425746984192703561473433034315857137823185848054965005168299791918068855772700456082677915981265651021561789886115308649769708757194302082035907419108523330404424919522430256982681031800040065193241659186031020667901366336382587399404577190585671407706403843342213544845445434629434338041424491859870715198759905670390393462454212063566713999685318966457668240829101971558172024346150178165735775031091104560961449448035641749940188878029933991398644762105467940587771281563775732384760672927983405293156131323975609107893610404025439126035814495618417791146788420998149703864980712406111469517350399552592863814290067829373701561655068829392215587717324571391829833889688363355551572906737059122716753567606687615842109436234115389625963285417057904085515876983605277348377322335293618324549095538487485420277535061387048567489657542017446115534678654256560520139207698155030861318637263079655410560937348362529970099506498482885280118642901826821304063158617592267821454117272221560868601221429748913088608930575662787929577278093058591509779607300523512541814569751506834620353985534170371002076435489803174176022640675009048279722699801521783807418936405196044491825226197321380159908764190157154531871874975746685271733039883462261813106247194197917657336351075179776188248016067760298692770519345602099817950210533847164419255768077221659236837423906137135729614443710398717096822409115105217920197587945348898424998217236931896563464097941052823919376021216688703639023451108756155472760139356935514931634896297344085582344908103892409879657765474635815590660478019942734038660847068194754539682041079140478300804942084814423063225135841270529585889825920083301824793880918637069081784638066472953640427845664564768929657374856695620650333512709729659199822056734388867432019848508269337635169535993005776817091339254746635472142431527044165822838345610070274106931041787200628237106017804824094101514943795214780840806944285877174508160201989061707683338464651322664866817834262891546988790304337719130619274223382885581938124336558097174333129408617401792769665750382656198231039517375894499207186999684361320625488606703242408009689493951921875562974375444835981510240478207767171690279608229236434211674993543923593919406794248019854039519960308450959468559898223448132204502421888153151806813659488979933384503150014964897733318227646120470735095062496807842994922581467709959664954325280459027341019605283576364978707061324341300650618669536989954194672186229339223929621487617197434563265580201138463519532562018045331187985582130768409221403268130225865141110635265844509503808776191079719928818306939860910154639732394657886751716633672333856836466005635326786692727607684095099258815449661757211225698735111070457300516089142307986372289878212264727973416937254380799136281660918381560255223948082393145644860014488399421122899815008789121459240814594350090302991541757415300771776603056032616869926294213028161972018989018393006016261922788814616568005043850403757471637255606611049379534971917613989677552673184335362128623004084310447414539577154856101657853386132185448376910937369249832621890336332364325700702338100603726815922519322947022195643538505147059979402352322463966948085368520975880044574246988463748794325085430758670046770336599663812544572816308826892931478180897487719122260645892333887087264092068846017038839554631333326903887762236555258954453129214851045402424018760456208828981005956783482644365518384265609207968707911426453079377734005780162905208255889976130584660565844746639852464133680935859847683053363970374469561259809483810833065282425178992460807354618105609579720940587074980743051778348979241869150168122236117116970626603203916873622937329485118491011964979834975779651495210957239602424356087578583175685944947472785172897703729150399650777908664150543717495399411342821862387557504234722786303588416013392568132038092409096450587781591883401807980282654249070958656495472647851966683142598208644346594758411072723944865431955915169619336180764881008344730080180383414419473988810072819516547272990076087781113655392207029718869432528799637260052076241272509638335525577049458369974334184550347716557498293115794969934481385589615909404392616322228138333718262650413192280765928061911233440321317629880660344666440323157806774801202420770365375203845436887415258180818448309795539546908938503190219864345031865288557753797518517404331439767638439441969555135132151388743135836877696193283311078956626099146036418590741802598950198365305888623133817433337756640085723874369172487889326500527518227892319895555928185087887259375150556832962970651404010730345548919575693399427110736820025898018419014555759140435446108334647431589437970313460569674695500538324705069914268686318025624739466844526926426467787611448814921870958580178645606532643867085865985948715278172467955374053599758504652060268340931564739116427197484919319044622986507465084588941429035533572459549585016527869126494284849057668314888827609639598950597250990583474398517237744906136178888673210714731067740279647839367813991673665638414528620381532800920734930777020031943881310589289911884584701497351446058799569381559990379455613269771247092430038406722248966267143559999680353216217385718282894780445072546935627821400587665711848001999579724789123076226285055838844713469563392636702738860820273703604871355761503454095184576196947498308105850648411474739794432029286727915612783436143896892057562307153543613824048279220517753411258603406457132585258913750746573675183781695141925357235518712037969893488381055054239730113988736860896889978186675972007666524747192677371602944234209639275671321942261818378651540028065396662509604927408332727523770330700599168893205880163850837943608514719107451860735455215374864301043074821854613702431641629685661916888880513991528630550981272060529524667015856756531126304810686256018773195376638567606460643064294196146844150703140068085543527960250246679355672351036793474072962583485002006546301985787477085394362222109717748568538044126745055645001632141173991639019891333879362811004822818928431744460077523047303240403783598133137862131138862855938397371251615983122453253243663055243596144170446026911703950801575349898564474321302068101486007560918013747215139255842356374616892128656898808946622158879033904202206934334773241808029894348151294963871089731693951822092811677334202524640368611619957257416001959243797411320385305405438995014781555534156790588546375682648376447977880283234241395881294450372123427309274017599868711152453611407639749380143055777625015147113252819721362728536984441190490305997034397836151812950292894384675876125000459657600820502414715846525317702806032707885001700094637929905615150923781452214442008721224757478242412749149209239964643032938376083558311270563145450631488732356475180994532432747859456446559182688879649552642091195462747779627786077319874382970795528234030521464794422846845772404502751043325480496736784036383743120423858222058604385575020573214132693658192071846214760687833565898536415235995991507800886276356055758179482059033285883202772883946824031069728985689768619580027562444924624415217077702978599882584655049981930459756346121608786615620400650617980463862038271492591149875471782189369446020312667758070989751159311469303757669503133675188256863329114690529655172309377255727259136823411048362838398615012811117234073737403423878092291278633675129949260919077939624614218093643406693462368439519155176868639447388504843494224953449254594983336197835466713895097141403455625350009974461901371088645885059031647299896445776766724978993314194998981736474700153331488702066677245119653482655174658837816315280428683230053116001079847122368308919414992785293279562474300895921964370470892809280474518256661369296165531234554963752068579882379074364839352185197247676787932985840594410006978575023606228599780655881915598014504085944680587549824399644417041200715508371481590858022676508809109165108165889798336750906068989886228497802206110774861931960215799917254720273844561250061678099463959625601321059910725950977579562642359297174635831178847680952811097909639524571013031210727058190824475974134812055653211850467033342662480221973531924377940195434029924830805915335537963520207102609340334467271658965161619326134773986012707591062374489348633973509594282365593117375864463947395327427815896169281738606847850828708485519032202011340076890310556158177147216338521727564185499126802826771007800606374859540677801571867063801764376052355365624438098677992485489139507457797854340396791159557484525689915512517181628695292084260488813857025991405442440999132156903621292809073691349697874555342808449703734462806250231096516032444845956287057031261822460305130420674847679513061286079903389791182473511163925288040217552054741832202556784454368253462639307286750392418883677330156894130608024525384367978801365656089000564994828697997256205148646292666480634458916073849373681271279731787133801592771002084645981333638490252646167321478890950519352949298377228603765430502341205437040968391811867434623932203324585365396873837056793623259098852756995134646857100566526114373352260580628794367331472176902076770291217186552646888097529706973240056630020402514187381436401355811306970571770925792682233415762280976034471394467901131283744334461784728033862247533784735063174644571158561734066215719791445330132206853352321147763655708004762025841406377490635292746805166123090129141652069072957764909292663417312090798091963100256286806478317097500636658450969877346705354677024955055501488590046002372775719293950102296172425231259585392714100995324518917116134914173264716354703884469782224280368149828121041623898615850733679521072380210823028392114413463173772614066693760268239064323810765835792644345466962242269069205154434567947874810068760420580869719159550964276238423701934713143943035782486578221709337373158510213899407846322951027986022473083704644327717641341584240111054895130810422159154073695299828718068230998939686518754299053482144278965903301852146769251017077212662184566963814430193057069202342494961157398335582394983142775756756954279366142719987891845651710746285415349268282347060574819904779777583725638638999591476350693728565016884627674893591813569883511684755601307505806760435110055724207820292981819486946682380694763501384059837644712664042348581278318657897577270901220804077660894285521442902798281253918680760471530983228019678235375419609641139003881103782127005026478562719977324133462571285350707938451418169090511260107043401266298313201287478935565958273239006809661059113835084241036193211709303598077419020541620253894513249527355870319976721264892232823009866914635404241833710725567772262678437111108042537857512686129511059357854837263647370932959878836659653978135968459233065318520189823524778896543281949725719864146387030578762935024573410871589952487957332411366934044911871664253227901349915865691512015230129064971092647920194407178321075228596319413644456941380494143131121578547172082489956990263822078975390997287382717738471698895011375265081802221614329821225406083647793677162030283893924049388404278946077961985872519603648323279635827696945099691635114742027812726924083501829574536074078021765224139070926077588861769303181375417782258685855165150263635702823533177604846685397890111220155690029112090223308919431868534455995620077757722180672026662758726580708993422677420989605393069001423206007394596888488616199621585398164908699437764178003148137037022575832195304807118517888796348245679868512248455996625338930325201291363903236335606846268782550454467103069663944032513604236616595104451924626670978460005332489450704351049839565778150901081537374017181193174061647979473793287435130723517746622744076625696760842260282187889936763214208569009424255337708766039487071682783417855054285891348585047963200952244421606929201354072257717956074612605388086467309024832998867319198859898480354181610090667252351521852816546593080105830656479113241615568331380579017921340043742448469175965382465771602118730769446319197373376760598798300090345384936186056048574642103958302100279346351815351588846594589172052419824123523416401364552001857155124634574698862372836550908312484079874625856742581219053120013773613648641707775036424246014336320182982505881670890387504562860159457114438004908201077924101983848204512204036120795470985017163327332459292785586872974022306674133904092836027037711088810610393964203456777539738545570058285360535761350976331568774669233645190131584597314941975081487375496662919527765570405999174493470845665617487637645399982623835067157555349941376788458816521480005810932006195461659271268871584741433979265037451259658775148316751684471312427132837608329106275574774281739874277053838419135849698454987307498856667738379526088439082299403247691070755812701040786592655096108846289278660554526225261530536287802484091026123220912518401510788644279350856017189892026685251839524831115191535333957193360616672407134081533929473460849481239004848298740384492447761880093507391861320680576574438362615929586440619314424661850279688528635177447085313675904908036327980590633416643690670783551829368447288284772891104548362743938153179562221014452105843274053660187885837666030572328761007503825133472918955042035848865448946815740199738581154765433875628444006157587259997508151275713041471646675279442261827920847311886967165478152152954653188272181699214218742972363317222384469102218004209092973782877870459384586549334972339648112645454551016204019114132318618804958962526823398642682620807480334469352651214742930734180178900090019091513703404177931676184670309914045647411054370219019661361073902809416554765849484970210446298178905825091032690631295043693339588440734825966094219938100248483577846713045348151484859878134875808532970390185966596015148481687007047186472690510220064471722598075248563248758611566101686375874534780069841550170349647228829151912161855691936612919977387138606521230057149298945783708632297747087990333207558915295059967716050649401079320370396930032710212762609501301208089014930844804954069143650511081657983654425948302368287047766318470494430258463599766161244631654032589497852539470363639167102132786608786299567680534591299263730934445858100972116711428216197722299439443890250718731269178459540687159719962452637057293500501722185867217629506690504881063485567457152003050240807662146586129251327998425736296122729663815432886811853986387906770489939300860860854987002844127359969439947492749063493828275277263405090931761035206039088560619113387934482506572320775993427213831185294423144680358949320171483304155282556725050287265616421633449866387968623483713313083296752322272573224404802969440413542912425559678732220469125373658125836936169458410706930075515026091115033683795606111424273710969049339159900064268354469034434392544560372214975510381880959320248722145267802912409053674403610070360395478005933407285187887500416772140972195075302331304589939849600531826318720582163816214934625656947702487873081982709604416903137081433019161282032577595414976674670376489172775907925341550029100602571542636870802033283790777247917864012263726925745211871295197164408382855074934038293052604476623935320698583105141473317874364530476241945436648713339967156817337137557260551422531119036206812882345541566906160486112765915565622295741909783713515348847501691824365222777298049424253227181763381253033747106630014110893084955754552640910789443641253578088875344032357368840882707225513330109922372670379987131034259477289552653767874369725001071512049422322113641722141512516065215543127000830522088276754731676059778806348590097136217528856378516903964425065801271423655502822393298553985862910321942361272836332572310154287522847594821167651167068811710997370009654240161928547841365801097931153561693530758468219012912180129149842380026722678686587912360913275429162752582915345257563627019453102257144433918917310535899678781610227764877640235651406507318024971502082996515572993212576174086834287779837456885927988441496465570893121025451095555865469270769418443096945244670805886358708566338457947459401791220618782110157374286542318729619216512727906308431294591394587780893627545740934402178389983320549761129711594454131208713342579702512431534393523790474844252091371627343485123677568757804426496151328780295684566382685603910194238247647409641240107513439211679390276547508269376245158329813389590705979286518869916604394321050636261658694118868088896763253136108132585728430182287308463937754223233040139141827977963536962729634497945203990107649855385423987858274332199882310237657520178788151873019645868932229581577206303459481929146973987378818055786604709359312650230699050066147274926696440126843725575360393114858326504351949275985492476567018613203993014229558090467737752397978526955126895665078430371207482726111915414456655705767986742234697794858963596515361916629509572487456289539614470283949686528078476460821493537938681885407223100622072638379955284987909085967302116493290016007370977074081737164589445792927833016147126262123065641676398351644581987915115762539179471750444615513635630775273030155977036295785239043251624877584452944505578867070075393181295721906798812056333411825918437770846252683407603436356460419103870248047342378107143032013297107726790637495572679168487641521635052821438379526888065014297139315587399345365962108506111458134283067167270499348237523727223405129940258969383884891938547573383354234905008642002657372049183527195922387707248665419016073733722148501968318624426344751354045613241872498115112292529970904826999999800820426609443755923420477601218551431323042760425552919928941325604983269875713219909077438100590314439349208364109497532933223001306095887400135289696781628110640505705918845145762025280958761063567295459698885377112693078309159629094956845714736801635754221074292231970399865004608594241393768664114751800123590224460056230198171708466223300624506415269995266003705009809208834826355319988787713809663298193964681687652700660280528595255962958401523690855021333296013191148041388092023392633232310969493995054691803933564820976684180914506910602124335688627768531502556407087755913326821876290556817785664702037188851635182481170232627162143219843646556788300494067217853348017634713894007107419445184650163934584691275662192979870634793126439398283387310762475716070672863669693276450683410163531516763548116957417975315301959173749058976499725645063339447748133337201080174847923102265927741555305755706951867665610937830575841454928091624921773291163953427346372162597945803741736747003014588794768118242779729934740633308435957394700724574473132083957772825148073086174187943854999586913969818215826821136578550115618154498586883949937623776549221220988487330938767344201746275020862575440890197706890436715505789147764775611765310021957079670388341702280064135836411644006674851309292423227464550612606429789407085365943407725332047458557522019357060230708958535286669399877142476155809579043418767809515098914630357740536792181983783932713363097164101370862695619020505874570111205733460659315903515081631127291647510581070971435706571099606354761287552068431017663870291840180163170630211151223053070831143437015567914342292178592509612279450213042242041248268297719439814504251480100952708160412972397450387157422819135917052110078630812533242262774221708646127789728732395556764179123585995750782427539511208725608967757475734026825856381131230572223437814762979087230621835984903864285398589175137131703268617527552428947719896607696233825203815742352923024060160664667043211996744122084700517925748675485378012376233015536992488482904490263535606784546483586487224325687486137377629530079414464659402191684095005895997909395015219880329647217808878485982261960550640483314936712106003212298647195924387832388416226040953006486159299904464540731972333647953878515240327036277868096407098146703466616919085391316986500282028632648537005190134481727870172166879586736421321002136532808744319264840114340525017058434762695273217820309684307498044981836741554177365884926063406552537903314062690965474072988836786717773886542314212714000036771900930417657078580646952410454612566964740783378909381818283059710791336470843441425648215721096796896104375393533498527880244005318933443221001308976238777775356397095839949498188998188254474415477239599673785829934607246555268211962005010099711582049225089887708562445341725086555695459239172352118606654702212563429516736646526317138461548715288162887399864769252551059529284591400890195531439539648806659904694551556553976472105417866525530954650145655452423551882390840914683141808699795583007146343037810265306653999376738749206696124388747942860839888102288335842821842874785242005092169555609839734039971165707165022308459094603249315140965334862310485037311758544926638140896169416498615878921999299994340417312266695886057920871019437742987128656550942776024830939403924658632677904353055825958148729797077816133023861644253405456980753269974146458017762995067184391836836518071667992069969621332925840917508413676821922663335070657953006875705468895194273218293841201110282454715395832528976502295925548797843175395954536924578687529372258622539568606484638567479663944772197229447306003121764346518619966507363692565275116057277596145330100765746332583980178630366540914888691232406241671768400563952341967265976620104475211036231907264603501525676912039515116876534756633667823811965566108068803122345345911944002272295517974027684408122967430077596385552174523497293777977565047507909239349175686310986967240402805486372039888402350933894061786351227205553114550124768012533612624283634540479629351902786854826490691281194483060224410175173815988763279709799280577272234747959650129990599794917660097530974598598010701864005425470335929842428499760543553754176979670734822095929074142543008432647735927650091370423207251765920450778630520907524058277148253948818672824414723063877619833637729362831448105944365161813559879320886025597981485350765334327133987994723520625773225888325054718539398869628051648180708347803359200877206603782978309365480328982214285745237135121677552771372046176126341196121880150777238441873322367354248250423218067846965401224582893712426562675283288724205670857777559743814810515537581436697412915089397650153700723021112701795241312233626762026835778524069181627707770409518272143268334464244573305381827690775805474383304953474141419644188802691788858685436905420837824084969352875509598921818522571716013066037805661696311821512820287802181177411947409171621436861081157033370135553018658084131803809011930749232094305411306900863844136692238197845416591098784382401022802487708620142783439994841841482540397554350405902877426085763129653307658082063486724200172985950160557392209516817615944570318379057229567177636167608041888141965192179589715667336110291516581061933075043498474555273522309120558616022504499905169843082653489138536647552304383268508834978527997578115320867809276557086194305655703209610954997451385008504618961667338974449602874406810575053576341587943763661844215345418736675599080634451632024687468741490046579977489826598315969342045614984458464152600989477990015548340784536670555922671359724426179840129766602917070391305005376443309633884751559575739308773054898162897452366494015947474969569755424692257017499378635839685576296724423460335046501725171464447049824977066654173622758773932213401623573842493750358793414152103795000243534715507672823249186073869169857464296141366204492640626033042347566252473610125887120319004283841587183554783686400846387661665989040381035380978355917292445821331669786222732431546192989236271121209132333999677709351409002688542551156726555522627423992645369890225884730027605116443476773100287171733183885840106335748575725712168195878708343882735331574953376361180155701558607339974315986136491342577916758603520073918840927523398721340046665957185047187283143783410514960470169845241019221996228901366813620742701591126095934850620317165672626214146162981216283591855860964961778062170006584311733563321949965519495677181665533275140955242886808710761845751928418769576296957207514107502143985788514615411526434679303378621242643389296622909871137285144664580938707105467932140593347830607995514581905761386265457412476293371304776715421192183063069701292718030308583269610241299801590292707677537385729297535724342584314118353339914922851993121042766439090367017860292781938286666221624541523865364568549217591105770384122564650329232708964831666818894242724745113094158419633142919924968615463515563754400846602149618859141520163437644375116596215872037268152703263989431501909319569625935813865026170355365608203254764894611848570449821841258807241853346715140043291196952986325297110416392137871609778004241192594647962377387640319614411481467471088050020259700267733845527612683513099749127904533132998315447850715720255747571520288510155575360560028018802959566877875532413646453767292423189813593146477908004834507238889405310758481597810962718215330038467188525658781000980884394256594481095222909282503398533372184517175606457245922502250752841487623862300978511626045672437139213119420234948348037531546589255569435175771492689058403260291830561257049382105525183987475088848709919792141724856866513521722690142575760106601998359455176166114452537705507302590394700637576349458903547503710823031236377766868244889063789980492071199872828458188623105075361110734783758320360580639841077183301166694325504327581405474571786204261927991165833739048831888512441320782223243091373999182576228275234496806189372014770549067725320171694298657232828500865591500505769845657743693140868763951702340081558357746889519037430556327404108472978506916355364391513170597466804157886367289498362766324671074966488125839173976353712940224686043334936691689882471941546189408567820487126730141959461957874061638010607614780840507969555549341948627525888536260288077355812720867060512553919788130551711448258007768808144219721834432127717651701649694727999798821694909391491719486915664546213101068375994188455901395838965243016264050367676064926720694588863176255408247166838686477546654423965549633534997130086287840717697728945828453958325021706643988368699390243686511670825422575406109337500734592419609054920130710062032575672763167024442303115118271443511405808422394321585899198919970205444104259441933805638465056686481062682288780247089115768676736165969756117255912314201207540283734200730520563962452006682640931414887872639411845620403977710342616732160607992251710928727194141793642628588120722517888321236101319898836397450510558955141655080043032418251626013404206941269409172486409761286782476910902339463216298509779573090426972217715167396878360299975948748678089318640298243358633952429040694920548048266612674260882090459685804928795346125992662873538111258920261407140128105724867200622728276321915382397751095497354112997059244876712892916653368129663359358782202277472112203441022631286163568700635929950940144922447280365569257669721884695270887394750906873184665820937842042954225304347845478358163399042633934853724561294511120258790784064962250193233299088286431866912293666552248811558073300976803331974400331997082691588355782231994165577286159181232387125593508037387348985755854748729305877133181692392675187904209172840740350831982477976562201400546453272434105582314976217717168327589824034979832525037970213105961512991460341092004686669327196153205547749778479189364709656741435623069099944810785652000329651293673915651764260383614290989407564412873004333910471599378568218590952889295457993548375285393264219085762356589462608705260438324845547633716846804898784636606430239097151815549675946473994098469770910539087315193935352099611561546550793722767091500641175721419660536596485274527594328241583243876149374776094104267133245799582000079729734746130565186755315214108119702017992919074591195169021301582137410642072964963928151848297239532098283107508609762873981449755841367843243027431962105267596959835456517474171449735698347008607242223024412778375049337478662061415293419025019772211330924591095953261209937300979798052330851593535519177033081592099591481134884221499677435375025144821497715279840574801197320322118416012731468601771181226769320834958890659614416820744996348241648122165514762134318551711079875963302656599035250298182060206775166296902450996975364505647089782395596676060303012413800259746369946845603947853848173405160166682540436514647023991188494790897240077745158014408937311855091415966046696709849451874201358371776122230768218465938938804559785226220772790330470871161512035399296821765382736244189087089741020230069489923184150874750470760781398040798965375073101978572737246864683595281735228585106257610350642374180240075356956079264055182601162322684903320760812070508937370002483347891124635950633862469933205072888473417708914192789419546851576279055007458550821327841725083251769720296454360591682617933895487788687869568387739242840435564773545896386208319223575374408023226783738908824984011987621820777248314285099812507933680179637640179285435564020281003504703573628310134353453620259541469597383084068109260769027198868263158333977810520832190281684686947364490394596337278103589669913577301096752779612241483019663538259944439136422333192294095973814969691184630776535212478263395559125120418976337120501188620350114870121814152278417714791673369141594583016844827727329092950699276624981458951235073395028043586501760456336647571149235971719974893500814620620150201131572284460333544377084668842529413618719538918345000517971569780513686080718875694155044752326350443796513088274560066977064784858445654310435957267728675802590826314411565863878807567671225541536527574543511738996956502939499901430306638712965700250737597187564757395752441712504802167855009940610673987492637905289556591871351809548315702251815306515348599398473358153230592364431280108819056054267984554710164956995860451548198480725734786082309827121855711055414377530604815145039866107192427300208417397075366606065321772499143334324186559733277675646941361355596688659959509512223256659158038788595187792073322604616729651770283829170361707816416016346193436477856739289074334131333596414051720818503178667067383282546284519656624766530860505468468167818242883954937267453138728175204677888687018430592738524080776799782058666109719088819369337127253979062653351027072474299235673644329897473915469195607871273436575249930795828872021131843056011095468371168622067353902644832211802223826150312653118107768089178154063317930213679753499383108593020912687044000397810385921540087579992090878416126076673810885042512032436400814324833045779628356279915347995378205744696517273621344610839296313226345009915538792469998229814303337198041379788185874166492857915904196498722656808503386656531163618032896376531697792501227343477431776277725520454297933338891032557058909598313175338907273705808910266875536097883703164927891473951509257002371826894155690696342473900978441627307394051039320720546476111977900345529306604383126553306168639436974865701676971770799478041852265669326450043561985471110605521788111614983791928178780794471763949230479542124435354035028581686120132094949469626599882041409268327128132718133942986645085783181143623298950686659711995117974489792237206773873209410607777704885392473095436545030568978180143255924155880829951795336415664509860471653828399444728009793189790669859154876236246899846741207680538168720105150046768955249331368324017522620692497361632838607290061950215511529352176741683477073986925144864857652013388294886828129841671017222650235872894228798749684510609165008563459700829998295060107713600706122476420912007591417645370263558000247383508177243024062005665654825670037256278795457065512832281728723915353767402296140181721313321398092237634397002546057409850310761518549575436594482459047272279964735039380835986388139310497608276233620742196064032397594982498053731187455330995594638619596261921004787869087954474734388120563043445743996163775474834662074252339276526408978036215364983028882330577132871210257919223933354453526881973955484572812513259526303475960335562758462899386985870217527735489701241234595022739278627769044231310517299404382567892626139273454881757715206804639898180283516291337502458269587886219011696876051777980018937270379120064164494562115770640348570165108688177179385566992487937939099695439570031490456206633564646445756060351786367498208372811378378359924240205326284974418219161901802144300044793712797841203081980739673656558939210039269487458180543476340054388271037323730188094898132311991815632280101698344327339035409265038138628622224210405679462580244960668606929933389508300873987597966884262758939790694320318031380056569662128392476460439740514431236032217630753146617542667483319832279514740486426740986885599883293291519599718964815430452549582055822980999936138037147981384595344454881852735897439263750041288568795025645239113012789275814343798985820539112362627882800481560403504744605450193087152163172250183184322598276116143351420066841673850362204631560994921957353397029593860586529141092358896337313330928580338565361510372351330983458846514744441795987421518981316450341533267056467790063403483193269473298756334542016150237639618464830025270643824247341979390372310078347536394700945897478158666510286183448618746705886692205501344173950608758286504248976089391863068316927326897051892615461779658101906517107429044129189192306086065172586710046324867647379322824077013978635075749238855212073408034433409662686063244151227129453941717302800728001749785943359722313403474109067006220900899720526100128268897468099553282492418908436777784741314612442968456571401287688562789567124007071113519284313908955115673986850525463233921517822786100941758336281028377915966134261781816639036543791021307445039732028150769525606699000772590665991413820900025034290454450575852501885855796731618441844168294903966113868858525954068305076223336413512504280885307587425810311486566818516922612879236631156544993231431845753944042475347752925902926587680517085360198515783516769726031608971550463948792059067405007623057501071710145906422933506150975531773684079597631131828608370668687440764844562319480044852558936558935871978020804063807531883927574435935632880768274112107430160577326506573781073651280528563579845676377888156064844923956721019080341880402915778320643122360548600810155595482995491438674389033922186209095899472423396556359266635607881796503001767506674411798436258768399810782413284188282816559973715842816306071289887039093039799175269367556318393578738361556012456132468906735771734827939122714496270548246762446180549269093798701405665798023282969220596337232957150121861290198849473725292300563696133101132698599215673560713969369334271106489075102009840963131149355138837326493424409639382654020410799972230552426047272074077366744841388478253250380874050370371733411636756309142219825108384837605982681797524783056341055947665267055186953999508805290000832321573235707610954403264851727107156293119803510328432377915889147479693100226150456709772900013126053066882038316050668927523421171675703942637178135780533191493816851736733050394722818506847018312363578062438981807058134503553296162530069270524932595335409470717943256499753926907907578826514687667173734461783942956803797577128087062607385967676264481251043794356398724498865391832295225229507235586226225566622332892158827983686458203430675645777139516285258451593688112233160980633284935847152875521788112784131508968446330118268434090270702130422513941504760796760603113598584777799240212740310965378704921009718871888708770620012994848120169788011734168146227278086836417861625039554161432462491057529760311390453201111313866379642267413190533154588985860026833146338209138466202354966316544565450958252498767104448353381621316188404008204139459791637576211818570414592757769617609570201974872474609448755405739905005856776573909782019371806208303292703747466549632576670967399712460076604255166858199631651526896067346790632920229381906036313733722327428979938870327280460287019319740259096801850501272865580401336354928511200582165620823785401600258519373337231127886244570916910199835737351050214259635458332475080269729553395812129674749923535963485688681850352394219867861842618593805777865660896647416131071021481849444207099161358445094226100135377430121849358322124295407357688298077426747748382811559106969026031257141637323437466092503040744292967330905921768165953853011034526942912146577849138718630658040556102268059807270952852024110358488141735247895507381209045209746370836762418925469923686212080303909205519058061952701005603484577455654505330794585519830171003996185611372932216572148228997085048691011706500646688071053516629616170590569501869356471755981695066808542141324287987284226488927418808541289096617394410595595147268448432209039810008066645483309056521825949882160011730181475024059832240273828723689397951893809244143221042562915685587415404844505061667944301001073651468071466107234982877623746265424867940760676578296014019596702850110100977716370629435563685044084181032559583675179862298310692004080957187653616850464388290746466631945039799310733691024449315675151424534435879862717331829833641954026292302733324186051928724482595114032503783988518861193369893022820846315769992252891697230978981691633003372854601637605584134294193953298995295689189551777630006060619477748887951654974934280846040642372149912123907244308983869633453342005243169323975388752220066005969217607289933767379139538916849725514017679291116828059919242960287665359914089697729342435402165881485093079474328314829501250145408816949742241927779538448562586543927941564699745905703910673337566407198388064253318184165645575265446964963334686597417662915691385238036030211325112088842749528039972475971872951046430401254695528302205725647837827841719675771083077282190781666678112944065822285736130146953175922236832660581712071239396531593218227520179095803258016586368087589248474030297894199968675604409054217017393232543146742574943802310427520971976219403739638431743879126621394065338907607224635526738046347637453752412549984794423447063363808970387293285018708552730361746864586370177221110050616215988546621541729400024806795928204848318813207076809912524734676143371521719638259136739599917569231418774516884526472571530766606388030024856499621061454262357042685046148741587961679008566450214986505865223178091926836717867926438304789751769190442416191346567849841602339811063752837987300540009399150236876324025897432184869203594694559342924003192459306894725370865953151754034308980059661102724189586447744350658541514693035036735549573776915926689971411249069334734124731015018681691398088165819457689736418389553770436545457149540409897117236463238629607995856303476524040213562167236112567862837263905622117215606698508097567272817105863355463170758418436465880806069655047928546460969924533171176442964406424708893909771345735147750394693371244356694729638281937850350588632025243075941183268601935073297146279310333146297000667777986911405220191848573440379919134158560394924477988182493461364041492913477881130653688236225448871673620562064985358005021043198846086292150802229601060824604462086899721401598994671844804623955219570185131401076890437981302886418637401314887937923916260046604474473342770498332033372181992615755619037385364877181537791565905908491223564038368589261242290832163689008810981220791261330688213488868402858862328081673599666807702560294136006053176158799907044740081344333034643608621435712006303802303380729693469469155145459526562646136454566080093824253713652451881271767382951521146676902256677225798297793333718396497398054261394755365857652249918910969926960107861260811610946760922413096798896712661703275976103505735320937360347374666484978007636606759213950829466993430202500159912204161652506941753791787024657893359566195428057315107130051140716280458709296606415277941238385684004904221430383656000379415495279221637663776176039640360019836585714390803297550026500102446047061424196253988796543444383337418186584835859833318695096102865206511571015050332952310349910054301653785939110459813124586945738722755363018049934687342351285020264171112996322083968219001142310694890148902038422866163733853904850077700277108426932703384932676055974854106870424808239988135142319083871827600526215445256050915883576592985209763819212657381916578942682621474300510244697841822182096689989511686041295848832461260151890335608085855397984657598924714789568138314000077218734482023435573178452589367432952781095237035802817066269622531662081525331154962685114707713919393966271122102525716841470654715653236762023340515434114202820418497769363935175765858544908620769124519924338413784275793735552540586805319394831838330700299292109410791297565939408583254102402282324891007368550362738298182561107609723491079864074826682156517715450819118299498649314591480293228668768952752031309992062267296510116298733408248713600806870392250669410111750628551019168218575499018034765376245570700761528998104438475641270194953149456462325180858760811209367366087130566091204536368167035225146869964597406347455670073983198207712810063950652222334695817258628232177933036948467767557237999608624955875896220229568222782457944991335352802654092939863899655403539181494122182426488330454288593875365639928066697451713406829130467558171601578772016759919533822073881933001324534519942419107998189964112426164756073949419912801454365902424572464782241520648937751468190384406177848701212352310753038671446667112414351423111855367908418214035628264087445722458532438597682733846258367931353340708168462114881252744250473988708932345236013729498259309036497282378068635613789155583682907252906982379396902287990736021597105412597345482580904571368550525559469051000255868439041977587319463682252740381414583274552522937407660557725498621442543972206361953564321911927949636291007454540717007450040886775008262656818005092691492923945199148175963479309946390065107509779770383242806564433922236513873995778585157475751185860960059150134535748683643655406179164538195726457224904610967169188925537839983500289432823377503700359603063939739714672669409368028468940031162533862443643960731980111205342351417581721461284377677616580270309658166512792704837702776144922747847925102722387562468812591332306351818455710775508660140775098166123087701981089656292677578421419057277926432310465228806285071027044689067937190419431120591735379490107553217054180273643481928595346711347377141486200507311393360248549846783362349462043398117222119581252450893642823421028969608716626255362469349075642729500211286249634483917847881334776772560418888757863891437580497205319126559508275571504953736043601334872587736608390570185960107506886868055114953943937890682207008631801660188794328866140443298480590587104336646099788695614379757950545037649996895980016157981992715091495465546705186547013375692786724005800296693870680947147562136752781882798021390069117988916888295591887543025577431985116678436732268118550288541676886528654061934709372455456295213673877670384800583940923704928948237394995938153786338390786596454741268492852126016100952944048908955230514387495221902088595806222350074276776499400580188334984599153620274712811281841422016306116887628375207635499553516877360366630968137785024943765247830943548814932110422138854257550586618644455218240924133582565081020705638839542953184317536135012055339512473099259896559469833973884534072512864140881658702343644707093152375104634605532475716027183620455791281745021176425896700248196988766540482225732523764875610903519051130259773653454989527773794231748676774701296709014229136801972388881139921264095197146917447357118086139836547128480033140939949105893412895555798314537136237477937419021669819534983793490803982756188405730580185020921634736996737007824417308666987832278385577351493654173095365035530157309476017876111612391106059519124525264354798796852206425436881183721638498981814265031554760593975324084748864231903940360392443522993138147545193858240696793716628457226358460661827365796937234667020644563044507528336103492654013810977202656188877526301684272727418917937901369147978224488943323067025820806375825970634010938200897209705961055951204013707188695569233110708924723119621808350726079910754458759535731523483730636848816970996322475370530657922311976263466850764217081951051671942169469662233428241675593550325129451138599731458429356861028325122724807863289014127874755114519977929627455484312851783640365337917809486212497145901949897707521463618207959067105279136876451102566882441288764376460306168416669138335884757811308269530898623638252207220079224865269337551714850953633247318369457045898367158543825398897865302232746779152869535437900776588676292438438138255217067792159028461095754021076976012146390376153107132036168876519193561454672820031560537886606134471526652443598000461442503728158040412741445163622491771849352530081053356035736785359629843236379567501110028857015965833896696480424352917644853881784850015375928891301864228547381297846523003425951907494744163026399918392263216521345856499263254268911263255448835699839647061208077691277493227255171053540750466969686199830044027105240400987320752480115931790631786523584403009224206702096719003685669747899357578186090340955647667230988978407318182149585318381293326400708633961788369361390092049601266407494390355665777580763039246273115502618507092372315226579151713376409178181123912908083272255417427692759126111865450541167190653576751371445320160188578334260083930653040891194901685042686404212537812379461244770160867480160953208524635021850124517665258981322440337665560866315921760114772188860694397162886443154231470704983665545748095869144567896995649637484599744541532278188004026843219471786213133966692099674791738268561929598234818444792794606123198224365782397129882917615692213363141888165315681133936776787176253618405739382644014332148170869918332006484553758763471734549310997824637719902829377075637257008671953032729404245208122188015484331402736762601226133045020168618764494695752590457147873408091784067324029774778867933995497118970443659492332589049414917962821227693588654270723029155092105742219954192893614422524953924446409862969503751409482161062612169808372131140608726653426706060315464113932415875025705136543765893200285515084825919016159510791654298740147342059919026995397772368764210044176880757229047566491430896876529641147153527126918528852888560378552845754353967449990060825516057313263256376452180451991985685179958428994324500066175942945516679997420738258048136531542270145193081467862483186822541721266972978361430098560600912605348327509064469970513959722463068915900886784526140053017071144792150540607158902801865202096928183115467419625009927776016651842052882175347540545000570358422637251873112491551836637557602477508142821242413780006854592309304652232953170675467364300626845598344462460221319562727585806908753160085987161802111505924316088363064756540131786858265265475613301572324050042035659484835354875826605813776225866674029165881491150531492927233702106418133067241446025673499272629760759185403856589408823576305406568294918936427981377825153722076963589084185833361155721651617005874808510910380461704062580007252256230313507505806475137022296630985809809776265903064569552068399615523950598870770802488858498883841223764111649114805891142133627093447990272947754946344887536619494306216167788985203937992219677606759528935253503006705943426365199956082893770592427983042954628537044257758664787779264418212340350162660108815283047687112589033277424794208368503983038316181361324889366356668228391104793029000060004553607840708628832117885085417774173682135225603959142873197187695095682940457156946001710372431604275451956800767013880910643394934731916857148626932292433023445301618576379541558003923584601085494670789561924560288449683775395489603713873611447074146303642187848342396551716150236421853982336837499425495253333507264275142102166442469409259028664104246828601003652908236742228198528570948539037986564209314003816059580865581671720475623953017387445414576193741338292716656756289318286106305964481235188204585908046628547830745728256439662424760078847316243458760999221010681284957884384989034595938535122017056970361899079666134678654078926980882308948514680317897837495607992130650322346289295618040180503130458402400763317213896070517169131219070937306216971617542255566187689961122123191161533064576630665545708398580055434533867339369591975060367867466585077513945676367270485399586518300209454628380823846359316100662884662547856152924548646553727613275390141113956145629001138523079695531534563056420351489800934649045202584847798090764643224918336018090203637478441173674601512303296663695750890859555608433529397825441109848506385535839040886890835176721084303042463747787676086068793720603227828474331610351831265165403341124007269304334753657356219718773856011573286507337359010911590269085727243630886981056261326391133029463114238468073938922008922117262793594737964757530054426628392505931469255281033519491502975304206057157036772943170670437325388850075114422294470652291489614498170392234209067546525807882407115732614501570758852293555165732340468315954290732749916568257689058770954336443234204074578266838453349557451417350800649483787324070016457854412503733315756854441786645060515787394989096562909154908081868475068612503337705122124945405197339063639054850480335393594604093369921510262550062121261340744110598277464955881860464472574708031541243740228676747716397155956683696086191185997735763296436735207440711185047211588900532867610400641894670677854657475343564297277331870148122895243481747064090711313536191652978202422416852916296975295040190500459528496610729720412396365453789869609674374510878626304917204450317556627211593135031649358453541345456387900659035334684540545768765997488768869585739207051078504217383502480713510864495365850101557571776772152285080339958103939199847027473967427733422862295297200682703448170252239579328601631484002675576577850968204647755864031312660884053667238220939760812459061919482756990800677053241322823079977050041522290940728160620246884034951100905875539588716983204714127935034404414683936771639875515724934332801542716882060849849849335989385224746119783626153629858736252412884646373593305160917734421705123610472259304160987142506376046327778878819336946031776910619752654701753803233371315916974464919189627839550779413294128937970719313412120276605224925377179635745905745205478974752701312762573876904073888494560936497261845651826298275185716210862021515622752369668926695690150419298663800264688253669666757732102407572821091781882462488873494092509675801107622531563067788609644196163498914833723550623174160831282260748575899018201883088748851689966462379423336663944241795843967206549167591766003083151193674695051349655538712459183885533855476519652018527797396218997461244682234488898750390305422867076974690682587539460744011590521871486442732850146160126612300367152895738008357794720523623601091079968340455918971577196749504794902120742673670287524930456544843670748847458712374645355781739694980906189022098038612281879652125966819171681792580677817245936822813414017831590446345029201203575084082593881340634853115509379435384348463895390501602971460228186817589441833593913526976317675486344365818241036319911800974065429467414233641383297175429320168846079895481415493585665877572832984832024722690527250232408812244065390072142134356571822818362702932817618472006508790132626292891578298104980451356095480260708627461670930491395511905314037461633968479776550355190406181887705436989299624785663350516619134231339389413389429455688337945474998075325239591391933169039633629897801823031516251299027907711821636183544652553220937442128946106331750905805712735962398968593058661072216355367653839710544114209158207806004940963072225188499589323881282349681522135627903442706459550909564487255489058131498651401275570591892149865147846794461248245361376263153308144150091589518454615115348629743441518091119018246442291527795358883514999592364154172383033216829146122806639000193025396797645095754536141425208405452080030729089516185200366423368676278920223710759153681083086809584145567006295566928970357127369366305387948922571402476785701860419696720029007572689379066890133279313927025187639667614252101107944847039166322385173519281236064143752580909335932731606227763910559033468044081704573421524381347291045986832513324385558166141691392674655461841911346699603066341952226472581912933787516876464026768416191274229760914120402033216088739431028012779916903130661106624514859188002376474371464411199459731949922768136204891720017614254795981788280847728839645856398240718998864124975034786222552577087894013409183990179304824259260761164893762887801976690488630842618772046520730829119728180991156853781407851112116358297558155605478783155345914537455929890569540590243120470718045698276506573853371577087449331469450227024072451354003442088058092504124662431424226444032786648773572886840910302322853339655938292758676738703339510468647402833795119885035501784631722985598888984010589954080745712298147161109330747460704794654386929355272986357724162096227335354225220534502316611483907840290351537672535466953223340458573378628789244021767068186562903554153470904424257549116157727784203756860188752300403100561516176246298888822226503309976749276043108016911784122971369702486661666458110823256762740518526077746847141538038772750799536344320250917650641449668419256279000797968331952279507277440150928466003243581742733674212987507819950590922448197081628464787735997806720893787230148769554435127667357137720461815427089204646336217065569076721161076347337645910412466375163092831562808725645354861522482105117413466003296953270666950261603484327732047659696560638437918834043486813299787891661390760271177705401073864993648698168316782087976823187163648222614021108197213220910621159695592353508528405681538300412203712416298961366485394359815562667114274455781607310538813897768551169995956952469199620990153156774640106295213583563904858603352194142969620638399585429230853674141286781383617852657848067210937939154742082819066361644357347827935162989928426691083724897712031499656991132272325262736208986463870710086324491796851471815520590883882473299949977095904443467730699481367608013150363143303071783472702310936920869861813060220697233027055823027997479281487486452620846157358294078951813628214916971169907075557845978319512420673511159490291395929617548541381734843252308943258207549663045067429112176069057066195111241786997386160170389711115857597171145199969120392465173555306471882354994949203568300644879333141513598166793987520937687881171853926457850545880947557094238187150674833259914187223230498744856587180499717851022540958296412410232401151556500814516094603910751292580403815897597773424468242535010046210669032679885180126859447768198286316615224401089547977188605129731362754517052163785342178748738134788262093105186278355690257496950065749586132137391987350678608349767493044264342463532841931558938779502888575391650874514641755127298965444137727766511389502317391208957671297519829416683151634014334808677189789308597873268468191077415354845394018924802661106340513424554387972047659482026206799146252010800143808462682460412411884940513097202546381281033203363806375304359621746136074809288170213028656188649728103208384512520812488406214041549372964258293152083862042676011783438863376031066375524479597190776371311004322599879235130868403835308430791784471816525699934728732313927631844791109334661785406728329843457811245048571105229026407027781023158637521611449549156844652944168592146252676052584436964992085531153219587830883162746270075808732827575116246708811133628170261403140561455161688147857696882469001806925954869020259364042107470429000965358403317211056985344600642741179544874568546389411078822901424828709202043367969543986370858318996718681038569685045621646231950748973437213732106384408455024848358974917701378460706860196122713098421647806586232059407381287309502070437217362921225903077155523919519324442894801453350525080518378577364583460977592624375987088469183363489096827883150142448979421431493582551897533129927522850495862882296982803600096235883401825263413160515034225998805571809523425454791662812698699260610050387689659955398765628181514055663584329201343764895756562039326010526713644437524338858796391039541174468604755514564042150083459967924913512892484194114368770221018144335518848826475176197781987800269038297356709793461267095803259268118544401591902196633903536763080712290148179005806944616704390540991432865074814098700356584666393599385450209496235521311630474975235372510352127284191723368519460285735192319789474936501753047430502183973961888603129061610810716499907697284977519408464813840779893478581738044781394440048986794551985787347802665831930165036562349036144535917588618028006181558004794623503378631822851866319437047114136299130568230017688970074879273365171252356979024770767472586789959181675350209930972828967196616588974976677668666273646179807914079379048290305885378889381718812474078666392016255360115608395701490267095546405746048803078807014785492819974267517542492934708985876797746721426353890105309632283707594997145246376391565609574277227886276561070858683267639066072865407288092390655565999316143517093954312021679427672913294848865272498740384335478664555649993995480154771398020278147147640750275654848848849646036720307624675539469487654718538456773412615363410214077306561598644016726726150545431058777075463759907780877792962972800546232835284602169880512810717440880578582136474458617392307154314646723939032600822552847925473393793715020421878204422113317807948202137584166731175931133843866566119240679628374492531436527725745319528179467636805664115942755577337188830846033639431947758274313849764403470343899966590934922633174965377841127656577347800551686637797874853347973820741237320323545319881199987697674539442106346082120194277817383262508048157372213867048930166375823356043591996139311429586788780269625317572714858457715389754304164425054781694224863389736571499853980726549807642447889293678334015946123391589927140978097366265528361788897723094681874386511625465591519820098367879031288390275992288168906552299817481683932743555736219703889368517303846903092535490192560149650463350621816378112476864609158317659556745238018739238902466767524517021898235711184782488853688257094101943720955663782831835516254263299686089967665375704551268203785786327522335938439642808100089770677387675571841609416649874191930870033467443830115560235908458375751550340133771737714799464204026045905862851864197389516286760689934928513951390360093623722375117551832739870503241919871976487464290350481119699010445589107951325995832322000755326817710083529536681856376233240448782850617612781922124235733776412964141760997039277465210141847404302619289054513669757689738735792022978479718438467580972395617982633570504970352662060967711507266214921834498264686460596735480114778681637912092468208456890771237765828904979519997836631173417125947940948719705078983803856475520732379887216809958554061680364871597927795575096479806241002914456177520096094341583760503563121929895848835511851183323596048101320476042160822245786642873381033509560002242868013123145579943721543631877166811168270749768551752528243899714529099094048739016065272083724900990819042606488607624305820902134726812566979229828385899751648274909552965867595886224286497472561046860789879793807444123535086503058140250673493029064768063321008156488847084671804385946909026759554568344824417649128910490318246597982599572559023570957668998325704861082731746441889930520306131579495004144733760040890427992279114765648664334847049752717400594815608156244011291217947269566980677319690230076533922502290186913445757240063037573110367751520509738804006165334875661071390988817972445608824679639474464591676441541339168321778230664588645612514505323684319103845905697717276480172493865230456829329598943989898834514110368959098968286143987793040514425071758290593860347258269707545413567223864426149637757221324741477125445785333589172196945831756616606449659696522879027925959145547123261418256930681541855750451831888878075275014624457555272587927542692906152986512859958491812579657384522830113104323261328334805925871591806177103374469014148580413214386705664582781142762943860419540787696607838226084531317908589524473058437768485316417572070936003747425552654705423994337334327894484972634410918388114634063588529803807682413465609773130121351882458374670029930658502184315233583588212227590202324406599909129866404099197272205539048806703396841237664733129582809427995046844413773633792943330792398922206070768344508946016265186883903357162286365106008696235889659984773764452043814219781518978728131387687851257789436584530734080764548961932794434888584764340778846430173036034863967191087189896148743390551607208505274262890961540784437715740678886919013761496400307608531608322724593228401330195301623206841047866838086804654016089844425496326609933655298195357400109725637804707667153465972469710322675369626921117515955538854047790729081606286662605033777885992781299481249786946418839514854646258524364077513555518556465160058313331638202254130929920932066546759408700765522890924076094069362769110652287850170779897906502677933595464412434568272923356829508797365864412714378442495651436931767504283787746607011118113551646850178570939174580168652874491155279949978609419509586664900531643164253288254257075834718850448240724599951564990362643029934325735916157434022328824420037326632017886981860239162113218590557758560426811612194387952104540616101670563596172402676099523052709228277658950510261904171993619867413337821670805277229119328257903872284176485219475632847081704481092359220488597759952272787128602041627487009715476671521274236194653005944706538100210742897642017306858641265124353289705403149090543009488719771114745012977992326972776773241258947678185640230372764447933461609450368042680613557490415603545885592104763265133456386836532368173807529461297886251499951765751612196744546591073863563443975183233214977595094747658821545593188105736010212015285745245588159162937542911532686359228806450280024013991498856078166122965824460530465295695853916233527082108374152208719784855008606499539185385964807346725215256344004922793847873717132112426558396813131542471647441938172626656073933802502045113847801070497826663978863613674153861242132293856328360754197561286500710279252955302447460131125021696202922833628753044636016034174385700942624263296034576666320687575762589412388115567964211941333626927397366946173921680446432210554854945711790481900898419790279369531111394797423886207842645826947179108127871218263591842961177775131112344927007446470864235927089969207164621122166954082446752058397967481147668081918890318403811649320762396286792100295932139601393718000862465582622216305154286868967412069693752483900342756853096955194085175278227779031513574131765420200467434925011965045582441150050633580465918318056293748829874797148291423086048349110941697684757741590965144484495582020331493314264702600921757929584752358249419582858631830081197557909710616673276244743011151697525253148858453499015380057599578050653543240952453109941925944071372747746684111627829471538504365712263640932849234657445825670012052173292439387045203256374236347774652262597160171934057865618777498870071510536532803402421777168278474295348458237151661777574963614017593300823766028239208508187430193390760993626574977281030816274631609302539200302273110174649586719532221980278606459495761142067740568171091610644313386864488367780675790914297996705163091290799869285199402713382259422492010338012974609937140021856929864850486137066924924378816122283362931325093244719928023428583906074572531917806150179835690223498120060417760823906612253491552836690435148149762814924382438954860657206471255443533311428270332469176709808928219630795465506261895733277263993429216727069343219114828497799184399337483783221435115347177026848572424184476921111144353782486122958782647826680455195366949446850570917840284665489059864498141355048154502554788743671733567439891062542267894911847485592905002110964498756638743364061237764070926286257300758473634397026714847898720081775697613551610547258214328011583057168174516350995452179914330120552482811785893199367534937552671506789677672769046343861180767920031639920750338500747921049926990031448322149187948248823552502559499102104628213254495752841360550009577471340024164618226925776662129642453229922101942086906711989867616690073729446416573026710556165887086958077395059441605109263802513133661180661360018515219441004950530300689282686165058351996750307895053160866896371400820133625677417787295091092856371698942691494518093132787771157981433341499809767986852910978978408393019128884810948776840392716576756846432542957882349204778566477424301294231471827585639977408565673738631819758947794239426671353219426889034460325266214475810129620192931827075372249453479090968599438146896934091292942834083576232428186168376855562187915157378143182690092318941195030899602061869952477291153634913948325821905169016155369517460860179773472989515072402553106056235192397615470441381078502086316481869682508343971494700899123925741353571437789863286303649000395894726016611350001166551568539924865833858612389354166974390345620751560252355099365078540803741171663998484285427641966322521404533727474659984432457559892010657967639432220442184828196155482923871230376122754305678241595741573805374256069464282696103101730041085460011990538425683041414844364308301590309932402769611058192976383280251035697997815540557054710762435590964159839128673451166668860450550024431005346821986450633586497726992086703698551387791114490563501007912133058026973791270544838191654800923874220628230779653785910662332843974927956942370389281282519161220144496022775350562420211474209782516895569418567968205435812440949040015177543346942818522180062606202625182837064354474233927300335877137192984885963172434576246067221168900887752552037061727832895351478053150259598891151662635764284437885003903525304350327682455930793412549910525613300469830712337012211039892343986194812143146690459395013510455656435834491606444170481438251309993004658519480240986086855639611551819817556668481619160167446112037008071958389669902133429745966725083331493326291857150674875259993608863099856772087351054725740751991955953402259834190199720407252505267661655179346964674991971919638420905028899639664758319032017981047733756568219281209588759483205898114836120393230977206800056272892782757904553228799631540687026970826053815859886498695609616595919305215508831557936216874561151937129874526297163318882529257883667294822035086146089189825646960760489532616478178390283704132014813305548739377113035531831973360776415986759418977912539519884920729232983170437493117581946519195486180789064665246144323069598052273613273608681481855055156910646389646696650945726138120350395985493997472337309032881215828128543537585717740589371120148815610939340547336049922456967572553708791691824291049921314066657977832282255022263550520847846536389388935534716591726901216523350954648885712682387132704937607176105497171802984579608325581127751695665407664967217336615749699164396108886756425879065347914105694936498906930267176308422063663163123268337936206062022345258909411397576456292606235367444372441483930173779992969526795897949715414237265092689345386783693802104780361002690796920447426007678249327329866886788283294079928094017309951000501730124112235137101456954300380674376265020986229097801545900004127276825945562022904090411695724076187482129075640780523990821724959398688756011717445847241004531436930178670824479284276928169018224402153439233566556096030814648481883508002217049608947654711428899390998396654143838817973285336002770017986207516573488926332542142924661950716508567812349575424180560744323663069344628834008350486581333450697137889391041844890692257034748185297008181986851001529850060377352007442981138355850031983289277096677743945616004540742775223171338147406737487163779816157980809658287391019986091603698813788199497113398307667361989044924603581375667662857543393159908972685062238124143246951603896344666920180881732278164769978145363436828478036682069652779700368487697326943834659355406387114954346834364099071927909698368859576814722675911755404479860341584650877145567251098037890257983011929716311426527664356415167043418965629829158003873819373786760536609373975449986272732396577130543205104137833875748514555548605706532212159613971644458056773138229970682298518323198517045312375682553577849335319640670835169539290226249233227505544947820613922911442181151610117497093868947909058543211301971247868744046045558264037038504859684801016379337915869076971717389196163222265389254757280525289666004894097129232063926021143114103807683232978029256338435035502955870621922790732907538396125676283942346078867955535493574783766106018193484853225577494760547211107858515264296581199971885910998800896686002154787933789037594868551945683434356552181489772912333632831929846961940130247729506026889856743531923454553185949595408931063948951560673861270778037729746136848401878279930363827761246784112498800076162713089665091075370935057993595661279884990404665216462523629827703431080642553309776906701518962004346336047707847546171203113655205250333691359052416543234916772238849918754223023089985615825331274117745275689400641217429257880856211059400380154498982229699110863832874649295448133895846900063407771529526858903979748292006660050421555680922712989082825259467541334114685310007608601399889775381114105973552447730798364666816593578322322744726386866452398871574153136234954331365506365540114794452568569117424504587130546024270728747680817246656901817615566078996626908576600094841677784031557401045201917539504388210727424515533989271372218285809607732188612337238585309530674653060525685969579023839267359486175868675295209558244612791640658555480874556899088719460558325330985109579125143610875632575634509337368342001357494632925747327673238068865748275697821825673704612332107763599561949470292029444683329877549324437353640042594083486493792557107535984441814679968315693730369317159176643263654633932126973178688538753119725323427553552497370766955223836675613297063526641601825498116972117532387234541420920806370189809146213975328547953914581982887812154707465928030416116179055347784241100063709243821673022642362691523366674801331674902311160407536391386437432286020182399672162943262350893406916932775047277379679970427453210607323737700375553831417761095411309508462159094792634039490712112804109863030764985908175179386264510219916338219777595582298962714616538198705784022213559393564608435620744524145429244636827350267403171349695856807214150835294098462476471752818244351727536256947131504975771257703214343183132498327620436388603535483468109518714548696984505727928195340276827792365407574420290438829647901504777662022856509308835547232684138977793222647977801861855508686697731597488480711768342789694845137325766370980648727361246625287120219879429315597315502631082425687720720677370724968084943198666724965660762715487518166174243059430495085384480337393857153796246618621868172459407166306089684632426737338357434335420413502210364396242579361885081248043461594159536907422854785138448563156211421707456191032381050158110871323859088168626538056294480124417825636413607704506869875565189714957052757008891797371168775483551871070532244165017558264835465977424953105700438704309956542905662966843100938253669245769808826487633297371026298302483236620823240073950585749999058258074473849067425971692138743444318168736975503473053264537359166005501340478628889982942511507457154571133492712775812570762239541697820108526567603091433003615430836961296253984742025741052885291425330562369801905435794597710649599114513486156129188806499914839278377457253384936359749458650172464557753878058868934700856836179809194607773673796759065761662287577082094728445740964258328584182419886317367770512679059855174820812239289042119874626964529389311541088073394540386267702815261484426293298352136181826188021950041828863294776297195870358905228440568289869160995328543478821006057255172496751217956705765399106366907369812725440298651283740624407417219923949980574199992594405157102456895998168789247970081427140715025717082069344606170998382201874712694859897701329539684302991925533328557246538202450703993271889310222361528557480994451062025353867386085806497743590675541603364625524426404166853328449145804768083323727074843936372737446142681698491002284509275675662641182769835070599259276611915981879038769038135179137830742131246825173111257499619837091340428569720241184135746725055452842550710497412108779106570119684171352021880942446474630464605395067673545349230669855862200330752611727434376833823173696441062215652008739544992826912876387966974988904589966410061771795211795703988645532516370860388084880441431459228662828552767640468718431644298376490783815723493203305350377574632290125048479083518840374264050221096878925072711669495804385959571149856937614052864746988838898533845642231135363989644606698083968436709494253398670173604283754946764250950833674971202815113561449009468006376117427077145417236900696621802216050697328219157504757208323235088537751260234874740643143488414801798857861345123047137259803456680782361672825144933720061749048271701636112087687059042717042917513415612134955162905152790347290556711919060043197652949132597930380079497775064756543181046974989173306574993360320297935059503041675921121949721704314433016749219326906239476637176144899383607806484409921188971511745811825683573182432334240822320920875706283135799784529735305058384585778994224523730768297469878359221689474313792157470373146309215805409248568467903585270808931202625007302632057689539710290509277838034756007207262634591339319635126053381232317533044816670654064970661396883011069678584766343149767275127240606614563490918270509099238998015459898136905444143591856659174777392771748913848530726534026477196465506979256579952236839248780936260738468777018890555021752704571517392781317413724656675374152100185689747286024181480059900527865692661872909152157636506350361631302666514731823640202107127503948290393007069602845074072742514548875179809217828979119665365242553553341438219522427771625884767210392440846070799474841253404147791632226258976803179440694482957668956788419427475565499437526539120877863761586029830400341957554911554290526652167391533882559845589781502517979171255366620414599653577273119088218766338596279193714462704835934636985882244682737817862673959772948001630571501907988119325673985302879768185295572508121761007077594091849677508885458323225083736724667823816502936225485566070766872915350348450637909696558095603935584739086828445466716601973581685599224637538791222753058194271375799907535152505821227848916302502010202473233334474572913136753483542742854088007324187022864090381259834107506481912900721585955343124495318553444019561833358228355602439930202200443853325813796093500362333873891920103041886232570582875075237664367237373773624415751236437298218365805955382645110406074859656400424565467964884351132492843693973642225048487732937876625069021850288848007918491758372424358987729554900645025800179034723664062967513293290704169639817235571573641861616783709932890515442782006857572959037950133281411299393501825949918764450056178396315955919761400788991937471415651148590932614159590774688405396654315393787800928985746669271281455461219089960887233552866298716508023646624568386567631570043523031608617793040134817958004678010316515898172977638520031170956523515846747453762847285281042218926767684348586200779692939828166634408522564933288748429903746012697317748010326369773899534940765454962208656037763424673116136100236932595487445126470847510326060574184395550132208421829443440666571523438319377108329970035312637105196919936636654307740044241055731528671610256176405090599422221771762538298393715719025882703127662915133236778175645254995897780728140412208720012499463470185218591973143501750797441806567833691904592409748431430645149624245518274719614652431925402287656038636889721124805129233099687110661864283954621695400121927731272731134251342811821319842196814897160491579484627039345650799099351433470652873939284333368566916064879392467774601519015334812995868491714259396894618613732136228022254464088363166424323718337633438843222249804295960732608614524134196884751909193514072379854101810315472278461848352924533864273900876273266195645931540984369876063958389223535137285237039304821987988565169847979809777374395819562145824538544134261372337926836545477584240381907159367730251269520006480511502268049394240592987129233764834806751811040746146392623532240495878055677036609147204572831160020630800495477545483783595837776573476305401148278881800254576992787282770277684634447837623144004363591599424989485439531046741484028240322729217929799044953783349720367459899400303480869169485288837231761454614724853047336752279519044800270350645234357911375567237361262918584261742139712395618693569597986981851022706439220961673594017506609548459948808554381374334725260036826333159250841694382379637807652624461208956904558051791045813822920881071628137966002111349376337034660091060763786062069513500652704361600066197342053457570890118415083601091745537679458866577739474490705319248708900680002841909295694947876361687785419125641667285821600028875515253740165419057229037096203815316270017929138711443160250710096453283216502719712135381477275300287953652858779904234097488905925539929948968374161308515409542030221870699223634898703763674900749728747966879393974813451280675130299166674375324282021148555813440454668886919968597853763184700872919103022788387687424895479165390582750608371006755275251529937028525621190819907626228687788964973965238036380080939560658160235173670649567382695535109492967877562258865673381372361130840482437902975228665987177191677279688327932439152587679787179249404862166811212642603333613858258248086167957918559705578294220405794484675716038331629581039821596588345413499109031334796396693563381588643163052253594394642074766942460737485795155490432152727868634835979328523491142172309242096022209157381881202504715071687018647633114472094577267970154613471911408124280819349493533572227118574345690687826478399887901648835672485866717954659075739997747685495366345806443594340556838432041783403176574295165615756002396533595190003776570581962570531973263904383872129980325994410942562008885854211772677286173846935987831868804502726112119138223653917371756009559133179745731191878345783628507490294588536314487970738592617451260602164772678973837681322799934302544617748186978992080473216170925886501953571119431204654279479301779403206998118025532467854703137100878588136349887250056475784643966506626965518335552465961275990189194336561699926957868027448188258268555047054586477613760793867643195748307553282587746556627431698598309034044252082307733001507595907967268393392598793236574706348062095528375899470133492996167517320722449175270614242757366348833099662651357877148951502106668984082045654207976653267318127654222219138119789387979549115333726627847692031102159371473266572821082048490970438710445029276596643138192544831919522750108343505985435279709970882189130669929479299145096560834924857557310972339235376132641142683520476207502679447422023831123575196212619508515648036101337626414608788863442692460991331766372875772151281892877054431482826962567000354626636672080321190004300527803308975348956323729324164268972433508440465967379347351189760620348089455208476738571052207854788738321189101070135282910571585983362999317362331776887161645672810970426520081919112000427122696839560753115080969544469728570608252017318599027603986155759023488741101314890228187127948740650551113433428323589178927009632716105874515728584180776672207989336196235849077702266797316924629236511306175729339772442284244647706554892294231341317252691355920514034290212054888758207679172499613654223661449350032341660793982244690977837405924020221144717916395942867513402791601245995968052334353017922278907732368400014383885303838479089575355464036928680670181850601780636256398491507836853714685671620133869854411764676669128837398584737649636114875538342916395125685915834544964992574747262477189953055245892794470715114745847660347807653395499392690926544106158193245517331860273763880502207622595062759631763887198684200920983233951352448556712489346476207019241264390883150510410508309884576606549905451356704603634878831719666245109119916319815998975692876492332581819867074630081408298198787494823784458552382219047235272447659501247766350467882707837576617491446081746654106327736940821015473766665789179680439693269052630283370283640336364959154963348165506998526963608978591897237047854413736231628165041567630235159675531564627746670857974947771543833441670363200835265296553895389100153400210289716093679245846581018967472435713210663636205994131556257141490286545361133253291945950035594778284868260460184904892748426499900493924827571778762813913094318978605906931225420624979209392775732608359159361352494559721626274051947506826338123761566369326161993173409320291107361046270385323436772495091883986108664873930740528868055938924699233243945277296283689351228662242394627291074093170966352160347565619047011956292413693983182051426367750775252278464452469617842681954849882421434252650920221694357754390670660202296146253191833735310636323632649090374484514407913895069986012797426526514697751238374953632574903102109036287258976838785662676573042421445613481353279267734148771003803083248934058598148851537205228981876904399330852682785796539561319600234954974658562476629345904773858879991746724380697648920768592155104963936236568727580605473623404810293145289974251032520337328695531715807970336028165819496670513720275611935791032768711740737700468116398105534639816051931657013900263061709881541983133629976347373949274849799952886405530011673855443786564351280099328721585658015447142815049864420052611520782918866478056858479769890800754957949374091798819567209744611209122057362709600067652998607849338788981853240148614331276299738645984402928173047310392214559299727971300453200958563520490637324510408526335792573421688506330448842441367067173911306870612824120920193819936676004655421368888718189862923929182024960579903922741143074761853563179284792493158601787631977519165486865283420261104232312260835938333093660081743592845357329303823368051712849855238754308885361725196185923859315984476908911361592805357580344689226037176315670954291622743015710827547870185460257572891024074527666976055342501640690523082192552170098142211489078083251322902975019560234858281977587714203938024533607091073738909019545955479484170925448559807974703329088796280044833816172159482861309969716228601020867378561195630629139060208145474936537767856631884060143121643855798022178841875833463556244684571303431078468051847360983284876665040993356329911147881351993747125777290063923320175096426934336044455179634661436818004711737797512174405212602397763071444166041669109724474364333756768106174536841668496180634705785843202105708594005682684585712101287118050298986652931794125650765721847949910955329521291142628838420712398052600176723973339560007944644208852644576996954072428781948627582449849411943392903995275327010093089042825744371873718312852809227531743785747250888674035834295694643726899631354354049160920598925803377551637068694043015422105775441629625903778381028031498395757032811094036576816675118816223450708862102601463687594294513412165990793085725262030153989972604518099532801373494047278682448176926412559719379117256726716530997909648368038513656928284305846115703651809636012576073444926793387790648482349074370085988604552499102174669001947798203911614979640681270919140854354001293476092146259818645099874588146130608569214486497982736740757084361098784292102068480149034469464078743619832887271169342950493124652016223050344832290687362089383082041208021261072899932715155405462398113187314441585225839912302197615147815766511255999090062114642696326710837722426975779381403955843448936699332110599468450175025505978424005946094231538167738082447952118857576034831935872698233730015829499221869380694858903374265065162512357526264325680422371677784424889934167879353760370306884207110870969479418846836379532130736350305128086388818193142354252854045835894266880340586469971162224185753538160067350799551975583778722684186577408150044274628756593635800086078735377961998265376099537928674374164727720281089391867455623135804538458902915215080757946707672951037674389563632327067679144726906198901882105599538521901891702938882101938701043073121826630394871588513452403975700863247236297207671394715964062803771740603430417364411918148391988928424555999916670258412604161771729027904940908090209751153315919670296681360640030228721334228631384774951025729411805677203589840919585148043016606151169557137983490034309838646875859911354425541764262790075273699147205061198619486251689081942494582631295812671575945536959737442513029192320140198130395890127605972159414411258465618198688475812279569756697335627031627565048126175213566693303252300229598665936052579674518606759343003605096368619442166156301121731401385927724963305682741097330659938975881336311384405426819323413901978979392248334645507726870009275292391601860035428428522012264629867638812515657274599829263196370892327748092117063611659507964416877094278378162983763584321612079210374245341379677650863315348501260714851519410884332387328304868766740883636246995707394468137004935022535068320221850545203174832154953955395317136529442563132139838153484964144895228557128007886596315840513671478199996698804874745238091558511979507096146379998179985396505050007931446274383461710889874422139454877997024007983159623287819047713664412399235147553216315945763457902264456704607209730270306854447396273571914035201106718238962730910734967639827288711926947561274389933000023836706165347200301521001709058262469700401565990043536592128713053959142751655084964421972945039947978045841264878753985767055123431714114837628510707679556792202767481168419434460797508215545975994250577422765909616938472439068581154858848086024988816036035070783469898806963637265547012461231966240167302075320885607075680949776744456581844842800762120643884533365851225569682580143399792423526172523198863449891550780566660126224357614898700882245159331020993824946406969205535666521919703903985809960044624103121473790051202299212800514175420740212062122956642994233022969473281692458687921081277913984773662709485093157036854595145564810810436667705760285278794830197700207444653627306997426124306022084626303890392383681103831365627650037503860420998511194258622350652679715181690513010133954192894358281739025409624165489638816926387734214889583366375291297852263737439220079571580807770789159691786293109728014783322440595730322069871501028264518148941730627490286971850653447503377535731284159110248793470247943805398936929770513104421433289514395244410043764277674750656326938277354009024160392626766250924823075348526333815897296330976585784631548466979177905509944608777638507147729742657653494689090166854836667232414747020611236620866865047660928780577073428039761126732374643595700506129560875035821033110179198965350986559328416072569563771845773043832859875152921871065746249415843696014670350165806490252070496612617323270776962847458939427731077141370251994995212073776342636760425306746442731221992688790071262061755564896630008261365532934801647496506479496493523770731251817613631962942540320144742990130607629552271059355976516082249109915794347599626817678008426620326799798214095454117093660321120679609488513412566621978019290012084146373945274233374649616184396139353932557561047594156508417788685271742865637536453659034393311936015559952545369545253198829566039484533809931359421077181728218360904443403936447507959941895237872878074046788617884086699214529020057835422857767042787776984839531341247727796478772080849169199601730667831718396659733523080413246965220072865461340725255369050758183003263618304998418493451932765748996150398622893565288299461324337711697465215179365642267378356303517398567338693295070368144949968007023339863479832013242465747669845807362643653024092398097791996885315448146003272469581132433557706949098786227836557483227947632285956853498758155149154558887646434478050707428795113007053014939655406842093109814436244852629196952631829511876097958532322928344152015706816434619021813032222109142847721414576992118481796032556558345005190814195003803805436488037948135481753645005598637773261803887703155268252138810870024034950510951888425650786658420659924149647978161758151777400350537067256536753286169112959361842561884584955607332148675854861354213790273701100212051712607399599681416530897095939934097078039786331764846337671336382142807471400774337144344384253880736285443989774435082379331279035785132825950750605494399756235009385279300795853053769489117490375789950201555314060749362649013517557954943761320434456542517661675417236453757775023034311450723417632963116446192864799448626663042001031794566965548081583422052679602306363984062634450303008536143073275023834989792084155968363907706556436937299387670889406409216757656980071620607420523336662481110647674536123046356751562591755547829608824274456069727379478801726921011707031824825119438491031288119179680760327496794591110074417497971282982051958815253835544420600153419393694624089061646496400209195931965483206968260060544576793355519831042932930095028731226789615304254777448135281650094327689084861480373594758108766359989169163651418546935763288598812525835739234287817796442334563657069448205373028612039580803569551554767913782107866586060721860255961488338325312113121928047726826412064430397361703565181256224751019637479012840668331100071050554956303484251633018135253686037099981461213182094054990682497723810395006806510791007778584814734392903358515545278667703325590557069752379466311605770307413324601945477148979130959963114262153053767417835759151983672483140042980308985170711133943549214168322594509366425144693197210614824065911577246958669722976003336048668327681615905546814680142466337341987309674013553621413701003858426760444701635624727252159787736300146675859982530727484900185153177133519819862180765099669929407893265262623886582882291038258362564239684798521491241455745653351338200343535900557286046722508364451331864094064632483861389347507348058473345271620848650350205840070048133230335392252676078418029114892789606408575385628717323664579660827798757470227563854690591993051889993323221326740969507576235312045395569707312397540363081851689937497284307970892817563985182130355091325606908533211645719033471545714344604557417916705287728499698815894727861096469633565006054351738522903177748085171674127862228483871171009767710183365712728379727219295248481155775058013780426593736869032813828234211351966115586755907680283896264663480203544638225567175959132539562312893698294280841992744426852511795781540092054906724946660544360775276662644940233085267813421455740820160571620778633488553457221380860164847396058559189944132290642281059014340312195014071731827683574706150373955899785520674669983065111411502166504734603067106877240496404281014664485526566198835078980184321927855898371344692914535686905702089422364009058738341963719228632336834296847589512275671671800430331263136727485119024908948030521291327633007472245205090137077495319543521000588208470299431666768584436135391425900176321118831724413960912610079258787005231176184250441166667316490007366689679684806135729239738184600807281376530070942696213774180482948169489325815982706678144393409448363469906122319936508751327486564948080189002654441143200873311389028902274794422343710396643128350929682748717860567011865201987419791955655285992358295850758252799974249178071719074622793830316440751455109299214973246828843230790689178797193785842498239109732247209582088045921612816202563833456540671504803469914255689896742198247497044388247219829793876478364740540254113084312146098074273841909500277833045038790224395061470319259653610739091758678311250375217318235517650510974412449348028526267529976790782920187467864432979473302193606055348180651056443088615585594050390953026602721256668627746915522719146750425112103123489553434428373294920212617551532831872242164849103192213142954522693265957294030131771746633653500358984886954094176184584565393869127127954126976406795748140488470463961928859621413665890912814305978982088572954874079597724150527315120698424478895218137755927272526697144338540126137247479879942912505090289907844582594558446750417310363922513435687228013533817965829130913756781164908895182373808498925300251093481735405039548699793201876295771122915819779087256041577577420729185177046798814873987916627464202101461888145545183310910135247544172881911028020808537234905457544105773151581894628037651558251674166878025414752144228897724139856298418745071760652166346591066547977170600187100615716153685895098784935297586865511563307305751386173028192052752751739955639909869111242685716120283823504257283447385213964765836934122148839599491764843208754499313126823860202440348089751147754739416538225641337587738124058574958134719902750287630768467390174598605463877052488366375662663825964428167952925714479808123465041382189797626526044675207426746634557305733392169888053288267441608886007642339015823256847695053654503917421235177248901428730348100933211866952317693822443658485581303512687603277668622652963572119106331005301064441327841658771861700841514099861864963517511623678425197908857576972733219464495771152658889319087803832874586793961454387589969572896906492582873356814732456342758472784203508067830636680699631427056540879250229676906752844854602970117047870239408306188378546957519681259147582179314573034915777378364600015695727121997973799436970630683473962080622090402740119719771653399419872096489627498922824606677844225367643154587195643228156087092540670043964682971544851510783059551395274261974040806546742300796306481080824483397168321711864880973098440084172661336825707979918781016783119100757870711249511319093277338226789671840164805915860304153335260596997475907995180350047892028145480134619502389410615843588737264820537071341677646963836330084171233063938397045269849502332522806555962369393378485125307575482832800103753144176813648966916955584366610358096862976029964723956569064550128726647686962379724092247717810339595154954950405994664935712521824107320793424681321606933993789087060385091119605058522854508869437136283708869751479046619522232655489361370290152952032063804775707627205551467051580370016548166261467798651353659063294994725018224469643380255692005531187810798909989425309090695171216278366553833325995170570154912341742652946911807447650663671086454710346288265741417610882153594319288165599010838556147918852063812309694701725841227820917626714649731478156055559788872936884633821886576678401908376081229455653473184808769863648912911897445639663194838813401028749362433358263249895029749509395088651535662149441663540738770385366156019483327646985008621632787294945191700980034041351469867339872360244693253545663493295685166723959819985358890065820532392532184442960241418421465795413138730256517559372914019901391643295800866334058720370707803670212355825488194665521243715959061131079399535796991746579455863325863158383433779507226607779565546143804183262803957596394453146604996668231730528545455648476191172001986352140151802268814450663455694087133344202177001390890804970025701815665879019478820183671115110586133324927233166239295098626895423808083093800613029819122583773881984333530125233656575205558592409150196965538852110699479745462070236592050793473507703397259068172874102729642383255931706838365487151507423816839699129513855589954479180371685487962514559651149478035561926629383969411507474915480392940804158992725179965128747777198014895783695155276247223090432788669300322539199926032787752030086438397411867321762871548929353215162669156832760494239987103875458556277694589846213738637062612910055126875429972580442072646523331895212050830347987216131271754065314201015465391741558121498057874471864037732159446488028373026107548067768919845183250848906267536591806526794826026067112129403946261803452665848886340874264391991431704270749627831312178439885675490461744935022902811124874943905053667850067998148019696896386615293174324084932324732758242610774060445940704415979910399667276405044605516891807127175371973050353849231729641248888750933371903999592465250547528857713793798512761579897249790764245548989613754567901544743594732957209094947317577127946532446547218400837095922253887277357355954918049812577902136993637716026970872425448947528443262441049098053738805110629934227731627101977523073572742099542228883479491137322081773865965200258812711634412001858212952588579500530071973130434773143284834504041317447427245101415380901783666741202617170089592980029257904978033465674490991351502561414761382080916711185617463531525754396306129127874271075047994781308461298478781195131799105238068630028321065389110194410873570472135876249077133131405219022892878398730412013715701065595902739796743912181046645791214227149970029981525005742644282198185879715752985607391936101615151513161403431092205198378952117916008956055458013424737719443091183304245044488182789286475278231923631995692380755530182335695922095146594474904111279127415418115989519791225604065929208923251718676749241121727515439150802693410935054786753147395080439849936681071461664676841330951663201363986277850156935869581228548641827922626006790108220589608838779678736054982247285522867502450599479477301068799703236571657495377143041692336343186552343887905192812669132530477588336269634166117383675931148590952927423903054003872085056076724045501455714686913445032288661792662702980235293527418586715166391643123938920534585880355208720530561236335910843051118437937406515159479849454749920774760684680265322832040681758494263715428685258902167993287311398912341394708096455828647762928772945912926103312387761399539829479830048825074891102729635850899741133248604360483509770892076979258819303609234558256837994657819489645060906754034113003822895821520736901884111474429377001404955850432220223150571755153451532709364612734725941515756752555317455891139064622408390930044993331504506218904780865774509738987246266595629129864278782480760376744453650457495570889468435795519812324276392906166508557056765237790044127736232559323439438244566186193609103564018498092599502899319764088050320238146862655185654297831432021819408742504354762625735613407742848199219175194476586602101251384335078964410659957346447808048466539777052948625116291730299994046456284719671079828024830793887846097370035702277434795988424774960603737309374125841968632855775095636136271734274868967154365589496196774199609321035810734249899457493603078373880039784550514553369972822804596541895485441842619347601976318886158956482366364982213057732356928297785210814439853793289718584714960434782258676329534818106800588496344752224889920344922308482395652519163926194252030734904510791094075929847615963068014978472390830356110091463449051103082203107791150265266115203983960630552524840157813008576072570615494251690421471277237508060340244836140281807760068706859142975449044889265408825122904046817792163680618236772692826665020383000231314507404304327220909830010805017071905688601140197533742264887003840404127647466099769581894118306888255318226343898910565746808779645719589220406632928990030454519213183886167791939541839985885503817249776382731830025885800842828796422171407983143998790648738349808885314860614046349802865169829848903477505533623726052188872428392027918306895097884075340495459627593063968806357649388355090431237168611645354540374033351612918188111299543758641351354309945582024924617178429042388239561616832330813449809370272165775616583946922645163752869301928099063463016019994578668414174284701841232739248547509327302660066833672119872755420361065042292347271077696371945345199585456841915692857366966456259760768372420334542642993581389703289192859366542000055266005714521174934814302821586140842486649164354048322456061714650791285853270332747899742294975325270875031999278172561408588161031323924172310967232291117379181712174600903952927169862074593798811041160236830113760202874244046683425252722238128494291958782140400358443374110291494202747294462350917950208790847513275102398729569414121670367473482141551481316944319673457755827328114507993243772370372304104027802967136270393059213885419804871057738431510037818898703119005464704129993111646617724528323773316281463281561352628066436985642840553772567760460492280934077776883920591815412556537183219239568233033870106197764949205567318083107519561583510930136366411373026430402083319455721356841612855203877376726855172786967260888911514574410519064803716469712475156036096555257100885957877495340760036954662271356036041634933460786981446065950969242437769195896015540221190416948833216937369577140952017965056656861807316213531260733891157556811729263153632714235477573834143431681485253370139796446722337018113606761996607126791421606175803427696263133974268956301700692117947745926231504169387504629823310787086285126228140509946697379765931365076651266749682730840047143609289034431742312379112112608884888918073101769749804671784609125109940392980255154731390958588733542656511179096803768372981340751124191356956558914760183439943005815130987251235472013767237418635165048014992358170031575207168622143737582580565300859708333428776201830529822956120394116412180539852746272602620026028141577854281766118950643276154303483045229980922514793839420259574156062329176031448202112346793898256854357873553637438837788673891692607286259125765175046632663806809999356697426054287635962764105053990647619590058867050999357052156838298263514399045830052002850982683709682776960927098902031629123237548813052922767607025515827671458771034186859819743570740006969782496501958519431696667804391398702103825860276660026642347154442769309733925252859772953255943422543376987651929497977954281683781511852001835318045631818153549511662398503182746581920714927298444484238912406326502248678542595240583544272405076765228390060082239568791557049233055809983412876825145822725658816536760859132579135456487805396628271509145245497162290773938093254573473514310708908713701012496441103389636387583774793708697039697622897816908102912473975435227765394027173335059077909066168137603782574555334043277062652695353384271283156834889012291110665175617076664936242194101209475402124026205785853214650798182601358419327971741944521167036661144737117014289858960222599275614298824005116052856257114013589260629398507637241607168216895930713063040891493269514790250140308101017291101581226172565574188537395399219465784273408469709025136645886141123924016912437378755072061764615812097151606144602770363103458306407675878798301689496267566103894040770987876077152402944556763128159334724804514717189621411670077633722899567608803903667144260069508368803617421324117963298167321494801733789594385972425491056056228303327592109772135699001442644347561432188970546039158539875159652888482052936465467085857125647628124682612415248402237513377306253071196311797125208110885478968509142171434729983847586994793357759937200666772862506565215837599511623806225331758320457726841770112043731438011377942847736464694198752963205811259752003692099258093538341296593707436618562824647455970896216486629158497743779607589815721729122078971582523608115687218261876540969536991946520824692975798306256024212968203011887163598761793554308885006802470840778345356375982685939300502788094160200236448658457069889190773255348564107588025606067263443899705480113786374368232540553236364135563494360873223097759498573622286272722920963264015025546535507581491135109816439595515079483518008840338787158972378656523786300080105680879212704753210209970380220232098214717745850273302051297471825468049099138429927819027955620658842893216380455855678497382390810175999691411711379152592483682592515165534982574813479474634342776494944345221981315898348229651799258472494991366398772411342205691699331701979437518465784353965921014345225358167116997795932201412839072129572775231060470721486933667039851495537360518485766563883211365592703292532418414776582835572656654600762956395615692169391172803652594152969916456674823748591739804486596193464372468311224930664252601536150995770581063141337057770637096749121443712625337167457887251265857093820954398730810451489245962700336628033149906802325955716550021054988585911496015875756351769468715609081754401989981943521693255930692771239813626886357139140464545265758771041013171637541870790215760226347908524422843038530966347934843946280053673854646974083728188757886026876095429841623216359279384038721556995289089492578492142665454369618426235519683816844683115354345992051011602889812029421361284291854568104424350684981094412021443507500613929317038053232151075351093514790244852065973337880997661138468367817120028755358413815699741845429736526514389445238133337626289433249609596065172284496039471080326304741918901196885006836430123251982732585531427922644409984918360087863089563233333107811983330076590978741372861659358966410613533930717020933345089937768529931841747017199016153156926281549788212763335513520751546466021248758761486390115791217079781306592968113510059116534393992456467614961026262263213840934362769032436342430826979412462643085164664695550984483437879566761972415558700829605732503714835569721537224794248229764056003498080691062884473955098593698126697429457206171411067389935117547058241513535728602535796722011139561769694679010983769354422153046874144266179430086864037279654212372095413843756456533086546881233819403191375118033602503763680610918198980380575372847233370676570409397117798907808919909969318068225876207923529024852072420899201563130570467857673596978132452300283293558674230443142646931361198465193453397243531954402004940423048266211869951160864075150348145038911085400467392920856477365297871607341640449732814443518057724780340250800288667884379285999469208280892852312730242485824629585512122988064624738242394825034111084775905921704697573939650006345702333700016246156992705318378033176418993942295522836203143511961614784773238680438607238594906864711720348331424956040154435901270758338577529634517703682859879198687071533775201529022546056959152594395611771409149746105051317048829133631418174639947943885174463899753619188987087851069075243250736662780002748794032924158944762563644753633360368881433084668587707815701005391549036090365184587689020034413177802495392148794640838485339452329231470876033466875970087136915416191544079500098838992258397326685662791845646403411520722893942025696021120797853600512230538182830606043727503617327318455508992311926792790087203602011322507468814778588415545655252770258513806054174468092421440381202235590690332771212386529339915648884455908504474975628123362359322708022302072665093961653835428143731037699491804739507019995149786940520590923175434579230143463859678476610521667129124512822386195183288197536712193993234130341247667187891484884337211155600517113405664388781898362071478129211036738741368895571615017145059922305081176613838555354221774232295715152391470458515408661572684098331841167589392196840014555902747703635486740484439473838752225983916654912680146771367546198592540239886846435844716497619675310507769060441302730821873324112757702934691848204012928616568822311668668765126213619666970774794165887327118104394699789263554819783355647615814214088928754607809191535248430848945890628842035557221693625009895425509951255165717742865649469356498021280014252124677364801395227356514339060965324608398417537971470649250302338363007094831908000083112660703326801968866672033954336187003716495167566624028758752455200004913502620751442158343823294100855901674320690360171952261815491679237593023921476394403571663297855310429755873610492225440296770227522359529888194497595178063640884690433183296606810052858916217527537123771610643014059854124123539900109288913958069086032297838686784900650485221865692977037684718307476660087429991849335818239692336406581664945033349266373579604077638768026805805092261499155219195123300388957924345331223950540502532006038725873649361246065234124976579203695529221737954108772627172873058296661208746251225509606103559965101556267612582750259614449898917524815355305083743222088569342694748044806294300766636563630233863193803187671175892956419604531100155550399970414947965391856386903002714912473391253906128807304490343262540982383503435148301443596737340941795664953834002353296269827665131535174981441659442012561286781104950036739290403463907612076851794939140348064937757210477611450337613015277581846310006049117311257111386890315284033385591451627220459084282154793657656808237140216201070088879248007538301439599903605056163059298492764372292390522485944446422232375893670634490517321188608142941312397841658165213081410448951478203619894378995202672933130151880754030390277110341063546243012225752935230626019511735636058942663124058539413896954991641178897070486379582427162497558461002122668806832027444079467011978955161253989269065766652037102732005831572128196399709853504161176760058950570576283349881468823496943121222085329459256325974584407915531491898258255042980578610539284817810732343238975411805739541397281925419272668785851242773330636459952206123872914685970368450786397899487771769246094395698810969893923060700032200054196916122799068550774315910538333773084091570922530139093571206507552849705339368559124919034083999101675602502239742189630429400112956544774546892035630682149344675781936792445302987826752841989702365784500555790611471070046062546172611737867616134558483783148062972953456221019478427517424011160880605914894581160869523931587059424464464723443699445502870128558087935001587033061422273563838222844083602994744268602206633494292779504332689473171415919053399494058273836236435983968513598447093865898829218198230155839659700627311282855400147222825839223927295954678103656692990712077480064841249150654995112121913332344886252004123108730527668246872057994552684949707346781912701205932797062199680112629428060882357484421631641913391183531396315861580332151693846944014593457636646337768986401343798331142500737278371607170223580613712453250932193592746063162553811894486523513679162803133892163912012426858970734486228695379124180949516343465731780305797058449939063714872061785177935272952504123918002289126907209396335698823060156494625970570902121256762056592232778355353386841415116519623988241514086977032312508746161613100968739094890507294983235121856266240895976720961837846819020173875655738683359999609901495574079449702683695734509623021213555009401534472815074970386074119589702115923981454368008337527685426667996065188615449793484499168260254114344797825269244718323801602799257245325884578882124353848996189398314672841409062979733396781982366555900741270260587707152677700191043935604283624223735578546145149961285537023605303644903096073463244382831681474903008039298800756988961835551031836014657226463778942640899738228530543214231066654806324677483747515409843506488156853119082765069355647893637520369601842945349194603391226137107438673835456444628197786069127496162226246810203848459348741210490501087920382823814830908969004514655006636681311563317134677686498036207984881360631386648515916969471191782561012856304715037462928539198937010088352354360987150912478666345197755334992146361826932349452572278745714549272050828099023525052435545116129524282358389899319723658441107116631968902032341513769878815277336870822423163414739239530211792966938622530776090741601161446336685262239651537258103303009818562921414044230922736417846230180336105324725106887273586568641901485584457768416028942039185653546949632806446175292006749642043422685618732594402317845369563584139920083230697049701504740571543929896354790761787454275729622495935927602860140679043393858557043816579258646368546092482549967561751804757546824309795869714690730682649079326716646919671299870490990533426645055479341189726548704222471446727161929157766751238252977916359063111969803941124677970435302423453896850496437021713884819015505562059750867036557121473424377783179195381597277335886302932688298310922011248494382435053635250496143437954551949130655601794845343688271932109330450079364103458356025758784916401358496651847463263792594308676310377517062182644672062359491499791652270605159163170806253619025178461096609772435302537646120263737371900902943164708200745657748445168136029461948094773012196432221973828032172045604771639875087206689683972890228475782156651278243365027364587000496494016047968574892553298662358398615061955356110481789727716953301985903108891121401496447954562164508774781786070863768468626079387089567368652663741660412153363235616688309856443897814777687532973277640944327941168145491409959551571765320581142436644688843859774275730141454553914410917288806171159649783285315857456794281189892510226715627701136715563154973029020663685818096118160815021649273289049095802158083914085119974231775388612663398973625081254639004669143855554541226359834805285430381395589792213708490280430619229612098682280473141552922692695176385044786490648010442333950424442309935749356377174390072033720247116444890633890415610910573468836735638303931379201805313060782528520094462965590939742175930291711557083179368025496652909667813840309020779909448605826391688301482626149789652829758314510339410787566576753807310627888481632980702321564472643460575833903437258923604698013816404931494632612648523710314660613639065727943580772268953721453429896548573013108571466811684560331612963258918095511527936901083881404910587193828023468265952086201812383256662396570291708538506454639023285741079294947500740727657014435136427153817112228339525355667164213340561982856853905032536155617040221303119872075137686227880314667612655858625210809478927216475839477833207830375976405184861443988495826566069964870475732803637816319176760109123944443175703733621818815010453086212334951246674312658454604400854702877463321656111990156527490740501074600226779951629635024272397284184318259493028796962162813328930248159527730948616633825407488681825259746889754162445872582380600494821858910553114669397409417303281731492693318113805736297398499329604914409910217856295920445400915348088298869899373587643020599879568553102264479628552764556953493525683304937111904033842042258621425916824571638916175310117810783044669612109612989005135607714799398273536006316209405867507165632193881502585986789390645933929827158499644259638956018578722556897559741705349758034942635075092366470120485886215755625072628161577042246320320759985425419300999473522472116001780506925722371398650306857388384551444878076849815585721010195196090261676888739643587831153212878955631327008351168755995603878636648214234789826837148270525952434173108965416231018379964483405910979964519992631126150596236225630773314780248015022292305816683181408484593488464311030562696660844331644150732202575465205606068129060830358105169273626111347901259555416226668441423280654059034135963872303331444357621069073128193529886622071873460662882080740635648978258652074470528238160438835374164889138935088084485944368973169798743969313808503004550530808721944459058046294665893402401094415152332321983088624416884890356724839188933867739067475925507109027603549025954263568266544219829136002048704005504867589321710715773869900514467389263206070636082362139856494488820022197330487003409576201282638698778897311885685182631585510708770299866931825413418151946146011533284632578462496696224223935202170460413139325367008589792878483293004666910939899956917365943653437646087117154902165800878358981886783092744839495744460313836837814534569290571269500663948195410000277458372525489770946877838724786367455618263380122031038888741300365342596999243667426460384809987074346219434819673572570407006722011374895552501791534407819167503826695802026677082564928391141142937533908046621646218000536403833625794953711165871367782271418422150251289354151695134986298619173644682531498605266617598593561953537151343367660129821643160969815158969576614704968725196949568875438439045105281568374613838351639848886639285711324339606683151964608728568624283076971339417419525863603431757835693619808599563105140800283757555405162546485793689669478660694731449023202274894332096438472943230502358575043330928011308716508819756849322542252345997262827174882632590708316718615752766196806024049083341634635082822000239778031757024999295023850886603780052310939840637297069977907723118588712621110754020431506600832297923244700470454859714320115900505176018073235041094609349506975512874249930568932356844251739593690613283912578413520308367976260606969954670126822935298937390727133545085681912103654828728792598864665877137141121657042010753534984143584819218951570028785696050137168650452891030521686924627091485717761588731413207230595399912218324714546575605449181202436819852577264407380892193523338529374721143099274819751690897334703231822702647411149851696744838881811437197956406158381143229770872363032690356213993311345231381308086514546880177026218682050181963553036233913995884167460102856674587898113982943966348216865722332176770512521939924205488370608309434759105507436161215537573697371796277260963741056290134190076227504397675827508283540868701698936101298445023632021539232449331021824807938811506088233787168143469080886890404141823643941815775860825762102782199687503882459385295743452726382317705869812351815346978460779553836433029140184476576171710411696440697161396642756208315080634348851649122255904058879810424296679601400193685751978554522261599073022271560712127957908718462451794976196636508240246017640497184509868280408580323494254117481699668741655349517999023860853495810499429690974321649338638636653368590884445176104365637589459477089370750976281243116784463729350728434383794911666855393086715394744169372309963603352717773978535750941066275279077589278766221913768754798399332745434388336591756445214035492499915833773545133805647894488590407126146629106345911613199597269696532619250395792043164769091263123561015803517307247413421035704591276881651566399815018660681907412858289518550855727611262885244638916229248898162348175454708150885443265523766973643861658364208083957940868626015911868174587709546795601474040202789167405512727367036484362091311576569854383946099264676649671817780999271096202638579313725498016756927630994886233266518252829087264301126287473336957596888606309730034994488262238895632207211065935980146667926784330264816823950780459192759253813349251791096336362822167507948383278284837537171603242455945831294149146785571198926150090954145731983135655485275917722556081999108047472797995264500423702704997378530699588300737037154275725450977908468290725086609242182805960140221125085528407900041995371821006984665879566768215901378862839130600724912543917884120003987355683246692831929079732993442279094484012164308572063876374005237719231827546985520339690022322607393835146443441082080274849968669813663645490731164238590311231268011700241467957102479941000233180928615145275605226878635320940990606539875951085410944218626887211148844185626417046226657780936425238464575393207538685169059207746795642931414921799620165665480612799983779926407474507358578434255400370423021631082621613031350402814144146308605370716205356790226418561323728315292569356952234174892007924203124427074904608949505215076466679039315373840369288874254702515319561806763585988211225214586565538612831380922263778591658955353346553024906273959689307886720993795742475416898570589066173705486124242200815242462116908310787944866128698427733580639770242902753189380576055165136209225462103134857014380291261048103808405449563897622120000425102300724229562888695649802331123094155350207426287639914691344978376419934887660552056415876884135636205712948928751436032613905950683387604905337933575247968459204045368061676666179474746233722614541450058949082326933205222074129436483479825986192094982488756932394425956188875497112050858490261156373494791872825648649850143373120869582215967340433087608537265781584045581336910844242121833424454091614024953980639519274218429525460852341448023566842839802814535729133699967398743282396378768559432021630526637095855209746453118830021326172783427939191799099702939493604315115477266841076350878928174395753566234058234005033387279572930407780729549914563975743364520587030215201605519396436169442788705120412177116490211903786372270969391478958277705710403019720828936361151439929497556563545023177776660103902317341168897771480409015698242630079413913979136755184777688072625248975681868417300810860452947518804387749212340850283162289992875574404993450291363783612175773619864391440329834663547348025688849911545769262436075905352258288642747625620306189209346200825925252225130464948459790142070457617389260927387967373309696207488062962878834495637724329989030058934337042422623024473102117676656147622243551093483221218035319975521737880048308697241718851833512030773235090954751372085406752050185205604742062230998082898987742063601630076449996949316261850755645129969118928089492281216042779557805848017296220706260599116669496450969167176167173311588401977152164092236983556445410324597442961021233484258194514550085421377072355599610144486877201644609642004784004604919162741483085727126250660218645222587726711126035117469597710141313906169304045713060299561004656438107316755425000829329437011162665608242736274383844297358648509260309411196895802045095061082470385017985613416385877007796083607476767241389643073439960550509032231614713752062289515087544466570609179345219070398530233292567859164704683429676025912201246232618688667499347884810377968945295970035123736040620746259181851005581614468924957986615983063484554075891709756997710607271069888077383649120019401408315926921380512841849028511736483825813553387212174011168033748264268506828024932611849874121056001054849300072347495957600215410856013045128534608266799660840326957064433990611552140927998382032044576650598796662272686302441392018408443680399550981848743458083021182885487655677221749265331910497270870474918335266256942020773649253897762524722623818848398434527370979769818048474397958496612660178269528880402916685604356106046887170206624268643614345478232266811998721692965370952480986779193223173398624430673116978146570693773967312013179959001293095519595984917639992732715916116170897575485650844577942180497061769552268300300820134862516713517056895229045790457486232953200203132808417876492669962720484727306069658725002423995208943085354265388601310505230376649477871501436700614704336996651301056124636024443692357027696480067642765270276780849049031643746609843066082064737408468158789732698556161152572576236972060125080397858680794944166474680032404777571150146969619236405301038483522355736334753225390456010121611829781240285294207870457988846715970729061138910396187873720135827893748965198132635171230210345091313955988279917008459066894672073278436547849487073767257940391061461364304039928441125536939134144633557783494442476536809727859661122675145471745614068373843841817762492302865970723592419077592480866971215783302345708593253818904483567369888562718861969434615619854495405962019596519295013006185216845761139184782535177870153078782788086965955504728749812009990196422943030187791706068947685204405813382332755249496571168380205307930795483508575998217268326442209291941957030023761546919042321868716858938341472526474103878731332334834782857768081547920321023906294372564370343824980735148918695357733355495786342554393637930930959824799664855680816361780744416616941553318068539515613492363814516193055111276159584733032588412663663215838001609871758385505369655453952470879982822110327884807435160725443533688425863081757420540739093101204608813157917160778569012054537068748918124287265233453850550695983008163566057218852988171627051804528118773208866597012756968145783862596908745363377178016664434328944031593138692649998894585371107245423513050184866056758687025078990368739743320281190832319566246909223391960754697836898417737611855308051048783243080596690786107771966787800721642659815092059649445984498716662207263307098588201762839299201430436420053496032929212614371429560429877984768220922938222080213181286460895219627839255714128007926480708416061578938914250620241541247255209887613824085821097291350939706648672663977149591255241020786228788374521747698908538604641997872173271843190195013799917694646401594697519475242160188964989798288847247136978446323812192904456893594381944707992898793175149382793858183479463903669976573208827059618004685736001019698545349009517532870614669250813278982229799288245219080414947373187768416116827458015636941935658901016717741958625511398565919110555447083546322632995542252782016360020967818421473374957483680486717045624663244630670764625606729454489390502046108821486972528389171994318436525764245414226990011925479638265795025843603420666391152259689371810200241614325505196228359090027635297827095938347037011869711051167561097085899164056861700910059883388839019076873548501148407891885540851527391781016085931034211612111489798387719652859719335948218033671327534417612573409383691237467415240676053714445226394729786100400715897055138955108944671055065142978256448483449587236247696785679530813196571069485790101012675690574876576521355339431216747767495023637632661431841508929060769258989401747921302887515842777553794593360225499211202849762995028672676095356851831567742562002328362821823209269509982529574689125554899603625796039373600368701496685027365282774970995411629692010782196955273042990454338241601220889706110841719088365935168322952491538676066544645229486509550302417341872451409940353137261275128153698837078036605635269393913682609809040632182399628693761902575928249841971068693299587854691890719039767227614697877517984573176062958341415004574574022923938913678694001003090870652459584148241858815088571639274782446113498970262437151074865651405195086139395235519908339659829476480195599078632452069037751164962113260761296464979562371286974648200958881027092600068302715609132285468283037383556019861529389923791702806228494266691135759738432920647054673870398957325599276429587849680703473372944981547996687551599554956558910588745171187547809231484688151773997725652310780687586460482166384486179609897838133792000143761773623951330538674634839351219195479991240015552137105875605198151745333450774804534119870139759122140745612095242992073830311301544938106062408797941730144900092248108265542089501085678279797435064071248209797029936827791169931868099945794364332538202800097639483162971002240548972226826896129104619175109583577242295465751931320688223538761657431721295941427437276261492934125534711348116604805516721395439988038147639909819942722012813256399581499938067654931911430002104779013903430570714638074686250573707474355286880206241114194606516259962957656715133982513405370571955459793506054989206194615315520270629934661192759091164461154864368574932600609447269179622197042363115980878688671992631618110675410588916968617834451470604714623342398983014268844062678698932807406125922629192101964563654145961653334661346819774572769583847220938424473890636244766141380392546169253583943189794070400047901458137044569273813136167057131562251779617373510054273601312397552629939729744083064362920945972209748612791608036435768865496587319087302188074531558945746828227624125837427103685174857974570633134794441864008897326081355261665198166767849672650407170031013987248975579139946417851263283676123104999173829465423420632213902306846821242233755027465434776155435684485159254585683499774041032955857826005426276148449411318741776343156327293259973309046432623943549438396785380103356498429677234657678520473119944224710143747814274420794976356413127947779094589236928510945501119543912781579579132431590020341381272439387078990314731835679110359005198794735970365373534928881753610868123567867971168274412687468618492053001124389448986682200826370312399282111109878778193309189161038293308638904583343941728008538109546227028659970916630026622296726935045797074798037399022475924540038808021217342600802143861017507488537124867607594932337532083805118322256476328158968180764076863673753288997939653512376993577742844509458492992733189641738315396766059422948101491056367486070615246773524473370247085344020384696833298793893533913328874935573717948947264012840129860057076308885397480747045405648559967437413054192169212872928005914981368853318984654160363959799491120740697901577771062651518215783564637208487713715467200874275758326310809469645520418327895232712164966845445341308866738230573145983012248279462595750902334933963866363468727030669501193822031763525962322366050515399113211745610457493965769525527113797916536171143504311553723125814446895501260611794518726702080334424839273076962594776849464835195082575358363934056450345710409371321613483123928569187425996237290919868427445042071091900510988729267278753333794429360903067786231181514965186117019973332287813201070474909122166019111721072656072143484479354337404244280275947967530112950321083765297686442799573200065418672079051129569214220042431168407820359685563844729310998660931182847661631751753543117225356296620504479706560157736903389268378252371638754699902389690964158335386696560857633830391309095842928362168730840076983565728904399481250765069661357504971355282281377336800751717931849353549614997968125762038669727550346010066620098414124635399371509374769294431605522743114088035373021307686803914999567742439385857188251997796381504856239967695247142859515352214402155876547951846450377189509553539469614258365828785695084216533661647358521561762459165502178815557020280480385640977757345194749265497112707124937312301066052781049871466357948363363057494105734416599396452781904989259801064240110456743378049314557000113193041280994549111802231640734511987061925685514243384599154154708992251867090261773075226731344837715411097254289794893680493115198199058582708608597806060061128644665488418893527097521284017232513012711308898804242751768499851857793874119986628759764470697325133129816385038365670684984493519491903879447494428673446388888890785356680075132603441777162387061384983961097683522297887832774764371960952362425118650908459587102584839312668521405460733178516591227447789516370167504428073130976638952313259891112172875661819737844930201853516445798142830141646856118663477764550155415344750822483798162163430470402793426627436858900464646173186558314126342862119030532681061937790993358496888794725294698940476133751407061263592505927261347749380642671560594899735021604793340656762080216157186053949952860394536802558963689133817071720045565342544315588402565114945145314693969544199130996966399593244526968205210331688822804434174979750584096276373965304450950507359694980642242318758009876008737164048647500885448745994816373814119767783473427015071460046165429735111562373278799622775542522357527043774387537726142636872239991941612166752552667887392776407627561872657576507976992157612012013302254190107935709991913692517806101832121123885321890427224695597042074508578563719989293343773533737212741919009626247941085720135658162355401475915162081596274842202612934810354724408930121248716816366642611526801724279206074701563619052941239404842577780199597529684115157973613966593400860852725550217286923994603718887677391674225560010731721830614018477678071403218679470042030950830802547597721052392878699294312113675838789112455367070161733038826414982972075014914639903577517535905136153295913468741175388482670078727251938410257772594831763028113212130511862700622641743450023942417797779340261989939615028582133896221851816782789550209715426382219510266193838589443379783648556001593796394139628956342219354186349034773683105560581260205914635182376296937559304043346958606264550209545213912015659741515317724782235119731916965525651237783190714094408508198283344378985190216154006471690199272407294023838985427694071627962163050410757006384687410652490492987274469515432481385790953842884107185471311522875847863484609009104644575450675345505491529121256101964013506032341059046018792328620020805847927671534766047156199899141416712146685500180893012058111276856997018537864171205279625711919762329451788295764921792230103425821250004609785897231671237779109441869090044675348493416277371907327354484521150344721385171207730974850732019969483431531588076488900151823122609584489715926541086599004946726640436216436761710094884796650466069932406338159655774844951563223415554314395425244314676209513955339419590337585948012289812194744344106390364082619329147228008729001226548274659983984376487259435483956225103475679233028933233929409758197433811549371113924654227227822923123430702838569805503328159799086395108956550257819144907732018825835793230697389015549886750314360469726568402784248756140689524357994203973627468070131230237893881807441676268120625716910735777682910788951658958710225935629226470319478912408674699819146078590855208655465937923335835432270379813591069012344598533797897716131081198935490574034936947003683446254413692956269938273059170177065611347219303367638294834695821615691575630510415044048308197736895257669003502277962139849426313087321532109713176583859701311278993906433682178034571228906306038306590459322791800626906766651798838742699079571838138243856609629932423981817578137424391846547573128147930628757076629349432731377354789435012696500041580100703335287547356570311140716043344060233889918346923408436746676067477957612570983908935286242821664330241231029767693518983145521428999877544925739349457675211716449499950896896794387752117768755750683483530612743392203839071068432826434629355891451709241830639816298859247095329290672643792850941821656726605531006943830450941825494448936598042804667387889724977837086264318317840264219715256868858858372674237073246882828382655040821531898226151755495859225958983654624644869533327074086353338015241998051821753436843449818248216790891449696731707093011558609203961767913948572455254663401410466395895153898972611938275003321726498627543159464996587633784716923940465190242588182069578909604376205155601507724198453816597350515442402487045804709217465482479520504945949929541606982843360375079835279630278611561972360464501723248863743107340156774562606266227541639904040081457030711056583290498389650550734752203792778096731348178647238250952015373595731825185040054907142974930085498654388700658103575070234979336756520108296587158340981758303940210297367759964275731200724478243798032736224937474210342500515339298663572411321403273577925778651822144400203653724613321946128161188132078446814674247319508221578718666902284624656114853810166175032504250059781027202472382901209881029098483743468552969257306791214950222240647164043557714154126788886133434116010748726384059487789289686462576057750415545482781747464039065482956937896531868274479071614791255682948090924397340502754459640888867658945359174524117170566947636671413376486659573336148277105002683203333579355012656233243652940276402721442552262641313028128107089105790790841850562823971584679082854824432131529761256749737597822875220452113181601578732406754768283004708728488344541552426511946432823161431956869216138056435322651283207250791290415742438679550168402805027002953873717495767218587853435287410001937681043173213155249655279754369726011809623202424186235124536017308243231762738854893658121771972179533882564605200601636591037520911355682325364406107540642873803756516669969466279692798191339142475156881844903893210217152221539466224666657873812663862436363018202290597960248595970771680527748785668488272310087680892677478692890327682784474388378471335588229917099264120996655654857855133104829269010148069489466292935098554643149490350343831882020557772432756028702431053644986808496092555898895417926157572018014375633712904408191349615638264285817352425901255916010833723278210097725416604502545028769253361982759423706983810100859035756453076632182503683387350914140316711409124900858209039980242662150348422225780073610935606843397190938564301588277103503768519409487520434667895897225382865024799960146023500463215128125092663967904779764543524493177325958312615767664031430841850316761944094670575050436458515518948003419549892538571331346218596022041840808280482890850818399331308368873231314550674374296084671027090040864901642761315057873642845393174936501763055247675407397503739795434131568744850831346248280325766088010603306927191914505131062962170034038622612868545553471832510752708494740136539674222752108023437739606478100548139794345876188193697578724967443519411895169026878216294765403868143913994839611888229668969779584674817953053535857655344200808433611276478352100235460543711370706407742303278222491999539101620218663355996019410807928597566477869682743662942405737012611933832298719183167618990208679780661067034282108386802160946224546299667842340000217159561101585914225622185692335535526374100013437421902827449052966372100379310154635836907234809070673404331108130054447454293364179965767008806295042892577599462193985864855722659296962062036550919877666146621771344757632194479747869429317665092479130405800655124733346391504975995101540863457328318651093829520485310559261958278041004922050858246018850653114094913800728872761362917634498448974427669497638519974614246715437322137304218698038018463656054968173266278804143045447461566986379011562803686723943088993420547193554974219829118138033953502823909787849584854121377452995159827843797030773039391801823157847876766143723056119059704459018260730678474903552089385616051969008025598634840728392807594096201672564202358567789551093108479772114688229755812191786385731594467384591218092185846620424637771663162987729776225794969954548946132258345615631111674042474896477128513833831655630002507022340383965598111196548845709779786166924936868763757685737746480839981831122377251247205355981008327918662287317439408347870071791073987493782049334311738141141395456075420577486012872827138551536527492834058084265410860951347766060896966095307286380226393259442308579980966017694371109852660026231844818908128086284176829757317290693979797992270816256701385913103918108285426253552155809522132261134061318089663450219254460394598591335396686770707239376357707277035177807725291292151609822829355458075590412552750553400587317672810298985235866415313017182732828057981827569485611751624360119670672618241670995355810392419439696673915357568759282421318606103164377544176213993334006630632591610990221996415092537813603818867148603890715656231020850575996820466670693935776225275764869859227828462055794677478060659491017693383246818190914143011508508834762684084043982592606504476026325777363346053056751769109009168747261305223058312455107892616125867045398633098422992943090760596148232798982739404180431053003872194905333393165720042050821675885002796845151459809746621506318661609660654135391150772430191236789747221683462806782979934095973122362493787457524894479960322294675161516603441488678111212599908942958023776422943228495661905410988949470624694247745200587832543205727998350584341842842624860859758399612748807690705949224924772736763255290558319218853404440336428022694183696687782663537914892866515478040015920510876975774439025539874547195784395952182197677153593555922149549522657211674359572461458464026559164125788600526837803390138766624770235140391371567790691702287305038348077546614652459938407912206760653037626774993654358622239286305944237114087321885260347757273399193001890826950219778721681375744213975487197447069994972705152634783178002092922004227534333749913168577979211173975256553694992217164766427193634727776447519926235316594362861611504838756275352869263724833119076426899346626605705894820787208434134218904752371795235533129376715124302552302468297185888311118448950782220343725302729813923709566458494237458198066687783011986991367416850523959870570406492697177352785215782559301485542776649874574764074025776258290500755582542511653202731084004054808446376170146493200710055022927219186732325559160627744985782562960834460399314006990348004304456837194998212941846900177999866321690366636129630338321505101931280702376565062733905747318464438602176435148296536319993514031852148707170274497068813631095561762808731784115240312945962501107459064665483512321762128638568023083779981646429620248111168404880907815121669064958739131563710952867848478080528425359864670362543464548423229396829988423493763382854435234737935326120937883413384213916011795674034769489154787871393954623576991576412674829930008563485523788277101419517790303270465057149061713800345070485740219142711308359966630907789328091332518637007788971604744034163506118888337598580632949833744858461171124844598011990920543542095344557806337312298359146680258695480837013738999050108104999407291307267182616105430468423099314933476816973131018944711103612431718013200623800861062805523090406607485123902125474579834326297947982640937301861923972870075352618615192082837369841531034201048447828906394583615532477805489926708839406721007065622858318599627315667601821676367550907668343305242444479360313067803659322856516859676445786280553930454574124906745822307673090008280081946868178929199855221529341759902370951934360597316213874638289691784153170675043856719521432934475491803657266015692041253564717614641391210059979101431056021538005211962010374051025326296456470169897911069691011248768238330959474040231111743539797437193499798700218854899035223182728879763142991152948561160382459887956724033186782550535695431466814905133412527804799364611554326817085525603405535910913508640213223453180790520602930544474106029932813564998186573441683585503678296146748759181907324319026621551225083700616038220673670781878168577509491918084389301166977989516442984044330279461134531001784393666919430797007558569967225890804534818905657121429022774449195554608587655608020384372121075568075913087557247450472620321014209442136782868713301114566638426988360705178652741713661457479980272507252701105214406087889258488852699891768626839039955095874736557799122634896358150339653441858206565547845307804683475797719728111774172428635300655570803964757065437316278928488843159050424420054026250933435718532752395626931754627047646588739386239718413216889730406791420716049676177726587852499809843312183435669819182785104775677365183773663474158347232823471726483292021547975601456232918889716145269648396239563867169549376372006536849612923773031442663790542245468351276388024023931349335118265651334070226949724703334913172536562357626550295237860648074944173265243579412080119086761031257873594728213038636056759747021542726736366270253334012831295961412099534037617889246886590084614054030086433571034391382848005781834553751168993829665340634541605895661622167951298498311847370851733931410701368162778851211652917081982407367469056405027894262521435598407462105174083776588684203642260797172265766137116907025241027488211220482117952430664378772275250616123944224231721843652961429873969558561503269544635661746397448421519447325846148045256032478767953128633990247457995320482317648898564107353401743169016513100082099922382578171873233878340333116708283278922181912705324500422112292464336572280515648631938058804362287650005251349506291885767979970559675170828037375223399371079567224562538193989082838791382882712293366974343961541300769650503272513816896363486714018605869627825593390036868012148686813455190853997301167291849225113573067912339232185707718377151645729865887110872414266604968303783991469537545730797143830552488873521603628981830210282096394019538377802757345640094911222294476569972298178182436023536992376811996130696917854577976895213346474321345021345049159936585735794268744701303862860445491645077096944842678706055897467643810047021183008081456338602902266669000235983140003749829554203891768102293590906310905045357228883245852743945879260370494109888734879503459645983011266237676075353235498549765588931005309163927898435163712320769425459713055771334677935067717991791867218353742711508059664290643924436231227320072374768522997330385371642791687129665348867448907671514469924390738712070104422999027319578903935034169536904036275557471053824645606595066839066932305169495701132864141101865628811257459932627817112652325532822662655046726389174103952572956460077386736349383904579710143515741252537209267757671410096660725273069438742298493380687245611361665684463029254998454798114875697436125798114310115209891787927208933952916033390255107099800727268762449491845411307778560282492418647944120839473346954003851382754997172145514747442380078704906244411639660294919980622226989334080491142797247149498490281718888380380936674254865947336399704490808630774947561113215364634211125228743196338668269698681939070389931225393515096392449478040516371753409497275787417876292117810144014847741041043330601427515675550371538423583520187400999374564941767578792923007416715906356028866603928465638101289273246706676667065093760724495478724161970817699103774999909535202119977070878839396764430534623636186041132922080747570175883510872581248795544544153354055463961327031852978458615717889631278384997413034628978543914506416508388867315729595807903661608522721356619368349040389332585900598172526957760461758465090924468741289275166629039656585234841613195742732950555169973410219240643452160923567040543646128799122216680565078859472197910056333010745813865229870886257227192770399654829315187596740092833931510609746591614918495835740712013899836606002062916846526733315799979803042088735840535193857565392065136677998276705406383779202087891284364567969099009944414250949372918070275427027474085407903002000997227426435459017743619009842330900775416198047493111514732074076523143112867886484994742916580300067467456931530500900722215220342318088432294949445102109069357804843556731159904880676075399273292044304260652094578694658995070626812754108367752136364724708653355584773985100495238816528620294475172708103710641614023264355167955951886806802133590724018843246752848502124749803796558143674932228970057930440007867349461606698166715187415845078588779309617631681152453108114226482589188757988010546207469117352964814956026867828619383394546069705419650225075713998574819102724631084091746780483138769745143578499901341240063132181667744284767128528095051067060190125737466860879669230149123807774140353121188183926918709174954606588357727207124649440631849988137143211449236931895083833452897810530344321827906851146698931550220113920022427756525886227878863330914106292612767717144573482354266996867191833903100117747043572918848633797823388442708824408922473946007212316234083555277207004635037459112588465378247044218460352610915110401804989173348455536740241235804296547631515084817341385294499267287418636354003527245290627905218538007772694833880801553918987472500862472186440025567101105930752701953635856702475500717218177752268441054158037068863769681133525633094396599660942204217231233586721691749952829556479754615953460244346098366045106136556872981550058380488129000877843736748329347910450367599115175745171584977061014156776386239469652670082703745308714703864296877473325225870927996899493553200123864926838831261725959977399791279970385223746516167956322463046196187318869935466983539928894881932610040905868091720786619740851820611693006396995402570199563753995096040031721844749794713591730841767372716804461876021917298662951164991954968693673794577948680334846662740951863879874600717702742732297125372058428927792331431506026318140513023088979229383158365964327721353044591815886731416973289192481854428401359946882110095679852834651307814266805402375570438138152280965239875582213386042336859253150980301710434318679966794294294198562420123795887118350557528980084563230241038526777768273847677840921024901797424478593330409700316978234551185451842820527654200085689356012413843661515201993055318268158442862709550434973162139666414499197750504870194079716333451814120954024383709756131154376412003096259810722298542250681103559773906823045186511641122723835591718161965177270845808918969046881761637416748582485566724482282899894006331589107418963332856876225827858411056177979005780496826860873360562930705296268917139236718941471985516366219895501019722288519026676794891221457834688917076121497425862843958668822785723428021808408972517332975155238558513688088884478389782995030400668456956331170666032845240285277998630246960928355329485291982882617149770395722880752611215305389037444459117809415566257149498346724053274038863222953659045697098587785250680018379609146533607630760096391639469012065597666136672036255376110155488385107480471159847293779794533758342511098928996813329828191745357914006262179071822315852572043026360987663406107861720610072057850687040038235678569503818919995251697217610444685502706617611350919814411996348420698431680830206799246258170786523774561242508939166075950814472202700770524743203874829760892247726868297661136783835434323291023510848181963448571434317536680130347232395340844389208648628290257325243701016471867539272499397862425704966376815015530942274630599903072472561772541889623293741342034651610228980431984946399749354495440147085726260190220974567663234157765018899356262341968955066682752087288936129300780564606205619268144070373459163620665514847366015017426493195925951366957789821869218207907970795999555411099429719952529556628471705714505793851147625694174835723249119143651292971966064621395142881439296010538360202224124722406881876555931173597113429775469481473065994946341934722271714264963563520694319058842864358977313941119159860430211267499299734975864863447635822572752957371744253924028412771627523472598485081539439151953925077520545576384003336115653691922294966670408465085792905519980787911803636019792799746360882688900767122044519471501746660442671642863261843956041823121835964952744372848159401315911680036025339987999422016649072384727908649964571086372698495611238498104614313237397470180196278743891532235899930100001877491928384342941802244822986535305571521798019258396555310923320710422840402208831611659912891054112169163244862290463350418939033495859839030190396314469964315028869698044195554405703761682490103251234102225101786662000037350209246264987308771832872241372530782620138030468225129827744286879344940816983659322668011680525660809404835484947268714549936524533389135273978967434118564482605704674147005549103017696278231848746609305120467340742835163202840897136790470464701133469579526524321523711514088097000123810825911106494141496587696619196537268957480382032076420626705611868904833681033228312698185038130063260436417748237212031369076582902573697592477743273594162374484858829607236786076083557958743938940348132019648744626845207418840346778070678798630985371221542470298089410335469461616291178238159192061215362475832675226665524007354380072518374828160692566212741536703995589334047118528516482454469928826147348197654865675019199078819724485837900049532289385128344037442732573432793006941980890394158138295755497203891305017303330144397740752947552057320675107889423323903692833610636392147316923429237405745269959625082074165908791601544259249244384698822681810484829742315663819862341012173572180683940187673470237633674183634013980339163384304229258605884830957530588337463643548064956230220601031277049236454351361088300103427308743200099160018007684335186135505217480702610209615433909761843051475942257342705830508235113181314335415753475741910587364102247276368790862122467240055491596825002528458032071797230052432157476754325283030289713834577785199903317882356455120688711676927529929191173647208812423016564186367836870086870937102070569585567448453133266776189077633005680256643094599683794908268057714608296281492047145277819664541715953632584394643740459417304197430962437455472833956373524304847303048615525474807875726621824196350074654061553296516254345220906836026816414566467603244601944905384952860722791067475342974633423053398077552834100265044096914683667097582625938371775886969691333677645056825958196128265734354749175936312265753487128570001889633134069675997757805123897993068824477758918255666014867517421841300503352884832461640633737141844368360586842164111463657041666757158846288241401345789987016756557012742465163863601508744382670637394564270081230906749017847041816909887603457531207551758553008564859033438871698523142211756056110587919587530529153120878122307780719132972984339739063985885646560876157770758564389054802567494464223054797020349346346968964559015684225020828904865110037706800084980414965561860231806577998861002629913584354055238614856328153467474792358316557412662482426330356817270274272555503956240334127390806378560746755382130202601624823545680084719884394691806821068999641380410489647830357627384737269564837961749200482976049867632492253418338066247232910460051156319449513230970625037252820279086488546956049124525786261749171159148993532668015935203178237927046079303794879688691081339558509465026015262528762531271761312392711479441124809819874074517250760741004339463289149494260640652191261453955081666594270832209986720533645422949906520284667316146165380852281317905276900170902960806300275605400843574466032804242224959658090998514409931633093271806041913508725726406297298710691447061856684289784790339958332942164816151682615420021822162402575656981208768160533417948579007017783965169635480497424160760640378226167672717745554228122739130594808942506143222583994325380501259866907127924287044806345179996346736012526395869532690143746046893981161522198932360343401499202141700515143067649609298225126005692030512812889208933831305694842847399386855205855732457033867113970542607749875993138034061515293032042995855314276010275732492138455337495576595992446524146513753370240282086833095264458524031313125836641429810743920007359003540805502644280096775325441898201486289868070581572721021379397923565106180309271725612644251215971051041652337438698300597858181256954087089990650914186845880641370973527949640608532133382165045586186764674168674824433553867099561952991427380209127057237057467383135582609534034308788585949889512456389743893562776555845634638151662740046435688797973929438599026303629225770286882801970912791205695704729135373115062145062846032511829622704799606043750793862447938169899549854577930373621699930838728452735807473361550197324331920186942933091018609640548176453394710025626476432036121492429978581819732390105560909638809954445130061072180343200746962884542463719230690562953789934543372141430448275255446334214084171970549922114468919537691460417620369885557881689694301014181140405884913673238044018690454923523097553021990255796424935736423246821168248058133056792769279978599956522965281518645455450774810130865239030018526192817100999806382578985808422927264944132803089073938700851059222380403609737174847959354040740478443880746512041065835325287422299436014972069365586182287791650182094483041083934758016722182337479134733399121168930085628588470377015784105047085443293224072680035519607277585523046159689452051603373376090762699281966246868222189381543091164975031849932759795471310494541320284188593393545917262959654600674687595179583707974413613022807580190813024039242497035369804660996958793823664605466485506161805328085516282417500931586052284370186534555370283638522168192263855431965865823312132141376203154228922969501912762774611247847873748355626522936306267289988659045123649999165208289536374844366678403877181850057480922863235614948466174574392003754956874947117686960579312969611910338999860066752236176610818005881325583342840708388041847800048387082459769318404768759455142607014708184649064549942656538841571974430489747409486093355256083950234928730807019328983137829845014329201830541189714653993532065173055193564049274288194968472281107045637438994153390742053517763417333664665686347606615541007016073032874472879576145228885005471199826330737973676825708063023832770980114931589427577300476736049421084079749646737177558604565016087291217299629184896650574723440695416425277034837938055732709228343439521490720697868525247794637881934443765210283241449682681216503286249694868156299938945131349383868099479619203387418337469212136465050150974212505178659225328620517624063518781622976904531502407779235821792596160375528581875634484917145689254096188319872554952770808724304581784777692826078744299130826149880213467441225517725181347795678659035867607691106439458318056341473044563140088239330219239890448788746483350462515651050738446892525582879294671280676251218368109583479097272161154169099520589149455852068856628288959483674727221365006774468236810405152917767514040087130663513292543429287777490423443000004280052738256378918652124658582567934335331866699209112695189323104467160016393631110261329030764307537313552524840544715305634849313603503602685754068736083322032563438540979554999891367967742744732959374437273558513343092672971844204443499635940533831167789146560981703451462816583837691113978797895003203836241926340800533038353561238187610430661746660617503496110525971513559749784932521216824187572338073896279459122774203086613469735049702495808767096662062141564311627180774450128080944495566854105163662276362067796409590246058242727607817549200409660485879667194078917202836125109286488440386639920484355203461230898411853157390968275397229282460319334703384771053425623613367124013928282600204145929112846301021400244162921725776152844392685174560058723097101079937196519683016722658930685846812511628376356014986933783629220197000770704404442964171968134861064771088777266533688607992602105467084178663811149191610216588521724557296557082391649778490834331290587435423085309814548043259400215372269180668173886245781829201595440324501103852242719463111331391872088302453398372487251018819530708117976742610192487866979190581875420404508033890301598953424675018358821197262976746297144987375386235563726741684760204654623531719715413877783234399810206913428557328217473499263089095392521254102723562198967787324516426168377869655940547413810075727128181954998340784651336316919989127530021784633908212393543294443337296225169152067126336570663010792962505029761229824302722298923002548359805894208233275841631817852996849681760107787183772938167184057295903324603297569861227117934955400195168401828409323957980803908913101747816979981571683423389456767169719086828034970909473758875594781016751529477690256703148706941708018852837479293400742360807407289026567087829781530180495440682027357161397626394704501153478349124792122157027827956652567422584096290503302316986586125551908590614531949313501446935316907389543183296772508382835137435931999394573353282139749041438690913229962837390085878437310980837565178971123836563517308516062330810959525460229369691188425732400731300829208176371044512157632268106271289334182871988306577515097317371759909257514129421758603903345065772273575647037239940941203250397625769104260046201931854844125221190778407303679285139491305991653826836086917137117669815002029703154454185847947118295224751152572466924431558539378783140866270637392596510168963504239019973124938550589800160588162240324427515888889398751962332310435903867388300958354153150421801116756880014915820927858250912363888492365646953842562087562860828218361177731710753926979287914213049202320284719333791183347357902734493512048157413960148518631530343864473485164104088363553785090806889544108209169221988666879704910889078923561064430377765080489733286719282584486437742085167965630510912409779261997201980933070696545344058321580614158986671171650455740288078093426724215964132461626956556954256752358194480819665818687822723281445906478350626487148252305251511866272655605142153303437166234360690146780159226962387605868853238432718484775053266153225184313445814141707091831696425083873969930577546226887847520723899550454730111974605684508018561140840890707034503831576700441083239349692768888705589232302110209538119378825606422503825530715194736079364053251375261625971425898820541426473528507741736824226510524669453025777414593423082038723376884111349151335129114686913064703135053960412543809977679061946673580401697178278979177326205241208962223516122644128005168094537989338127638817940849995955490566475476225393413641642243086033669266626665160873383503697920197481580405956996662497447325458527747265439141593162320597927926919975204619040771387076346450780675284906975741290539730888920962680099343178296563272720316089276849758413231385946994872091396514537103151496064638991292329218423651813902068100388110499235312299936363376231838794680509773761908627432776172319022905193146844178217874603416495443572365944240745652096366628574712141610738537342824375778207910641574503697220036283832144131411285416133924384295357319056927790311922873549329325294483433961510433652296212808512323306473357985081275936641482263464872435217408576535663658899674507385126742837941032840740648485302209176572165616623955568929408742716755307235103772889988253824093458240385587241229782621709665105798903626582266100081141293582673005135765322971173750729432736969128005834392703259450807080336907248392887921025379388347675224829752544457776705329980963710842312746618963301794560703597434405940330053024964234687794893318648519451974715988469602443591343122263677497235395906690806562969269666840275958000177146269169189764514203969323896796939987867174593797823745572207480188917566809799997877263044627114400359301438931428283463709997028868841861745136922406817904507524934871212384653804251944358985082585517767105421701668137220640931670408369816723749197143203191638203005960095312976951504790168707993389099658480067570053083758226830456301551327022672148373583128766455779617273255887911560506865833396081789025139788684896300545663359224265640748600761996035469128387197267712311795932474997528308454718652928459904738833048595443920519860624989769833402373903387805941894904325572562968027239869120067979495523057418092840479633648683714196481597741128883074006726517180514315701804445018076532758732624454169976534292671807137496881927504212580100878590359558488465186800028874498758270952429355003589664002356428796922963099287447080817784299381499356798095477833541264699963951083106533202005155480078515153231673917886484355941889407390127391839231319578253574087391296772023970883484672006706476838585959117524545041641681578263693328864527253977966209118426173838923221225644039048428406397447083723709137937745753439755402537198844994507719271838351547961537667336646050161201476936346624021604250438996532292964127175606821670120349014618371147298551556529438197733258985817970742133076457720278968211635401020501324796268843750014199543546391550048134254465799517847713652456704968674456917131240042993741406576617517324197925967904931287706721497776988447724727175448826724136403802048038865970671800255347802356714577968264099805009122216495267928495336394185313546627942456733024049068574918754315388390503471545833867303093374041235046124173467695435337504206105419572927139674064110437031918262499198388364037640331843555901978739902003206428311406649628583514632376523377780688015367227132700593078507352992966967448834427106499513273129346365285396168750279041673084933334004872075452900831160012614448583570488466832545226015135492039604941510220986849716872437643444389496781872299614850877593840271570174938001516671104215558633499340490720843633856678399790027702269932635666502037814854320597977762756913916045297876548078927059307773675077514724113265643643502745289141373593455424699670387600694393670432577177983808576316033901591252588864373163616678364254444791172133432043575646734685276644634548962383448696430471700185088576634980616534963141661761658737939202190322605464823603841518187742012757271844748705989694773240124363133937391967326346150000284365573519979198371539556927838786461288794438554691884105702219660260700457846093487277505147599397812785646923478278762489746750979280383106611134054482061752339190852121665690049436721766327866437237103729811354505324495997715384037671245623276719558718280310117696472719495074762940740264638666023042867921202843619036233039076137904956563646089762263720388346688763008266113682719846643201160628399602340177204221618996827207405559609042139043372200594327048099351836161885898175696197839749762872501705892490169396305326782093223082005049355244931391710202566275627027998277018220517680885816882824053704674506298934619630115944624100382091319764557011938487296249767660906742258239335116147834643883737105340331773333564580066027771002113979916544463858104657283685743202188039022475551610223331067635847942370683651767637415115243209006908857783899541520801960499357440042759679501817550198790221924219461925496093272540694709900648548306815079942152383271992328768750181697627306586780136750685597659771641274512451125383979557332710514695586457954632055332688872315522110788810920822637721022355687492078875741920924975941702011982647011959270220785495178352075427970961544735404141342180632518516329684633164188699405810539891048691546519181742410973085840162218810920033044939906838727300444166696392432053533815721465436898231781171248524755385358401193435147141832335019250008823144215230130086355384178411825387942829743790754410937709023611201265211878881504661178375734745622452373332571697041768134716624831873043019281867830983565529736784129256238635149737839966515440172287241408462202366103343724098822181941725377987068411963795950137040581028971864255506887953449796724525328080279998355133738493231518488270531452121262236775893440974635723944133264055661793603006687964063235052060883690359353385602088736460039376918035589293252873427258424214871420735022216869939598025212135832035440758212382752309948338558735920162656114366057220835013115898751482896077760857713274074572841676747850884204235089547562682071735566578496956266259891003629477249919133134872970679447425982813585602068968255422340952707772402683398681559444124390235399058254648416998244263625553402633590203721143232024769048437596068137473700499792121436995746866215018741625263683772843613620377404492667580161973730023211787267862041936378827761198193983184930155172626484036361305577489992639023674931113086853085284944319911892281760333650517165126315395112087496190746974681684807238793601721150611505310613761050657354249738812171218655234875637632660203907134655595072219561739131597390428505448202030216744612511841225525239647482760543305005364409560668140336105405944360274171356138696497766520969797327641370187111537282179627371929145094866093099184612372226684192501799043342443640499500129096155781004955339874868655748983863252335425069903699550347705536435656348962871787768042558856838846057962750766037846481907522281352627918574011387385196523965875732850491750636594089052523327882435557527274307399587162368390372479429204723260092952967361852342138331721690356071210288559757780178885939870562521575991050363719576833023797427973536201188007404112943850759947310736285481972448737095557130771643041368994155274955610100570053200686521659368412276328690535981428149013326192020341470706953433880917794164195342375382865139078750634086629291324738325689210602663551425722102952251705184556438448362959097314471009660903660869378382479770678176200000974763553081371643885309259119197201766054939308769616369171088637551893400095395545763095207687561246316239339816093114173164729921679273197461493776121063556053235405126746312463642394026229279666337589388496915221329754752974511717763291709219465444649098455631141586594165755911391835854000870130889055027087529170988049441842100925385660396228908345919445454280033823116531178223110258585418158293791000858105078841908537564975335408208964822892108623903684449176660028583689936966577663845832646645812402999345337708736063619344088460777519261959895357822049548897504936812104207487795452354449673094187967076016665565804428139445436718562121832656310166299989543540602039179804373767885824881339245268368894541840577229685268911337000653521741367903860251406617436284938996856002884578540241675286299207284385119212795699828621547696596221844665068799444090259891452220415707927112587990088138841237169371623152528042437298106916358542420770788263755843379729194140365977395231545120381952040091855327221714464763463443426802647451431457408065650956582902178807293446978631393035062357920869172088598445021296020291085636233470022771383645401521631210583027092566528206488352978940884708025817400512804712527914366623558223142776173030484795394934278663218452769644435901268375317838450957863482094764303391250934850883836246892544400998169703507749357492285999877069055173811006173336587297874273635315175900255559331111375313009742693335747969075438733595564385531575647905807477645897149530413078594487389259702673341141358016470244283616526367944624087926371174919235669815699737220804769077780690986740276115964530928732203497444175203135860754543160582996073215374908071428910645943909503523429975837779390165767160562449048093731438744418973075763345232920551404498732658626025712968141979651868345940227285952265320477204593162917445619257423449402872227131660066013812502950161604660796324863879664684293629557741318466837996572106457462273797437095768619705681211139636731771196423208908618808596967089297682983937535879321204595396620359343343235357667104506247865585542186177090321155188968636695797974544788844821611106535306549062445530816633838395607515683747519333714195964377070078104297581854691192787930535910752609063218472837702354050997953711696659794644874680312981542229526995337771536457101651324953036233973670878072848134632945785118730967609265829120654828272047427202439005705505310220209744034527673276035305354041464420134208616309886067841554237859072086053289501229808801090957448711659201943217851739795677470716616643695090545665806445055798135002594546272826842872975218789584464504102053547696923953789690603045012727993501472472258401077865266794009201084965928500312770849399950221883984789375259334891275196865200983635419582873405246563476599784913673935295551769483496912731902325608639961714333450466148104714096659887038102916001166083938233661356406941104262327072413511290351389209289244421206901130963451393745784171289533589044777410563758200442222413859635208435648744115746772292531961643890425286479462981447309914653834477166009189702024010761146065231202088698233493060338622934991959189543948769783746895040539785813150982028645097534431205856935726868058021064631170886035736768214586812134531045047027396398131221499038027273882170901142118778980716191816655484438585643086326620375809913286392221756535927036679582593170685612335615842432520308261119756534155077099197409288379977394578472369597475780328548735917082196577256140062876471245748505393320627700697657445026535445240285895399306499284575187859813192817342652631924094190620357538884704838383146469170073462061055728861650240538850397314016318653169354706906863344540325833922098463596153051114718510045679451733810581607284986277613286571132613104043692857475252483255149050247428326177013491964031283202406107433950346166112249522250872675545815812115171720694252316817339604886505384251048930506848185824706904449380980187686889539144584526184843465921780767418700253013767255405783093417694804620618385167373766561230970525635753001528405496111259296697411522602242119487492833611346381862012937553840898564277173269640436001136844225472165936552421362316937286015286458876186679933511038936055109287137037666070317276827718896965494511796029674999568806470936516981455799952765713773418359466037446396135634212381647996620840040887572397195322618909068511943462650987177130315655481640424703265627517513993862180180136028536080848659537614757352153125833136204731887446748503093714088345935819695724910239189166544401670867000629464579089894910456117367024310084393509857130490079394855999596431622437021660470352696291260255090088645092080263408442230154931119401931552787961447155655902544865424461612262885747519432294678078432040786149481805163744959493116733036357029444914800347970091712794742427537419511005273292969205605040468866309584122655920055367791390404762275937715654251951308338650700725371515437505336849864708283988179103677721719026489264831720106012238704305319626636840341487102143716430686437368114690829366013276500068945181520474548263896333231505294651253885342371868932901272100557827958482228968495220352489125784223179072300765596743313257217324389070997848460663785592338641378096803731976786325009075246050878032973683188183328525214706586479278940689615138459862569932383165038915264858751453926004386245005891486073444263024741697149800622993868268855285829534997849404337845998544798801879815307636360101102302065166875625937570488576851082607910733968438352857051819536205537404654470012250260129561556948253003487411190351884655909871368248990700543423068916881136866634747297286403283159488027089982677849787226675035602854538421661275240035550482652160762631923315117549259548301402495473857918716349523172836443383191304843272731223792398292521085366863594344373834502025232321357745084769060313510994207968892522702423530961094265101196390129859570092260597981031679446034109071885798602783480512990054810568683183282156380258848766401081576927408576765310643869883372861196068284305950421372518841515120412440332081448024458412027259650780972968514154190350477234871766286334608313354268763726364149073238614119476571932106463423047136465555769666945200930714893916130349195929812956202605775534567341139993980396896812768804240408316054990846295896522992023515793246935352257513587333051278120110496715167423896759727902048690431320442356027422358579991284511659512833821207083420295250350733987627298335620325748483179002901778554970777481968281657131681680647577571264037685520395303381716739161884255575872984123494178080756653879121205996585653275638422798977067184791017126331834157648217481814362078649210037955374202032213350456101782977084273318358273052120481537339387907452749075137495804202670213920660271421209362250996806379131220716470817123069982301164025548798359179154752392386436637898847519161592663652059805525362168436323830934234203881537260840855720825521921060806227969632670928403673861656318371079370365838027510720258421793179432050500980019932461156931256427639015713211262425950896822110227824600850555763563448240841399967510116163710797919494795016776565803057617056793869480191338987541669275587284611572172945152020096662682777447744872207003350968631123215550531442775234430498792779932272552053304988835437558725612476748011798763615415657653423378729275044841785992668550613059637560855286927495182795586500212124684850104569082710976720508425715812029261703969910901101813682623680028584430893801489554915783244526662255897230392135507376894727717242028744404527076847505316743120828298051588739403938202643679109540895153256349243189354497547021010786690975841393357881673501470438733873376149412766068681158660242279942932690725636612920440908987815998358267571783875050655335847159850430832625503857806918234054540426482743003723352118693075683533005814198025229760536432265320788345378281899987976462527263702180981682479674039532424329203426058438916618633348513402312266278172488307244301296104635987589748189843662708954328450467215520325121570831028715029231194270089840352289412213284096275717101379032544100364554230327418831797778730952762820740322250330585063255046465967416267711263155285409798559122207502606433706231530959195844918529912000496547520683603010953167867862815568268209852929039355475022366596457322739999513255179515344721722692719216151258064431571840646235567622927689048636175963604679630795151472097763691305835694052608787833826608665317988025148546760206650197800151468314368700988396712799988098253673566127983209989025368773428695114467025087882122496237712618252438226405490798611311014477466197137479748116268621352734547775324751349840435116765922633905381692368073760066941139256643500900437496934198265667404686456805953871439464371434762573204316962708301956528630735486399353397268297471191173767132314279230737570543652330996233082400959631095312187879888914201913084431883956881381507927119507522664090414476993388762375989036045110624392444859428885486355483699925896746209582254446890689992393434266859030374137892263992379062461287092980662277746521692087000020032493741134757134348011898021600972689129120854670932294664769845814847177044921909276439159314925581093327590466983717707556117970854827904212145666740219234358210858123851494729582367846796381486712535917812702489062999058078800499721881478613627825299135863661256439503164207111640904195811721674798234217119874768939190422845969590745268555820245805070102183392718915383896135695717178836771059573264238676461036117143527180143121815744977585402623343969579270071980257429088066473641324094363716003671064864942769307530582535828046023625679506472754428577256745618688273319856122178839135226720324794059929466644337268597414654029706710594142522121177732680191182194875593108629419713512239527231093018508275756534030204087084024364012552986717549122937801679681739571199852439011323854460065156024490867226694759477213729613469927700339606864685939896926693035302066160574277292729878401274941226938051752024434636763621157540985105974432447324603168448953531143754017659239436136422019578121438194440603785090750527641471151885456115653311054403353094441460381876864089530352600395214430129549083595959432907066035174201993485019953967656590433889402503358171010240085565077691479832310549801079419709202151674428579868585409402444808795283963909122404090471297898366276254046830725931078712428564671256856986831249157966330801726493049663946118382429226273184171133912700968752317561812996868487368829785434074887048082429278944034752748227392432317227887004133190923035587623172756279598553833547855581400232181272081586934197045085357997636572095533760053943074828994162905535438787538913652972202864915123816055039142631810173961863152621668085763369359922966614250973089833209576476348715287526942255300114972000583067786093984521868690153293920191834083510801953443341295067952486692807623047945648848548565283251353697442148824266953991811205693644075232505008813894901361790489517607050561158565521460341811790762615370667663531465047432597738898542488314508955865075722825854336477646500282386537969769502956310605300864350876714878661860677575719880048136276779148809819969961060965600965033012836588769917307988930588930078179433208569541378337107366281283089040080592694351474332640078924886259470227487193574034155752655818857940280064429987978140762080612508782338802839692034620595649270551188055197808230187884802803874702163469004690027779833500219891261252843490352531745949965420863436062133546438920533317262704161875330307683869783049512659495161410231737476760229192155457454524729870152188211117951105614065054231256846798448488689561576456954198048053901695772652063475099321679080876990287596422397393550705225426284316010311165159783040537109101803166004488933229731125139126784156019358624075035957011967809191315739101940624269009481476012982285479784682559956451581052851703403696010545699796576393506340883734215455296821673537644322910492760548650928805933213361717818325519253391204868328015087862401916684192903024847790524486170374177281934679951052931785565275457184208994052111992798548411181627273325280213652177777217310864702744425840722566251675267739741152122867557731496195110352750594422528308127495423247786374558104536592356320530744066097697647337578011645562423562131392940818054821881763740220341993870780865410988508201159605433574982484927633620719554021811250814208008193895672153914990086463336453114785962120530709401975627895925637232722925156139318179482091378136936217166467738194834695331021373710606050337410283626452803361404130355319773127052113916372248284868646503116550401035873637984263030789574870888456736895380181364604674463907617810832341009460041411198394930774535905982659334798726964447880381971930665018657236696838466914426942120307539223442791732027856423517509359593246792328602247668245943937275547525093045665769687716079253545390713740862709326147125296863082379137251025212786422202605830685638500405174400158859479857961908460220019120067557137833055734832044309480775092871576365324564932336144522259433876508391107487205821841550589930819237118106615935841398051215626939311807824632691718776759587236102805257765541511214854316814089163092791022624900676986119069933360092964975010521717453536199490816949697339495449596051081882483348616652620899254680762595442018092121138768054159195453133879407969482467131925902250650209797272314356500204597911903473222416133719769395769289820034117874423437850488318182555335668879030948776847649740720639246332033675262553631203154189887770743528345726317768625308258743055733931572350485190971279974935924025835674465427154504638263636925428873201666816744446742608249782982580918595483273552860281835072743354725189240794972230480310547153060898769468013255619294866692776814572035473065158656792524600168285459247899702877668962033137887212975026993695695598801991912092546685961728680583962737196680529390202809314941073129951807859587716730626472935311066340428240482678478850123161898529017098942915129901988719777125589169403474890594591908308803077808906612824852744180672880898628322964398638028099618984072979043991010682219200002493017042353865611878735469914036412397173386528263937543227628964311969463057207754230478845669179023740425214961837692435828017942061665512871353242400460962304044827626354364999270427464046509850968415138113636384078793843411120796265491594710476998706826852537195892634035367773835363168574633265930412851754391511883539491651655004413650203302914895549284287677989271215777245345971429506829973482594017663861888624065609533152370140413934980112696676796366254932173582206265060193412498994212319055844659595440192168761982692689097865964174925888654438540224575830169643949658844841757329300320759080020330280011745034119496927748777340979485050283022182418336622697163412742854999480965907129639589043971298958465800499274346720521728931296930112573009223186823350360551798350767395202259712041363452551906041080911801875351175333323499078330395739851649741515537387370628776066019103123189310480461413975180773997262752199514639704922248492820554210021394378305217107186683276754151876931513815464861571142880005979134880600018719413507491607134559714548841587087118608827804922067909509251967412354711070386230514123226952386136021981692602899032352038448717276106642536915525530938609433847830215656048026348301645844434255889424462708881318757670025516831279795574430895701598007594756385019734570610887372842732557682942347701389544379258186232707607223365693386596487957488585355982628954609229435126218536306148128672772758883367037081873076669261452611273795376279249758747598554296424357156915142699329116378274809580419597126811387650365969050870391970085168846513911666693774168957355700888890828514001627957765472572424315616310411103258777946821582642156906573488325649716370863153061338613664507905528034556615087999895297708112965651346457700775898704927631836864284496830660398674918769213716095295564526472519408894482754323115652312140724137605500432335896574256650910043758239439194054448854302754264064963738225664417135829149477950017375676690301799341913316729054122015534376003387405006017045819999354064345208451108574868034292910472574606863109090700129253967346647971386269132399317567164152041039246974372297642834292320584517700297083412298971049817425255384561077007017502080959089574481276439874947574876889298475310842059718860114219240836346517455976750183724316323438341047109860862446427322298439027076631819591183633538585377945391831511066298420564304470721345645453442151372857143263668686084291550096001612898467130560581610021459183902038672822775249244300287270017794273910337627716904031739694670141056009864997667917406195081655058496301265362106461828451438122612977159256310008360152377050439733608281974565024236884614981934335418277187996346117845913841798771832779164127674988932397607048193392794582145537763155561122268309378475499127009846855289903457140208127548585896094141733431623165402547146418613521874138309357969690049303931746638446426875628753818931565998309154555071360513124515336379849719111112227837485964664613755482022719047900481217304650550590670776260164888653692890361562127046760955904783584122115924650044457683861106202257511467066679407288500665931692199237229996487213820842473703215221777740953108873860119318553507781572216908927341070171324142944129812490926912260524728979350026138549743092366016853771818859119590643009156401479468933237978582722761092657832114670329494929570892437998210158099701377861698372775667852634495813635009895399531290407522349843715998675181817732018836636976483456198498505329205206597321231453984563371978490633780368919237399172921847422687388561999927797492732911726881203124563201520521647877203148670368393222994850764456810498818851578335732091084004093814574253241918482414177718903997050544361095359435741860376166221588054927049723803531478101717106753484493338621093293962366633795128962284730167213804169623303761572906765615312202146279226906258428027194101405851760323159910734527986089417180212365390628221001311259840616505156944592610239783229140933653729979998951930271688411238575215814145428546600056464814384955675727245244486147994191346587875134009347345656117211486392936472380573597210571747790462229287647121245595896413597845231917620725513056185741643605593524009814704146948917894848532748164160405824196412797440646131023890950569375038313266794209233594573988542730019901943625497451134136444283771925289885374196332290572278447724214584970945547860948587591745756338459195225950212954966921799350642394449161393871883474662189518182243665865661369410757842198770741252760238548815234318594207149629277188259390041346778836520575956357601365999828632396971379348146973842013061843336896138936399395309590505594567342172828535497798972864942908890886428553194900090918256600416789391484597796569442902277030571085168805066670096454201301947469290872467134916218056924546060384872520076172818299800590044168458334503606657372632780258443469556236412742943500969250683273010006180749641534496332605621487961856267851848971226475891268389302250327850773961839164617336485418225836946541675703536745601982874296572576718265895064840734121730588072959647855437008970688443653586087063106107181334122367691812376144982298901704577593065162053731409163614778833859117926045386127124194762386890589682950878250355850744296589921465710738732916180592718717812620013520252325337056042341371975444879390707507562058030886976407105550154091031142638676393082768088123079543360952142110142392581975216095048644124710598646535128369502460803233175695224100581386449350391238873321235009531375868338602494036059387516245269372734347025818840288137183148185386004542741086542634339469319245842363971037338849741443791575002618448845478865697142556925143111723100441150381320760989533306572596115312464316903544191835945115521526906235633636055043981018974700194378258188126664959193502297853654069629360854352612418949475378480744080210769412258123387414951385283657282438561211319431469531283614519137053052142120258460780794927406689964458263289457390305566106411954515305151421231497063835228916995807086924122262375444830568133624119291077633654541682431304863325914820896562536639097625095422951839068350711016201159788331785747236123363459885629491710028972708374560007620756190884885254513164014575697997077627781326768442387470949184467461838990466346739506132891756590521614608597721820639145140795474846000248449125358961904473775925656711189822245913381399300690110350371869191823312702376150658902903121873574927216821747887725589721058976204940223921219134859610766228245354631276849735848222809548424654633482659326096266216309485344974901383114367572737929559287128812511366327751423799153367103270771402633597510180757171890720097976614340520939056618610575851438665539192721327180633412397677713715254741033534484488052272683556995188721546702482387908418730445375626345594808283648528840051058005926924627249430564020956828377785688255413989982397921603533426556255124335023799794295499293041377961193956606544864814564545111152707015468561683878329657879211271897698745451780137671888624092950498060591979775104781762588934848297259266068692415547762521546323737738564541989208920866194410467713594978230114086324576393735721555293858436091213005846319565947462189718814554812183693396660814652544363003623520810683949828195485948784305065346975384944367503194230465059862371132853653948133029113284423537984395677305588402378703600822552745978163818098026470461764662747472525818438052493780984227917817755474280910529597151853565549341909886818162514511699106466945551525830731144152430669715636920604534768110830300626296026813930040330991817949895836007880158873492617966867288879080089709252102768793639594234667799481631523689736505724138649734319184668222147806878455072360826565914364434220268298293042272824124929568392270255673585503934163441114037755785833617927896816849618185509832246917245550018752155799022661905322152763963189000224934016559842752985831690611654778150679829022030078819551458465605851509936543028260348873866016808184765856442836298988061003716612135820632265432441194171950072208779838198813197948926432815815719382248337515280281949664887951267267789107409129099150871034772363751391432686759073005217489618367671988638999291570459882860919420741914084135564047084546774405401791879756837989162650589887152207919267698789807500442989906866464211864545710653635680961185047881543781582274488661023981837908556652297625249795334017008878275589478046431813740435550387276026452277165293062770742497012443690884595395790866140575242241956243271329845390806165839916931284548586794602084860466941950899958381533607235703188059694635434263938102210071077284582925353404132871484030824833587892325152238801421099920046830795364987078295939262544457418688306867435300086169049430357870800852167809710703434585353687997742397484786057183458376207432806227637701672967822088805439512277182005526281234527294405978340687682889241800747837221725868237259203181511717737730574768061055802359756124615467769504890380032026888746811955355078982279304138755167379612641580424805176306847016853402369997008815945348234193143584414805199504946422982082328543992496345794112254711556264103996948656052928280499734238683786451625275553752057050751691495591485515762488582578318306302015894984447260261025909294097676281281119419782438042960140770684207661180173625331986568486428205287222746057361030246915623967425570182012021431285374543642122921005894851822561190749802043748877857982404257542016848183170264698282466214507882566331801090534379341251806328674695423611510817430168366220761233760174627726149099314451102934485928872843181259669386782080687205900967978225222579237371693561505020627952487672604470917054080083205800704775852404238106951810485740127731236264992469666620539263792355226618011411185557156059604850996121906845119029996923790156134506710410173876539619257646629308952058883372267318242142555782042661567876692699709171736857504709055061468013777539465526936260581591991923670844594650887374255161455130565190499503864211378653579525532660847774882574755777132770461400342668993161234643212206863706018086905903512775425715935214225535642330202765794482227632065630363647835891142708863988424253148932882739856894557105919611332733893500167581894277022967629484239722134969591849272303677118688749424923755294383709301516581353515053654935958022228383563605084191973831152863510471602012680120961396289922691756956298588675996799516461147787251674682204590677201243197030562714823139546385113101489410527764625587746203485891639824483971291055906508000799355994199192562966664878912684238151353041219536145481278228572865524819852548977101802871680915236531585642294502253238419203472838640879551381087321741863831096525114205065827588985352142814985953709701151619541818312031774231656215926777912232091498627748309286844430114767629838471718416070111290530326320926279025085228384823992822622155827015489828832210678858775321955450298350903539741648062548309676422392278409771604531358165619092954111524919646078336400182214523278346195476803278921856633964537754762617281376134213688743117683198736981202833572487834939955722033089081668105836779596468640010585201685168485591560454859176991976184221057323091130640093950711886920414448408287316481100577802954117462136966674024420223830925691170391894527324878337407204856674324139737945380909639691186762388842901261715942577619017217519609485410798112761086398077327025949722485480256676070084868432083688249944883239765911560803806413914298318965093995148706227214140797436652463647042105784293811590919255665494305512454394407427051767594201832825103114121310264931815371519374913677548173720899749528631280421316282436838547396146353581691614974355151900434612893964991785431223364658555048462573553851315649354694777043430906758075238534216938975559761381968014406604932162460131440710752986405490601303914318909252480549273177282798246293730910106268663019661088784463573976529507867121213357771059293596043788862275135189589740920144357373310298138475512478713447152639238242798386168401169176302640541125280131727916148628621216386209401001326327133410305522290213262718216866642263474005457103926126240350149219769185468910753677207630828410951596919352722936057871130771734346914333967630947282677494472342377376535660385666507213217500955561410248151665824544549935801889305795924958667178127966575462233940226001725597591292001248909647857553565679081148725158106760833064017791182476830991377457790280828740447130274006633947630026758920136236727248901641756055386577499462861742332262911823371633617218023488400712885665724024061621380225594413713796241945400335090572775450239798164448789865295533818865340669911084177951853928971209736571252693699619407088984088241075677710835969017234854438579719884554030118746308474409570945022157998071406984102070077976902280637504798371379300419894863344755949108707476896151017783969310189773996621680100791177902092745865824079244664076458409183071476458128479453331006012202382871819294935125272247847578131894189484836290134231571423386469718690833282612113382025736524437336351745404632416426261899690232557286967945556994607417244075272539073703634352066897975111556217555732612568666488924325552378942786052966895320706990871610077335670681340478497389955044218239064461377455815334921374261138954247586105721930158780053352687159094867303725594170176281528921871900149649499522564507194354234766507099488431795840332863643091968276240838685687199203106750729379789347958512608126084196732285679174630504081203265478755158126991452023256621181541338128497695212761055346879764321375989597430348699173435454247697368173992750698884447831628770195473391685330186680655772425639438951444037957113816815036340791815564971763542888655858877990683395346077747707269374267537020990142893938921625569001907787879935512346320268364687934872385489033497584697754006107551832306074919074990714617215077263089261736144033630105721370366513555491827697012706145260288691511716349373350650921285703656118757726955806257637143957435032285343448829468710708490764601606299454325823568936985100402599959409615787728190397399225068151601546787883577854387824527896836778593473011915474513691699604094186984330885285915045578759487982746101262143996399652895933623179707374792969438944656171592863754965378492151176241209487074450861500335134805996929538867223613248060759847796118892747696610451338881285893854799204130451485169347073931004384512407652829884813092811599558796325655777096813824979946183243564801556185517223353546912760443733376347723301854161910470428960600161126759989014360632613890690717087306600905503218464266012217297273396577846480196753212712408258654328793846773452172424111509342984127926525696023982033124250862588703861696060749724879280436606924953124693772399682484123997033648561666202157994653189474493260569589634975782787807813401388605653943127539181184184881004371404424722102521840978562861235861772168086742081274430782330084164959676539260766879128027802214522130075247685394037487511385973558187072981139441733763809041982837221049819613449412518492709599051265640289352576002876563323328336423859988335094052592785064988654519335598740863507967310410574815632877774958910841933758474998849153458211760644675895483104985463845341739928773219755455035077697073963745520566529304203654869820691746375143906300443970941915909947212566537064474050141055590083501492339572163520519885657834156958626743110257981552399268595169432969731193472817726588744794124036794704604637738098365692171869812253244777615153992541917154124588811011761645881098400659058152611358533972495694344210101840274042424001683311560884204800522113299904915935668227095291367073691370863247892175392779537751246170381718691855990243724039619343148614389569759081706487905398222101635000180234874640927883588419791781177230318445498335978046908687909804614314274092742809599139176143834259004079964711872623358630502052896492649757297714249719158414466808874276533897222745502956499715435290752584968802931238772944336620088449509439382869186712409759110801318328534345137057153640667412284553725731127333289998565658761886710414022959104320286929365331863628327689807364662640593480069628874351541484510172995610035152792871717073346816220388577642955773019746003003793038202409373984724706764518799927032838612354586159436128530200629865567213332460601858654560490701236411463595419146972843998505199757280013886590622283206655838150668406717520543804368572168350062403193538951252333928958888729120737770786165110978806268440482794192345972460422152399921644892702488731533715444772644594369483811635427499678576350318868331057164252888372742914037739965932368718138672958373672845589883046721650323419592186102453751017157818372646558335476465764362095915995024754232636514198210134790905078097157608096023836795203915656884618139329592557968337745035310505478864529637094219228471084059767327442563254031657590295413067673477319712177653580900066833487558882917512708479853763289148629476890363028748248372065732014890850629007281653169406342338635779759725215259742136026207247314983321195851166522277921414299217913387656850736892684255882593080277410331447849115556276389343631423990681742213279464470663066338470293414078973891662856750852393018523305194139577414817799316644458417831098686861662361660022847523226508432012441437801985619818074362909956483951139874180290161112424449771856610549475828280194037002123033919682682361641244903737418065562630937045840963782632042915180582961924000307272721626509390721640630670386368630984826476193389998173973191488053101415127590859405482144324970557080960269713856488243591522847589313012951214904539559756358563740132762255070201253657630341331139757139195046997337606667788323155575168872832843497157580105395873734876126989112334684811333090243058521937711608710411958338641503790257795313274264664108830654159384561128200692494681885526543328962344119321255133507476730308765126294770756697029307327042568608101405596334407788071626080718865707107004809472351665312279742335437885189603683375737771090336274697463522125569923132083758479542623074367564572264517969177740460311082470316148671570098206783965119023485987970370860011361447493140663597383008446796834777178478908293505463999683341611660312269549023550101745099498802219041843172920094172446653063227272377655076798305100169403037808689197929843456667177115622109358694569858570324107679012220220320193288377423050530737444814629035631725849642436751356304463682668445122635444961114559006365071415509449684541512878608286771746219235718822920400380380722957861966443107802621961786288283331657881181549958237568182263680884333062590895881243718219019819149079693631879900879361088581052047678171929939972761766358442713217610254935389101385372014739222737642747077731303022473712098462926434797580177443165591089168230635596346087147867312508899996056542777366717305220333059927888333278756579079710329859529842378206213521937401387564448681113756309130940707645009609629775303244432175392268153931827242839206419078944204630335094005930595863958234108127262087851592214881222578318799503423503452282809853885340828884032687885696469855690483207425414151828316468350975420641153395931383955347454909047684592773438903536188460699754495094116086672937663425404966406179917016569291715036518367871691792941451005217802877783371847789519754507522389479719983474899740502658909149639304012938910390061741902097707548880837746213341346753185868570579357648723741665201753049097488517179267284983420441351920809007129666891638275602951032469392327250342727369305409406894720752306101145757142214101953574788355296876119043815539957273268429672465941630933050033410693208160481080905532532606118264554227735430998291214052437033725535083876548487679275055543385240991348976335706958641168991359730083357217553744866293760427397597137364396901324935928226851491312968331017914448722066167690614636276816187846609897190655617047749851353820066456862439969734337770889471863593024579879925689343106904928848337107346164270427446991956578191461812884243640441575767215826518003165261564960469242383211345553440074499578553489565354796085535068775165402598665659682394765872982098486818444959686450984013711283334349878485148840379416661682586624686142334750942347391765998099198465362452894135253530218779504645558169184101238868830645481916941783381976023808292474424837589662461707293992119248618425151576979050346162678573363405252565735885725880623948072352594479843723036681896034405202023494855583712521693186788604672291770493549130670927898275858429511801796184428386712255252048665016113489570092907027844090570670350971530956736894450074248103701021430004930709898606653994807448377670489283791577122947537172742362426354591992187056553888361155942132083299755084593519375752037947847173459301887217534708012237970982773344531395526504088697726170707383135616478914414837305068454425895174151848738580680141869958583803258527353957461797734749770246431174000166905073940952856905272443283152169910983762996937328071814126025167330023643636077599000752875212518194399090860866935939541174042429672442165499184224796588796866139225548163676332400604560875295707856215690921417723192798850293375596312616350653544542325523811451443770910784364137827603371736205099410390267875611626080835793732180546931024156488884456175818077923066564616981137099151481259654596330990657090627624627530527136679718710489135902395407121286288139415484142661955998872320837668133659673228837909951590912325949603944346991406999609109912876896207532194758202219676217198515853511287829632220091894419773874403233097644965625632139638594140257419425718673865429632544460630518945475674588857972714893285293928544977428333083827862503432106561494026920602649602353372806372652912455436235070052890137651752605153270559259330078940477513398229452539893356460864368944785780006332618967160989843234046990068087704832292810105323079403576523541731991923780213017419831069548447550378607812673282357944497907554810864933884201350789027694889828461524945436334324162307153643317963765655154032708608809879217155679065743378695665387526899830163728892431596483988636299007671440976888389614775012742105314962862070380598387430654384369738243958778168839388778176500219447472411938445087692407787505882472598995518770263353431404889028986363306028994006990920606459719531400945849483076121493917195735917434563765458440331006112648421944793664784902733564791968044565992222334600674348178558308428699856172937784812601550612417634095055491296764645931345328215436438456142641118511456132302019095037029900274154135922665204951499557134381491969958625812011452491707267382333472939602000323627138621623529256822378575963099442148502404394601202554207626189366989322500492085374522619131516634544736264297572928600458607779211632063589516815753177862771379737135676725362528597232752580659668439997091126606617010308018523828044315154383250475785866747524616451789447802237141041709423853314535517459653709225754881769261104385137774224237815843794544051404001566812653252396126591654085244660901648425513013815210873210463221141996963946927442051954053626986690268754075097448562581337028681987646223444022423053670187244792855218259522056185566424996964344711727049230751543104376398121542897335358143084512038831783930717858462043259786746316034180597958419707088516841257668724178142367727547350841638964117499599582531592547477665429860647896708710084883282486117608434886858237122485730269151886192438198316188119106843596961751924662695621470651210829270684088651752665910164504945146895208155621896460917537386477998303140544991290844702215539929100573234566407008917741721468372517650008484672922571958224212868718246407802035032356452754480900578022845277847719442548340231394455058817498319851090544178528353723473349222215872183123755690109390193760877432241068374223097316472114068557524839114827568476331632037034121206940633151143869085429306168323808230872508151634835728536630023076754096306153536015405507115647968926973891890175959223818248469256005006271250328830351529045363686641931362421232043737931800003210177796044547597696555878914139594717756035086177943705238838260184962557168788843077927016108996112046791265178564753362655748766125728722286471764170626747248491585262927562119630734446148298054215634050198379787363126157535583940253107205326511988090118529785651372814651739961822266445578395068239562217133443555341214519145449719051180383518685970329591147353095465095786333453239282050440851663484556105270602665809937617420316878838611328630893453599225119138795437228315323829494536646212256568232106432712989650099577364258234543672409177631067553454091234792426399152868405494464793440638446438571413797555938227939993107468386760744648690482690867343683254207997009495968557321966504695786526796473356280649447129318215230098153547697927304279161214588384020613034065433125651905690288119522795115167789822132257244092737443744022947175352355866989421897939467737142080836234208638733347723031603272801168091838844138477691838871407572250085247293699008623930178884250793148829706560903503484297011892511899933639028908046535615485127693643594488420744760198862159817574216221176153060490639806102596302389198778380816509930945054162631399462678635899708440633160972328581496377764976909314079469773213115754932986157735964742288856649107130117670910136229647871618327852236476394359806992652071756158441246521943430186943824088304768636597222712612222248999611229680185281011745839528973240168362309743826683101131501279743583765174043960494253316079100698314772215770530183498706116357197429194794570263718662696097259500016101185873228693575640534756192027701303817326879535255489531842544369742566322659445590508190497808762058630572782448876050491696985284911182653371458659092052895865831001028484663434176314679430815822924764087495385515280693707351660969959423242655503661465984757412491392604228710292709295971036629205316461161564654910902055638379776552945819014635201420821690385133534095117443646481012198869324092647761896214409467178847640989158789916473007111337116608003976893012019760900042929707075439327484306224575047216291125101400696487520137676373055845790414598309970727392408122225254362037108650555836384399793072834094302992240827426115621197002408623826436390573699912246252833639863956313351302463595533932302350269700576233357970705389776471140991735777782401276973488259129545588558256620102035741882488910803396338036865558314889125644893618591627424920289320092757784256907234776776437380520614992897092384593481796656058329721221913786099210280350923756885805034551338932676041746129690057643740655521861240774404382491901767613948245527962554990207089401259357785152945246050720140861621190842322095527801373981597434791267109376591472341345248794663216715191562418941149599546076892542619371840926866320374073473520752801163799298159592653713819733643742723283536614001023361854673338034870707099640167065170533022226809557191732043030089221455041110759268380419640213637505520207611593303668099701326134542935677715471813478022985854613520880685759746335353530838937348113908534898294960225182707837535704688569338956693769770653359663771453182287896481447330335252438234670964878864353215476094481530853095895642292482820807076422865537292791345699546558734872021994042654580959221552547344777197783138584388340909629187577011367657265390940972026489155938480149842422060752227275486850424205202650451547420597770238726620986099184137709907990945796862460502180709526202656854636895785695842480621010935608500369302789975629950143792819736557056147539449366903966052940718231854833638382297385129660321710170995293700757184574048084755188435040277153227983780622834936834380243626465398803320310613769869061924550155849528223604416319148335219082213486603728799544453043015524655602554534818890244323313565851063797722946939415144680676877996596070851871191058087654470744589991242296757632445481242339776037312208344127612192627601528675415556355444289790733434352481368967786920761174386206544098018616661990783794911202047936769926823370738959620683854060660272253212628402002159517403255848525835483529916994333275006561517717199320613908212980676501000007569926836563553917442535726306253838347038030919753249677195134289138458702888967208716492980120068157629155122479741067685057805993079661618414690695335456600820582932803035770900021823693922485664562407468210083935660884541184080928391125488127736227479187262990620605165426525770251695848676847889184743607653717166521256369660503113416366196624215224147356233230549159092111791026506725469953914685001227590767158436708522291698516663230111963758024645754535322003834336923544700388390940257716064787002234799642491472460944668581921397287184003276164466720068648978632257143415694750071036447697052473603327008695022518160215052726687305988974213344510529464941235808340046712023930608334963452857383038847969997415610534651858091599066168011969350560662815878217735893405120640750062370561630548732791249068772363759824297061594353881466905323317442824431354884621157250636517777877376844660880841525806903628630402746061184892553709681274793576700522946504038882235419447956517994806389471713347281180041421140439668433889755023416432584814982173763362776012728890720375142253168242631296154914759095871932078283603376008310495538917383946600403959607419390041719803645719172352838749548549433138488545221094348147544867031999543083948971776553684667141562996744453509495842282047188920889737216274387927269082222357579632319742683930383843419325890329988080351052572384903105235661656032967471080460955348630567152090557840066796014721325397311213491688515202932100144524645925938544946866514860635702381114607288889057218050990861755077625675963354420402177489527100957238699815431964825194566895596321138159295484619506859496367423917620226527399454303706777447558369066612237103557476903980455670747673925068166703197679963618670347828368708554908742170685018583780352757041386678329282024539995642172620207501325698905048290286386261404090054195605090164621240789422220552336064643538731241918564164676341067192023684363192310137670695975470008375485201344609205183336518234771780376816145923679764646454395205930130067628013804441868965307010813296795837832152039933659370292740679484445774446614760204370299927775565216757769638076367842727840927967045204026316798046510884754241410872329580795825678518248219317162941519831577170091785914587460522676192520556830263213018821200967037564733022017726368041293838034137775822979712518102342439673981531540310070157941731452383420374650949690641279688979287476579521285341808303864031317411135901121998627705422185054575144429671347679388824912601554829020480755192588352965687740653733654962943639938855803507992130007589647061134279105949350975667735203985455070036403653719944016684622062543825338130636247010083814155818515134932088948178713652482462631160224441499352261618613812888350731570173008974973375707801826242851360715192213240969502346352682807714719941335891078606116846027550836097486974037684223129116096926521948494610236659520367426558925435143712204414358735555528129635879330174637493731845870508985191474020825159804709640683395528732116046391701068267612324508055324210480760886413536586398055634799635251104546223191347742324766147720523953892834524408646464367664555674029623714735920670672279183697397338265428862355798958452032242149772695071501841715413016137612149201016814439649559411245689528556162959425285001911500401822754122299456308216967951855367647310468335406462974256202054600545849164199491992705754838980128277611788195770679757999412396472386573566445474660934344591431052529529243064972070464684149522524872752883898629634929854309182074716141524775333523601038873704257496237947119037931348838885343179119914339899668068197872306704333348780230835083071927462390256949624180620541077213878091705226145003282667444212872342764155308699050970095321281933971488839986447465296573514725815514689640624345587664074662551782668265293736524899989887055903388368622324505719133264590957811813235778625851401624498221396776069964794885560393221991376786234296749826022213188376946386596891321967124959465711303813602370985631873834170997308462583916768345776932708971872665795060518111227389300168617939855051401607875588404693752890821514173911517897151843868384374293995410283330798360990958349756995189818199670952384513757301481927678384231540490315418910135740152500532716345091922519876618392339851175344235732431472564533560526077798086451876868908219545373559841441826113562331530629660755624799657468087739213771374290272463880550120234586874286026175366624099632546697076098639026788249992127796160907921808668072829364971122604975662693445831360807741209034589246506040342988133106890994597368956292458273118019822042202524772999650704078203991877683575657631547888150654693472184823118636360400245692288025885734167047200766774543914065559333751232735962264977328585504540094427281629078751164191637411379599363550459863268836325561844669536774875598688094456462289376604717483475807128823905202991225202569672334228385225294746098750776152275530408840215559017824066073684539932791012131779463578010740237576597000992391482681442833561206465724131187251719148840733948742159303162194168203596645845786799171995204709121810750641179444633765417934649038957561208416085165885326490297058374877655866578784802249433505978397993543826488156148716179133400298665304959021269950423414099455011136025220449796690316836986435536520727673543436599350913714243207546235908030281351995191099231865485294223918142040283835256364590404030402549667152521031774672120697777240330048612648889431249621135062356169607884189003249856294951822655699928025065206631145365875688644258030121754352399309998852166364566188853774496613869013357093627141514883456295887589952902169750433924783588130775696823137743695623100068206754077750409309533183531312057747363154514258999574727756103336591293954224727807833792606238205583575119248387878683734839478479494291856116790288528991453407652989087234169308915973526587408650147491376382920241103294620726486234945009864149626200097961803617095156740516706282841761324539623610202305409576883610783645345517658752749136178481434316835849418631299555303497156436666856794529327551535402570625720975823779886317749695370278393125128390900480502568978222069684763284250791746544116034480508698314152930326544203735494903208941812419691119883000414147701408069787480118243433387062154105116218206798997965454736058123013701657619332860342551784660889607361528423700687400094217342004710493836463315058941285644133254611562318593152730237982034368433611407497789333556268594933895635842321628120476350060700213740474441077264379979686221414557770730808839501379914411899575591496212037800199954589865278631350243656963107824621174945839754095995816685901555944283995828505032866959113211053486353315131216863161499204549597052004986148765608105920459643596859328659263888046892347818585755786772696183500610060785592974176541440707467983004247368549245377191974070403458249423662884381836860385755331419168965300826685989257875278942523592329703410762002212925175950383785584288648128861481363643285318079234446728702186876382502011365170293784169449176600162524388485753426093951169857902755465534098365185343853103186131153751901279864498777062823254191559235171868990534554014923865307132205562711821562820536802790725286757114378225224141785510206876838998349511058485419120954588402232850561187051079444136488912110305947117989874895685086800338949242170426437154504537722410241784039778001665517867403672070604444160498413553939058006554900230027667666545048496770153401609147074283527945695003990910183176523150093046372974264369946626386731333048119314852320040818317597927487958786745074319156616666049214783388739346869350615388347560717092423639499643749810581220244664383786743277838185697959330222741067120876825596935127862691305938239487580323043461564899086485799972528499954232117476078952387435636921212094725503890558105725134748893091685429962344070280140439344152402067608239320337341142480332106189268671716780489761545356684212723496020962550047251429279255791668321775736718380788303607317884517561858407665301588162308041555268250670421541407553812873582319013096570836477469419576566768600650608337670974016548140273604409912954260995091589316408555656033837332920466138734957600369464170341265212927182519535877695120184728369327651327427489719660230162767690486673619737043156132651741784161501569613131181673474721691528938229563682991343513764810251371197012441021581007997673909298389448144692375198992887280642239161260589782862420887231741273731940119181940559813006585374032621214204243263016012096088087989721626495943305501572867593049481335020189139146606845782967842551134632446191774017101686068026931737365156875903258780171652182241698851384135756236641683675679981423139963042728793910255915165914087515232775646700739965045202675600134159823367896867597626213425595114355758572239418127444222626006804164755144476368281771606447553383468636887874951783789379572641696986568717239900009493783198359061606129586114054887895853095818630709832282871852417341081255710534640134132233586256226171039884504237777631955767439216976419734787095251819004902053907411705859843607617852426384359250412977963877365779846525715165992704426160651895372806497646156638467052749462854734177904636066918382354038040389299904136109182799043253525786586181728455095181205573467860758480610813689242888064773136899093351307310507947161630501190854790727773417549772877272683686135246441851037232889310307789153849806729428062308372684494160671876660950797448524318325839009140154485077903375769597584706688824774353168875793009808570662586898124279179449147869545269903099828537300979138377160980514669244433212624486634258242847092670062995227704043001634340487279530390682161928143755371864391412998722415208418651656461673970606868001099981943076209561724662649973901833721345853889858460075482106098004396813782710135958375094375700175829885218841406213775709056473218998439903535521156570382540102685559160113907076605565927743980271742505725642053188538238728548620178679860499280955791886606872188745975319305150235755806890014974413864393994941843319705969087007905390068103643463980533995627307120058716057919274255746076651096639957271514929924853982718645401062631207015779586429884096900286229647017197925023695808473035269509242135779654452619876132595399888169537168699966838896362685783043911583697043427713999423699549979868275457456589475263535429346748483981284091397294533034659927444255581426505159596535807688418190650466008685737791566751585375535610609469707137295058009217035951466693153735161822161475298929143930127582231038968841267349508577262181283247402243302372062185484561915210059964918237442366822219065835369881319918399025009017922412808724397704351727765002614863371330925401456703646059827910353457245949903812880791549410339811171923646906395941655211136245152565136738427589289501497200886779925990885576984410446245273596402395612416135986859023915251346919382683738314389088574323715319840859252091338792601633303427203572019290638899327081756972368638733193151880428241869244245066583214754040865215398888760520730703339679730898688717093552005897226480768228752711666762585604102498772438001078555074971399362646248314706962367977973641117985574646749953442011585500449130306828699320856185448025721607660870918998598233652491022396373983327845767155031954059024224447251548539180597394092154592505822564990515182146526466125186529260737677766810435742890653369434692718069217704563848456691653679484170929590301727168808239218115218781482682550409984146228738687480299142862978663691949843572316865541347362576244479010587395327615762553727748483270232269813679907794628967092106490717088135861663817499741022139101301261422706565387250243583202157344666425818419629152407306440019671842365764565463339914674588624967731414621860411498859244909832679228422616556155230024730759110492043341405758131304150772262971149668771067429646436741899912051593952650913521440572438767536755543920265641120747352379900983587133561440888674775208326208146473396712404252509787313770770497373104534072740838313337514825729400956678483014620182942563602494178525194489865956992707649009603160270824276891320086789188806201150863184140651271666901667388927005194149297021089548591542003104409781779575466412143725954514239458897619549273458464775816182666243182450420154377378255037771627357430305983675419272185540295831779177354411344175152474240883563482260785335353776025047410859906162007467150226437462436523660734102559257922498972576977548697505457670904170947940251973092149268529801961422291583892292679342945248874572328621787884585012699208962833861187721024077542601608418209132821621409302880580003667069150676451872702520780215549317150360495534933293421420607260516515612974691484034646229374214684765722090406394083386474879999976510394348686336438883087946198596350401880760651542523888846521957633938243227805258877995115501643364250308600013195789895666549065749107346012227102928345088843908047715541816655151678718315202350246739752647467843844571681153461786504526228867600290089246496766368887600575126711605125188590377374585133405817456229227107502943246798714881823891224551407603254391630762789266777199622306355488501081304754214952458900721025205170754682521512951517351212395932804294704859270230642506488590288040162469655934978673880898423427507842304793830790495481961179625041534183436545873564641124482941231858780447652139850051873038387232403126601608989675395298253214314322071447412554917982754820375749433440799486913896302446070152655069424276220853304358686601717006514250826209047798657075101962873444332439013956948640449895369690579417863990908460630603159938729495750057563254285578057925976162354215439567458116027129394176994205729049989467628379414087673059780946147178794027670394835902413973493324245642203743549198156527002402501803005610660550829201689345935248266688433404725096231738722144582160393644478353535216071848389257183667012233158831576929009598103699019019624697692994396004258108349432559200266484823939009685630695567891781671176170313710929731288338408266047210030405564657389427962567946052528265232732257784453451416561751055045182725868589916863158118765595425147009397628776538926172684838963215351086407686657415820330687225348124241203854146969480590043046937112913529655676673445900948205351760329565244883683196437686213553391059942309472306689065133441242143142254304537519820306683845995974421888558643852659110914963192876592284449110866727291789700536893945743668087870158545359928691497445864691762906425316993578515002465507551705211327880344007880015384686954709087013425433089188472839438643279015240209422309641207930807258808981782254930396991139683913268276385501040406519231866148986118303397209423334558338676977889074451988393291876297389271953898805868618398230898447230380202112131190232806642528336409413714767955428393037609610039220096717281240972346186591627357522124449073705670168004395128000568968084786320871641229318074436750371144841549817922262557330721903667848358893516673427154775369591269868427435852722247768090342287514970408665674873843061362442563393676437417111814406991705144329882993683317540930114809060496715480105593541763205875976308924038550419170049940484159472757640900034278848901740850355737366985154727492563041844640717073785129250154146950320384666437261836139247433222391814137812509935872284263178116289361310942478990526733957459461747515946011669194818489369153444631109853835870960967498885209863536176324538407349496648222838801825563413648947695437152767834232050265861144030591099550184398892008311807282253755280132763542210096587054225838927236123841727757541494554443270747464046658935458405210068520226799940762895564119645854745279502032565557125537945418780609931581927206908021336763551227465481290889429248534411710830274673151546642021142337299710553418506067350978677092245453178404007508757906570500929793716924896485977231554064052087323472020880954057984255209813703301612068723717031981845823209293359017884785724363954769988237588284212001286368578310753857206164509612275523072484481238756054038789315385578870778477999845112335484259635967758975633818672438238379547420167346033938052250779776395384232885456722661188258360102183445122733326026361765897986379614407305390840471538691850896911945307684789912173923629651318188028522786016703130565285467682527164453829223521094837349240208889886964528120863136773043303659238723814966666406390613056869839307796834303388922852455189996128590759907098838808260014458227590173137382958689455488517443270648038879521973879297111571485253655802482831684739084543135299167035810764703851569685412436975732209783351454127444905570106754905320489641383361537650459255358785651708727881223640368619529338181583429892042829315842496571556302028028237159443277699327477356095486525190697101323618719584972293065633710906080955466585824280819713009525824049063663435973051374318793302666848333371584753766106235651234160063821772558395881621987309136756159497659678453493776174656998538161578549885841197613513338498324293484918639091083174979540072499531227670890063638489899578874468843648821132530589335870937984457973739398528974890893915896413336513832470588838483923335114104365020333428944762501658160991519884146366574041598522594454371609687757748889569315823856552948172078481138357035944220859559665227505734088659982331495301465592006616539632535375798718081062392355770614513430406678947741936640063261779397819732940179340192952014346507731220057593819402669154670823721569343928149560917002339208720397094628257025730305152376455023978396758352942047550744144598130133381001682751325557868778792435712419542506777303852877647120225114495641778357807764781108733479469144968711546444369776453974289888083331433194777103548765945858954586068484028062279003281066642566479206898527521696452685177907391060308592275759806903887368253017328604720416898853950378024446639674183644943642415092220243600885701008900091516117427673103856786944216011627077151826003043879903015836925904389830240723488341008698260233042550936988992347455673559641865378689022063410564365275157215368359407050938343495102846784268677390043314434798496786174109346807286049589548357602132367188347926601663476536484076460673046107285322636912648944193115328350722140857408749593604265450007340675327382676372303126261507581063407671724790697725614405579333941084045098620709277291302810073214819776165871629538317561991894889776457359630295088069036943213057910011254077071259805637031304459343394606211385647430036363751441999731328567850526066075668181991153972522931433672690008458829136896272493027009342239232086707281535568410414612525873887366717945843660714705887553977891693224373799071665998856323519649999436145335442318840876054481197456597446139172016599929565725056927323275358157230498471722882264080962802143294851099636893501998416032111055018862190065468286716357867517491500889976449880493954584490590339723079708600341333553494820976330402198718012937267398940456691971898913677952128672870151087984958090432482297013701942221515034685475845948733816697829956878040494359395671902464596926968063930632366761368046436378725332884604939600319289754994841521220827771470264676681405140139024716210504697210398476538767927858681454105882256360160056901626511852133344965632032829845367794730347327685085111191973198075012199095654955370565150513761314385590196560551133755240182634719098498214744734681396936079190703296213668939147371773273096693258359405965887899243546852994914764810570548230977996669926461347793539307290540164582121720278417675437602143156965672735985928398217807103449332759633852002028326245789453992649647402622082824676242254238374409234009430178168679189623754177902931122869094194036100991162814293701669215345037280157199402973205641458694614235645488337855620632981466553999625826634022975925715290128788403736654890106088450286771836500611318744313989416250860479016687953928766555631959125444374758018625930735261088960372964400607714045351869140020439496820381317439168821779631999914811317657603520954015973982726038069117823621464182166727500766866383226476035413861362591871416655387136633301565736469328897661223579182156268628763524636853735069925615829640173576764366947802860580558294700792064504172270768663162984316276580688706727918734232016657382310862640875072618384531129479173217573854628295485685617339301659326747790544821070561224168462845936986408697826983408981579185969749419406562825001874514718189750656968192109163159735108724591553027258282044950361109138375208273759717778926968918691900858213627805325673374731305416716854461529187458207980967841436361651703534311692443229770903831285475724330053320051316335279834450442666856613942985781157547258450008797153725066847399091240257435423638674079833319443968317001773501449045839449372194891521699091630154165908920677354530750634332657658173944595196869847514441350567149475856956298426777158277611042922119669746884608979018621184352977718918734276843991014247731717025636820806200534120293876552750187780357992972489296246120210744140464835061295263479856965964043439681515870940521994293190988632310616906389980380619247539854879449298584825540765691793378866103790478773387679110693204028763847427832237624442888818244470708748814879322745607411694441101529823128249715918964295094889899835143475921180145807789002307577242549773798497785708758244564337696427848509482767561374885123744960275563260895971708271566747889748568270912296833998917243664418684005489975566338609526857365880427216574569002237943767268786716435364235870638538356601717749166150938150618652544538821221763045909650226687465894530874059631195631567517941873871179793279994310107559615050135964798623436685103800309373626921850470093989837310625700599365079502419197627040758320264378566303953183674993131688176032704527122702218682384011871350875747922469512394933741923430939515368381247919166045548716565751581675455647453339318689583221877047034071065943122990449062715001852117678762103743872301204817466029916288187396022941729556672121859677623987220953250371251271781083329793065941767685960235241588967399722247027526315254691463993608825959604729699075494138310866469898191374633342721322912707738781028870429642745591503423746087882143093796494796244856701181552271490922194970100675468082270542864208162140641862731659276974453128446802418176480343680313111511289254924155937426624091636305236962609926889637125467538614349666053946151219029172503017303024131309447207817730159771146951664651305920143970804374635229484671823490677766919165254500065268748802286610427525296935616438891548146888177954210435073529489740252241736807662184028505909496346996582241243781678966823182523309663735566082264640932755515591836601512122299266641866957252784805315421761023004534763769447769331869077160304642090093194852316195640889694161901585394486120309507508477605855329460110787883808368302823826669493980598129020216885221047876415194611960254915670435122518660205719743421136738246326188343268112156974862836371137294805034103060238431882653451450742132429567045740663546369505136317098945175796881552118666536263297959229545461695936808495274502097035060085736920515601357420285694293992583067586094587431889447527746950794380602292304777314699909361449419276318124142773776766653129143935175481899763153859474265583644008958921529423356883796699621274384496896687320338137959167118381111250579013709227278579326526617733582261712812975329621251411845513956830022720598580668589390543143511420989096733613746463898740397814602586235623120750179744148270766931784852969901863022767566180433464710296434595778431478196951346265208086561370059243103951822492862095643012968078247778667469751638541778785362289239905441800982595544687568537285878117348877716990060438001656266557974119759483836862503772550182073598297262118076345156683808496759133027707043087530382057761384102639634962043492617664740732233697967380736837272181359419030411631134876376887961152674670967703803244099316102163847144093112820908374333701662400858921300539963911941627448740351814334549758534972972086539249614015862656896370690476558874516794610641066488808788629162509164543389940688309690853652117705762347969548600852202343714307862043880458686998761394068466691229903142861032401431140388900478976897157001655487332881931059466637673634630154016385439787230602419036874001429731179264913775691821146474318295185521525112546158830843277559288271782890807671919995204899400273138449272439588133797156338808016754657222035535359192892658456572162960523294594176341302490414630202239637943727737600410125294725640087204419938350488846824016011958835349935102485443340402230730830113124812547352471644673648879267083970596340698488161937354335842221559824411990384952237310016864099185738250970470423546106490473287331513738952013269336177683177714411203402601099209690078966961266818304861247620197877154898814002893624760475666682466373701722673387593095572461474289203596001137970208348173319656591809814958832005010538396393468169397635664757304298533218753884257896318797032579077322652176971258211183693818886814933495089308302045319099340456838660787925718462794383023043740348693436318885259276953331471605389289080434877319941705946662880438436215112625519210718239978543390609476247300312564687267625233646366119104098305652338168051914315088069344551452183407047839447593946387002257070778470171172528862778038890140215808854705047388134264719763979067093818395528548675027510128867316899839862684105449344737713064949786857586947975378408877999192188331171930740242546640030280403924544183016225648019636846721133199169763585530447514395989340683421806828984573558946387948899489658674497686167931836165328127857694708200664270013671738241065818238362170267735847845669621984368980356557858916050744761286663407760521208574420175922391030902569288294815437154915982328405148749027531671290855629891412802606450155898914998732638138741496386890744479329671832737020102120695133228161251004388960324314480863144902443150228480362325889151523647733820254337106265802994869366770941054624442239732040916836415510460926814575611483669634935318717933063957908447394193786573435196442979337363948818055278877337162493622167354064074926150867698351231367545449744283853475280417652744846825177969054602772212072854485062992808422765980904229185445829890919279486840773949343169603998531904186704187121701683106277380771475661318034973185862976252952240809384708582103999449664333893443341560998747431878711901241642269951564683761849665943826086571982848561644669713538753181319858471820483391277917389622586464298905141034330006207235216876527143405177963416065904545981929956167858674295453953520902513274479041206585342560875729547350133458411022135784271427767499902727277238444243055218694776268315674740816648186041270033507043337501961638403161003889215916622075322785581194118146195273606285775885574667900741841347378091530515954267705894054678909958676628202796018618951852936595099497205173350021889503114336571648317491103720229482949030088299863467807603290282267921342832129768169895907984901295509228887110119940677098946896712473102088151699362429361339881379584328591348015100233067241425116123070516302695867354967889697252421409266378452716429303113319017116463532327313653744691987383055828810047969915329612151320594166478771146741750014922067585388333974226092683051248420312766259535714456557669340363562914919103809634805584631750527286457895205160796160493848380613108480331669626301509160738334509629101089172869328393697497462222651363759838801800022135545305630580653474709239528843349024562561187863020085120425958644075565973404404124653679328772828231560387262315685842054496351752788734526564985288486286437704379997926359364539648419965436136345369603660572699919270624865954994723245144075827717256249797936861930125681071695161810160342975045997837842738523609340061174458532216405829678476164724792514842789990744669373272337944012238722904977722897550129179192768715887384709733876771979019914505258777460133103620208985274508218584761440107274824179997697013904718888986238192777359432884985087584296598780610500979945077681438394581962400762864603189365040086191179367679775904654916278090893764175582429706059148264114372722056688007549641903513439492598440084501930572745876429744309918491665788500861715797217031019386602027515104928547835901175779396604066194179074093286711809928664869891822799724665558989775554105293814958563432563206740911975504653847575760288505518282270446753096390922466513141420838196800517576260358349364868034768085940359035709639215441457464332121044747040773543837128099017764135271757115947780807304184627016724403858329070025397584420368175979840222220484797304496687141647549713254289616303921144159329835394421839573981281006936499806802249303383015940505076006006227315026408530162369655505862706478950993428706029520414221920823002794067280329256145884922408745865604541074142505284094136588344251132310254548988576452361909408746380794509261087041467386376766692784023073195208149344460138087327995637638400484012029481512995803368828400826776696479952109927151177763273209280379632465482932221518823425147676448573173779993989677463517030978092124744265564189096143564795609879184385097446919486239025538110014461789582292572665536616082953266512287920295306789018408818890377835409446291963596529577412123282756669807360438578512885185054344420439398054210335250114231139514848837243499138129996655589835957190108238757230595155272673644378415435199404275482874038856625369354715381130841713579055187114774466216146038397345518357153435201068455053899600632210503606229047502790751780344703573693391824454099220291847627917024456215154921662280850759824883250012278285602420891425340176609550120558579272518119826497616650134522830424328601379390222962282894032151302838955534601338208731087198089444297293444304310813520324729017854104968980257044454114141027968245748521328341862721847614637593978241082325148760887694620287572160236323777156222235330991030612712240664329942419007606965114979933767054636312227173885534691995147163831378754272966465555773179986663464826386294282722306981097051344759392875392843176536056544844020807225442251951898669128523318483867797081842331930565140664293991999553643174933474842089883134582343636680545915169612137859895687658400102134962549655863499342744425746317504704109241424111671015794416927801772993678001850746895166469603449332155047692239452496482573426037291792317569914832965683179446052792856288472968630026465244003804511828140895261291615325423077816422520818016968411097708755258815302989451321968528161728345348355629587884164157352706736211669253546900859269522221146846393913049689565519132171347211149934705718536893751679040109596440126400639102596712575141875971085495623716901706316715736036873105755088382244373368670233737243922485094159423579089048867004957513109665975749866936657933520760576282332045941409244134267083395373678154220070387871550449445479177537099645079861299698758826114852488386584850998222386204926613265254965080577257868575711047541585713236605515965742281916512598566555348942733587051060516142304635214767969859321414974769441631387052308352105843725357994945348184792114051338447940025148266066602558760560198875363924495776971433474562192492810538597728703040527999376593557429816209886039979500797323542700528093014504305306776293919284425867433197490876702962313649988709056480700471447798302606103252506486551106189737907304815913157588705633413028398488357083481331814216180641156981610564834687506889303815758283149202370531591854443511019238632888027959124781572436744896294410554101080363835222780937450066292911270981446536966954436699083412681969538906566859413614063411939108473625650790298288158141218711786050605512404406090359039826501756131732574330629112518761818789178841189025550843423765386708387441329048156670952482987157725322867530686646424520459567055333545889938641799885373491994391630138528979142504463219415591264166508007380531773881456225515510919469187138144967476901395939119294953703956648989701638916946344940858204004504133961273997307397688517870948221545748298416690539458206517502427246644065793282081399499964238114793119443760416371284918962723899341519017613868485929039363942823011008259572820577785645485905518772945986999853080162949676600255736414038318325635545768102799149614919611108824576478779755614921051063873976444381653559843350277833195385273837786252832425795888079938864141918518917362701077647410341865179885849231053204865212224069872294715569759157194976197964133136963647911519692040001829819219473952241410238703834604701017054742645358688804146049875189030841339395792960049768618652405701430870987214901439820580369859964849842620432903461653264426641786840932704772971566859044938316897926041908588039576622724369689639231806805630763493761613796398965157324797488535213968558514606507718192297837928557470829758210173242360428100180898782050954078850726221765384336743807450886130335247977003769449857165248453547450344043469592279579071951326891548241650447185055407962925145813062991650204162994279079411866189822481606761072098051987757266293180121887743259851496430229162319788297192408060104023660291188927763786319130725433444046917090319620319885374102664420967897177076308773633653197007230305639797272600833992895526791228907733892244895092853510599985793541640365240043097032537549964608555515828631596823509699103618367786909936547135139851759980066081796714767180630148453243335325046049400351700662887240684241751312884165284150402461836070202667639980496725688501571939543675312770241078753770555108335906041787182423827720911833978776605462196553400934088229137799019294990092774180530803709600244587647535309191285077651321641722568985603344172554697504428312848573169565618242785198883471471059067721583000518063079009881311879413115785640612863476842458357826175535715396967950330582987503193145581444991664497756568494029479910024135832036501688102252220920388887107807311564099242456229063574316667192515159958874681258739952440712355613603660285482036161627116586113748573847532846134814265658867429193910174580037375910692696804958898270027130557419269486369368065145357077246705633615235033013811574609473775207221172021100708729693929992780674236375165364673822004565762686674998122134631082704529971373311902874359904774795946822984796164472836547077847495452057220140324079059557363197665504800777222485436853561229336699647480501207140704531723013029476661254012015304193844859218341589883904096272266470614086115390996746578286956910130341303392761764955497181353140797729848074807347745428010751567753950365067003386725614899693120245035014448620618199385660525498085999783705506585713266108709522206411011849225928697602921356516674853523966257115121551252280410575922299192171650255998647988920913867473444606051174010164756243696471365690276541934937802728355522951083347036479634139425244492128952494792170931198281528227052797256270853525749144849520771167813597704969900846388097820404231631714484459742794467409573240515951381569533159773034150290572809266151434192816456961405462105976062765769100165237967901260775671122201364507722964352913407388853890327724298347266488492475649366121932437031755527116274855563383433782577157152510985623661419107222835286703564438311449532678835956795879538626381096839820186644421182913194412063039648012635791986566891069299327293046272718343778155892254571782239479811617142851789715390653500402719121682358024533476107079191493293031026749861768630924025914794127172447417161566834935513323936313105111219265431724461594524190357837740615066023369442505481392446880167395888760783267202189036284909504728142756091894093388390739124363102462207608674486706270572124541222622032438195822552578769707774590096144299647588054915385471840713292614333687741410988816192654441499140805671079294219595821458577333534353227651185418219607171182385718887189255096439885217908253696380915534760862560788140757216066603335580809999884075145644258819559585237841045570143088285436499811302591381542786994042140094522922501648364457497475412991105682300898405838478466678695627464069960091406853802512024322521710434873997719616417543913055365835175179734647898719073521074393104919054392289739657321819947036623761157457222166052608438705384810181604970825373669082301823469834057060517573587927349220119250056001230593754528910726286130723225762764140576796655197048634010049692711148278869511153551956841861114257216743291409910335414235013613514586866296962975989447191684060748485592135559778719872930873040591278411380027518984952795992504290287145133731010922265828490842161350454978814871772510291873088266740688233707371082595614675340976438538020878421834611560279785595386011509009755592640527089678617278611480360102124114568082969254463698351803750711180333102413289131258514579164359093921998828568981409687526460589446883393925201729358615120035216539375054320629872292690744828209372900463577547341574047856674056324102296162521504686367889011198665194906010330820757689776686588950667066336343026209796703609292432066880421157799603492106897292873623157772950363545988481392704161199405607547968418059046234650222313451819262479161590210799766112501824556324309513662354280492577339997621361999510844513299776655481161136557535691192051765433599114046738298376052142917385160679512202146515385450355814053092441620603714502312713859488538709466280721796167424322323878185961828704153213640939841946626855066506382676251207242709511622495218621333974058252678250036878345431366463880001244763835006452325630950305888470720219951566090700993355863990635722063299701306711913087910672070381102510272244148294132966569550380168453279966873940970862763992627444579060819594044131823021002335375645633796350672199609393499619988842002020232051943944567672681668462680875414484491460201838822608288094913721129403104104551505940692064939225978960258241202724419338896512681290389853177246070455439661859411373016610125737066269821032875545770971910578546132247206534043669895551670931645359511227721766385537864073451046688591779324778507096569988829617874336717197023058436762888653600787591273680216218472002443848020499692470021148765330787973769685407448314652449432946577630575063368434579884571111763622135356108334718783473317402812287679403413877590988019360107709181473942519622213460567870992620146657648048569558582776608309665579228737474461150123300692903007156002820193888630755832163499206403980679932219784354569452518865885077571247070649894826564356899912813739001550483404136132977141485487669790731882930316427421974615788528645763102833690127370540175692734223848868060829062451348885456509837856151637892654313725811628068517217548235344784622488763224467882708382611382320003251000884557026798763412755120509577933062795987889432004323948924746354112463830377128033635229774024350234531921581073290499103259441984299840861400475618461809836167878970179481560221653612141123624333996768518684381719089790201055714992526472656632873475012506142190125094941554155451979118826898140609852407360642888655235201898647864518465768177821835840702834272679665571014506849074216840018801010162258207792513889925474435207803953278873340827208950101348355873110319024105958974768510755770152885596283264745663347377642172821713570462637833618047245063656535922960429295330420127422158489652311439640805218724641667761531771155324641633146132781986526546344717805895228418605877828976773054821894300761965566985286082302869130127166371451896022796656071139614548937187934108621005528231393145698014942115342752280476639879521619059633203312802792194914466394047397768783277707481730814967157663596908234156172224324730669679380224519118512522458541559891737311299665972435259631737725547517229970802839740549398786422464990644146859374029432271038371543261703687815253675577294668121079277774454900798096897243763104883122186128461432130842568041892575801478136083052626603756389852774579753919969021039826024102329540151661675161067948092685817504024570695737361887596555763766091955989667612811352795740379393349198866272621891079528224759095409911631129804686146115961100150002160346938336754955874720130074359089843256694578515521122004585481366939630585209454886359040665982976026050365630921620744105009180323794735406896684579914670187305392532672057278634471581126149282750761710918409247114411533812883542248254367930326669476371708964404979907314192053338260957974193330598057978761996967566015375446182226622245655221594005397475796461458552831971877051633890726538784527783512813129849620852409228978669601859806442678344715542673675662318621943160721442956670514983241884395520253363883490315048984575008855376887514979489233106824119780699903561118056485043241995534655567277451826432015377673813718707620243879427766921228823620233468126898267307996552048181343829413066717770552444218282863614257197071482643443169992378683069844153053330681885181501415614508995937245045891617916316077879188613551334100278150313152050105254400623557520381011524275797303767686160992994948600331421584968985650003660917443144560349521409392043582757190769691636711741722217830052247569725570307819956790501141097340641689325037408719908766468723143291766995247617188997818584032525020617729807357763012295181399214021831328831862834000017900970565060938710655323761544510782474998383660509108308362867372368879451517665645527084012066329446397972202160955004667906909952749336752193749289344344810597059492662652807083624414658412292291005783664877720042182243935814966392136734213346841126882344084060708546706481007827829475973249838032463591238565293351525883819417443421106349970320915564761760246994332415788605726249618698054803988111057882007168499952627266454067454770700491015191334168436922065455907238484856720882627687049151160898837807398405115353688312138509816500036185656018610011484246592675982208654273088710687879811624011667259792738410042582709723725675001924063680889142816394068837358112035135163124995849639538066326460863656358135881113219077338500763760324899616136737505139690430187627011840870921428978006091097228147426066357269523051074110750537990255044861460423258577855892450911692317809673946915377561986862915751471666080648493774537086562484013634150470969503340291993240355425019878278005676867532027421638335549136853215547796876471583947660637689428764815583194015704540224486619964095691045948016406361318031200199690218696917032251115570978804699155841677638253334489254898641392376236666876146043384063762730788548561150017470064721891875585275984860713767561657076808979463099752940911292557638568361798915457020922789137415087190372234771899880577725874998899850577098782568109928574457738655933336816528387320662215242142657692519117704537675639121163719740925480266174775417980497803381659566173448574890779991169146708374358528432028621204611229089940330452267408496057689025086241744181024950056231255810016952805743259909970033800429527224620056652994622579895924364237779560880999419922364356008847061085651387763109588696048418784926497048763142916330333305425366087792778629053994537863524559704502278128270764445879014303378865451700901965011271043785447999754821147920333611354162603937300239745170726211401166352751983184951757856060089076424447597928086860930501541211541153861874101537458120889613867862907163283382266173749798761833340627604144707356538325271640440843661615750476406718816568817779451053203252232827201863356725543429937323607186858369659717657163495353480026879725227082878987181820271034444603924775388369288904714640454265947783511604640266689604565711380447066617498734543197479227745289043691551598074606095076063762441288662964316698086358280672619196935229731139844439953508120823194209889989808382223094654827156406115137624440259960995088027458000074082467036124321047662040606663602836429610162932663619109671123898992014907761884287176557029591988340701673142584439193133075562579232965567741634566098869123297136557131910120556572964271012685373510899681810748173464311914378253037075199714289804200806394062121158923056489696873311484384902020414639320820077269945626309472641479466904455260365094553644625137218765342310379732773076770503247077480768847983778426728672627226265812832209060762164272800532188701626368949037657083189865989860003033938014372742502940497397545959990943150501097067200491071628065983646979735966896610025951374172757649170595555855399124697668782396984045664686162407211416427572438782757721134786590683424681357707248956817114903100900606459493124849144598829262168840161700328980764809456708670567844451212221734591727966686877311217536674107842218151253542913668793856371754157584252089575536418481439321193757936679651081415990972365051504044870825463467041554407425949896605088530102239391259633642764090032771907935360944458785553839590743868291468707371463178769940098928576106122879361437145517766835997531733457195883419693122519548708904664839272811682878670599825240305965421129721565374986754155220985535736630586133876953849275738150350797797732713879804819710461304743526560801729103740945747413498726948942983695794772637891129709635513669185110230108846062097210963271355282120217524122774853051514539373221131935108476544486785560055918662728539563708448474844225385399268925587570919239679055813409792943906583531241957447391260418575268652403771655217471428839849685397528611300575127256963564515469983847141374715515340714247655763463291581623382932696728960424390830644957323372089190550961683457118652307661555204697302942363335371906795761271187438334893181107111443863689193555163460723361075218898058535202883702856838233247782918959260673252286475900573207057898731916638899600880259086933353692889734474216917402539007573008142973176270104363326157520745420778890225443850027917047494868799306828310344838843755781954084011304374785065877521432549095777215400530946272313130000301690011564325881861344542057388253104889788758635826261557390028616932469132958665144814117134372907615364077677634937290059775256775548553327181639163361839092445342781345207098735565685434008181515393031006785374405931092562534163787313788379407123960981151197899415241602141098010274581383676865863873469484881585380920775139174192536975954283633056756758521587441763656817186658732859925382078210389396066155012170671156922062357604312189126393966965019176593648147085523736789761457532065967116387504061516253658180259401030205813870036918438434564632591850727410811060672408035280675909566505518366828484230660052293971388864199750970742975415073411487400312005281188862855929306405685673716187059443347588721626759290087872597247898180415307605337603428147717553493397617396356376144250736128129313830926568450897497459237918241223405042909160919536002178451453308909037295861636108915341387278281419353342196692428124915468667479543230830486536622036757648926585333717145046546937319319374490813341176608539860159426007429636687340261386774846047621637312260885871897189458576929208946433372078590695066939569230898983149450760210290129841593235128864071342885626104968669778602554527194025151845705850570658367638849639141180738676118548883649840441365634744188236835477998497836356453508028593925627486558300422847366771581596978152141046864601545531666331440058070614980648576754284739302671066039924210413616384438286862491366796035851967959790186479590879356835491824653785838055810819983870446539650488011324245719692776963886778496934547812835367857875092146151980556269350226148978234840103517103552473228446341456424027915123341442371884240018534886611606330343051906048944954947154047461871263698985671030407459172483669783608905710763333903978370624911571406311868358097330756353976562256930501780176153798889792512899704021386148798568843435945712779902781494821627916143315018287836949858858280650328727113269668111739037820999467527115008235271939773321447141164423366140707066979899702603758919590323249081918102759137666350733663236196111096270482506970136797954854497929176874092217477864407184806839878834948003316050612386244874253068790590052645236208506333087441020672900377273423799295167961403075061903241458696419061287935657258676671112627277244109627457654392880457569634839693386930914941777032861659035202004193959735755991707575543724541137920751100464635115897485422786343793309252402752649992341867882244524689152473706565310756412934699815112401378964136059159124883604357987045809942637748366813992865129851515017429409322108586730513064099726325714816284579123105246908514333744213645846719334162563057204271495521182580927857046381067518161511316560381897115383774455330868118203920059425344520361523050749459937293970526364844835058746964829392353413869061126785051216846330813522520294764522529342939884437553822359261284006494846905496157986299763707067965369007885028359571290313561004021134401616911369353322604570633529965087512882697180622007481918016124616933906022565342964065699709912167519718774893241924653515994267132264607412990989770893371073842928155585693652384031677290462154201534110637275338727299026235180550176494803468441955642943553505061086676006339090936835561984822458943181152916403273546005452687672129409027403868513522302390845380317445519533838836386571954299219148042161096010468011144241140949771999730962113643965635720567277356977368423840302743161912973564810560140886238870808568985192893715977366010017158525986681098443962463229477040544440844493536560485911330549668069741913468948916461765108240605720872636520070599030894068390221279160072431281919332983929931782929266922631937075411836898173442576265127633491277023402022459061013368415823059386146954720020555699775038888296552828390100327530151475011001790015035684945592960554738437274424277932474183379090908214060188149977532127937958574953431169321083239498854646439818366381993407845116764874255623946133904901010710716837985711027377958289833655229925903882895044979062202978341687195854495217535160126712387903661575354621650020778526996951665701605517651656126936871001591092626820592300724379070794012503833455982247423983124948012211686108803437219107032157178371301269155832160537803771637150178064626481757324563362839638717697592811952842140225940448985364972485479818736136260534795780962820464849649035945480292093078676602848563668027424246043319442399204433185023186764729705394774159892008231461339947911310157250452702312916044601999470281356310325057212404129377872652977489071893730185592441782219395230290989385001039172559311041142558196832281531784891173848576556513456587781432012327319199151420365384376113669099805000660666982990413253786183681904324442923781090721122333412288878389140458506142289771336293881747851750004288037156835694563313755147453782855816572739640268746128759692833478872532451131482588150198855840446908568859701653215087966841068276947453351260218768361307356356010805056418923341725234789377572301184950845897266097074679630814373119849558854737487318516167537714330308289131777414442605174619277403086605047530031788283286630871746916485838934250597334707860627844994743542061937528217372017072045924303488516983649824077779907113797142551081127631275418552873104111994475212421956597434484941671057601117326739212999763279147008416517132178285778399733239778589589980095861650127728970209224843059151960403166043693403913280590791885561712644693139837607721620302645855427826526909621422754135221568476244493778777071276792597864389757813907375824888057811970320710192250369117181672247851728161444240931750524548208658490553206695970759022388488541494142549532787910916251279467428729925335182851034532344375172290420474707167628167035307643879900761182145991353255603648607573774641737207242613468276390427580696137913904987011828932832755697825031197013147987500156761333262713792470831904078110407304277847550126749017655509625959483724724665425645736582941063581664041385624427956108420193600442919812535570722154660271348631159098519982176914741606113313088991476183701912116217106053482697563916972624757276045846400611215564294044373462575949201642633672093320793358867249778515885048543073525411930342210654923836599333457830226089033079336160412977176260820936588811334658027094522102408271097625113660187707603624036169528682035904027782441076571969012186785120249727172273598843641802154799997945644214795524318671882399418891934008856529888456850438959358703694376497529087652203234055831581636082206957128131330960492284480045210901073082935006830052677146080554830700533407460784745194400044762454570457922252339293506520694436477925842340319675451354012398093360470731543799258205736182554921745809382319697518112163381891285200195115657203161721136670013430967785708686006780369052816386919208409468296236671786197555031757621365308406833527924865216168297035985187571775008027698857182875182106434853807043785331894309560387159487791660717154727419643042415428658373113906593919710756485768676833943772551200983102340198267407146572206071846195516125602782878001705926785966676785385154966325356981148657376994432082180862252863514789233460056337058378229881915117392676597891889847103050924129288023785033712234647658122489671154816969981536766188115678332793977700768029956589121659354888887595654493575909585607646320594075690833306262692765916324618121454052372719971421192351821879445661953407332496818224243787669748699562171890708752222571665461295143906488736208613473322317973170029819669925483925380998570910163843522324362856071775968374967799332831710507087558977207932173346923297315539823472672505488798109778935698843044370738374814773754003658662596809457948718243108306389936277907839687867573836470924496189794257930645819334872004970653029965795899849459882224127392969254089071481691974210816125424489898754666468900344317240491579077091650427022052337413798392012721479430279748800009922478346212220327745742833041837651144647593466400081861672943225641499070589504605724291323011451280936072050459486039294587475294440350626927531846365040782112090533951449293412458771177017959904008340782973499718790841009319298818745431122834226466182538283871251944405619899670783267682422892375399494242761159784869089951765444572241317872770997840849842216164764871587037649713567095799861328665722465870330965519976594278742218907659935142321538215072316250709621269504646573599006657524646462608664887990568952082452300884450922295889248060016908578399847906239560946220818133208528802861146748867325036896650478697459956077940970615954862349540064550131647487524256231364316911266572128764663289983444796967144241187857497849929687195320343140278054499754197736013394380981758401526572429924883603349635318081320227978445789615873409063479059438227562470657908124892683301384028859197498173066942248695214381081695979493311968383275462883981551542461075276654885796031191606500425953827706995672167764247448857394828987185284240958900132304911317843327314831258837127905259229043451541446364066791507419033101846887987270445522300291407646273323397244633961103883599877310328883897630783813208564635589277799123440624797519046247917215789603432974917680276193935672911183912753635190187854843611728157743717373520523487282641927234168960605747202417921085955891900145229436466962156476095253762703733987720237669410726307198798176736894659247899742096735702274889114609187790253887148220925247330549947467299150186247015057862098516428361299436193933145747328640092011185051080824332885941585599956399183808779356041507794228710921014694752010485340543968846638446380430925031243080885128954567022504913386510176899819284351901773683349169297750772266533020004902345073773984145604925211093502363417154982224474575940792543317032611547024525672199635427411810773373329659184653074474137624474792675753796087555157491346487901026757534595858145434371945715519705362131689976851193927332255286473436489592600680514315945547758537643254778464025039788905940933836849287104111774971158384515121176282145677562789115392720780174346619728310965398703751190654832576912235767327771915410262897710761032351731821726801040045339442661904655012610901750463487752789620284280534182889994336416158617093982669284878439072794741254433567449589805979952118534665805637774142545039344197328539306724909632151775273385402873394701318003529216024081819085254487716415676063912492398108560316477972258920316327260085684744279901491892157283418836820219693054668907706830870804962273997006957980596525204807744678900179017106267856246755345812745128554894061070010270118695274250747307080187497976715832466399757836451612799516440450951702516715188895796698785804942737069011970960816187490867934653582068909621538647941359563496258099229319908781057564172022098752371553996163845784360481306235475588591473754135976090651894598626232044034442956847884217658884756382032321044920746845460862313913437633021913990690602418490375105113445411794177523921091143540040227574024549748720777136670872913797775996512710464535545288831298972729169689529358677863577635965003452797337691852585799534597960096447147447439404227360132876931131035918699408176448115562175206385010158412836787672724108431354230042109390142544317551602658309405511272019950367465266655445815632152379107225558000084991816865570848598214869816695058636768068903160343799782597684155577886597680806527256272952594784251742959088311437019240754533265252585013737816942368779292328404249624199171089906433846693706928662726197915187507549697814547844829342533235219617816357715485000618955290966109677664063104395692850944051242231477310691175166979994998049877993536724875066837238351538743257490034014182350884636247080147443840214292173063248035818641000356785301576565340703412334063665945081500474429228995524707810088519840428195627851522250708580723978145938034245883931259723070895628095542286230038537367451123943282886733516398182297058916966011979320442423516397109917503056187109139525636616919025608266422675884721573981139199857301684710782006069879303744085427460576336150653579322309001810057884112650135668034683958855559626331799428545782607938802952884376391985933447000562795705837130851567735365036094119110770263861245047974209129009972551631016789450788392556224556649781381572696436382209111972242842594339012770939984071389388959345913133112493771946336937723689244836653694836176246999295560568619014631832686689235999745867969021856307229233487403354623056706619527334740762480132204567174769651064184611528883333569128038384403249001207057256130525309343618743860807977015094697506681436592974973304880111191569606867183188138760363537712258936662284130637785609099566947660020010340975508458966607194533275691719185090211937864280363052032328609325196252795463049311510158652761517051468969420759816161523808059729862354442522858612036402098715390073676851497731898979138412000515380455772623962495650184578977990260207396501065010531583358283800268007649245605586376691470358703473318827993648462250133653922269146658810028540121664190856936344833797999192911838028469830617994858593911658591072672928617072650125345077881013934787985700505509305653425707543998990237042015226491033440446539479338360573592542622488550049469098895153425115673665720435724156490663628105145219624979951908195672867492624122212495530710568409602574727158548842699561105390021027228431050330227656755455771688558007822185708989374417362691110948364160115525409345475804402035137333334188730903718769624143812439205687183101506739115025492242281606266838153614850023753591567172610701789334180343269148857087162427580652385768250392310028892422503148313603208516317601579927327961811507318593582556153370239871883003177718448551555839494871464121450890968440647742640196400546380281893742002058994469496865168909186343004075554959693123119267808393320575190804517990161460197710259931170979489815202602324430672237865841749574863536577296086646433658499214721099808319279230646458393664995214527697277035694177619358679156006219535450091680342296054008943105579609339183178132341732388834339433317656249924566756671821782675300482540704315585130926994697801147673327091142884153038920291484338420867606853884013308899698977049687414170991761541681563739022053897966475808378548165310654674717760007210290670404178583832111205171422545986792153444545172475065424618177933930586377940933388873004070391522995162109402916675651878731984705564995702984252889634349764842794425257825550017767463646404167720434304634509632199736891315946687587068374026419734075510880778055047204587072961229597105745283958511113767631514999380496255512823668536112092667281062597027866315099091181708493518847141513868428816004696341480467736410263714846402384326897827157777808093590889350016174048896184535677613303798824342154406791997301440235754140810033729613193900796284343761993610521600489202361756393893341579337107827690499696206115599848093392269525264769474451009546870021408637673258543437450701054023637142815164653689549908653382284972964733597736632344630069858617855691910280975917743070860339506483697742409520081712050911717123043660454438479369142390871096491976264442784261513969573784066442236395901717421042430574009636169517093412919943932516085552227107030123022957621951721813647262840628381724853565200589071096745583709779670180039653144077349470728106847888023956635300882306390559392921774455368485058813771292224678432447860816032980979426473874392907317272638952512693036827862518763316749875536367442565609962793568534649145014120979361062791216790844191928666749060931195018029415015903590112973214141890399336722971191910353774598792317583094709914729941832178271897205518528193431140500493559352369678975165356849044028568557707858524579476060317255609314647300058637352124776809403907404649008846931424641693562630156892131517295374027256172534386792692508614547055290453298005951276279557905808103973696498824413968169193465787977531646332047388260023500369724147833934506030657151400165247507696199236720033834770376891291882829253563323606571096817012135588249266493079279008534268254347466678272483778330250155494114785605800967819522620684664434785179547692666509464687527125813886601279711450713157031986896788268762369709664089172554024135361558894908702279702914200949048763431472286762411242832780754995315832718983962522485805171827488425830144500958322015066380167970094179959932603884515002709735238221442686069850033997493129504301889200640474927028954071586508478986889726776931614046700582095806348699779740936443188610120860927211764239161287243533598298020838117746218074508994523598155766975476574518819465920632462528090943776485127258816180141812505402196289552230190011518881119378884559076999997438009029379336449818427361981960751509536344464913626762950176285016846124730569960996546527330372604008500287572381005363313183231362547666564935294815724372800094680148991851738834321964817024778591223069881230474697644841690478386937699426954192219565651690253976689112035234926958186137864354042110377935357210014232356006310578327771364281031385578926635914109434559156225958673542332996592302040716464667209801394375750550657743991291695344801501949870210610325232463806395549833344895943790158511295090412693578381662241061977637580632149817459742319288796618475059247196273963531438800168100374364868301347177628760174023189473010610509507945505282679864964326506188153635309421166060677083020529258813848011836729532967340476297908337296702187843027215527858777924156352717865281220839390179247819860060790315189472068485692179108883363206258702590012023469748061932341477460131400325815167842549592953060062309276841788923919173906806453570084584456033712898102280583887565091277419463847306380872561788312451598488622537677629066091894776980516319258185892809454860752264726615398633637767023116729370132997307280963616391162193850677555381601283631812951258111747031238306973535528771291418678929186662364453424227437068535928632945563060839194867995751938100302050336132400586821676445571448939534274877227163590600852087047224893319818460135914966195349946837872419464686630941629548104284516607764873838797774666526842250455113982131695777223191291629005194135573556620622739222794070357519417735684712229550367343866770331183460356711243277254193953768743909735378583556822714105613343926901260856237629536562267862414663401261399781671461547672562702935560917748758517514582521054301839934646832646618982317317096831414693531356111778149660160722927582317020780723474813639042990721598098278013972898134358938188171010582158517584384455867001118183471721228148100714712778622879086778476604114911504532312279702384104288267201382495806585094270792503515755076909877191536674055302403095305090009076885916705039895271926040686731781924586420029510335136193791510137745820670892077098120658022894590437146802842983269109076577516980825568724186657084577232176177362000766788921231595984380599625127823113404878942553766070724607059525174299832159978674048252526768194479992252691523018851503344810838506848563829731394050564215252354507339344797145437971672321465561811776199832195584415454991116641387709892786505264574403040717528896507922580598110857704904049632472440581130493069125166623271600186198223159847029710530473558319594365937479310253394509682914284900999140267436469721787768492647019103547183977746046720500009374957643631812732424703703516610252780965349509286607559468268313174027415567402407999955964616615322749767727321515211584642305750107638734696385671726699251313597604076187868892107769996570517415493389863178186991610945787826399908339641244311087851968809852109714460555431448338070077387346713481842856386828792124818400049754083684356100954857896786730156044785492730642029343145467801152449541142588645802755973402668431239314016620790747123960276376892502108652194419798298996380888790675453354293272282257203518118172656189796103199577032423134840862438720845634394108529191314035046342110830345607162888502786389771894491106840235624977419288361142122545158006640423835079055989661076994714800219780797463556891549039287527884110340428245912761700568261901706099471442348482453400721125991563101408432022633011165765733630205903396154935801600134137437735891084894542587682248915705381043898154986747467245627538776701510551518709995390257131956691003227261639584739697639838487449118806690715677092198501545137608572022684793719597752177506171468415238617780275223442105685793788740570381163842847136702153471440624683371954786862287934477123650950059982172334079107838232163049345361853365820059863288680578917686006046559199533645266347891811585233171608744213217219288838825440237890282034374619829797944746796893966872512857666056999151211969177585224644146980243175954421729790692452309985334069103509341559401458417653177114009183852126464243574919529516435242645725174514777465935022461076599086124981277019213074257062036445948610837584301171846595012357219641756628925314180178116290008122522227845320814722700312059356569931136605626267283918731728899185524030536696970417182879781826202937197310397581867730006491803759409085038341022948043120704390630872914896847913965316909280206277280416145828929515681916455017429404148575491900279601739238510048891449570083840136908325313789223684285675606424311598247642909841378544029746610534912504986899556588567542873206398272193825225202940069408808827997891492283159869586034532540169725968689911232321167439583433052873698548965417626138596092429124945717259093640396607520709239182002506019640911427252992556764928196956500379042962098890681769561395244273074626019441368958191779596491703389772912311015569228370635145317445497584231114423830083878861968188169069395694259498419816524200864504636913907659327742441171667253140439571683052137695773028784338409785007193968403516996764078847672427770387062052242100504407421491684542746256141497598161742220692041173913394172326093089059167955400650585265468728736683924102853695539092603614194729118573516676789291519395241667018198312211182830765150149433244442927102521991315793750641742265371754716786199903674299987042598716183353908547744136413588971698115732182465721482273153926935875253850038072162402364334204714318984194996573742596796012936790362508137785846694371079925588663461154709492040237343318050247943315745453814079740797566017605708010636483307611855970200057478379587861809848141136804774115768170050857871808001013557393577615606178721044848191240226335506299965449930244133007866234635613851345489715302416948679315576509285850565439392741468697772848673616653493663923319101230963167154049092961643671250139460771651920687355683128197683560768436962392496400331825316105792142436740288856708849854978053817835069731444509749975917087184636049953617632237409407954911031673005090378522599537432562374173049449292951499994713874893141440322169551291180755370829631729558876376969629160560311618147351824699808721808582779940749582169652975540602355377100706052039150549792427061555610052596214277606609248665898086510082213704133193639906445503313327947931958914789249808259137512352632500373700408386333452103219838151692794329392183309299939568576009108114513489313687722125126304244217861185491630653441460468439569680805828809816252718454474420268197916724363959852680631507748796823035585674601843321487640819547746013468264358004396395579809766184610672521254414631425619349267340993689324551478445361385658674406245897031023475624072837889634946502975788464853198301405026686248362837177986803990109617731365010422655345126683045525048068721215935846818205208689592304733368899846560861127141514809319926574826527030174742147543041827821743282471883096491583107068405218035661396575332305009497172640572750838587977304253925092017965869336142211779830715813251070523419433756791755368567923678595327659316262687851744182986768130282529426054840994060984232915143569630772882721254413879429784747384020844944756382645741064114408762540162508428645880146435955173128189075634347385953400580788917751682515146675743858389298970484961447086645431382845174859205183287657567556435485851031087728308123631367621979974957944627560287558918235195848410060435484576328309223487795553834341158379883286173699694411965549727448676281959637461603375560152790403933748153329960816511925879674921084492739619495988498391877295894005146314391061911633595592063436942986480378985629787782105182870810710048282753324908553975417116377937386790978252798056572798825860777024098335207208693609189436231256640748099674109840046721662512292885782651664764450340616817310374852566487911511423225529555765450808947986297929226636866100621025880511837618917552057660894078044523452338924282697393975678932328384468817546365129316953194781748298120673637388539200004207967507152022453563203658570993906801073782039128688586958300943517694595464401057689296018948196310242325659396987289388383176270952368236526380547103906097688152867265510151968230846013360451629951431816289785087358923650812105723591980435310829573387736240540331549937793641105217439189053263732944918460750780328612570656859816343312715075618306863800530328356276628949018936748889878067049114895003561011338995144565428956226965555720475040087343944191094360106879783512548313709733833903496121743140886941751682574432673423542958097205926578424966273612337105059483605914537927509379582570539894230457366355767946867426063084954065276327789177557291697874718552924805629407039871356683127047038090882913054145678433896300692302770739406535585475039181723183720100102474021782200140166877226161628821768593197164479733493271535041409754714748721155308563710426617724706547617255126897937069381226216903399793020500916669218861409986521834654085636981177002939622917229850261891747093873017742778693601993758585463800200410866357812896018976672010725811628918790871987315526092225502559833190062232988220540640398077363783757557686038798916168575548325465670491169519224407564804004271026745986425371406261521996769081584130167645015144380505554475576420105791487445606337099144004731063367463483566720349674826012882848166543867020539218855294313076812549131257564534348968780469780401940309686097715719713135471829312735483664017293948105107430825391237890703498860463450135657091319906113703507067277998154340817910694021289205411117485112957642443625227341879237031709411375649147719084441015519602807921151119635330269311720819004869962283158890354465397909245950927696938619034590564276341199205846735900859764594552532775039820725235810202530704452082086942653293633788240486403197906034298404621186824198905452289468992225226928883823705793829765587930827791257271264607330422347642142396510886968434487842135864618587270966324434839037997092716893836009879890800087086231254025151770380680754100362921246535064227673994859074697777677532931655325609056081966835330194471577448621295901651101733367216049041991219566752434834001465405624047672583094868682636946643047194526808587299101558665493386859449154155816995820669810394585412630107822728242324825511599590139235322150443416707707383084636219956298614252212597711391631291036320036413135104535487768129314603684765797734552952212845364018295782313370556711086411337497888750964526360062930949778775572909649171271025367674498867390304553436633533910224626363605965768877113544290787008893156977187005490748804191074677786877568424114034830784498540409942840480556703285782283222276501884457875756962240499934886880691888353162692526493301138054012628041995765910838738899826865216020733545279604387959290295545544584383127727885844645046588012098818310284141709734770911383707545418219600630435719467706279057382491780116503220091480356912972168717456925628642501770064872331580960828482709536616295446007937970005201130494511020400431372416674791814627773299179060293043529633896331403667432698839045184461796443398088074998852800338366701495256062902725200909897065446404387016301214788907665594927876842592648197906337944089396356449061472962823252540572668147039689309227728732455146795709776005647403516831903862041096846445311870271166625173981877846356805782157433407508941992581279135581290088867795728574950724544213492020814859338364286325105994445232253393467246986386062204479989000898407690185149051937988003282726232774183424291464735347045572277222076651340234138129983473729621642562066824119982690051192547797730148124234960837524531143409862109103453293913674846011512122607935505336032952876903005126126864891566259765344152534303435555820477592413169515708165154471902818038058893872461874122281751303202490724397453197537428386068346134548720637018720929628344324414495242823758843057166801369577106714184313817803787789333415998506485908853128879987476276806716061953646859612008065757349705466213492469543500199846421879815133623109175780072249014111963686814775006581721119885732563750576662643110947286464145045466146897371571204499494345532106670153139067136585174070030094068572712360842608526098687321299134120432777356413476722554265528264385734379352605148440633542357521080104304137287931345097548342554611546681559712812465177860287689292961773746277814439354361576071999569100650138027329733761150756705650555820942621771455191260467052085918591535693671453627726565945462841538319793224761765274098916549017335830357047307984106955245278886734783904523505761908770236338930032232327032926710739761300692679883632474505929750654921804080469885464635837706441410870575471731856768225321428286013465478337265084416318930439712678059871686266968346811126309616881863034860363858274234663647660843466527501868328543032276900202656030039023206541907201102351883415081048546993633978117621888694849852043089547354991036067658536944120205820614314303899352954635533662600043688769096566884215359101403151952852757980284558386902243763421632619928065233033206174190448109111763716897221918643836884683865772151551978339171785049265732777602077734571263496042563327803703004920263635951972624497698867490710433696069437214572700531393806297042299492917804538804365692689153330842582243768419525759319693368347683389589512463376703135881108403311420907739965373714368977847140253776482623714725287064433095990569269600611793015334931543922094728588065776632344287299334324275257873087191888050834562928679435652352139301888948139260819830710949657178458929278335553593079322999308493888164671160609215988838817719792579147809648467288961066119943250226614442883310530882220201560055838794751936832370320210023276850672483692110811375064603985625463802037168823130689846264719875900251042882929928446783186177559373285323766612249207530790249338970592557845850978382282968664618227284981456860657513979587803417962551335676376575056194236184394131302995741561332796334065628025081784070955744800008887188867354819279362849801600243791781445706522017100592616819894616484017094384121928299108014302392309579614824786524249901531956140651255119195229097317828881549350332391969876554571080914453601290680062043104097525033692575980486677264012901470770281180023447931192711442577500143606978297634442230905290822151455566579585277006496985677082773674340216111955010032081035961686474098077966161653487447099153169806876756484930077077129444658279288542587377549363373699953487499994125652699327443548392326654865925250701192544445029047586974629993643435983303061983980541418824614157123507803312962129821401603587683087838607134753170461427099678666538999335495498628191179886198853939038011272431748793064901602214666862582352961326659772952491802839052453415920779554009631130913928753879791365358606984812994838795853376977043079665547115984995847561029929629427761538050436564297875109055216120374260647858800967723671251717265393612026705929887727165670503316028766250750142545854414974259127040896342066237102742668365450968473316773418499673836522257016690787762851544183917158869411800258633852571423782155006431738138251861108324118688801239321425108691120784138439520284124300376956537355831101517497640355161432555324621781899314116029552619663318366407897778792876684237227680362004528983635278680934292606252408787594312049030251257891287443510701018070104792682240821945932430758472099732208192090101206391317217990789292697513413290236174993936246235344062229197929880930877003995463560154999214118525671418340644766504585169588419258387188815530042589918908825124247039929112679872546423804890141111278727997174741332260732121077796255077505455220292295001838793770571249195416514485113473704542591903893804390136850728072106920469595372178600433504735359041681251696267603206398800249977263601084732588958093447067220457212093142625590790141865094191675523961221311655660332856519505750558090608937320988559931333231028575989292587638886087403533904526421859766027197536187899982784365427923053626143213275935652052799183208227846354438537112808853900322019787394169005304845912001368297032113352213380293549804441213964253407008491626674497258491194758951555133816036010658204216641010227574604419207415303556235427787292408551837345027633873448711362720989731996966877569610361279015948181201866668379169677515761657511509918775156488340060920453912089370116206896771303122621664858584604295809212111677926447293404980969548276917503161545079928551514188081220399455870234647741159868915614976818024778993554053160445414490977014411542902126483025696315924237915902995011099527053678492385500128969199622416340328476186604619758108096797992270100876734486807232516936819415845616877703504635205811986662411753494608320741819179714845859960070770161444219048853052757692386875951142702963866542654313610372583438471672318538829579059654338078995558954211220460960899244346139183620503091442373464166871646544706796622895632532643077963359171125695029429500803352981459193307922098585290301500422671668324332108491344512933509233826448140997253547592477185545899879388604921287189704907063245902011473210077771770600698914780365028607599587051366124625671415971747105309794859947256342854629613047964157560800614012593374357810893625343677481253800072987856234273780869893986407574776308176023852737899758978625332348741636476741638260393155384794998929437667696582610124678723108332683341026260084144728525689574836940627617168876117436031192380701213397077529470487556902916071615305467655270666490128542997816891255895435995476501108034649472408675971532496290554222233078017694735405874329169502887540036369914155727944506473562499473049133628450883415621399238427083751591974243718064682955773003480053382919855664317497984292985387408387728678633234603538486188604593760571328677440571837228155334913216851874996061256368640966181512798508868353582510083118420460697487873988986620073076156356429413926770846149035635183045730053314439312611443930409848086695753569401847227030638238039228716766197327139840459051413497088228355008640040839366835885659295090001989157549024868304018685943766113651412806561500210971686178724675013360855012801695509322181862171751955721381026763539280497369621427455841793670529205042267327027739589829402908111872818067119351689062368211444504889042178471284681041201077439433387055308141144615183487583527214491065335864157751209520583209656690416773511611483675184737207651272064337645431221184350824931453575615344713977213052012547831288126299123641859911965310349156889948807009804686324846442700335031328768962400958697507490984164225957015595682570227947962433707518344294276476518107703848953880454968634262911668119200012377522517431394487440187735430361423658920476550255860115834124965584050554818301797385558885501621027783413893304335050005705274095343961147024927733400608928020269138634940186752431638785649256191635479494626893428927615425550580579235781804495644761899685241587631544825065831743992928715857599443815472296809735500340845477850339275864848319465755549523629401380733390913884991320626294683066258596166596269382863115089056928702586230310671839932471288489584428184364949410139730329265503676069468605024503355805756000977984385077476725965289893085154041738035482597123552900901016520389655228865361980481750732393544940382859705660997258655171773042898342323615120627096797344795769776673125278835056342351177056343428598473116699008982892940270948283835948024574229830298663874691461358216092058597393813411743228703503637723267969041138745052138977896923556695536845162906034749030030026911977320250796694190177727297855970780893105131355059616857206658963217559770227732517745985482387286133310844752533242523400932878651686197359016777972559264561842062358821192953474268054860482926676367308201429375100961083139213519735070568531666364003258098749007037381101844838864631214115346179348627225846317187311547316668319806940161158409238555923734498587938773352802115844229381442397226754684288227637383100883367739752101492256798883390376156114980904212889456338936246327658688875744976365712423016718369859423853649589398123004253304271067794983637622965901702022789398311835929250715107569436446959357467205993811865676690342971725264346460033214045078090275541054813447882782118964494135280158942709331095432896017607515489336671659895438039089395220834093067814655282333103069739011359202003899441622074547754915201421620063417086297929116755368812059400767497439609938855943491941656252525734884004526495374619647265493712780892357508381010679653134946473333999964576329431918365242821840363435344720265140629443620843294162497607122211128582627693526554926025155250386825738340374525860882048362542732604477458831363864739904164098279164722245083853286027236005591945037063497733886946691330881119644008795196682555878634000742766942758507795459885975764121520102933480891412358924283733058815509002525346110849548086187487531110056864700175757138127142623308155540889214197895843750841821375374406910544300657573030968338930629862935829972216936298669908892898560313452407764290894270181819049574118916092343956214244938443676710816470806961859173243085082573403506005816067238257535344642953890979153803503873150473600961757062950825910904197691999639359503235510413052752726930801287695161693215231152631786398091559446010786130213696815785902339438280342147962093819776796488509755632215469533502861287876733968885007394249878331147635649264124405899102425360335515167799581903636596505963822556670015126439501365589632799159437691805220671722949631853752622299449774016535901273573499000741628286729035542903937418243880190246793632285795135765547827470004742486072290389964417063456532847893425414764421773312650978164237196471128356981224161651087950199935928544148385958466936311724280026449426348536711686581894797582779390385115624355427439636569034645059891769568255816439703662883109387467571592908615014024697315909568885947861298532505072100036064837097613914610491220294713390681824747337790683677216991958048039525206481975968825509729438055111613813633848843816437417025011203626012354626144032398677674267963006575060328993363951830056305349242732618824747351860253933016181795477904718434166471714615786776211194223224568454919805381446634765360539079629704219519960525509852765717293000189141065707981134361823401118167160070705170265904536916234288497351230263525343096060513801697557429166161280223280516919690845043680379380291088258925702237686801893134768317638797811397015746619166245105057958242894258446958563717009941879437618785035381981053164379303377486778872128348470899111000835742611253996387020945789360538050293637594660590236615791354529580881309673890308378794824261519759001101087340479171164437317494686344868880571560107565119779216576748858881171879525653772366978860204537534375571220590032467306473457191487634430251005569675146009483639533579869063203175704627348374007671997859920975338043859101398845348673604346489576646161403351228460977411760416585489801183404082436005300327882337656400313852005089265536694523494961599121187861058282114246371008114933948815883883661809302819707715048942057792796070902906683263439608977613747084764324337741081301434387930931713249564147924554011324567296363605562223092977424056662318205106953636050509100971284787299981940378334469524764132447165753087617155359368778131980788069563973299229139903245775351988702249418217245229220851581236385063311217527591748131072837396886866178976165726631750289912485506818896037473020531118353777060775786404874202864428122659988591967357014418868036689600905380393661347270475552683008623037161113245895214655833539790729850232943039992127114762781107932071772641137570020275061174434566967152875369776777517675113836302483317352070564895488355262605346553948332442699738529546844024017782465584686906169948943774921333845168795024423484591016216385886788856077426829185836858145584765750209434545976014211652292955167686141417917018688274876700009493197698505032839622668016217735068307071715821802033189096196574802079058812363008776775976867216312143309201233238592152369522837477171768361015373357286443515735679611766665797595560694801585532029879868657554977405758102087371217940602293656963968786736654146851820463701349120630858551011895273622400975951588293396832675642023399629301145033666294354172341953568498485990772155887065682470110170429516815601392455095370492330510553025818387403535969260786268604082096319374517958435133106951632496928395883456443907154850139275414369055533609837733954576791883895210876462383611778448214029366284054506196450109996552251774898103490658678634996270692533185789485421764583831864112774611704161173763623495305702863302480028692913703046139284110385547673906477989758502008553885591112668127906174357160494280112926299192996411014609303300164164897585439593001522631531395257757149378014041714946684783431773314924512354346172318393188134087714456688061211551829218254281151399288675071429858502836809956666828673656344025118712866829217571864002957256865435028340015950134123561360662633295925771556331477887319190185983771867506634501848207083909481728596472242506279339039122873201527028383799886743507892431538884748564875084756498437558571924679435371158251437113642994395937762727765798525201350568681561427114674747545599857400488352683862625978447553503803045162378817265731573649746102434977488525800004708068879794784024035179683184231550007877810204237767754217600142608040617655157216030430130013163014594366765775996184664084017186511813641814687877039157794217866838172626082654464141398212315882528461680309270945940507868211516218522878405501198668166061689335605473476000013832785371307186393616402583741234014102063432888557174548508874302807063718992355364949753288765882428705789194029435341647495710890264539173600345012436881853251597822023536901421258357910680210866415372472259660922002428579627850281522541287923003651599544417865253454685839484483985911352890224361010100460654361421803655141803961713919227267092590546703246141640851385883350803874580428846298516799791501327643999697060936228193397045497233215837274729839310948672547703105447690024226737524284433824758480883655082133716361041801688259459478677068951380430915587718775061574599309746997614211613106147053907997949360593446136722427848497567256184095075700601279657730129170271616246291036477931923343774612825810469945693892034640581843292579317489474891393257252188762837879495078768026644328343862495697713038280906119439910048883860335505878831682361167858874835787462126843563296007703327689055989067489192492242064089476700554575656356288287890322891939758325092490888182738891278015335762410053917735352043075545577054797103772245882548205263960000556268160036054984556409520270658157266954033018192378592557766205934768158845342841940245000464933274629041633658475299743322732127244943464318845462112056140119403288550798221501353313913950980530060193737971008567331522575516330426963854565457812524771008303792449624038646312615879446583983184473227634468593723351106203712324634432284507359329410373495312983656964855852368640108021225469683341380143647500974384012153081190852593499252669320136692159058061775488556808412850173186006592744030230619568485824026239831081435632561464183315720837960198706667101839423104106699066447779990077023362274152600635941373744825738296029660694966813750791678058054925542714904735801316251080305940733132713448301848802154125165883530274367637476923744386163773008910771723501241280946538976121804476300919108336236923122625441091036280235486436494741448330004664918658860611767038902791467629140920462299256575300056243110370836339147996354380626625429742035141625303644801848405619566170616507692373329169712652488778099284612819997047380514597317699179878699312922710868863638286654060534402700387316770660541315256925391583598978735987570944728497464244995610975094704294086719554884889343782083856585944979052707738434819689348395241812707348332685848030019055449533524950308863819871692129564598039993652424905524616979482469513100012674053680003456202970413204633082554649871733642358100670000527018721400036226475849915099174175317227510608337115342947493130804136065057958899409919855386809057519105500974660624473169218517729241247251233188704837862336668613632226250868668815269767983772876474794057998987612688004193128785704103320716558215442862161687363186671881196960116325068260674345076129146228346543211870270226215693423078290732463241662888809115781663903823654490813177943134168397748711412736467607875563333122855367085561224649867376946712292645535229956127738092039400523102010840758894730625773078706021230156923057104608728706459900847775309541495494894456807455307633924332059103250664976975655333101318896712623809641116841301314772418420536431761938182584326253116337975051202681530657841756007774649315796458625212090068937008120013240851064710122193095886548328290803252792711464243719571713403958859900378510847342455778304198329539371151205768831123014874623505474453823047965974349313130621839841371190865652913562532736397800633876626028330564116203197804585525466268764126285402883754785367592770871271872136044649856981368984225591737260648606172593751337000653699708224855403349525659385021587852701344141636870742943575689172438307204522016769433441473907097716902709131895903937166075565987692310342406534862269096234576968357145223115019150201624458041226851588953059209330539060626439965690471890159980801091726120132625591632135211284521939033996314264665226689335903850936106674966546753338753978112059213293854875058709058648329359440798908073179660997546505441107599690697658833075090964174833828251541835682930315980583550269672541672831708097010992926650183787451516987556380502657582843464047033796455297444937844135411509805752954929800325030565076089622678516496843463948109105944325145785964252186322439275221464496540935030551849062463526159719158287163595842086377681745364644769234577307883012838797717256121364420034890624569750098958397231356257830638321316181455205137432665145726806423228217604963069096021518824575291365131064592107795637086906134787241804886245426533434227021710801063886992510536392187503017763493283571801419047690919228331861472885511213951649269128657318110963576446134336327245634129779157234610239338958940672924960622116331323105287100211886671282110791297886881116330353619359561957473998909351601412407313964905562965898040896710799786063137287441160086838527474586521591981550801596028812651013342987892237605258739899775559191673297811153041451502547648748351144320756488634243714996837265251032921674327308595488942809526334925225500053116703206050891869613913209415367523525137441196076877252416459370860634574335271517261432369690287312252892574111234259000659402012587300015322172379202285971290262582161243480382670248272671423499638959042742806451397056135093296372640505712189078997279131518001787317187448741687620966350933848654929354815728365063683585242713478091712368875391256870251441126670331994748104290191612528476800133886446900083134096711333556838502366596332499862973484515604422966049383392458121929922659361694904026572095003767410437054984116567864031599887271587982619392923063328916374715078405979647502217887782436753588556145944096340806003375846055165211381335259695125630301135576306158541791757264427957993812265603762867848558646339667444310821953228501379621793790043816675157704922098677259102892102500640128949770692841582416869446440151725937551564410231731156562954809725615819480874080292649773834470152723381909720642117853674567541636069585865023587461137915975313822157358515054718084510812222745457777942486618195936086390657941841921185955285673211734041089832763465974828312091258315779230592529430678473374753441576153466599101893351258883276743231995887196500727750211021099233015348242906732828383779896125245389103498690700662850660166364703375538371797559551319404628114085008063320333273961360633335084559194811873977989466823829221026240281723311836708547250918518507011662266093521232543821607709638763177448423643997729929290856051852595598923076269260918909968325824098293640938650955422378757615728462513608820491328347590203973625791066590017894359023904105127539016430047408503882341313465009493830859637138898472247942798765941967297824138644656106260435006524876986802134287694601554428455106634061346495394571819052292319531033474397693722195886816259444417522672261824624512666978371221198012650192469446822696553835818969334457617147393462203822244754491967858286272307336775364222132775079845623742254256832989507471261465499148388071531854255227031350585249538475743361553574111544339575175335780329583841165108328297515733408558201787979099089374120571193471807636613712169673540335142782790712676782390079073543330819109612763227505454606313186263707190595850014468365847197460145257806708389709899405524287806166827404257373644528808838447796210434501431331118514728519039246985677090533242340440051313103882430728562252449545244422360667160131776852067430341694102168495263574334750788420158020269386186264804704291379684548512308485627657433601329101160730057131449201835547187392395123800793265895861910313836937368784680851870054369720097446272302271236251240165323184948082771654728475879100115814800022761003816643691869860949486801034055735288958596224608049978180945519023572786303347295547186421252679608701888793969631151012301958104837895460537259518331436151056021347838399785495233017750508060950506077920646570666957532079247625757664667287991957521105344790116405998140538895640235098254315570907331816095074680357932223506456020920483158298280249565030003162231025593904258698070385120085553175735118245945714416628525838061802647648784072431374021434111389736285523829932808501374032089972626923761408543937648369317792395604526923220544877334626788075246744192913578146383255510758601450133085939564749481285392558839396301710289183095571181339479771256511701386223284319751273238137244587219743892338891703437377185092177648713786448112228366352480829068232448455088793074003665569219342467905593160250916208787964538191637511435710402054427009261337140602650805078612126118675679959381617331399560246074441825467982551913992884180315489743072959060406133387530254979990416781208643354689420757422777842700152571599327098517431828236322187318360746970451268836692629579980414888926534768382785099808145916915185111300175425006496391139726961851950818648956328633243775337776155264965481008949832993602084809776014208955123970155228573609430046204841712651761345682179599164240137698208899776867330204525578392696368958998001087402117560458543824177930732659378471558835009168182322750025812696316830518329264645832116442760342059973533632711922279578098745758197331164007828867655408841513865609901401915875587779723181527036014165214208618674895410183395007442864818708778040893372706095124784686307929853567549893205363929796499042198154310899656062553837114433295837118109179097222776136171194205627285455253571873627567822260847552047997949418837731069431912760826359201845821410669392258679480918539813064978301907970642741140697328645082297597508509182798933015664349786131072605156491956914927481319899784823523389891131870374535242728630082731033643116074134960312927996282378758755793663534968087796661786207952519134311817014699961275245850991224206190134195112889977097107685865099558248453778778877756483797020559622839656084387902918075039944947328025796076783316404218670944638516302696129002694985538744315596860500680985267722511444327227926925416964965952335153183374904935141059950762756884330478845629453031083535475649474021992038479169315204115274267929655514144437492929327425954070634649369188472177099541103385129823649668728540597321862400967054598233038339944458733499123587816319904854552825584409439487755804251835797143682204867278899750790013937736817025472925678819682893611922604624166594711156740168372174139861404947094841267420687183275056647382867805700304877694276013598281698021313498074554769441170993816894325766190667614696963117157663491724386407776891741836684024596041355495729109734388285010701530961581931490058218876001897382649356848379391227291437905224653139406596211345002596393374554074875965949419395263070736368327875408137638256750524850833898877532660346454991210744581976980156980542784475376919224337962341826935328628436889702997432276689950901709317919243306397854244064467731096191872768844429640596348979900896654316845808847587760745384694848712707676877658145989880359502903560825121017092302423020715091068279791153401369573951527876258653784286656513391157639310472728010341499718346849619833175579943210327674773415357805696690078254328154918633610690395293764733189660082048863916166644304637663994054195218294488124073046880338200362988223505255397603405241861247271001511249679786643257798361149867687072752722435473381325576869827647024992964905727853286491163894894755252325466650528312625338674071651402159483963143679765023935674945925846904627727559513648616516722590218814587114427789688836097761999014866286267751060114464965628293528302565300210945153454877347318694763748120321977880697379670957251875982004380824785722378031220894054187497111273761056651589911147642733516760737779219710528136922937840630863871418342057699724351540888285448132001474036776674323289462023040588099909638665888976429877302686062946586994232246029522306775672351554811812523159131659871474554480407439900983635039105517896289894588124670537353068996589621510193097418783035263032953887999729191531881140180462896480805279400971118920484014733678466224511363767844412777689186502512628225677279401934381079315200797594083878485317057144509348301104133236302378717828167765796208977713147726676868389606188078024742611454888677657456684752098283537880567370161142158125848548976472578428295244988261814021264561446074736044142125644594912324868347343060011696480091619103071902013369554924714135241041284983947270231564393836272879834381054579980709787894290122926429606455261774325020764331135614769501006253302426603270869810773048353384761958678409121083208388602552747617364778640678732510163895856061867686338983263887763235131897450444080309048739281967139037951291078753415082702331804091163530859253076574976691888357758580793613977648615545105387910071387032415717611135058977112214345140374298529059807520579973630763837469390780169341878823323438260171425837153224242608360926125433909050081977725388864739339200939098549970060131137785819335120974851118263267019315129389014490361512036760824915038453237782707286987413230219441755755618081404840492882559038144657791105383444136935325073817006603210551270097384904172523305844815828580163516999359881341961123665779730466039038643169319555619243849790231458152945654981967513928711729436956945818427384096540480054224456959055577823792387993591023973310520516487716315013389930017256158436884886147224425572653325187988084858744962981955913876634075861316022195288122460739915802386765927165984244386620271146365379147873401785450595661688936029703294949436198637748351950765215606707118133994755563021344587248028365953710266023095510883491126787259753796703267228001927261400678218526317116658108193318477371495916293610517625965392380094645879372404995776837679941980033815436984795697736378425802459787720228947975716057196386434617645124549842074923634635984925191411532177318252957798765854367502476852045943205070690987652748334304030766756979709115054699395417802713467440649481251930241775965857822844825805207828692531880682490356506331410643978114998790637212368954066630031481588664695360086306776553413051210068473548222035697336809943661467036532929880846189247571006832698501584732108116123666788347025133075387966210798136481074392005703135420237629724674101711292496817984716292095453842395995501804311684416404755137337770664549222025592333167456719675676922999159897060424741212412817523390174716317515677748328890729698835587430790766530088574667270881206592761294229194180947325843031105613012523858781756824888272302529949170712094788743649175784687329986986909958191720644520279351098389952472956749628097951532799717008354344262506830485011757048724038675659329932390817078250396050188278825281129715335032076811129637433723066370619301677968079289453071654458329798284752261179805352893615053245852923015238868947616612682076596106401808246103243789185479594235336343839910687582516726270084106444555513188117495470853388309854438402407083227508598220237631381309923022649808143407272607308031917357727795627930172943427447304871697773496898644991921444786531636884206634444781419137234942314192676983777359642453445619053387611667495154929579025498082238214358007362757418181404643385812056092936509300842124581652586730106162779143697664587637891101225264296402978614429495517098538013610756870937466092419355921938588138542279914747543010880166760720155588656360716233397470633930252141161942822296655537135015053147747849419372299650128522002729315579143093267234780500517377162486326965583725494982831414807193707766451080342175120137546661952757035141746004272668436276027084255396207497196580992815492801600663065447547080110213175272401317343069458805636068680813814694103802109933794390550223961182168819421635756177504688676540391247224147758732082379443749892777839612592962577855373063696734842970944268092994096536855709023743453055659456678021415773232953014895686656782349582165916186367513983084504382907942201407472403648209840845900908622743232826673391555505429757590304371738250405432210102243940178653148361577676462873221914267425231994864968067006836472145995552200558913159545031406139193031659075140870046782091513257585234555802646488291244723267542566576361687673892375871341425103158194505035840340961025791055755580796996013481001262749951736199476913635838930983724185901622593525624589354116702159894339117490755694914409250964781811687773608639520198306950403550109099934650945425619367874498136053604723136173053435217846286114872814508171319578403163754225083811704894066091043577850285063975838387038153591663347855584146934012490965902732838291409518283003963494212830942026801060870264306695590843425154872620527465392047368331638409680855776470555067105840935733684688757152134911223335961204694389218635242108703335797300500998773347950398019465481346320638425145077041062348165246197255940552289656080688398460087520335160365450453295416293537074525023959644921211970568208664269872746381878652810006322479050551510757319259108622788995127920311637289950848559307215089989336140141608288936328178033026590257663004592263445526893807978423766933165116979655386170099582015781631048381157759006261996984237342465959195153281901107164252147273371621337629076784596742706555167171780448242572488743250224401541082179548533132475478927432736733813623325245042924436050803614411928824656590323214663701177799308075609305380553340843326014218041583791428724729533802959952822397297769615178013540604378841652960635188350482483528654458450296492991324537875895962898633618924241683059897864893355896400108371442598297359303658127868785126302888200566756483209626794735866488227130719873855521681482094392976586356062688938132057329079236979275750359293432510414192992422276608560723578538219610395587099893612474644647473465224620621608669297216853271685910585403516131597749898500662905332783899663915111899329127128236197200318370222182019908614256245723551168357943050145252497732748491863775245441961687737770146933651706471050809531855593538490882929099814234560838677604597766482495566996126301887663594433950259260390657676278305114986808494090218183082551138064477468444718703203644375537805630849870003345851385166856746689292444412491474584044652100722504374693553196998238478020527458362151530482239746959804236079225288900439484986026872973871796786996088365886178820180729337461871195993634836424754370277266442024818218042714351845364136490149053358150364695921538368939019467542367361910568393561441312707313404104909782484585928824037373871194592433604990620517810920765380122291027789975833924278444217729526362938737625920631600158047767390080491747482959652231536199442259913633399986195852356458592637296164925251593454942930755506845764351718897538599512810021419172432336943507591047457254190836759449613999924724150163925034418078671034492870685842378047696928220226988261320087974109215367108550304803494240382643764367331696120098829063164484456482595273344211612806525931966254006303577828434932755327120685682141488836221830647287580026088700141012240143679191327278331776612147811887428704653078242457401253709545770389226609905202048716082677261309580452095790679337184915085906956315592966848793749044681145043280839644314367238900827761104417987806045159706538208185888465214041211458137486892405600274686337828245134217573437507378969510651770193074114702257462372039696123243410879051511922994244562543605628363040506792266320794950170683869981907044254368611590560641893905687025223340677856482558168749120911776145870405336646268458430389611249621175884850344284266818416952109970160342214169763498698747377639097026637242934399887245547331101048308908444268580789706986837054678343022047081276760023745670773044979271704112054231691223657790401831982780919816221023372592664836389898524333675059704585770630451920670744910733399290788837553662240223199735632276598321227962184496324539961226059851317235639144748227644073292190925564471650394133791354269573000414628330554259742042433501552997542040016534360338602401978092167023460062646336038451089289022207233317822993321977789032920532215756667829779462286800443411233580919694887849787995718784600543727039621688185388382580082139533204110369904440807818093010230165181274441324732492729666271552365739566604970052989671118146265198981358229413129485420302091450057454452268429552724498439077566831086528356944592949081159045804321248939623110732962771501411756180176952211742294335625660966216506101761939760438247282331836215259374899606560315364891992161379693061549556981681558000349282680519473951981496410892942506422558249532537528188402242820319363416100075125263517609019655751974400580729690058701560054761717343058119211293046356729147837800078636236895771343123279009754509789631941854164439501171907438021371035964778265134217194708616421995154174673305406854382108557438410834925156701803554529393538563357393760429766370714025556019976194207000883203167398519274375347974110985549237636766184281846987394102887500605301857703956108384883570725294095692553501997020228026010963789898397215532410908021840636040850944922036880566454882674110010520364758190525017851982348885386306915484998856133182526588527160740685377029295577573700507643855771436655204876095033078341758420511894221161649545566472287164453451151253663423090475783434705752831711207118767350301939596399122318222964134395448956293342896957408964364898816482664436061032413818903790289580795042713030910689086916742753546578195920305182451881820740616202573734779693412389678586563802193901695625869396738999971226562060049595560911980255561055810505931935549664253404363748725559061881045582689888216442291440657508174246256440111059721334693489333908300977797520652927591001891041951901205075448276026347670321506693901527868494162345788452983550332059419578572942514160060014591343905531288725581259247916559079844753363161503021242014946990334439242986487876469920905578248660952453431003955927147473406315089509819696650099554243536956146943628219088288503374149766870426998227360254969681236881642263844775753777755992559918835696906805697469568383484715724010626216337481648197542740003881530938560073010595598345117071230274368429483271825882805232346164223802645577372930291854934585275319299042104952854121192274846310921279133822633343021825167725560269500643432792122638368230773176243763501086508174562058997935927762547480637934719019601780608690135717107406947118945422008010595914050340815503651529977557477462793574550485249063438963465280515127503902961426770914563498186856796629305748988018959054086098980874730073661946922230171481483794091128369229541098763413191781611359199008800772529820260599671013404216051864390910714003419249601913937470412791936306281882708007399692890196907356946874580291751547108818125195174291739337700139458488833675099292546408940568771831552062417807508833310707597214168556011350330607617343863565239825250219740609577443707562865578777341478682312499592677306909472706021749110362745446192879758295228672156785923394105917307854112103722813611136939294874786161130669497774464863861740753011667528581306098477550842505375224024811581103512948471695180903774589404716734078268963804862343131840268729737781996180851794380786349291243957203044215295804862525179870537033802399408624267400091249883246426355088418115544373734245289922932515715462317347475431558825904750840383685655669954511010941979225748787072507271682480678326295996862484357476438407917881720494351258356548424650949029765846760609731391864106889179010996947241806126499587337918268352977996380649295898781533592260587719163074815845751777864776221697928200905380266542451519209448173441335642583427477768110400533275845232983527934110205897025837727193060146374117064014395263494660948786839794233976622448490555416483417974543477519133956879834581382485526617559981771484139874407959520556138444231255352598684151029680883068566189386690287201273640839315774083386064956230415808122476826125784517546816480208559205965263439391335562413932223932259253563336908239590299554953707198121331009088387824518168440157586680141701242007267809847109756111164092207879034313593275450120710983327547037815301679361915418025704756567194830311633020473456157320278977193865547974787293543460257491629919218639925406277946723701653809332209245693851297790406256043808332929043184087867367580600067711650263077486133695356011093862905134298664348453483533346016058042717195895471456510312741522631797422421666794663869386233116026909582448039213509665508428920960937548751365794924237922609209120656243330007968160659121684839164761967777410138740046557650400219703764302222390834871427418876438503621906042287696871961234775697907753202918407859713482891580673940633485644879490417763980709606249402543710022424886531753353456432690093624137012509801461922618057316411362725693516281569882789981935400762023569203296254163161570618438822700800045180479349857123165542883339200749209198648059686739074969763735210089343764345519161040676139813559975174039190453443571391663245516799939635604825667202520191943174562893000636893187698872711845755598973476128775798057602329795607502242567765843747758585566935586041083544380516366554100210875917722417449548818810680924129653444727076202374819159516058340626726268487811024809539188208359296718543747632772593152870183502963910509539373827631485635751073471293102668774824269121948116846925696087409349372897085558918280975117613688687839095883814172775542997876579673683233226703074737600215620663342699628459366455405993856036812606731732101008138121086595332082376135209809976428734442694900668448124055480212843341723451237540345193618148379065958576507708037408708543096878374850509749449921354839834094054745153674951471563423344297668536544009788284216071958380422752893750416998873783921537085996699737310709777542114402305041917297249732773863371797678984728460013142151091791761579210372233250557285303716254930405633575622246608588054806957102491870902368025612364217982378266202736290599039707796606303890057496081112375425454101073479125422128941258938519092764691182188999618836450308878090322329190848298360792586076318728725447177208447539120388134267552656084140336744992022664544643357189362430431226364214126274966151644569375081184590059291355809508706490818961962733995072068935575733303751725125997948945996729492024096936205331963143600540743878947806283664286102672209336739168269477630158967228873975124908748123826206137547408826935261259257557961413888575459150864048168610036143464666255861841179517676150666847696768546371858994159964611316097916613934343293405428319536470973857535677401404944052153692885515963926785507634038984416693720869343823543599708409672338398848236294353399906872717180065406856806884460122204559432153177463684054022326752920408110564600610525261756750083453391155453751661832491638655752672588075843636921599790908066816663572262255335895039306464099640183918997835653118738317005835575826096007968455202556100013765240834423117511052000637235716436558713565259984406295522246982789956013501422712344291716318370270698158273105812623288415092782659800897375168544797517178174294626902267478676187949986434930480376096569867754641433014778139593344973521673442687336040063199190691336786423806663933630536074462983541987839131176531418481903178347589273157789313757987069330434477512411744483260163990953749829820789420230593805013882946061993117427122701299926843906430994472201953591052256279414279467351121262233985318264693276390033183711033717011306673241567495514895143540093679144091239789858098378197443619658614450346688569258993439375299334249913821842799067173274774547585143788934268485910982995338025122818062982522979161936727670286992175982586747219508250095654517086886406340767343892737441408633376724506043085492119868272815421893248703910712492538862305570766158619470921104593308449110809610885234453686436325379750654998637907012808960432904260857147442067833905216191430457628673489456996276549883243294354904054642688871377353495417938188150898255596388059665861901631523324380772099193480950243756212830244646757941368519724614785925361777711267398571252819925044640958783430136549542335291648137285738496632419469259288775969353953797349623470906303536361023424214894555948502380261718286140109317757529565278710521096576964289744585538609264851637603954661682051801542705908894734290602177648932410605418118670947448391050511281523643661372146472470100485850543517208083559988471030797950248745904662839048929772309298105222258501748062498898664703719450458460109979103470113095898017524758591607287473348840889205086145419879676915667867749489507398399996932928123344891362834952994124397936198910823912771459816025999520462957876032423865308366385079480114895506545232452200502990920734531047325765224424652348622451150792318795545642422462850765139317273956225333688454551747359234897462984026097438363941181253595123472131218215284738995781111151919475283820857292812502223454525039502193653591335060199459854864681176377929329238895829891650145852649544361810041170439423593695147404044398724739544810820385753366250472458362728527550037822311698945992648235805900200820284866700360697936697793508348279403564068607294933938833007113745357654280106200493553625344986663424426845014249394981192842714308248643047088472300308916639257398316784681738492931908583284896231525046279723032524848412076969784406270831026045744903037283073447670254490323268973692898524454482885371148054971084958054490156040617210865086939854588515501110989303520208988341584684946487042816943946431640209646096157364435826321132346067498450984597815696272121921932899444570149470424741130400083690062766027327183290578021140819498477966485860397820615978137533462410302386650492484882540996385994194846060441267315623671911597356294851556662468195567708738674131032347129487244062688286579986802700182906517287961873148026489935149295171409994790210825067223305126275534344783097375144503132861148826729434859492608619157844283459553709342485192143593574121845468995477716517480562078366924068144152680735981133656835782715573448011339098308504166429129135920325711923752347024138404986773586741735432163321479170804050224614559188865966164052678983955729977530057551540946615244686578903974204959141571412121207722158042218133232439797587258143002847372775815499247293157963873895823147256147057856701662931132021102463951398902465564391802111382674083247557562731884059083599182441099343810411905658090667825842888205185702264429573317160476607316340262794598946939832659948647444849719263919054147287278969305768925995162871554273514289610900036666604460142200950294622768511629665588618571780106643958794076607758673118726452433098585966953346087668192270921115480659375114546294624064738550287604378074523058048825261313302263362903419737280319080225182192132199468846356110821201618296754787531588360421668139059134250504947899924834533497016206344002844515532395629224490566179647618728803730744705480811442793584104917977561357590381259567750100430048397531148993825420551150396072429312666471281102137209659729016806882297072851039316001157152986819533572344972833299365945490750689710048238588289059046675957908647424726684634618205128572947045819065803999299440502873583919109731031802876272854437706513679038892937539340958013607138643236565233710344418992014966619510929373623656150590330331376170123927735481118712064145767887102417541845229624080793043201006576079046551339344732628527611642849458544433681276542876560199176085624576331909430486882559807978765465828879598654423583621735907298690893094820938850703025306833878115475078792327982355967754422067977334190924540957773684284527161234685735906974119233285728656522389981161963171577331995798841845991041621453285852164422857132698307214881482178392756277224049295400620673897284053080287840573622587733274503832194902159300406578226081389916342898015342371979420238437171770095835306693507132738370271662641934700304084271718144842710044803543130398200633252401738036398663622552077307756813667208267692265586930452409836895764868130948423744091339325071045935998115698415578639266472851717275799919048445741062564267767639952252050842669991370197075741181372912392432420010837657216729235223845814418761920530214196033209331639934506445841006720995028850483960482070317187727434472950103008094684639400608414146646321874655006547997478525299695006159972968571870679219190848593349346907407275209735409233857483916153902071877880569812362372801119232416393905254553991189190743897756467099217649840994195240252605262075100741222055510261932121395705413058368927617060564466591522165648128096751026500001697311580862703455836800863935267917708834061801097231178990673384160843994810662543113444909102531109184366443112585609925042259662827170106001941861878456153608452395714253827331146134775502500389502812707256947837003517258932590875663169101645436240467268243098235330228024926422161583303793300371570108937689207474675395872810524221023741987793807824957487476998274442855048384031448363734378937535592206721491781859410731427794760798481997858941428732621346243478956678102260198894259480319781327563441509632566194412267847307493441791947892432441343688342824587265547767807136487018040623118985096213693760999538519406583410599183749304612762470557696234670222505686069214850557412365830775811010321782540834104193694661739845224955277874409395040810083230472134040892062928756735575252205935336297383283624386003468639484841291753477190697917435215193518259975036029217660798171950558991038035619821469758578432785045100797787519126754375054075192995540711498033086408579498267686154615874820551670268364109495359611772015221292386991955647135519147946210625027415639255444531986718574476275731814891963419555129767850351306125848778333480885062888981595177431438102683870841384559730083567583235088400715083317940844270355376637260217342175262345748951236188433414481801519185510200725953880601110342181592009141676256353662170994688936161791842294168150046464401596934531983896638018533882542985173502986974053758403520521747638589999503543109575201678407903281888510865657315808275172800164481184270017247333717319983175288994846842249603443649874184036633667001868038513238087103078017075634251746338222966688085283666373272666508219068278076530279503527816477114605602255069698812972558304220465354924802333014622090509269687159774188842765050642604847634679979502797385252194699590124882476580977756698042009398385651797478914918728720224340007100380045392533477249395254815298356661444111887099023520990612979641203961083999785147370161129840599456300109438005051477644681368557741655499169954235379079448415726554204936189413140283129591203727078767819951241878355529692239807255224433886630641790902268722863482394579651110161541328480433787660565906479007092698999560370851696539459710310388122700839935350641974954163186066945437592489808333677355824542776111906893848020673195466177292360142810142446644753457487556183205090936529308246736957466839977205564264887097684180246855280447684657248430976328524991843728509352673266117629288685855903657627897294052340261228883236588990477152156657690800715481742109942779984558290175735840537427591255578676605210905555501290700158037140617462500938256277031706259867157403015446161962580353906633020467716880019415950494258452281452254781937420208397609922150602958484557131404919643220431710034162177107171904069903909004147340724763833532509089581312248465932699069214054017644060707484868650443102770461367421916044450371342074928003674762742068015595281559154305230483161253942170670499856307607598896501079337710731141747796015878352129859595532761684590601593276441653666764962003134056161919566316810435608586502998797525605313514637730196539801317885376375207755975280950359214454851798490657526536819463770664565428985029142406574214756138218974580234354571128998976569778753571339898694504195786465486127156182257939526076461788093042826777098814210267567288693511068422603935372024311158698996034194043256895949578852191008303916789401108299898555144087773503661753231067249983470699956603239984615062947964762244787448882412261003796455747201283363730371161385200677971026208151222155798848360523689020154057954091618966616946303147823291519977416125715261063751543461522820668300830922673193376902241771940359192097332898279478077293706518038096890691976166097244139108289771639627711130856561804372425434850345870348570927581142014109948631170134203652125678038590515212235380378008482342512828816867236700725394901656821944088905195403207559038507525143674760796966092762329716848522915217437989932777004966376697101855506840313607671841930114138931957705371640331179401691199214872894030541103715060459774163192842890515602086319960142940716267814576668224988345228161305546866361464889940131188412049526569686688545454219539476155516943505065918050421920426207396494362861358290223608885282566685193454863829312965373951119200363616609260948535848532404306411131112890083636220329139838073777452204927007991365440970463383966366698510165496307964758141355742665632918776638380755745136953003207917261197343675556688105218733700660624978797810992247992716646679590696760390383197568313148858438700629973466753192293525610400718095682328639323091281865979319766799955494395621618569774250957256812658253567798117872901312375939830761896540612327654144628002897968541209184980151231751604211535100496325454300974078793916067498456163768508679209689763653902963328208814991223109578771807984257791102882664365403377511391865742163993171310519556904574658984521753019633310679121542320170362468267613211358944481846308119894123031808297481746829044236000424143889395343063365421388666229405963212160859047257063864185556918526448744621413177327381983795972889964896281222400727632642201456820987839659254467301977223302887443704821500545595283385321589494077070809071269776497083720180894995671866523071926994638473116043424639687079585233691461410330837689224624824419948071232165718771080453667503652355716641514633675839038102021542052553738350241154521162580803628539853799543722511669521099138578202547633470211719349883913341576454548878229630394433088432554555935610979778335308132085020947485717292952301032272159811655799794051762914360049738083319229292739656567297980407816427581301704313364843201891689233962607715963144740386094443054584151354016996456425168343649696995573935879938747316433406261493254840615943895224774658469109829171202206296326522576423056642232264147479189928099862277845559506831499481268570146811757187457291260049666416692550320908888079819830454275956117398583726787836458684582535728752536344143751786246582643366664726652881554422195236948568950810629245847145308952867961528280769727708980477439360091089746796091808032408705652553289186323663314605791604837092357545649290444545564699528844473982454753596219266832574164680255580683893323693707243625623960547828001636670341637971632416056728609516648678586682118718983451799454604427967651834838036137963069540462954649685489728632489096453047120181473698009849488169721919916172286256200910113502690633496781626795057726450026496713878871393483451728332778442929750081225766171278132098806295836162269119016569336786795285161004681703970335528839824883330070679525604057729262321075469938883502919157183275508057565121873462407257448409236570241836503471558103152724375232890007573687918948231526275499253182423024322049761746059233072698595480622938281586671117581122733483531997032848317784706337821384788944560877346245551272013189070654504993337575499721867635293976492974129311039804270282981187314150767221208248271150867618799702116459545213848759420744586297276400257763132593589110497368325833480460304762697428013482331501943079421877300550333934621638685134620335998901531906162503886136569661239559634716326535119246394331998573940409920123451248509697364764902193042267753931977707178642792981923362931018441191484334290197298815942535108605561784307102902686074134521326975114372779436494973675924813215129290716429763057576800167611510792366289714240962689221535633152563988543612155016393005052381959771602098903326826885266475215075205770599831964235908662859051267997235453986407295755741640791274549465243946105459600316862055792040611760633788639084924621974940426711722537234893373902556387323626302750054398113474399520299581169952085992123990556669591786805063250485291564292904001727347006770477622482877379365973635313450720009047184761387820789372763013400454717626988220561863004335196184037478377414588824934372523562775039200164599404338448654731303918859147332246353177236281215504103338682505665497815232145795375127685620143633779396685520526672344971643557339366844012845706653646928823982402718329335519388326677795538704281909002507149836463190576884867766808998640747818179360767355959551168147186186843345820796422244561318369157843649517337082393164695000511893070255435328476861830357767213383679457481669166482050271578835076808915178873096197075088371094475156845645933375786386052756508298885734065857827949480063170702810530622524524746465501171943829786637782222344204481451233187561658032405787046857534234047046454827098216739296914555088674894683159399499587481136972859982259336447188641000064851581713836195024858176293822138872124864411978781201650535812456358843670337016330256166337643044034118678673937100460192685545213637948528097488118264635904317757662181693918543427116942947937074369387440647635632821246262275227824407387863255808966984103261414393999134540222688369875733841432004055938395007935243681779642735771984214288575273625343683682117243859423595983329714878968613775890752701714074432901143123492162472646100301982981187675779315917811808585222674233521140823321195826909296863490527919890589222115895100838588466337140956664439275105056536604206692659624677388100990076636867259831371959920023239690837649882161849713130210703163048179806127646484268917373645377939791469491657110784749549424839456413641147439870976799366061223152056066246969295566274406200478613597649570174530225181199931914552981812676841750254331002817100859777373049727533935401380142941792365939349846068625771762218877056887435062824364894863612446291611544749470292134484244434357324964633101118987059476660349956158176463973187260784498968586124946187829938648616319563363696338540461246522210097992628564946384506307172543316732178502234025525053117011038987936713810132886759664006929085197790736189413602021836653150229299735809607062839601937668140393939475376382608679957667311667893549494083052181528553389665953577015906220060857137192274741385571245825456448296908437108665993313110075559412237524975645582012262636820502623991936502775312859955456269851963359375459416949011821526023986367562457843714657392747954364896517845701948923388028844320785983039891410157565172433314985889538342464699585744845855334602313316499248717642880749022378725789724622781861821709408804196930352058471731703941074980246319076300401554532622686437177316528415477798300820639480907782022360435407752292939468147921811106164663945777768623575078278674861525370778210511339495094296739609468786537566687099150634690797947880291947675297845098193517274565835671638185420055767201620617001442253387721849489486552710003750426121169825038271132720226699015022337125203046412720303650501812149834092162976407861538516982080506395797163205889254444641899178108468081523211044358767892710603747974443437473398496205976934898419877489953575099511913859262469323187167214132655746648634020308410517969779210436540878987687355935151994814361489950810075180673000185996079114351776552058665435955840733856620531473440281848181423814247422490517398281983450887291506038695825468626313133736838299012265137477247199009064429930673661138089966245570950745493575160946258488881939583502536402144089063092833815640577717396032415752628603685400341373833973232993673454455470488957356765921888203688761706503050214463113915513790682608451429893593315765708728831471233152078384712677625354290894409831108725879449966777328632932258664921295247375122710714674324076075926601861293399579870453006835525642897850556244016571132512453357575454039989840785903666614146691236359030534200479838555753584588200670606623204773246303873763433472512596379898374758979927620559095813298072273918351531248697103674780412925413685074866407719998969483075779880978043087657795457137456494536386423261520582091361541252151483415247651457705861124779513260402545152962525447591959507378874365050995974636673607396696534815980621405951390502888777655911900946937548337132553792899923818292970314849757477898723935526601085918087212053260219939682780838481021609914778285271087619772733093719105365221933553504859825819335457708730484893638647671043549605766090011128492666268350162566713871050859052071199810141355314154806698589446289069112993128013948871839846400794273627233715688355903818310264498474421322205586532044467358834252217051945950069269302575994544882072955898980006543689346939660014308177963986939007239536573420335845903895369096546695426226028197933558847127809555096653719002357194725331037787733798056003994662540751373944827942203162740642031590743018457496359368794105472064236228675793131162322454827007259664069501406133520694567222987398000419031684920490026242308666067110109544203855017608157715923453150592215404201584861933492674872673534004866569003611744019695275727199536277557320369389657084220035111518109144218824607158441039638969107227658083441365089532807184139382108709289933521157596981473529846610189932075237055147692164158843278228886286622137314968407634366390512359152981667813799685018464363019829073854445535595894323448103247652916822196703013025964688811406327016801265489936098827638037990221645703115154577351206519029942777685721620802327548670030477636030009770192627208309832381591095173506968304881921237538239000444319163992137116566958037873461349358132562685776600984391338186675398797024379829568284509044081961245126810146432443162805727960757120601781996280095684874449117775201411656806224358711116282829344232721934126235952769682957610591896426410443228690626367374564306441536582920290324908335760608425735045110685313158406363205870940068479632698649306307122501543384322968971778311372565543997274405635524683190843377251126781851285136707292897691533085182091124507757608948842733039751630842829708386532569852765313251102554952824839214395244646363812915379016679989342201178781417757066760110590894525212058088802547373987930041044374714997057991529390357083257444223728351859228772200832966972603427650459880345383499942365533041306772186812704889272699286941518436742829544933213205547719497440016198669024778329658942956594279097864163192361855838282279904729845226716228627814913592288502440814884147660517314421257544035686146880010359587815231831985643098051101894460240657004915758651767936633813183846925877843012742545802049513963898640542433633017531837091131426449981210551422734035053423441700682581677948495501970265834445714150631605084491124336712506105270299421350135190075154407113192203865081482082051676053579060672530322838772316551938618341275545514087132077847644910354486077526369247362952093289618441623536027902684229961760347256806066816396587916259946341140425918023259902364332185843255206902657645960172670817929839287141304402909940098470383052459619250805281161521569427799464208662923858162748340216656025118956208279464524125972104687034205158356291744624190039472271816567436755806658752273597866388382576072027225440303114524914295864941424384548730216021137307955697052324305642645893934756185988486225257967809706074030498921460106352521825371803902991693929070242579064598441306800075375025271333811544176318543640335756778542676447440176923340677126688885432259450030425542617413473205804688783007082839899832182910038607913112612105268223527840558153819525329552598644244468101231950985776260967434754669085870261034732924632508465867356409728338736274721820294941574124789838933880903337656432752560106952563569989803730445089311884823205037930457752047272570623280840937400489811601319619408779695039203361243904562750291279595194393039057874149831681849988779745978611828347638590122686442442400755930618579994274283186371809291661990129136942265613636745961926404882507993845499148083915935094446956231702602090762366276951910181402732604063851829975449488160503205321085741016665425437944617182835892459221087748977078791944318541054695685773861396958031869361594447837642387150276564685959356127512249786246610794814287024646091765100577166218912091453740502973568774942492863451400860585771404866199278679270253918916668462069432634285125504502084777845773928512316500151155252268249696561143105304046642543428371747788222734856838426306018606034657516181682088450057543355353855573296950838887102544382936695139715611623582982469854197377214383013495792712354272521809632467265152426746303916167906348320698091849804976066901124793223876836718498300494105884048332208924217923783033874483669729013739081388352515498674591557486343586574006459268073069746584613334946877141323990807367408168202223825608667901376304107553650262351912176302398066985568041325097698917494505541840770000227415668503997568191649121365910992985392481800425787222438335034693025230354609205252789429529772419436462437043211797704464892139741218218848749579162524638316637462981069018658102033979357392533299896374037622404906949040223839843488236513830835880925040452954368306838799281911568069090959269314156440051848594714640474442259017602173374517386153761225316231296726893974681070318865305373657768025270129314043813878324160417617796688186331625298292158758384889515313428475220645152506405090531607297623629234049298048749840783377990256725882705215940166623001009887052001152783101782830793766374410072161371321584535176516565971660157195067818773664845272074236525276765634462548343501675289929436658503780972249273222684601234965403838476839986622872521053607267049590911909797359701019186747739151488717856046090073456504299759191447405799676237937533944011035143359323160342968014021286642075684704683626055152753820755147236349869144302770204190671343232071242606129017850721455617383040287618567224567099998984382335932270960119231974490270331610155811274541214507960609596825132894657724041677043001897005434166769390632263461289295850254830375112004146976749305817571381345197510557716715539148910540747870589299774741842280132079073597643993416887723637879374834880277614333091469295531431601382430547837851142786433007020515563906994970717731152606424815554510637600269793519232377187638434429917312735447933312659997549397198215197061920974839662054596918322253674269911249196516135307440605128858484729501556470245592100754919992136737269197871064348266645669117222471436535685492821764575608313152260453303876959972934265459099929711285893545408856411831471672326964980889713521561661827267170919378449932306749620197927345459349308878563220828971500071272694573492257151315615152753295161063662329246677731454214775700431608848783094549482584384011998724813518438148996782567788132460955395287023116457914199487375270301733535972257447490207857084147234062724675005901158101343668231258242886259743634433201798482024687925120764380155340713638768034358535500797471157558833488970828977669754996050209000558739521691868042791402544177598016470132701695310769171735616253573238789868746385848019792999029380478936245816808927683312888402372414756479545565073521574087600766440202086854678645338481575147967545780931753800178348413480290965607013449499856402616448291923625545483258002930679777121212644959669258786747808535884661566796546016247674474152178710677055194070843288676635777530784988227901741305992763649522804126037807060553342850593074514644108768819162671420717301522431690243392496642385331698057740579963095760050549649023299846040690203654071106510880648309019841393486829215231271258104184204526526441844508835079291719457717870338700081681697137191149693293734428909380060078797984164589283766480626550371467181883496879368466731523367236911923881840353222339739324984697740683672004458278591427542055492674765651388197031945556866759018849588992387247622985968848957722693031533840796379686703105983550464540157141601572283890972481318564121066826497792387823081237597366481211208780422598429403302000512236534871769191686907786253746030662923672453065770343839911485992595789214078876933011376708869986055540078888968294704777918728362462186348792098296671272719115072444455769422305946887263475901115738510961128307136054053757667724116210787137377241162863791947740125246056218755855617358369869020762267548419073573900753848694484986259486741327668162441978157947677774400884273985505776551482635108355616273047279856100053671307227481237884541408451032463308936122737669256959249342579791825225019478563498634766662817143643276492243240811569931598272866879430931522272132466381286074207118736070171685443633206185017613589199140112849537714736857508365632740373307744484796110425077645191637878163699948497541320592724223315137539150272242953757571014921851017127668107963798561157006929149548953585781495875991674304397692099794403794891651873455629561231092069397582783066897762812236164029732231529383048554676138150473208059202886602604605393533029735796384748329258660527499540226767558541280685461422813441339220439249202925019141985936413967740136542587919714567376614383496990580656098986862273329715553954421243592762894743792960985890699871380791035111864827189329135735370888380940361893078545335720764453463079677350859883080108956837850197056661392387618278718424555091927997518517300494193774599478246800322721153710584337755986434638309041860718642176088547890752002388288155818447037415176739708412298574132911413017800842335839075456488702954251943207921249676034732861039853014203951329911620815569738920577734590147687790896864656226089223553650701808639271054236291626645990397017326204973090779082639942820203125638185947050986242399447134632933010566031262127764290741975565609905685937762183252450340418474374763176912662469163036077285524493445135629311572318752033677438174558071940042117397829783580939344406877119711607383392023526305371776831802884944836506608817832960994156294349204801477721640708658092993162498476840380965334633318978763167144657306982001261603666173041970617189398769563700656700461784303197856996166729720520401671143580993512980618154600203791825683417639107736367589688746232578681998712774761703297722049908601980033024681474848909224811275143495736909549032223426572049634542263708394003334815192870096612772669511908764044557327710553621354803679149567845096830540905705624951831650242213016124279518930085210627588418056006275194755022488690016951669972245685308286267261401261972754032866139065592255353897199660758685016340943733484006789286069287516901266597912020351014726843802890584950995638255140830657893003381960158003718761057723681502027885479946190405603832924283611573919097333498240758254749989863234248266435365112513278543602341875923973222414588714162110498259954421371318205251501358808907148125606154628165852933373320274813661033502084398924297984234934784414690521315961004573993309317825167978871444945332990803667211636258449974691674975043973698354464177290470440698795027811846016691157661920409274717127740247472964764154517078891852960108198372365295770517611602251164883883749912449582758014587179853550953400461271774899949154938196388118894927044464484362263296302027429295469532681508593122644713236376678350919635659201225682521455092609209311975380949619001918708866001114254628727112221468644024945647706711791926757343939178244129883449778347851696183382480312449165901728774995658414790212796185069612886159871683037696572809622916093775966724290358422109291390370253775345466512261957939639786988741367707257400533534418352657931774839959532346737778046812197044956143623024760845282506926876118430297193648231343447452128544071671756148559787048870298229945903256023499814052981494422645849227973080256455138250185275159784461568516611737135532373806930637095700156319358959504902587887212932436635915819009235212239953380243819946486734621845169373781256304585622509946887177856476291562022236167045051664809723381738186603830102028203102943726200342848019959244027880473649043772752897343408826420747491207836343677620584029238789161146124567886623218658700892313853733089587322325976260567226909367549366785205860059949923052529074917337518739980412093019807280452492526761444689372968149014125913293450403660775815454584214923297434210694943772319802157784808279794467370559113888117581545479843699736294906617173108179572151281398795482946462500796373550921662686957581959928432852197427911949720808916447845777556710409772004884228969330860344783802889003426125014243051536652722675669294500581790877488716752120995372185183417405520009372235316937098058825782100524685443731924661574328149239042247178673150134738256078356475877449082945269546515801893316367535364672899607987675566380347570660933845574006662032329061569263316169742492649574789996900007918988382528875441602654556846648951969419138511557187502286037315740279224053716483589562379616193184996077464063804454599140968360761902008095912460541521347190796443447573335119653112497987086269130131372591629276704545196734436212425996041407512979704147663670122090001330761691324533194312195261097711749269077442147923804991447104148574838817190556259495550214652578299635461734497422871270646075758703136457392949820106444490756728442926644114020155349147672678988205811101160193325355762121802591846818609445511332768278721626245578948278263276103482504350857509242174285704109647423138034510626559879012019724786684583858669938987795603424496006044704292274144617238486019519557363863561799988605952472216431401485177462726539328000336033604872877671828853498556860267962503400231918359082510363032522919608530266815810617414032851281026824165855072690118601499886624583261964047795206645780394706080891693620868077913759402445197263882721250734529135520594917547346799532193828530129597724513183205007108523163141709164586739399458759599311380934579741159739249349225843177274262950649023964145924257047052288537815902080059783351327662357617791474808718997348760944899153514585193550494919392535014739344128308140974100757188413534059859844792421539690632754718931197663275332887723636973897227755349157682159401750330176782630520243745856310237629677231745279043885649279430446284316009868948023142872007264817999301613923439184985432832298317599074567263434496954574740334172995229100057088364687071625409877618772847784618566557674149496562630041654610585411559763481459161514358913651095833223307513729825580016625832011799714900056945095334290379998389803707270486198651830938092609423902069623749493364164343203270235267696529057528993695773292047335560335982762597586551789283406574497678587851400403804443814514048480515862088080878404169862796712446031555159727221680983913812247300722509297029518544906440142208140779180142495502328095816007349510935941410139940116905771586476427323133963662793358377508752853272610527119327717807239936233025492418911069533475758384706238283878817029424373890729224065573263620944685675902460298959572654939749086235375862109478729721526439239154955051238786371280962340862748539797148585035878072902743928574671018872444756085121075154998837552775259337583171241872890742380302214751391522577706552790455652543517401219465900632323631403328309661765244344153824351056650135929304796699814578952103547171175579244517378858489667307033556931176013994272915686344927936142812195389226703649426492219864575747189298317927596928418539014765142272111867543749577648332146064513373485544999858362975256432835104888968297954876935778985097270548647233968225153723396364186854098488431415562470037029476590053663989682100465522742717094263785477836304646015651334112472548423497341384250424752639189998876455418543633259821137668108615441788185998094615679685366410358729712856899316259698099243834989457978908482428660904284519453389899074443691665925731792784046864226933658799976777807196717859730760055525603622187702952800608678147812124606394037725966851995860950811606086204872768519985953532179812947552678747145372752760359993644154280384484967961445522212211558283548925149780525110509207064205561396233924286462678250585690521491118889989274642419952870804339081993507999177373568182056677370565880212513852305298382495982671829061209383451578092298908549493821842403103451788052638886141434696532636069953043156613892146412189966526299678159541610542301216634601892782976474332878856248356247353502345439693694216927775026765424319756127318674285203227134576688687734833484823560275781112560607401343631338648427192621802134548107671833013528015729548265216699948774231292708178323393987992256486425104862586334182116252212609756678748128705503880349854393462644057222909083916612787127090466051163548199176702269926261987576525093595135332468359065021751910259109098345298629377834007744320588425991949489722913083256730888306601099824749372740531822773698608256799337805883271189096392166078006316236133533760231534725509573553037415177552086409771790295825273195004150095614741199726846986015912952145373302668520330846769828831164395973875569969674681941361809412766719799345578826271030962656090887380375928199628376601140235254950007467077813177921446916018710834669110752103202829005352283765554631573549468032540739709385723960426259707196727087790859423413359335710489637932813257829017264195720090697377119449217283141206752286054189343346882642119834432593473840595987343693619325081535635034631540858664766782220959207222174191130082316751053528588488370762042898371336725513505825683752127143966580539437535971041409245392136535676726051031621334797022358040141950069237516800550400282974560208969214375597636239506014914753366606577624451160976504590326433952527393126957760370306303870642667069333262276641646770411041602908844241968701613930200348359122253178042018601316556653323726664487996953652434640201085409257561807213334144906013931848714375511257265504805144676854816158555367338009235459525216693017091025025857774640308809064150907957365892748440946430202348791116848803265710251226094698784654435359158352489115331609061835645060390520760898281923749718333507995614246216700242779787830341655116931423172964775659114294747495516811674058086932334654719982037332713229149248044001910577706007232665355310639498895179157031866789526496374007185072923523115348066172040994060727077195691220022448979241091392104948277272470096787954857961574701855689068451008868392367888531641296848701092841380313638702738056440762729830532637761907278405493467757946351077114790563308745522441112533743953440051711387761157772376447215725121640808655884058079085572205939146197013220650741585087460831406600652001293516118134964304100569899013152149433941955384017302137571260427128848595236101113151625264441274353293922035035232529792391643742681743099564238714928025226742195091228918980264842952898245347733476060169162700713465875377554489156606246734449840082252009871994188567817643290118361176110263289517522444324632063437600694495965151055385818731679271977977996952526295955160823971316583062619221812703853655263075182160804909516038737842623015626579575486206387089599262764303252319897226096912208611184357202157925873284923046475433323572549222573104022874503127968903286610185031021920178944083462685773521726197034821534142739682784963982087459176619215984202223714043232256978796774376539927048652940380283963197049980569949240688500902247088597018880601651700877074211080904598834283885890898421407516382647872549045964411866399180584136339049169081445686787788077834229128788515913533779845924670861630805708684292852549278936415769841583180831181734365620491497004966600653337587921234445915192522183454980441099595832047863816436465713540835444696079402709547823363214696608976525645682574872003031726494193825825154708730770807193331267926141981288127152849709899636828831006203468420144043642593789234381284696875957316139608476093342558374259913825621712846449061808618117100686445008439662539569168260090147345911438420194624525163340842938854458558608164914041015829050858779061842764013297438459259667383966905802850413756267123460346731969691656948724677133227757877424125770108468517783285570933140737697065341335835028968991660207593330317575925278892648266737207269769200900930438873267782690633960654352440946518250947123815497304663614411227766987099268655494264821636996717914626258687326242050838561507882161259771705757236688951656534063614985312600254310375883570341554376432362960416873289321176596344731017535606182179527660114759060167505559475587445910716063358575788822698872127457162400012616713138819759926485071065284595969197878053718675509359060372612015806554706303508688147518219934222377342043539720450575024464619261596974842776995508371189627776444114824495644582832808429462355950452747163640389163314236582939373735165738981798234532626369676176270419030063315763158058554252364527104537035545029040995271674440378799590038120983315026666823626910910882361328513791611212015688695016065035775834610530014700613561239726245862839380141255703097529811400507261036310486756703952733101110114090202867053727848849878679201907464406353642222107383632317612473964331810100611257216162263443870162846539474298889711388678159112595907406141157972143590201823202176354936717674895719388814463509257915677917600176647373232400151842412422556939751340418579696846021495752198870783350162006851870600064597311867328901623472298067683361523994362848350211934672380139554674279624966292122692903213972707436539520457877923540969010934702295419479362942691219092066158086843560765535365198912177465173179686072269537492457391737542359214526752129509504742680469262753815750968011494144413729942413383690120468515903164574666734245424652707068666203664024741425769949062027493363422174725919248569637822438411110044651087899346837325055114911619111857964386284753403503587303140811385687407181669259888646035098993994104502794366420593779250428124031320580845317596801059812879126642619195033723618411146296135503011355784933054284776819904826980527706609807392578405997236443088707907021626862552578789367266818685701644530250900607998727066682544355534544295340233887654564814100031688840947060772093663456150041500705457322271317699684879480197918430759320919703764041298334534204524238291941066783410047212760213754883390115582474081577433611159028016688188745264151581946290222046077073897648270351311186939787067136467158683092106269202688060163913740383418553556722494557903973789818964290776506914419481187480609189998255320843920285308560668180711038399761216750706130323870464092661298924310107175794680744991653518086486341951016767261525971623498659100221151194257361309159436250336294472286710724266348167548513324642816639585382859182713317623487110491143286733302132226122948168634507632858108407039830036646670446979719457911560477350122310863795367399241254797323746361296555112154405984931534491350206584970374006843444624456612885150108997770040327230350286461168740893400173473763220528126863264030531504533922400707563307790985493787408953286148000600525719190102494432502195651354236409555897081224979468184774281620644504754399865969433612387895993984978640333929366940805165782858517498485309647762872198888706898984991960945139836922111836555398296926972869355517204709724350228675928663953894753559914410754662302611320760227657658011999356161803636028443508060219340260782738692505412247403583755395671724709949089537067536187034691890630827975028719433606301271320694801470599120669999052143188937374052993507458639121000804670618428397696264549949964208407600228566117978009500929721630795680066187305097978493436142526893929761101131358206434503879722544084200724966120976759768057764410536402014947758541443265771881338199252967220799852853693275761735815553732334111984839148896117845851876640459974708627932213283352224632356159731295359586014667289831356231941786523271177380310486836247452331649937567804053027976170852089468789433540146058367838670266295660636632885165349983564912474313774269283457392279823690700304824558443440434767219394592975052040491424104540389793048243815321754043058060944626122610693041755754650719087638946968933666719359929746750756676609434233233924024122528583138524270581655673801814619159746715174749276289202980128177316560076460155928669848139396699112118661170530684769564897433126378318752612298362647360076074420981195003285596570304777472387884272031055789585645772208265048390802998853056298250745402303726449300389081496748501820779432311120756946494921466479149632286062370676050056375929989449536339940333317650685370020468672807626896910620994150600823941544788936500112332057432527181334700637013761458921150967242634728773393519288899391580633620144979361244847666826432021088871229012670336541827232526149792872958250292728106261437141868384559789452118535104261996705238581030584675136731996056880379016947784750462243053013596533953141935380410593177971967943398828350990647358689488565426042069612643094375721881933361378008177592848550394537691255773665654071339979156221872138162227823164937735945845224495631380235333619409887748586704423579645119791904069858927159817376501849980360013877471543863145125933451164955849020574940502512470378780969823650729892353698725646654698661964327930257988852308601855238208558814919758237853550636170062257622128144471708256341930855633331061825208283624896117991741432125781842546482654568526384048198662919737359726420248646166870721673966222856460734410234141257438098528132882446863390472406841266909670581197884985573071883774937362115794628743864865133694974250345529774396860484560966034421342173813359653703945180364392239238683752848967108070193313980784399948676659071228108996755833325417489765399413830231265292754557225123599216998799175947707140734116369056179410737880750994768481499712704786515282044212455377725813873298182562993052653101267276363449630921724372438779355411769291830338076122340709341618109542524000776656134742325348213416318569122729855452697039130258207970106276573747073341985983179025998383178956581886373971185330001450369156640054122624779805847775212253178851080257752877225168064671579736491855077204955551245669102081479635486813532389897414456441094317551581225537364058703750550881974234821319782413690605040855781473672371808351733559755552627201489604200593177680880343801174827620223859314751920588395215869965162252667450982849241734908035818129297042968740204287124703809443475923927703631210041211417030115611801303356608849189677431948369076580964620707828643486148335610863351129025047226192049079958415997840169087273064921054524467725836296582843102962177713921084951904531804424345260742399793690668250290382046600965687640707012842465809719021629589190251495499843479646468522419449809795486500709706848233391734935032309537221600896450174544507408248415787964916198976396010955499755392543045389758228542235507942110875265839284453245524245413134544325871312058117916067330745249336168220705953678852488276200573454513033034679888210447092222030914063050474181662891473489159988983647962353747088718331684766092879319810445918234489565380314022685357337644395413459024713425107361083788199123847949277484482462909380307711304314234058730103172037218158131724922348798234990096521076418819383603161857255728627967948632338052854508285207522870973290180014287601399207837068142425130572797549315208590278672280918917507374704868307047317484331432590366696650689930762351988050342731220509091108012221269876127299221285940043167947255500420852575660101234781785086431196088713508801111607958183407387885227789951828224306075456863625429683259572771698276536373054329215800722454528139115052941524486483636877105612234619662782768704782846441006784620115527568710837269231989028812575443021684208747589663234996712363709242388986122162291487144932588657314876202369558374112923240360213158485172636390280264085411139289243549984452894396818245544487323547701316543544454370462015732980679610038822148879643731076936716026738227288593834853627815208684272394456966917360681300396557896420742129882214132640844340498511581285247732831509243568618870626103784590231942414839507683049478322718084845707890822128237192058196680148965178018368619926361603836625019454209330220936840901853892408193287624167106384700354698423382923563901847167560639440165203424545184421388462118556209900735266776348398887967372106777138418553414691906913545889088275955826147134203627051041899842866046957965338782702643739734142875774968164356247289362442504927230852710542268169587166859417986436460298485868331121241424548422059407800603766037609350281343430022638660893160104861131261491812388597826030372452612612394559907571270521679228773381225627318760045983513709147083147216003465419568027040482766681365743650927359860573903120123314129740630438692740426832396888507957085926073032932249386277205789516643911521244037879086463107589516490203703244339573458133737942701116069404440326951574339476199359484468734398814142296804960281762875578110779796710744211187093102957756205021596627125409316906618681872283146634029669210505640483100303686844790503023780953858331288472192844017030469761755962208667566009119919819656331421185390878948232924241223771738147843630206289582607028138362550227744421973949726233832424561900561072583921738090527688601342029514338704321905406665830563206343083477286760205699405797920887754496654165882300598526936444413316873810863677445636669216852181522060679554817920727085597313708171979908897502384500323307587318957162332265032742636978559784034967723294927937036919796091535281628592918625241143442010246182724664826570585808493958277197655765014174414872060795545003758617574765286207054709791114366483926857680964977511176639510683371007972004502832290167882431024791851327297028003127919710642421215072079232867079711976223806090144344626835359628157567591381993392367066628875562092821726829273283519058092817392686134615096030171867072035989937769635296284024491231772041957690638838871029813957014123765163220905844125722197178509185710337514011460941642115724683534716169917764178490847908175149143026709829280863830825810281459449455164658802649818565384369923182763044969428995661319266027436799144926472675559852495999261378056878660222940780786900135525034060373210136639799592187299558585999569759182828102135147554104035784169942433210708793256717625371743338550705726254019375261862257789849969787198167593240985075084219299511188348868139559937870049028668889391252839589929878904812748791501780290462871298834138627502129732438350974533077253557953475904919292368899738704629693857864855353805519451877075453747614226646468899701598521386463655787788162372440826250902690241671848209036933143447953948833369881422635377817641402548252247031361544513565300088617877398973147132983556798336304001761062504918484615822649234950322639288610350509075299948578956309275773164227576149225211757568517005080664787322332979999075340905337857525212472835398606394918115174493893438710481357777218299712645600692482867002032859629086575185193214482176003014889701483390033525175199884014795620177607736327875916486546860142941806365950807724438033741361591633412993490038685201172438916014201528776369154213926286461892619955090753269917266587320827599692335920819374039104709623006527108047180452301502562326788395463293836341761286767992947278397633325954835705790124325486751851635791998056290186373632897868280038030280825808562548395338316339463052066254586292737774075220504180445064878039475313639165368543948730359232063930705410099943969860108551175925110641117579554203528457468344938792615270314961131919958627570560081070946915934140123392976859123895008805577091907503841898234300431469278832082279051630033187683273089830477569886646447977139359131425228897087661790987807492909645425419185126703695218874205296979768333161007119077819242741734684894865722215104372920145634000290529883936673652349127079003487420066995899875610084929237518000705087896216468107693492437045582585790393952154767953980934723786442577437335474198875938917132003225451587335519799443611841687583518033575012644680020652880028587156520417093055893374927114060256148925071920751472016591057536845270704349187584986703326300309988776177245913473999236954803526915972504012100656813150360868406980176466206577426649934730188189265582931210913719086500351290530607210274088429895816090140897869367023100126246361056419432129725664833088176845486657760547713307137398747229358972423888202599454626678428537964442035871831926858018006916095222384867851634389963474920120046131464173016364187121745181440883775261976371066482937939643931913607412484095385179931879291143597593859429352330723659821600922586754042166399138175994024845188893930649151092081411143273453479722580051134597860606402780285354131908867182330188521727945724365669762086894138839953169641417561247588428139260106140653050587533774669901291587077998770109902608173809847592084210385299233039156325995725106689570920966130059852662848142708249786501235485651963693053656313821638937855230744288194674558222284046287729689443413780433912008792008349624605107506633453542131898768720721944909927373106021977008809148299607896617561354474098621787722747023548967652907053678737957491130719163026563703270362065207158871298033572534514587464156815667998406339379626243796527411685784523406380689936245056487716395262651573735899388625868020551750970504757106277233153969935913868291128542303790350959334745801993087010762330129708332995754731852424130649521579121597062531435430114939128138811991058857917620817634160752122655169221155458302574654588907115056248655478381752231514876600832295735081535678962600335431429789910605286075398691777892564973507853932072875052967062204605645526017137467714612109748050325850883753558824600603557612913213021818070006453643300852432318917422262263046625494799812957592170605843245694962854719283057334181188772811906702244156525946763663498400555741738973293081041498180688712133278190717000658494446539307930002136238937678907255284267011751129209009646583224621240546414021800590587737603487285124952829955071022863398084839764147810860037985892811709606291471545188766498601945439564254786298435162568650235163998082277772011653043685915014310745633753492022035162383211249125130940763755227424835401951960814757327475414931110944202669941802284231515169490941536725022313748488103086443599221679341370954705106105786139805633870137977534546149548980095128375346467560126510867912530815123111353107673917674889785148868753850265677103678226190435912247070455699910586183365251679421573898491989501887094789366489516405102739598471894173130760087649775272404512579315088437823940559052718142753633016594834234856379142062065112061267598180298166212609262590790766427086668918306002541772353357760245621334768075088906055742354082253537470088382617454720750957915668802564359161903110338493886987227909948945860028304265967112775487069444551677064141858336106026372473189712843776121244669610773300591058021875906765565540172304399401034852962037852959893972545216201594558342166754657813054237482176228407376789677793867609568212223488410775219840759139950236261140059374988979135087035325078942761553089296804724437172724844389757945557388373322158252714226262172517511456869701662677968470415463074526098599623002291054095086272727346980169646418501239047567922851418826491260113048263689694356165486324407859728325041630516730643866318139257344860073689655319045270290554187605504370079649046514941367195910043777130291933860213656588669957599498031861734780868000810152287639679307104395056284481122266239398471749716322798950422843751464117432454786990044652488626719522952644428678868509942289353987374680135246322563702702910595337979377029698998307227931628163749713463282008597588451691197796356322620155926380868254550361977784755231656994193321408082635318283726295585545475903342815649455764809808899071611378881239484415997852264501395927286012172048735579393478462981656018370904774835315666083998603142336382500121025691886827251548078064133414456304941494339812434553229573872579723325210056375566903602546032571806977219092151076871310275437848867832418725034771142920704820494223282429444741071919943087543489947459138184022441829040282430279246953099787603867232129709275873608501121787769685094371538965887104673120651554025857472883327655251340478569786161535181432147593996849560031657494784540484365574358974280778273139073078309691263971699683209481086949057408164680750356921159063883091399547254307202996139716867099089009262389891212746819629852335281098471201054250901765123525672505739430795276184302984037575849585782123129813927397005651455057380687430742005406757018595955971929994888422485130655828126009303956643635748490555265943969600629855107141829314205011176222384894433813227811287258997213303829944139056713787537907440491060849670586924172704864896320431887668136558674938504830868453358157895251832614848963058140862024281296984816109418074421129763706462650899906853002587129137023604877305411660558263389531908940786347107198906427009721543758981879604032875144449957112067239818845382463648579860749875590879242061188533448925687848268734458927035376258421803481998125981158829951195615268640202942021995272839511724671635806683889549396562695659626165309962286041641281579200476919127096108285426651735303822171553897979543306783101117589294026572388777448601515629064795293755453795514631735380212821212956219036762808935300340973873793217909250274461319722585319710654918372778200720520455125353900643173391196961903173455261484421605467448916506457125844841981165009128044222264752604300391391724362754359689279142897093529273535018566751338130654378598418282810506631482246930949869128707380185907455586139011945948515073930889422744947986583020317143229469049012497726381744546134453880490834325649581000572717727973665319663029863064268543368345060468041439999641593431287483120897072558377158373192496667678446079838763035072768668375135829080515143042768204117288358088568387957597794011897587926054460598408117335772260991243924902792858884750587801796067129001050626499313044824917399651768129041501164320796336825787919901524580647393048809619309853920812604861906544833416032885238408717198515956759970041800995919589266375036938177930119654225477473620377205009704358608416503703548555761772843220341835279835606168651437102580046976409587438349173785531962149541699118026958370031824441056612632009890589695651413231621004074043283142928041877231383094500940270971814847545866244339679218232331111672596415445585113781189452734039620805008055146397455905538392754458090163117424806283338760256198885292317014466689924634674988591642575542666496662132438395717357911927524354636676922216360595782178604283944791755617854778140706044437466060002108661024173474691800970058916730614490901172076144351133553055665994210460569014453863777315666676909351741334125117391756366366094606325710432936373029184992362644534628433115387963540121262675828845780750117282561203724758506059461313376672152813296066689555590103427683490697901312245706741300664575578196180122970160669553806937918299908814835735762279719969144038881421548469982143604001796446898986917168337458806973353630988759626547983276624297867092251219914586019589348728899528855109007095115312668391184498810061068761899820991658629160114675159556448431794821177263497521064577788980315845075242837310013580097481379408467331377024298181565459822261089462027945981566011012862993248385239251742915916920662610782397534814713331639455265611058372371442260749519513709784729624094038786251195515412289319663308980092108310656484504859105555641210260154703657630039021822425012356309791879446633305076300494379896194220399187234641218687562415810226320793296623812179794740285030637539244381878825799251518227980830428854920759708569023354762743485715662465770998019519982120714849977843301563215140065260784830088797078474390230852070552370761530984102689910701684249282790862125384835980997871286885538408712113154156775410380115384084195107695703906586217412126107146889598175204581084815539351561822693847104921099534617296084967799777014693898427861594055567044957860858661093979593211669044368649183110313998376989114414030797666505016831258576513780499159209240878805850658296155335098411683787480873272723397585101016124838837875589927353970146035296353813623801852942572716559775457554315456318043731445497051543208649781091095689748298596611599268824799246301085845317828377575431612036034185833834520240618261026537799031585373802485773648348641913670148940662662700076075474123921704817115510104018607676390437720516094287661276902795682078470713461816487256119473565880581801404526547124828597879627956127466026605255592334545300499185431133028184920859076106050933567319707130333474861253828019526205084849137190242089431920017717488817699800484859977316725295652702220984532578499121398511018240251797812105588641335717258956383986051578346701276029907720925976799097893560389066044221128847911334855770416053919411014722558549431600811570827848432111644875321681636313640391906252072805756440723942752642030161108491564184144296922923910166132629274106504899121004922738775834512355016117257439025317740149573913801839936658063245455547795694005184117581145351323132320484331981383933819225236004325811163230276328120564029601718421818305172173036139579335783739172064660629873705388267127343265247897453887206993997479097629724254348098213137619969098019072084651269531667272970478677292347143976526155052661699613493875739434100014858999990864843374880788049425813673457346020207627610694758868793747696442569601263684335578494295479326520814649077137240302386468603288104993124092046926116650393723231758290078915644803510139894342589910898234314775308020010535724739008542455692949057689570341146098928553741489599582793810042483852727281230714906716201319983115636000273333042916713208823639021270351018799499379745506243394185316185189652647883216632870449698528583845831476022727863571791482095365322670122228396620584087493613909342626968800904398227118078555063384299517405467818403171146856329314680705427353454056839567729317221379339677492699496288194882373614113444488879301396569554623567752649543026494749142367337905225939118792120615684312155861661856494917428538845702354045017358384946992101198082431021016559784726822602523215868057903541414470164158948685067808799320895156930641843591629907555848657014298214451694982570594383344497364703057568084553557140415161221782961054240755704891283564534581609918439335433432743405870560131613285170567047674506226054445697220368660342289141223320229370625428897647682975949228453622779615917447347158976748111731374998040800423369340061160849413494079756030878702852896437416305471418172266214638018483953907034554960819179751253767268231863712021840116306685301682626437458835439156490003517891807065537625561002273900846973822572332829590437279411066447528613224170166141123455649138111810563158881838949344151396171411244801946325942711004410415489930320146351129598618561063111270402105252606075106110363787722773384261330956496611172609044874578892038738217135856689138159141379685379961530314063604025897419298742511139157876112019521934996405708952802112104460965892500360419437510642299313120869793445323818038816926412952318722999442864636091759582553783305424381702377486704743809418021559809625840242143939917743986925994632442950522500724678896882392677484472983284852795392472896050038803428638421652247479745580033882159442903860914311816123868947674850356446145551310922913975926125969130758924159943707396443651962346680096281676576691515024902218310448451905473203810118329228212661385418760643552715132103586715781539107550189229050890600092984698697513287818928732305734642761957115026083955735561829758783915519066449393310263045656397973801844392620101127832255614068099021689072491939144475583460332103025769090098833852778198356697967340207305035596808769027421026639388234252491364897335382852314939815165443862759799194339638598236777339345438775411219309730114411757612266941629799340649759630202850980637670308412411768010587306363713584102147641346241227351218039779531222467845526375799049490882351554215311573167754445570185402950058971880403510482992666211578127918965061655785435635854488801228504846001134929268662004697760226220285667400112209600060875415032232582105151615602538268570955084382944172536272253163390974061436260909618260650305248759766061208955417166037268260164806940616944558920844333858789595651469765613888142105166138711066069064678213996240075893667458345773940482135229564020927794734740654173240973188910756363119064526649256550542069930288288271454780205922699424047371404095229684401906848093483217297401105592421933893560190852549065936820056449961284760145877957136908228539306199736511348066266694309437424696259733995653979022758182100123891902909973073422863126469369522871921024742683167656468513382313521564670130227747757502846760795362836789796229897763242430051738544343832307902666563608699696920148668231797840301912547153689609370097188629165666087876208167395317595298603388864951701630544769965126797167984859800005403955653678541048374696433553574317939896382760566737723354050533942073892027937313255893232870314825787644651056278303166728109123846986497724839967722007996495159699281095908782119346309407395341137994293860625960165138133979312986713877230070054601416946176588157498602100578520156972727628781173175224546563930296532083861024243703006711345037098831191912279774167574516395178131592648035886903068093735804285985354051384164954690644705191118397864204725929033031903457221303082040609026807064428827610340710909748193318910973546954184992378716095163197703940308935313823587131105439604307481607134158259882644837514730530214530091905820150838152754215425500723861731436910501037480030269919298690737633294242556372715983882492805978855974619598841950956847631076452516959441918699508579754943054400210241809336552839504807777751295149563941725216256869600860452182457962505871077270776771168201818962311127241848499977540712722296281664943918137709124688348378583571916890040029938825700645570390070877201271724520120954492425854488365958781024316546413085606144641415296286145620998331565487057162816484292131962395800336839916878629697331583792869771830054523575129968282104616563504624505333743472598534107711454540248242010542927590292144852669964238467157890976768328156223886542649690057786951886487936551680956639228241246787449883006834998414410705983003051035061965038300404443094741399779580808991384362698569035283772160862179266925126190808686590647878724229567270531410766779872854330503802211805550719679480740884330299606960731261416109138177376587153344445332358246459171178335115053607576358893405481259417428361587994167625088319101419114393684050506773377610260550556276673852228601933260177611418709821194713903667459201289954272069790934136640700616551089972067781700691192332276429537356570130912354290657887577501070640877733936918373385479246786191628293873176184149061416213299762092277505886555698801835040330592368248892185729545188493602239517152938998587004932931387290802252078677808468767178550595281419567244641732745892349235802696995298520449886996541203568109596642387060717284257227369715970449851316874039265213855478679188997199141373497312583552329955931875338478128921181545560134530796984893176955553438399017280978104405654417582971241474948399627998328337342352894556973088227823464750524591705434146404234901331152122341767390750190315049807920956409381912100523485630581265876065754942397371294176660357745359459329143118777420825727847439096931126625172438098413115902991541000846932574549683286372821677005594476146361430115403643458957005978783517678958769009170162967366420041081155235729756000491564790794291179208264530073854473426009477201881666258635244576070080061463933396579413612422912364074780200143002004459413208229084862582105699588038503591801652373693529620152867728907060523282604950869352669119528104640355446242549317846717777719369876243032259261284887764791433618089118874687069981905191961078808333917236730440288431928252027809303408082451020313981550264853467571640466453833003237875902712838564249077068588954293933362457410940545285598717258546788125052428510595490057068770840222457160904342491724874533182493227379392354606433414231680583854146894867719963233070839351528819220476386031795929124437601472986246631429676163247487070580473519181105213872344270027659775949863307678429615067820164465050736529789978817513910096360645232185365101041952904641768786279676430543414425524864177455081784085480025551832897570751949045762288669418640204619746782731829342714717987828149997526556931293189644287095275406168427889360899624183722799428619864035766279950430915778238255614364753851892190210377262241462064219750378701758263601334275713102457796574612717364383347981219714862474107289332053499508084488264031911984565226984755446691980673110005621197418405567180092154777871409436394352653797823511532437360723723579784646948128632893333508955093533033824822627030083085957201650172136248658893257804262333243925185301237107020180454058462017339942107739932458657044773729944105220999428248204361717256394708470651052180296675953559343291563533948383207368810203850904081630934025628787150714193483013474088422511727363217200679076111858370971936121361402002215413818873227336844729470289862410087702571966437719308605669584093174355380046264294615443663286757943835343891139126739918865134909720814602046107274911130276677066752239650875313796799442236686720278003448952708003209919402902660424335370389783326769844278571947723159114418649044725701019240153372640201896897997551271866156407602401360316659095158270480772050216584030248387358063084778348872516910860982026494786916492891277598673927283945994977988105188909246189978240502209041078844827989873818782639518437445789395966789530524776977751395127101178946533293259141414391896136810308398779201065557985404702687672791422976262519272230026235838627098265257204299012467269474349605548252952221687017738433482608012451341318095536655870915199010608836592372871260797514687516888422917798762271811883953937341118916759690024812295337696896838460801653710743453207437694219953530720794028999773168976181101789264685451044837361748966265099983992839896754641874557086416470961671728137927250926280062843141567370786902828543367734078102797778152362856973641120623038716916832766675164338722009375911475989608046927577455121347262354117096402357639669971620974883119066603595791412731618625910665003166143328194374465528502959627178131014525603787968895950276770273763088001588510547163557051651075851901052979360913687027108518840078984929366065379648647416372288329634146518202459057368147773440953847369395528156725570648486704841600150277869102006648819893910119000056505280887462297616429977869897726751392505439510816676639260548460641434441432078090835552779685773475004399694999365978505803936759690318163420746963668516564335730847380181318837880970239269206308990499716539310728238114694526426272935609645322821924066994872658812630561695356262860387547028076842933456885432915707627210821043698813802109341675752000487933275984075990276690530384036016162362050153242541979916682669273565267102351691059477440191831600229505944455131314744477635974675561224558637301814335870765506575647858069673318418372200958439634403053400594722134094464337384139248035274858765476537065091171829023944815036451089965052129541045180827081593416652451080984887486608548544877345188735788916039678424144499170620898967745482541279223883147529840554975170526640089092640441145983374750167465083673776227145692379905364062898724074056368169613862719214308354838361421116334457045178461048871944289330942764768180061975017533013658877030902003738078784427866139113205328589421576094862048112587290255189637878647304183793786080111645835264943299312119359072718520758589983883210075049986206228649062063959465398437591052244671011759889235752263572269538632240009805298191242664633541701268723088767442337097786410150030134770059746099646441662866189626052210111055586685126473850573745354780582260908072554715383152713614150635630027387990232620004237800148338422739289397466287598866118044249355414545147503227222737285762430302567022970725388596474924915731203160397396990754675539357750694384579958499128495409192677389786893095711230616932287488853564091576800230633242049653101850370840560737707928279633737414968869361608084495183164805341870905738514160515610313506668605536456324513441883687688098329783954863336874942000709614960496767967071433366934702194930543984760661404729219887966193476101853464190188591234658328525205738114686736679369302470427926258466401248561573922675978562256379994576814273550008172308934221335158391121506478691897823220631862556974545010085528634669927049198497721691715958212573984042564463884712866007396938562726948280346613628651140085461007879019376857559276981850093253180988928996830437733261224701935379672973281510510961467490326436666997557574864179748981858000546999678630578057659637513049935397127660395806239486199880363135553461845850238491715614987300071457257103492149265231724580518596882108935434552888638366049586751325556699656723395149922014498780589765276771677835958836251239042426233245525204611261927596503339771486365014117449128765039228132742080034977784115489077818546412689439282313867919571205497164639371330109524511914310296981205309518811041291610603680120522314556696913072505733373347740187733729372005153125676212821092728399235739041952708144256544524718450284861208933074767133804145511283792553284504560582022718061868492300604656635769650225665854734918433892994501304650462966144417734231155371214397717456682505208462657085987854206147120661130883197449716862042641535554591143905115620525750013198017493510485964660184131986051704189642055157004665771453547920356058481922087421089777478001498662655787939153313562574862577099338001660054779860339723322380853197991846931289284558401507501670777957291616028650537497163699853627450474492577016737552106061742535250572077005633879595242852380184637715740083697129581751931167349926549610417884194321970334736486109978439096104256895557955067704554092489921344488519446503976711886763412712973728476735204392583278548215819611936654354298969229962301234387367438812312515754379641055522148116997568570557137323421023729724636178688447804248396068757163943573374968225003383953120564870149330698776574650409315217624443656903567565836602219809648852365281403807611351855082043985614928943539514995626027696360520404863686924257170810285669358985452551505818245956123343933216303346005971695157619637339450360735858394230799004259107893345523417161150254790989751850241673108763829203177514940578672668133974488596688192256562598538999173838471685325147945094278960204199451617709562930163261593735503117783023957273556267284362510152852123126783349278899991316310547247471369365136075122557060115399407169604757565415781034475887830393789062729262938594246490364101627394764931749162767708917837677423233611374518460695246716872848572547153769606014328913302462189382513159268583992682830785598855567891845552034379003098718492308043559214748996766359390663094583348824523003517103311066032226756768712012834980312391534583953418250711834484028079464343575940606686113857034336206442825292920932513277189338480058462088656100929901099215186535122345516228067923623290459243490465947148837120933395260387647319000768233474164684800393806528932869244570103019746574839803572256131604172224898751797186482918941663466051773972015230775055347922295406556596331468643574127682073112865777359642977268876640802409391541686847042521512149371413872064091474505953430356014273101808632909532782291642829833182243883122388360007399849800452306588891217854043838353759747948495178188775446522210331039495885845169471466139808234369386697805036282171716509543456976246953044088289021838913258415614440783499538919517609934945662594187432851110259462448963499427847990457751299487360067292848236568035994782476748446103124323219301522361629357294058759437660447471175833205265507924287937105012381416810000710014235479691817093825258842110485267495807251952049894992766508132788685535071192918877139018067438296354997484634413641338591620169857650954393508049203592280907434420634805396340647355519905728531849696681271018664481254559790622373906667830255372282668367658258994916198398188835900743697646824585869339646233891160391332633678915054029646225359458405987483694065161385501160129048241981449444893561146404290006014450823527653726918525497508635438078557388676691226655012740358673950313383781730394629348529168373680998416660687076902476439357957692522831827600585459986098761747803978041677747406176849201791328339274053289258996198425174873446636022560368658730167567997241621215543714186935473609141321211089009185238162310738196461165515804612382873694122797064087313045243883470058775838269138094056975700924315573466156177864043512104861644895778604090486519835809077984844547354059602439992704774675363944133703497512712317475250331319981581129206369380288908904706530611475305440482600017615797212587477232049899117922318028795031066979841922605264713787210224060790714720915714197369264421291479960539902766158768862820400864611784552055989165293460333795793260448776732359065928941784271156538962234771345431689298459158735369765309689000461348936781892989337595518944652729120521627437581601490086845545928178601353711843896539355449656318409709188170025436278090682941066721429854130096192705756835531265277356955551040160523617647663459022057474759109389253188658749373429898193769708932851649599954574722664044930769762608572343301535778571265747105644447219483372754338578627281013583065402358018389608221643944735502026927646615917248469269591858835395397037340632764230662591490065284947787079904624610815616981524854593552121523853785255420661416401506462853339804698626098404678884897582725037434232028914609362321954842667568442884186182979674561624206125458111099140694394713716601998077776851734938860476187499960726527302751865685234558111930760002903232872125826080671339671414580943948516448204988519104672277600288348514872842081827624868118778551043018718584485382181949370929221288608484039578227171758437078524153144479549581580344242359785312569029016741022305258816382143362336216365676055675692338397134393212055417305218421108782743162465398823376481551916589268386508100233182564726278117179012915430173521274127231518931949379070060055603495437773908017527761179068875540982625981862958514074176960808117329402199176589842732797016742518841450681305980251983169319979024493506691144451007799034564889790305934942188027575830876004303999129044257398674623070252791566745767931588726924289830648643349472579688741275587959424434075415597485094674907839533206485097513009446313070052318922111725673095009873753802634156273607749680723870377680056268635645392258984006215023995041089907188735937591528494925408697510698261724619587485344364287150182545669045141986173445059693425663937596120814146414768200522482784322162751857167621295488399096208162516412473821867740915372925634490154642753351082445474184737559181427079221739102337288421781665987594594331992964363667698442518824779725666725429276160253828245481200551205197949516267265619263397792761364045659502225061308011728608343779062660563851527812473674622052446138197590956543162759067893472388902807272740233744715334080283131108640386345479040151319899729634504259813343556835219582608581989262391352719526260753214994228752042481365346857945262563713123442679080886032901890339066166013891314288190000432905442096592316430470275907466133968755589030161892155038595926327463419507888985579210191295043369049205855215800667653451644989625531541853281798889394075309211936012804332166640026603837628511057456215024681932557307237330219810491209169899312850730237083676273549141104751391361548315968794439967119321817012736769253325929843421113101617376353536316473214931792751614050503832380768273464446847579005558670231736268995473232441785174283647528626130948553527980798073364725280251557700535544166374237281021673465403125710538997679833958480330913243732304942114493274347616645132469197597214439361780704323090187879363266660939527552125273503978568557399556357608079971940180270357435797090595459804385373032996112605398891986139350976617422888847111124400891350343651393974098703152775079061993207299283968724964529318869438284794788991379789132300978033139071962955154232797617734488213977533154519584364077558425548900850388898555977202331985448332639318920694238980886563180617109986847825204508667693298135940315225612987846801884419428113902410700094046787293059693127213618884528876621556552170930143841324127479372555571391649240431497479348648113824601934091453045572288447014286203528854282642041763539747168607910119587763736108719498552017250316859403462318443714371175799253424354705418170202102967078887960636065843024843735953939020241379225182416547903749290685682200201400933324600152624696972628404797352710085635766100655295349428331100328071855136974733881243096726040460334474717834309901964593523276735737669844008334403075689485592436720741728748552147280824902354351257798237727262188144140216558941371736799050160987088778993071582491842422479641402834757063749520828387294226723889639635323993846140833087820632512184593875259892485280005522895416429947847807822965239359051166432847586069023612636455706165276679637877589931013361113751568458538204292686374888589333970896868101336313750304194526971452883025667066763078518806757137626631178163349891004903992480783933631775113951624271786401838367903561835039795083628056015714357379591921890502182295439999382074702063247954630159077043927177068725875361314435235961553622116539784479447420493801150296985642678386379206663046587206057293910294953834656866686744238326628161999109893257498849012942589014211619435581035081691179467097416871368510895466253960597505475686488403084386442214178312363773573083502657800083671574174060374059667224313711908901970355836679934793705291390956900050307907303863128376428609230564627004085550127852894565096151048504524773116073277246521659461603317684652085471470162842223823136380792219857861431114240302980770327665741356538594922462155943702502022577964441742873321370818931753033838494628760014903461876724473272312004097460580713193496775335648615018730679282336035946711227948839813556152215614405729675665467126416869436906062378429272655418390145393142665373489709774806186568583275340551080265225859944520958620471480652735986989740406275823256726424338214811097137041607574188552273723565326034607865113328746176921255814719928874707225368299618821727289356600499632892081808940617484329686595540989618709830158279281606868648891767283009269330090041765361835868280214957162698904510315269237605479568383049601667561266982156592463251202795870070364952439870696829869132673582667635237396435277373811109041756862000409842995786103383664144587367798980321330597098680258870569909820236833429962322029949918839963575128122619990844312103920023617266104036474808478775844287769222094656547517437772830242821937159064893168212614140140033517545958115893692115589866274840884514838451271598761495396661354701953228964093791934162795822002257608577237905210478198117683952325325533960086909936840150912396906426337412253838523065366442732498094067340217705063682381377330807268694009325948723940681461016773266083035263282821698899648898033389648200617999398493698060194447581069079832393348016594441740501008415616513950986703883314525140987468509136741279471766862155613295982856183529760484806313680123880694248200052358422551488974756506541104903252393505780066609483682376659405829607095762182260181937947232931412801918031851567659318906275075737705704913647524904829522806580935994334888430965491930090696248925973595998851665278589355369960385523662187902128990199589874010533607670131402642101702852364000971680889379962289468855911573373626032403736472613153534861802203852775821717959433106327486527841467499903313038138396599232027907956408437670728231762239105647859586841709569277825940383313271553272729814978428677191018279854218754395062180672622543175143689803176328937092127003926879318326090836307634085256757645259965560336456807440718194813149199652941026941635476290958934704433897544632218380803966938027847715945254522519801333663603062690988535962796996041016457691704078187347444024470010998871840891021577876791364096913347512008590636155885460958403117202303638087289309799234152970537014245618875015880556576719213856602917425511342156727068092803162692807970200050951253930555001955879844424496476434756356252350953628238475885024467619427000015152132981120171708008482245652908678902095018860090245216773194982533933183643842266316497219924867260352646430475715833164559305350975020245542637944066974221625470223303054041246855964654833219814856936528088826308567560482762553026115303170218803362874096108016777964411600472123977132908040257049948346010610365848345777833895772842263481783586510266762030139133929490763339748568359637786194613524762945498066245922606826318539833917369989717491613534616001033443901054330367841033894749714801782588563271537230696814864008938354078108056659333881289901679531210620845486627431480213630447041868983934274873608463969313977040181120965436840444720260597804513354662678217964835010614174879850418756871025131495039681438513883676976186222222124909259312770708238877946849324914040656718213649539835271634549087661838386163338801530397197168810024188653971185483206691084817322425229101874411049057337095808506636986455163235163276899024743877807924055212459091078348043379177956599136812864249085046437998372866120877884903342847120829591675176739610712338438594551917240911843914410707050270420157116431892460052314725742860809964235095783773657242475036957065080704759174665448202134803354601451264378462659288675301882476584571362093319457740283687240433399001753702353333412769735903990832884519295745280250234403886784641896994859324131958621119481020070266634900067392778701491414043309504580623623732536644158670171425815636824599033038631414766293417581194757328846025356390144204016545054528683756762112143071640519909469833230254362464236135166427385153030524172836958835151702825834988145338929072349572876405314037479408871774701737607949136174230476731956527761985084368340070060541499995775899565108106175589439748634267370001572205473380892244978562652723282081977881924395303062475636077499510949568585637626324651562736230503486994955726854844592026106624359779912350851665445416480098342876858466751015609002508952214773402105484977049122475835586994885564931899555484247762450205345149010040062910030647189089559431639318810401202916911797667808548869541232159794700123218889524138047754280086226746085997451858250544014327884662457079175936821668970036624173170768648541246004147001367714313536220806913024572841962956429192365311675509566884105775952570398737680083293483804607278458010804035038702434351126934750026946156756163078859420154386186768306338652282835992768629225618781295964984514164918485885762032949513274114483975724276831634821910933714177986511327235812047884726949169871468066393279342438772679922518134383806634278284952845916836522983119601254064644097299565039161427060865122916741597036462208723496616520503664559887541824173255556936294422901190215123722529592992154877983567562052442510240332152394971551812797811260945967958584830023031249395747274784320651363963825923312603167519963776354265427842707250016678720144148911371458850653430203569977679080193503187790687709926835221444782735182297707122540441744080252487221441441130716591319975817581751072401784513219428667210353162071161604929742547054380682526156753938503006967032384725477739171583300780523978213530773593611996246227404122963937467357909991899122763828597742246651428288429417875203032954453266420746818252232473379910715986756900800566243665872510935287905812074126546654563025029422861000582932919832269570890758962725713101883995028353940030795442103314815735161609984892145312449158398067092111369385646500715652595984384047997552621505415924036172932097702717984777793513137140592692524131423548433434002375489588470993847744071667160679194692616406526690786777862580235729133241789648921127977845867553885261285759328821025042856039841158820420007192883116609769723160904400554198992129763152452968707268914825164842696272823797855926629246940090817618369228217677407956240053592538753254260770158773198835990132050881242294570636497844926930670777979380891034520024893506491918712239268620987289471997317735033580293777799772068445941220667981340211076018114370241229849751686679122054470677311071139601350332537113122106441627851631037081267353648005811167646544793457455761018315967996821628622572360733532389257964609286949764450103075706199355053450851342643229831678988976986140198210674128973163947014240718956884545520557763358065577357857542321593575079784570366909942452870229454871359622194421730550400561322065667964708497337472289405630661715084649452830712191518230137780197458379008258498190607175017705924732658018757390685170865195526908870964171652259578845723238571680280734384718946579922840490708039992272102683735838376013634469142005916278770311335697768520324856862082631952218964114881909637598999408543181114612874177912353914875457429362913577382202212456703268631868289844087445844316825078505479891596800492208336485946051512310310928486707808702116420400878175231929696185507327845846980218418035900812224976862754398795818186185978244115523415686445075058516045384663004396792519741892237024897014983406445296949844283751383672918196530731548053478371533837943585679461437247931600227754316359198297313954004533867680838157419527852638584736038796301221593912553521615282130384093475026903885903157329100897320227757473908626509491611245312455744837587252281871837841631716428812849985876068908311672802860594454237757162198284276153896971303138816790624757329779955350661573083910176134397335219055971535390445315066706514188990724032095669607306320804986805225266260786539867798801611668966074876429890072047014429225704843775554836276930733495958372443297440153259651034882809275914780509284035147225921332277198611248981992612112688788350403385165571941864903015082257289132081939240779999077158893081334546147241021229409425393705244443441398166122742457381357487688859521333331789790833236341953835298721885148204047400109289004059592063687810199529032354620047630093280211238232662159600395074628463293142213729031694457508935924273532292397203731534811173399231689638484471665108935058996744014479587929688210810473469523567015384045283785764317298063990147215233727929621687468069421475014387475486454348248500718699985846889834341752044305313339714419538129164670986002214094791351003434803858362192232507136018198738141930193897098013383968444863257269027608894043787919050962570488482608395529271981046765146096112054109057278545257983793017901260843472292794316066890586843062905680296683550701804572328180803147442680498383626122268545932907521987287896219481952988394573612002531698161230761306106383868778303933740630431367513136517622340952584726632910212216969647320288390308084104237411944326422944869252891897367466416075745810699274259663744830898277377176692183511662613918565956772057360153841191482411997886132876917497699973812031479985218147353680984532039503610338833018498734762368748941737021696395315592050135211819535959747935256282674705084226859057675960961525863993797244723363424899251661901690336278116942547219352948334912019023773167683228131762414519830875051033501794686529237951851747080922030924225216911046502503364673226065817542771771895079520203800077939105612449228355641224248120376986531424399185141028441012506951001507916738786785905865388030701778459655195746024325972143183494030022604176843566315134656708414464519408385320908770058426242182046036099369682666837535294508590933339713774506754454804566437238014395015441659815578195886881144619988903517323744930797772118940426352494648064855602929513813055903093333985081249126361438671186766870438662507236769243332188436297707797557187183447365919997036263911069643878484745604576845820269551794281151737141510933758773245615641874744031334465436942129291586031439695746541168597198800434353826923754793342408918621522363302377877407378212539924640317054721413357321721983711969091361378922393482979229631419180846308325881974738086791181536863351489762731306813593523113026624148133152485456829686144685535943002840522303908771307264316718290932856120452190085014986425566000075307482446338688052158921348757503339504072484752310914542858756797356171786640015793375670203631666303704802570491017393465683702610476559356043411705950393211207445828133301176916582369193419333682610734569180288507081127177706723159105291542541044777291758159531123921963270897349900631962784858298899428239624988436031406272061718310015492805037438069793312519479468538441525094768952304709338624852955787951059602473357043722031815736952822622054783775069297865917092966887749941501153944126600700945687533006484155993926926042014626028147079504405768902053440914062088716600539222144011990433595947688189070012937936933585403658524063385805115029309894623425502173623901165047901332925321632746050890470900170872522805310089808987440678173142731451571485525514414257769969017192807079933809481834523121161704748054899936680765593629202658850147596990172488188784504434504746876082907441306333250304440399302441348406703927398451732521268317265832902289000155792527297691994032969694345259916990995296226406929897996587331248229498147411235561437014453385231717015315440399932852090364557362980060878884959567719746925019267837515451328485209587403158320786552022744876947524293485198827932813361662653112006862568328349622356308955958281551236702570029360270301468456996820517927557133392043897320535482577761847535061301410739856129618561492979887495839445502112713094444309976860906624966683363452300026057895148141429275411358934549574369453219429779817301435604780846521263448985350473258319431848617781982104707530463212097722001155613852201989306957772195734698603563999245544831243901690490172770549958099441704906818858673497893769841432046290599575925462928538436507298081819873205245021133082521137620134405033909651927904943816288545956079828747829700505958095324683835192037885051592270232485239662355251293092453393819707646343650866064512794243422835766658996145673541699861141199233459346680534273475199264835331989075714433527221527267878351346926328916221911480687408403813795613112071884605941256122857578717852399442245505844463803275397977465484837880853561453484930915025868674664229582695153425597900061581215613533433004507943793452692966575908343586848304323838536827990457555539856078992664063577430912299610988522060679547810755524937996140645113312796385894836716195559053057117505087320109215918100716717582231968267516754985312771410818232278265535945676337966961476324049320052465150802578826154128438382350223893978690348117997204317235773437433474158657169545909384939552868550573538220452624026845449667861204248599537214222993405311635538765074667927433048896316170930799283867907328319461178764700448040389790021528635899555710087240418673158477873893189734637644911814399203756809021359630365595174203417650730935308159418466531924064825189228519633652944829606861974626579247052575013119484709985943934417862659828126588953374573338640603562638250555233790955305391571381487680815658625301391347256212904545302118049093184008336631950044402708704442395467264134709875440872518714443470050393990607479928298968174253435505352889754805805074001465486911942587691896058446336912257557393879768260144522401254869536273419865398360854194389986168668722186107610886615581023066042464783345766023919194508341939434197651439720166070670410537995587385180864516926638026882255798013712006272551756283669235198160036645297282550389388421932250338601459281526074879118533758300064642022713931623454014746721997611444916511427800414858890767300830485572623738802829137378026694834137372072030254366447246785537703019887236200367719543617293727482814949459991121282372120425435384081659249527883632676451968087959227975539366542150478162377891071594329451343359746168598260246234457578176362063090201221157800829609319879689896921513077249342445288622167567125876558075773408919875387132169358515633552742367783911514252310999101537300954992373660430753266840696730764989086512427848468477808880502964890011043935742259716438894625136676770140074788367683392851002458058846221681949359483854677106242830967636649087124167477215193713176262584480164284456186620699182506965685835781847597505698261768603269034649673034005225103181346626706561644961694892727935512868782706086068591186441461928140055709048582828911072804179796216591933045340624019575694280657032386054491019078440976395014201897836663725074478895501559378882823794967142496982336576141997031719749462154148849601576055668124113146978039560761106267979073542259025640500863993150897189933412826439590535595725020029171690477914572683277478425270061444994803248152710167646551501732068800457901610828300703393140537098305958148702898556170356185051841509727475417556401175028822440803141553732449173176533741199077829929097165988688504932966201200961423628457736822580567014557782662015062618556021435740953277427828090850698605293713322742579620775265536676388121724347901395440627335486435638548329815667312397819957611119700486458580126760971014591805921628724656282863469102520928214276487817739484284508500223096758421276498533684242165769271215980345215587411277960163170820549097066730224744443640963343311494392957010663579463569381026452837123158340307019838826287933460680450429613773194444354632949015683464822974721170132714298765410468842186224917937600859736323879704877143065792647360025354723258139514708742050377112286255976543458075281902608987455973851985917601852915733617458800835365396650176624809481430583328892316975649314935744045438746007108615779833133494770708982474250068826651932084888398600601252398649961183249544613988230322648894675509023038823330315889226273326076217862431585632513871716607376956493406726362594256090642017723324534569575686276640867879466240344251604200129140107966770957485178467059022208659158597151335199724427232293980646348282748514973031828117896695236490242463887602416581441951159257448853161454047259541607602428264914257095794825530121672427469689467749638165405300346308012064460417494488735864326945057991448587403607451540638003220924941645788132200101809308258231238748295811915854743674849187365731178255247571695066803082005551428586707481602831600790341804748853449934058176026795878841543762364786751382285213161074026733608389701420284742547529260744847584218247667734328969623030870693377845534214426453750746148035593578100548750297991557887010552288691116294231259077953553354869307804283768736881220199204308658220638838026585583826583891266277605613898244703199079250978438332180944504136951988650329503558580520229522327514735275190331576406889237931882366487782408469451803162301388860645929793795790240365206231738547495683501083950605561302889002887866751849467293826388955930614406105427796781072062006259945907026222859508153614682930633584896292473055950897802872693739807829279203218456330240134596137920416205588104084855250081334665560847347375666598350376882293740542511712506136989837739653348241443402291542339624871998236394130379352708296060621122189230706311638519845140137934190751695359695110973750293538797661493475338543100565198943729276824768479566659392441736696121846996279922896719000149143370235812419381314728391541596026088680546231613539719671092557718455882653718953784376214024429667684080552441391059420025699391930533152212174444643770633788216967242867019125127789938972527694138992263020530745100867813109066226575960424613491470590434630383404542186708272322816936936161509918284822128613048033114757474854079490395529133974619087495762130404856649135067309311086950498413023303218023903414367135882253202770661934819320387478808794171079781812978643434255438180360135329863993416122597290367437297769756727621078115400980609628228814467614981419450968804303462352311656557946801931230631691582602708318606116034057635154924372986520272406618887869102716422737826438548747531259532151054708794313357669655195917866340797812524353419923074182655395216932896701162496673291189771285277727597834666761535522054166733583184344181667539382083221544954048369292057494225047352311038775538504797442491713695473761831237123150033648689243599392231346214485549829701294335553686847681132241762965515812431509042625844818304513493604738333122369637349940606006271193879777237851920432899843004451178526607743043328200267320564027680215165891802365168155686939990685627441866912102012191726887503235109942498499473098161771611046957338576111931875963484935500789292312239658510442648501867131632049513075760715977280347811981793999611073187810209864954304516166524921505136063993161724714149405925258247694891886681634934356299225296511250906665996546041075513000751571768975105997741594666258856060018039938318318964579808424982178189006807583280501642170189804804047341112982907055244261825812583854087859518070854458213544547301945972857731473275570453326514982120687462839518156870251272144985640717014224492751700805521403379641238152864117134260566294191229198307496178496141313920368914534518686425377008386612316393128521464266198117356195210499666970760266025853567388134194806094518862675758973795094912366481143033317987645471394060289027572921757995277723705382359810621098164873707360427905190940307356701756163268994888450421965982134639684439407456517622551262547702413589574608085569445493604834849906604091761526375244511444259881657825442423395747195000347857462258532633436264425548416441746569524912909212308381478860025407414598655074269964748602202075184508559124083657660843991341431015387399980852072312115870522338645920230237434913971760262959499836524276807567619941192681578790348209972478474036726811251211798766995585137609784990949037595231569308968060410029363965191692606967877282479133876559773015960975620714640617708338692962829543242830910749184891394234182926152925458695356897081994356996027659561395535096318124825349634972988474544083820925654033345769693054320436579060712462787400316720763290127047690058534700390209831635805530584642879956941613536883157771707895704382578479107482514307539160974051656002468293987023760240180760253166011249265079909945953776300185763522953792825817031629293448124831960105743774108390750900853482463851870794115260415775384392876404230489004218011571221992058125452913836977537372584289825711083036536593032387408189540246248401840578149995697899081655507871681849087171611192859439360737131681657188805948787205395062540690520396912770207660464858715014983559137840662800407309309812545648215925389634368529498364216525902607217414505508378101785244558324415019561672188271050061901341602106430797559475369287736141222448190931897057251906065823676920823508486396947822091642605572500754344478221836596770251988654948419640461940170968885301083334129368175637050970860874779745388050524370569984809257387751970569352632923103251660931488667517679250835381987151966845817117651590537664271938468379874703887398149692514537179189778192042199821613798210943248465062231053362450676591610885543471898773802428127860000619579016813541808932762319691782519151936781074701188532725745371707484301408714038615301765618721172514134594456110502114297921869074353956740967097736603093101682119098188088740140111977329623954302641887337137258300858216453018730154357720954435969270818674641379582911231010503497714661866243001373362821683428427950552352765566496682250064390258446445432346408334161380485675049619723641000516710362053986969266238282800571192394127402828218006873207419177114053911920553903926775081457932158880872822612521248388499748004058870655841768004226653267944641064135088157242248827016664672131160033531097061254520551945479460080377685116326460664310189285751907482274029099936562193254058010426422440185702966356618629227370864629737077391565521529809483659954446085205839474417154750822078977173596815637539560997791115573380044935608907783351983067373013873340356511054467675779381506751283760382174597467534231171978760272134249579390284231304344073709695095377744850895138361323683908193601107229428774910762656980451619339230185153347882406884461904904939490172328183313986626034203832309476559541035879095337935976125118307042450105164888194003522260657652616044272500243520644898252622626605901886834782071349489086881760533941957402434424489025360768435487224077986136551768809501508087515731722536316562942459355683877501336226152607563734465417854708861275226110654979380530160549214517138424223554801654737536568377740788727653161291270264742192859486504931725252707262564541140792190168542578880316301816674094518333719467236259454184205807594560968911297052707791164212004032894959244541346444980077774820724365810164221232240488781068389879203457393940093359536922634761211057585717678914028299474597951094343538580868299949228028715299926325729920289020488497244657343262332506649935564860971291795394244231844656518589721487147558685140795865942360656972382944637251621159631631231364520463426558969079061496964131669956059089639382133298326458850773595382406883180716892308546592709382107160626032102479284676621272837511144582088654414004990956108183822494596357421152180850908813145460386726667474312596220010858239932705470478401120384522322764521643917937900017814706218289231241083888134042259423070851824926537738377798216496725505902445848328635190695574109273908103913695201549911958896413643919188595907056264773002604456899554182077265039394615507999561420206548383562787408511871879315503538387684732271811051225227541360524389715738280574121106171604868571845633598391050329215040692058389009229692476218163405340227185638488746979653750736502517230785772369967471521485858799872380195496556339130582336775856352471358318687703306592192616579696629972386230158806626867354412193184635974833631305683990652710614235294587794727203623412731591548121392748071909987620729476538522654799918558123966362695477184543510744712381430117818747885974534176076606955810735036172735493191964080172040260240679575416883673705433542166855118576803017545162723985473070520013624239850080242373546926914056532999791854520108581120363127586367694341330178659211665363449266483171901512159641821834352148919733027951063249615922455641000300113387764987207258500135823249680870132835331021570182522310377571171325162249819897906938752052121779483966649684196651968713393757431686045581317196476054571307066297526772358388948459658558372057971831874705454297845820606454281635919002801998573943634564920564328059849573115634583188988692287824826241609926986164584953639744912372988598318639308514162365266187800986374465858666335325701291019542064204200331637794128570293746689377128351856381161747646469271128876644741706062392710395821313263772671203332529582883132399904212873928580174696743679173893850679521066967487818476081808567313113062623486265838668667231299579957903516312342290253943253327684769543902766155907242921570159129117607232516571748986733540431102279687558885534954234845332736913505363221368574388199243519374193204681261426112048705204588184749536676425053220194323482397181665696782485090029704877739908474414635289387606877627540958414969546733940432177462068105127290221788755014489232622202593639425428416889714917497493450253807647949768827477703817600197656507781227411021499682138580753992324855416665515390916139732911999651565445482846067158866178276215154815798615282112618333415426066831573276620142856453323401284502667206683179481629903178519440660678751235135708780650059527711475287411591507590108428733609102928880142950685896142297613459985132663205671649202811972347835320168304994703476236000590963472774575102783305310313511277228981449537717801225045762962114636880936208492841277005168457842004262851624581496565472465794864690712247827262385532625835498513280359244667351160535202086405198703594412279843459041937292143883238140949220095191545287071206860247295184553842947274884507724804724967646634203243383712253228053807925857668627547345880002733610899236880013682646546052696501456637905281044693677153351536108940847012626185537183127654889819548993581803115554280348732096142180510515085765195975282709564182266197683272735907673179216506124364242716698184339207140371216429113030667790708774907800213788591569319680134014596876127311705433086209931480690306052823464850691273352629454997395933187873771875622605821763821639959538251933448264002746760483001605933921005459429702966968376853509822832649777663717337316478490071018650347610021434693775174536627961730514752343123253626473561270754916601641822129478716467238252392613879768107677422276728147250526485809237080991387188750914950880002713101048879826444337713369336549475420084228478755522551171087671275603674258471642854011430745264203855364849922094993266503498720482876218426126246596543442579017524434600706357295936593124745576506625467566986718559841909852961874102065814911419871303855661945981670785205559831301890249148105454022665549902373357218658841347483067245535279379379388839430401680950151637151344048190882575536511847963097845283761893003183277600621352892929611088116523568367345395144639802779261632604768748532284981272399947034473336283913585578057826100841828078979657649470248004511733861216343600369070677148501567414039749243250861046638131391848732711869933198374383808955893585412344034322354876644134211781019677559701934693176024009545874968181537118730009282921606471557674690623533527612046709373471742116307751379173574724414727333336633892232059130231567302736935102331750017872332003027761510974196280585230232965693179228184959368526877538933789554327724469170785425505456087067770514131142243811852381490145481219192526249325685485897102058606645140459812857921629824869375133360205463720334065542717260146712044807759549099817819469093528231725279260244215517419963147701663009713891908615792688317302257554039249315497403039113300672417472769643025614149448825468152363483523344949003029532894260199275823854056783963117260992365834973423900974231895896262391898552009101842457963240400555437830913934442812287878984577397575972293857298660978268520088335801599615331954003467312563342442910612743216796804840352193229311364415603167351279180996762191865904018262917030066496098015235406046768310107935121642397066800609008896523158286587740534246746688837482686546933715805260630389336500709785790173281880053659660467101552573396425781762937139003363495690674767828358693277778737046513705972786976518739218465046343075407690595320800273928322582689291999102799272550230107915041130086250257386761776856506035826991250335036466104727635782966368163005683782538478696505564676786604322309311269982689458630261129505597091004829659904003054132309060579984418139384900164123151764780297227683797741422665466893850912807584337359552967385164945571087996356080460323063425996755337226862785157838966340615603616922233231429072232020975315297185903066654753936695446450952142208486199211354170562478387841172266828000491600501163531214895834760159435355032040112544078605052594660330244743357439733360603592561813287630714336382166088710472479375634910733677832286984811770269700716644900825644894680135491833796434418544178176508837431946591878850205316027366357172769491892969607277873178953325170853631370335526526946764382976379597337778583130731981325608408789964929639770898348970466451604783992017967962510309322943527227026482259685254432753467823366703516226574597759384947014679523397804478723773566382761905921565729137804649599284229112390491574203027764959491320683149881732441888900323765692271404648625733757942729881546980040459189057607541626910653578471330979153547625764685383966789569482910277351879357581494393663202202345254116873441430635802072551357940948631047139276849834451810808302790553944405983216924465934027377194353634652421293691697481503124870114004418567249704048751261081389294313768781962582874090960381086053874589524947706498179573493688582173279416244801617315420304579053935334702519864126944192030906525988314419771926168741967116072268976375185287873001598658799976352301912934837641027227810088390121132084420663999649372698345640930235152652857104501186819800329267663913079393516277600680053091474330036636533656888938791041158962653289960790682796698792450307825483935295069782953781353721054613970128506103854342460481744147034250741481218901197638379986427354849522687057234923463262232599204696589059656445482252024944992253786955870388470127252138074333227359898813837786457085110712621463290342512634959271035244407636064228249752343608563069404979454835951142592586906116982248911641352126470871304739760493614297789528164303169393928807052924341539110435268317223228439168220922756983853288914807652312981213100516516478703616213476035961464245000876527268666997879350902924928397938563330420495650234029943028804386397264081726536979719808446272975960724724143339950688203392842661601177385845578217017821288647499483003276124432944486262402538949504411539523464854293476119273730077894446580550346416433184761119194459902826009508509172890942334216594578019083294299560878275697565907771463034247876611663931268475706689042818625554344409131362193923142680620844941420314777278882856606119103536851511370372984318823906057766438576041599530775417277436144342396904505444766603551079203304507447024295387320937533175797412736662184985307799375245742072906503106586905288689517516262608128819772147583528014746884998471714094829625821804700875742745544081474874457940150269709717983632435068867871510923418945833984706586723758650715113509967722994122588509063715012575476921960431392333509102437618034025101028867062320786741463200947413187513848774639988268100687996324557628604506923416776256690239188676959633040504390010233063599324494275854589986465331492056898473573727259050108941738986160467395383530181691093871014684219577176830033074567578821735085095632011164956866345284670344109852937928968648112535813660669597106647950221400718444997314369444782744894892749685823743891785996288521331444833686387034955280658722271918619526952338092854666084001380863250326147284735533722380782198889429478009421371009968053834406948322080668331942514309487528563363471558938526867805606562830000212673816280925104107904815380668006405922601687564806710245971518621752707960361298743508263501288326687115209445714917864911697647374806746120819049976198845439536621400382187503643131687332773153669261652133854136327767860433567305401097776977403057692567904297683797452372551812585277033452880896977056451450331112892446797428758532620829935325594947785037673071734536281557171497047483508925468874690982283371021632110189239816254300571834333526654174607825939273619949140137231100485063283943715548909085093350472948341849253802102768495131318005596465258549738410993137032418624038360897461446607802448830432257196380949081932635311921418228013290865144430207602262426305992517768592563478541877706685290758971437028098485981202252448712973735317640640955242392342828969256141233679387223171650183494561757429512841816354889759650207364621700112078523446187043571527724174256045359826524678061416924461257043111329086270221787900214041164118322298951381555427758450924971051200575572889362035377294321725708551082150419526387722034692165995692410983201424313856260400312451011543302848411924518251851234920421492543050070942160830216921070483249915758219890772065092315500400342196486512339025728735276509448672700872573650383804475305257682518827875213725068723519466578610869705159869713570963607179317308694605678075282886975428913978747049410634461773152776879727828639586285011462181446050331329964712791469184772879170967978076970582219035822232130180582157931178478945354503645628970026605452082531382957962254816100377843672939671297919252304739425471524437873306988209975847399218658299692994963355705274640262685617729725597473016151960964882720083629514792756543217759757299837189380232689345068901974021030256067732405225379444463381395712908076669715982842014564103782044968449717154897727928137038791177876219159174109896049327295305784667714139938719737686622390609862441274201582244614838624407529641481131755102394241382761770028138678915084136500889297195216903207608644745669309840569341148138203919361503541657962268571245188950527595741805376732863348826933147782117893896334150660905450668172790808403766984049492051027611227914627868399090193363496157665470485488794306588906869090316770605907739067283875244631236217410370392792132717303207924308639493178269611513173335020195809172397348254354995453765618174263407126319974550637358188087824426034584365533611107328944237832001786318879844952926132347920312201055870997276402642415592957939742029981564373736835887221080734060048887868216705015463511222394692050485710297571618268252767585230166951851815633596535626220919221987238388876907551998074000593038949354551408009363769578879613426272135311851027637564334534880323267068846655784016870048161669354369703794836530932254945962026664144711919928042014718462477409866989637892872528855182571832738156435994620345922092056582843810795382899479748844401438512851799048319025131194501737264291573983355025024875911772691469972843292828052236612365727329237723046681695245814878936891927585771219959840279255930948450482859771588055584166749452976316216103415553746807818014361719074119245680817285655863100941266489321573577123151372166243551558656526592930884943705159321030216268058849689860008687418896784713000122134346380823486073864539038430345484310678920401232651564931446371142472952695973332364801451919418514820283490028418478906268421160316486930025795748095412188762106302719956677614726033323873232281717746783283720488641198113217717571738426829585255655511023326100261701574624928318154193378449321004445648536414805620736141741143534807999333986126551699538104160537057960114168126585630250178374252283394206239175203852521038259396825837868778167813110893474027218191154907155046801693004948100250381345827152792488814578590140946013762336339992948208468289855868217004253926011662108664551525117176596997315932257379463059304441718642369456589138847770308721092058361707810355999754850651428224601843325722680337666336538341358375549223019649307979516332911091866235568633785728701891238975984663969264739311680463983152528965944706322572667330549684152619225177065989433014224294677888876116352978205986010295990153036849481372915075808698638552740367438758095968608229836070921373073932963119759776864035532564461759337430045398956851237210984658453192126599799097845136209580914742331730770887741475043924564258397458925661558637252981225093753323240665895350039101113359652729595404818423228394170455816493890474649036123840155667584535517862768301974385677039469970734237725385157286251813121934159658275309415558621629719892297644820538387840276957355038684921698039835354660461844749494847220116626207603599564768686022781145286533914653097830567859535343595449475976281630084466561823941286384766135588229246956905254194980183491752658512884581988440157997183996630951128184869010836665360195701599869613187538671868803822233015836366302858417182162469681276541369379121877166120043635764101283532527349868240719648617843197719553911555201356325768998405500040828849606190360723428288596132483871961596621117458453357062403432646064941336682490607003443699783522595298099471390596374316113883420961879391636397334462480957883059259284634879829122958821614282804030248815536954314277966493035927071686350921435985898103431665760482155162006377584568401996156073710498007253812786350212396080338127135255152296403935326636955148070259372947555323315062366607634780786528154427678388840932426710568248785730135081667843674991975797852620367590069568876074159140257229413781341710419410242491260082273301134626573203661497616157263857208026009165585298606839438220740241663480309707174806204049313660415404491319068173059401368923580492319892866224501523081229447407263374555156980702314543653041345076460873061837695540752476784543604393198003811966465537402194104287013554792643351750692759564047829565279198363127391822189215674971120329081330435216757059758251397068401496672007492455327568080015320651578846620650698625375339296829168103669715574027811345940305545467201645269296424707046623608777851232101441408217217033797658387979369715528987072403591970662650871201434263740740352767434691865185933631213164406713110972609883826044434769818299320791414691562223596656657205638133328477171729216446187891766048287627135159438084968993106591916843590159626620911258585732719070793825477751390530765889536614931676505751945227502073567739116413388899831471809851926829064794416095463747197859584248202991437707102271248177095905364780569715425959737833159883744400744653127140802413837475345628275991814662164320410099091487151828467281526264773628201315523517733625237406746880989699388750940192785212247377700498570544521721607870870248126393133186181782752318835905041209231316247671929272783268304965672905239727460336574259142405328455271915211644727632487419038650207145790419873260233088210798705061260241478013710643592343968567193695817717428514006755760123435070245018404015160246765228504585870993697131350741688838481140609059560756298767316995512005569139436434614285957538237578805545147994755886875551721739618357878702341834975412569336526108673598982729190637383683673511879563168102544466817596388501674383248829991437665310813076261056396401058709308724166459105528319432888044741273890151265720242012115017957593154589286104398846101695212912270810036968110719990858407741952074291895424653562638252589634609985764046904323399793493111055963773745006876740695421038270384864580839100174348512506598744730487152875727573127670452105500855629277133195248584378293497505007945071306082380120407997226151759781048956343576177931739610952364156585003270522006008788110947333887537636161157856687629564756345432816119984133627629274671583134489780901632827626432656333326198425217999968595705023710161368184607488539360692082997105751266729066219941669498779834622449120711313335301156943793774857268931130954908241552200397082835601318282127426596914151285306665954935892868982350923557518920274267095862553558084521686401397831637909403472739633684227431691848412587360448556924555362803874350940963451372225170060979483957840034907903418942919005431696195139628197772692104178585337527921779507625937183703985958382881567599409328136311695391145104571644144028253680785731280530898974660872315886279239420758001467410092997817445163285295400613980733734182085331877622594153331701843358709460570701932536505772846980064069556484342066285240860432437920234451064475869996476839000583018666267296307257282061849095593399725735494043773620659863445537258912387339977053035076181482671643001321237732148378932177421317640597800572665843370505403165524488745279233764032867206117071600899823316020320516262583568760010443777762962152429930601898777847589095092077143438759023695763651668285781947416891919679627707960803500893567303977833183851282387280160749477098000650484190560328308441912106061951768959739398977780294696685996187410519732102520979528630052623715522196920876849954079984651898592989666105109850537236068207280740816587901841453748075068547763532392588150471723658648225914557676458708995250734364957693229601887593317347150647800839539041905814373081674168861307628028975429267859148590567889611546762223882772612781604565752352202625746479703120644977735244753474341942274620456719215166965923235370153409086554036721779450505725653747137475116799187291646313374451096722319882784147834881775857287357348450606242714680287902873522869941350313728015840030030201305115415486377372251529747885638838527149915400275564612880777627352432070388131717352684082706793155538766324308359529738468271869623591905998143139987924814638510062937039246184429706225384514789932189976883820623770970519576463741752268118716899642254393899778730923677182282355662501032092453576450483632040140190405818987148528252682652330736144938630664620300124094278333282654767958362884300236068960243791237150105508303208237133844237964594358723704621733041444413388839188765589256151236425704435787334609277328425333193075603495367466102109710142342708466213493309020854874834466483699582816733275422272901507307740060030419140784942623802695553107996884620739282490965211201047045339038523458183634214244796307035637791622873229115927977124967826648968366861363540973903082948433316072803127066325876111927061590601000587450889441925028491486637170067863234646897533448397554628151155604463737531080945601660759381899550502144478335037975033829288663675342070840503420239110156870402353461393219200701544334003504121789307145256835513214049917523631928359027960755622604835701159990882770501001067166825796482833142151876940906525320517423341515442819983168386909336833156623616079493729312297115570007378773858624561501338771129510965042203829234354062651699901584673617084218873503080341249780984052967649633950969139959456274278253235400968966185957859444218203034699630603781882518573120732422672245141036767111056186354899508979183261931025823948799985752465510359155961309070128117011443391688737897311253968816111025287899446813291681619753512551641584228065181065958567773946999755999262613102016193699912093927440421434303648395865122367828784265291887168144333231045911651375206962199854904997676634721269771797875726850403730998597198255182456178238902147235009359747391702461303143916050887614286629316448415012823024103259354847329611717770404770316269410348016574767107785915415873999258844377887180046501836225612008313409887739426503894958295626752943511874140943844453185096621855704102548105639095462589594164249715781442765893026878260032747092586837831176761253778198513216459176447480637672606624265121508937925970108636257838527929473280314966142333332867647245706701041385953524403270601261279400831814291671783563157700663928466968750709060705761506093047966068640409394857651787637329084668232968430060289074812445757161494027248641645424988594744003801289008340283732352698340613716355029643111924958034475598471452941966151688694066993482451351592282397698308846684356724274648120036895487979595806143047480585908843058250446536914788993391409479619847358379405651334302090666955295916311861139015167382298014037771949986554252427816911420551297516548850678869015315217927845837773680019514186259556621428389174369235067296032244302728769611060318868082882432390674982376147650477389634248597779701173105485121933422659454168876208020628135417096197169760864070824949719261709230424022228296090175313029300582268042365434937656387296248958328466121728126359756897224703993355059578494499119454208630381535030439980344945449898589239686088847869616172665350007509921976409521870840687868819156714863066930891711163944161445837132852473129847950808736078230242307803342113204485448101940213665860675601759412550189370536423709417845508676528052777314419668368199925771926887952715639919498162604410158716082617229858252252086899860558254155458518619578012605048401792443665858526375431683933546635838091631998671032582316355884870982064153483797171292698742951749917504549531944199672696388101443301181568834311885097272045465322303888454578180584613808531827749586447145788010664533763022992105316975647698347885731808375995396524782626640247604222638274008730437718518790948414428932447824642576787336742271756969365003940781182757671570227873081311141960335687071221408943046120181687672924839353120497422364503401781333871155088849331860821600762284487002276364951839215746225593265536592410924446413462630141610181877931170117581295171580504806615070294371414266089373235465384088484098732658869812127454227692705228470325271661603479481702677795800491497029888945912188171149554727066607697169782095514805525168865420925415139662301918627646378399313011360533322314728705218941875849279874965711060257495714950921704420454545754184039556246657302704663831316707483448946303939701211582616088957329397314439384365371382797757823041016783489075962176482146893957218635952443372265372201805258139580385994853488565562517660290811198130973084191279069172637272814283767987697613340847219959982810716293841881598714870764237743981456522352311724483928529780369143301167336807154373039232940443392200790008997320031300762121043851274356915139514699318904989862538214650986140284345772297872926015253455001052793771991366012025995368134599435350008211993331861350524182762617535885938609189908223118425645690450487936302462036710637442776300363051543617929073039901555173818934856547987680515725363735710184989310250666358752311961347907488185127143136721517820754193024274374011745059522893535338275585102441104455989823550512564083173101726456016479723255547851182734889093613386147665625626913772848121090516547013800121473727155018993392358380444182053476908690049393878757067989980335904318355008836344744063938012818555422209039119375718187859736408762313006012415914846629857763382456741409594088437856371253419081393322089390656070210238344617549052045290481014757352924214534417993347807223028483072594788824728094285043900996049845272252321617009129604972388673954085938842681619791029750136238020672850474607477467150696298721649266954513862822373092288221617267803862272793681532598514447517337273487575707186848366948117580522010675476471916911350513119291071907865174209840155536537462402833837490560259126386742994173333272775646007756613672560587350008120633047954444518248002249288710863330752585678591624448344405564287638546243320280744660430027630671101212086165672592459460412355145091086203306293529160937125860965195785684860234993667749595822424101877028639139931599302760897285383941828980292114547407743385167564366780300594315788438858654489311252195557195852482295515134207857703300606038650943240183306932076520963750052293655724054032855333139830819702954422021741484332824199944190602951294828383946386858899514284743446281010711371245066082271825100478838563624753997658388239549328148022459710091041939513690656769893817196381305922195321907326143844794041597123344273362065980764966933188737242824449635703992586076890374423359391831738596367215878587171774683564891954630705450680691764674450873481484766927153976325612724247469709240665204804728035957968959677407511071922248677884478417901380519527123301413292805260467635987549980187452229660340510441452244193184214736532034107118767480358086205625169370320593281309868407237198461014278275744219256538090816820577424503246817264485760950099985080073318304945163682817598054575398358822955796731044467005447251145865686966832751641370617321076034060569716075122542862047760478687733484440069024669721529222269208388455247146024863583189995027283378479480086267810128584430309493181640632517698552928222531074224696106259097339842264884210550727646019415781909002454478761739235244572036569983005352714626042549744137339816287913406642236353646687535800450207852773534039019277971678149686969227408334966990175549785267117899932241856154936219784878304693916620974077236218205748694986352757387025753811082668069331965977963403717083191146091015876642866058551137872384430155737549508507009167041009022013435561541126534605429138621405603253702051421033402294562541449804090916994873344024397165351592680382644128816449348026134637928443784705451645351726657975437885166441388514725898962148909082590125575468069522461507279383733152255379897686745863296849447811166116356665439636201494603380908831660005324573294433287103430576694417274579472813817631701242398191993980000647939343151225238482404104674119600977919706797282775315398460785163153182658059350924459808179262899771237083299692367627751706586378320219303324873451651589114242194996737630304284701082808790089024432260203348510437566986335653340562197895979356354760313427825135153990226030080127871581819131388710676094752808251207400469259212370511553507949783829546860703148758626536976133800359431282126156174760805838370023552844352507075164589630995162276520691316380371203962437185874736518490484732268143183854554814087786290335180022063700739844897496027561656869757861031251568305867980249886905301920027742993541098277895814655868679038702315285466382669401794584693283385268987341001376302697985447114072958739777411631120788313111644364729318077483434791222396467662466275181762433254398516878865848878938637811598997022218348381173502505415719974512018165427166456301430450053449164407548794816500836313919738741213277045896516031911025574031933076470738278652467935707653968519299143287340186780096632093589054007494966241699051337343405473287904056912702934650107483898895017798850006695592551775548825811593226006195128174407079379005801478218679789693895442592764661030403191967012636144980377455589921020653363474316265026688602760312431263652683233488748285383438843634890094783385340538836799432635128877428516742691770163450784777861865399181914009154045425718581723094733728350539071459448595459484728142025820404260886728089756917873900873254415218400974467229679061362927370841689127398397571447447836967896873511231718570918553683613564075572925043463385051611460414677418911911570869961441666656398279768310043658641548263110944416923604152112446629569601449758554663255108878238345355288876492035640099693336005768419015974390584189915580701133781962547060132392172806337183570873115827369544395922310273878272159175084880514910889776237766298977786753248249020477736184750030071660788655542177090713951541963461179558895334617875472862450762122166352792759101068032511341915065889731364372619181919011569099330384591774530625476431308917103862928874145765418344753337689092032459850534960684044695134295634826755467122531181996484739929171318439615378987893909459437588392323659833043054877202196976055233844412541537231944911274764505275199935761440245726489419360850134844033381007390976541020707088934628372833963885516331052328243074033774136637866134940071330841273274247923593235101773751205253912387012051256211327746610873225148061019920287458196388056974098651978103367684248034935972045419980699481039167664722361217173082302988693282670602538449229851854303233711246117830131494179090737020268932360498777672713265560672256755147857010780352074389052933122877196152648267114693202898493528756014218458867378171500692950695255864031879260564619320026618193402717755505060297110729277392639484331637319954338766875978342513295664200356923519581103096208292819003119334432722851525045987714647046071725490634849311502867478141042154366632718165338851216021775736545719955815140405245337317580463997282740718329308911488746877195098678210117333621358784174887145911591439586246208157748195324165905646827200014344652403631841250417625418921185874414659671860156001330223935738406923053813302088846757291187605841078878848709817068615552014964598786289290386905723401823889640161593190807710462009277466883299866761867358640887062637378865960061403653118700395867928713346439223670902873763257645562011704073310034813221607867372085988569255642296109577981505072009846761037785788217144019572577793211952015818404957342575720513647906677155505117363452879306595854441248675964583924899802985848106126413285177940612045641358385119050201494571634750751733281909143380645859585866192353998757382704424705944101409925317282150400900490862441784420911436605127994366605490801096526845489959043583561675389889686118751137615991557576292198032488682469504804607076291957837945818016263923389337768640716793304136011231562157986424818953637757634454270152405714480330678585938873551064410127260448446782194104878055723571342480643995442443049640919998446468133827962792856439040843547981758340612492447687842032146626826747536032199295035476761378320032916370242039081596440786004829895658061878295013525264985693982499891711185605911455362897960699692190336619109206308466949390590631589449099887956706187673040523311515273491435943100290385967948642780768933670448933567548679252594417780826165060482700950838209607112078381054588084716919393040438400900332778929534894706285411901777885155527253460241831775690187039298540625134261446428269168410048317909264043506373774796375861574705060785534764115331002320838162211506221273501119301431745544778040810631726306305115141041160129799187437060235181290686476352484778178873988183285623427600183186506719159943769935920721706652462585393396233028206024954510225715831554319246898190190307581932688829326694543634658467037877597762958004412784286737946848140539161438424846845914994617148230970409824131869714630028377722220795862241795222985950481895986515068147938841182999501899502696896672538959253666329921449460592700406535557836822817445125198433734533498891260740999036457022476727535847323355042883165969411429719071260568311656048454346181576301863508132922771641095831900700722569950574756260828299388270811899411443996728016495767718479544936114724210817530635673731080551038072139723250667225266938176948265482818667764230236120910401155460821992273390697365491702208895900782416526024094589837431822814718191877639666783737500411491574503530513454156534534672106404306813770800949961943282863268517455744970061732041442468030749292415814090166655282049757526734915000027203241277552461172792408337762880287144653565062310869293900101744958881700859826339974025264983446328792204309817462192372608894971702693983747630428434265680886271133873784544725862945841746104643040260926941618427332014599786227013642874524654327176730949928448101251516798854199923661310070416271768410994918952414099365467635121363938740213175337989243472297549198669398649929172872351678607425228075761834674853628751569453097574777743098667963177060512811555080625489685014888347760605188653236400142127604498534029970875883698703690091678337867927567039148062519402202379505105000488270951315099556574764413977476146465169134581321509961747258092820589746739036182337934013685184699915676382499369948495820150502896414303579864867280523912568511080271283986774926209799733663502097457271936016781171501922131295306366971705526714784793796565836381123253749450337845061434221997399377030597491738577292843911426793616786293599714500328641133347832666164263200890126699486635322998431097538775588721466901438276694425769067894440240354480502929647425880428548167483303897899282332877331510623022123376525742602562176499661686632968021472351803677178116770438279180514994983096535255026784642039025698783928112056099706325103726426716452601910776210744266388023604915039351183798558651309799392085583889533638296838078049069055344690697963424877888743091586192884666140933373981582987492301484644403283835171541755544428772149473690025843400219668862799443079885623947364780410420401349093045333069607954505775536187197911248918545371861958494863088235122905353539671897180359169189575550296465674341834819135540762764132092372303408987494807416443964227545159476586104054899494521736343578107017021218192743726845732623365043807371751099597027045354768640967320442419383697998526592678069170814690250905950864442769523053006550419401207610408169542432935876640905871080222952442897807952176693414744962257104281324571328357669673995667977096603116667827918469901521715748702241841268253627919769615578748922850894260072028586906064619125974578732811072440434908750209505978301690639574939631367835344036737694201033855762045624038144243549820735452345030344002935929876455071378695349290588576151848415952015660307014402174704283615276527725318384932701902012132448104469301991860214853137768865459518039649421039154481062004445189880531630757981827837921501169038096075359144202872676683522451711055068223481612405848561684881258255642814829831996463693324818406765634355754520046347966579159624962283617711554185040535000998068726796898521949795583447380164006559637854914508639691766436513897697435960044161022966647381551687628432076272364917453391976058371813098575716528155343614983724313933395832785666285761086067831725454451847270676212154615827263770113623696539595642813050039416017222651957929899712047739859371007726420436503434733714752808195417169633776628299151628746109733105260228807687826704234623945180879124985482064715554607820461614712195762165823844512366155160199665749400153225861422822577021056600515657765743689804059872141770893013746915563760328039139789522020438956802824768477772231676145439840458921613101682372555372759786960666122873265794045618460717463852359682528955093337050689232723398759172847487958794658713838863478439206785758644531474007206248511869100121701756982570868004094837956381000098924826700846957476600954317604771798272610519910788244161408355166779999606027673516023247127695037152257383914708702496543063041668849339478517239880053455206951133289832934121979357103054743958522558620355015192608048843554786725843316350095436249238008889264913277843032135495940971659868477090031272727707016538181071583829174586894442999897780655772172983893069520550613326292832142040683108065379208150234130207064049919597367925445326029394173115838957495760643691989773879267656743762330720174681244377353783223281515555443514125967644912407925171185072172119549333684155423411201660095041175508359209508333199215071358337117114814173723149144692033273616305015861095939760655316774395938592534892591200764024149828009094185464611997249225743939250559577573395348847650134021901814052069288704031353939818480046288331017203597047418601969498153420612289904364029972131121563281637370077091195197608386412666810186360524737295204292849603439603857370599539834963386843049987181524929597508906590219225892034275329258853543830261800451052215185571462407598966493193959945180600407860298634584854440338852621097351004243580066785379579133204745106292376869369499606022369888728452859955931237786115408449523399299625594749557703918023375064069517291357951184503647042052511175580783510513153296867148273272680623591801218791353125952957468327883818099126243669595857710303426182634715600339322895212544071251007904855215016618624628332575872892527940113759456474215790473340943767455227856022946413189403980573128778086592195010852554218924611745924693206671746881913426588107383011605264601728703265485871442937821197515710665760746605324124659461685216320177902598448015379643892422825142231869954487675308680424546758238096372013493127626109364648922686290985649050490003590240185027039071535630126158771520607557755830036239705614783765856968372485830615660557771739059808014291423341719178329773113137639719486699321769685997145312426604018254796349735389658230691368151187003849989855869980015092585411591432334503017469844493901431842565747516119808501714885839667123060690942427024753257113254541624574873698027310740004508613012799609877360680112578893691878493009544302946806234580358515804567631176483932992936012971869932486883432018630843964857147863348655774167841848779750224542930335039497633006221535096707904691424470669989273194811066034908125127756161483690547500807571155977826537376691453009662176948200303016982199664279976452872253086036297894227074820807714781599962318841585991834344159963682981795940108872581589727185922693517936398272532922633617597072357615609155965589417166396828228563297964052606187854855456583696883407491006350997699276401161455565201278453857332236499669410230658003303565476508284549341414964948935124977431650004193566839374231492262921184173605931134071384770391116062677651940604753631195848041188971237833007158956947972198917338101959557202205643950819004538571134929212402582359008012037291866839523214331747745487030593762530853803521860026547818823020891562678141489099023801385675427650853501267664244694408210433547384560935793608422622475120624629789308975242616910318108423416422192842445984568096749508174759975185183534025897347817306162181931315351469878267061725831637805429260374027076592168353133324934180270478183694295486973915000793278344593141874043337419395323656797483161690857004677216521960305803031919382435956447069705418707158113658793991898314535913416419800803954364418703003658953043989410013884455548788369686265446458498917420187820449962153405021550092506422278228526084367454903693384520425227546852754172819694243799580794587374805102343424868608124196122520297451113718959585950232325859867679536807804432258002164987889406199369532635289739457341720671535226569154283750674634452959087282377800540706520510091943696563609946507955638175560777035371319864518325758020640649714876464839648962462506658887687688224075422695429489485184646762120308388983823922685083174405904423821254654769996973510387978555515495159417000594224061167975215878238914022974084561871036974405243041107183758944438604961102587191467444974073751433394188644564713937343107262703993866382626433264210192089540826929618361490379288450226138933789702924164372413288492893384792451094759617981995882280939925632494353173488688385401243521794632987070042422115301899207710868265953712712922531845513049706446111018490922543231418140380357845693881654618827931736532786726525340401188682900762742902519044359701018498509786478645196271050517749706517594488275402637395876790979435924714893334814652861675551836792327927638437492628568779572396955002004384557528996919318247527656600484436623608170105827825953493719800404207127633148434051513804937535246132734345660069901756054869079147274395869103162715634142755179729846226261314450619207519176383416808647611707729637998842515949020048135518439951019808769139104484385576736794706024664784160442953327456640639767354701644328737806497674060050185577927128495333207146031907241497026536337331830654440364062450300910734581659929428596705424882771206003101394283061008227908692945653906071439887783557711048385575657910711915110790106636833305794460402700309227955697961389426986566848527400786856006053389324509713463786006583454581892394005023659338848462627083614947767451138563682815117485826026503036250160339384314442662689533241087793384759839237466035516980502828005310212056454633075168229708089671038139987054514887963082698872231642024389952489675477712192832710058640200686127645218390445470811502118720812102049939132045550033966877184762592607108462783838304178159760508329540044664926553497541841034943760782530015888715867446767188053278618985638897528850236726464588083365373743212563132747695857549192157468267684735393883816479301000181158242801522139228330485804837367630827123890379285548706041317951775487712620428549306820484441546603360093170362285930050316168155282401609346627164983048705690164409704937372798582541584443578176716852107560400099151497424739260951701966505200000638128515359555613969239183051527542398402291805969449455880650968321863735271117134762241290628123366839171560342120942777668362657850232649628343495166955616266828689076360892417333192750747212670832873474057085008445475602925175330412502996994914680670170330029301557769471899418842892319112768458164380652425886377150929116206449192619351678544138019897454933682296733073291083626042363984300723224496017174288175599279357231908794676419601808466732743103634173469393449231757883908014729333369450825209142287359562872005428699789782208227108880751303529049262038130123066753808801063766881429905773129578778919656715387606105370220234218629628657138406813375860147680697325049285595484993817920752577511378555301475237512918200843835879866721254181245923005482885871753391021066044550809742580600090106823194542642029106371549246833439635582760111483707368437768901968093345686003951163211924682979755576032239798358046625004075599887501903902593533908666714536998979440937153346235230380319367608112002825258173988439581598127889200088772963066075051668195132584610549319197086079955003520055434033563538653236666686271726004411764400691926674597034315518475177517934372385355254842338847887460459638280931438433446039072451766529903108268433593259630017653377672801217318430470822890931492085271405078322456935866389802046691321885782093329677665667329014946110428749432485811330217805769507583853387291606422453728480774735642478921467390490948270444453696103194267308866486906374812864303547199983989483084805021399647543137043640644204101255027274027539475966739722288333599703215276368803050645518218672635441592821519516645836651675375441394874265207600535966703415568665444495445656323056736900518653700869521733895723947525656127318134640685798115212179693263852863921798564761220593478918858474348960243927262707838834460746258405966213335894661239965512086457441062334802297907214671882055294405343572303295556521881649631341701560589218114677375453387742141944237476911274300785828918893580261645114213140992846740824440799429838920079290977482669879781587070566456001364184050363134354417027456911756702158912268647682571868742327900276289808306317983098582183544703450878175141309077958228573089173172084501213680353120802777255429570086557391946059843261183128999274541061507335949131646834733705570273303650456275831255541853797467287087222282529149648571878460628595582122812741445353248642883378189342558109137956117465015067226213896556880853607701890972976357679071352392990834259863332064470184310493435119412789973231245256401042639403587643360795930102401919747841254526501999500861778120629665214442054904421524114080619631562486805782773735104175013084543568153021293150853343666352565728788596236670154541426646384734156919401427836677347392680363792604683638812979260039429737714130630790807226940798013757007916649487404200061238071372642667485837366252281713778926697431868035548020606292907141879580160092685519998357310857190570866200188628294515914104457505522588963737997560875625019824901293246816319472864184461221590772149704370484927646089195496880753256036923157041566032460651228808746733156466660964982509491941273066621070846195786848215554306201564728635494047128369609908087147849773830521245230916791461021699489194008933549506087177379306164319857941014603136823633194091450358136341799850703275441242083728149012760477482854870342073945518496730795330198262404760912075727223682739609858502209346393306173584528775278226966192736063762452763547805307534634801750198755423692630553038096722040341532601348679789299899508105711069884638054043180276264793859439428368765198361695315694776824465586786942944592061794324261534583322528249971665924014886726560896003226275226942929856067403796290733684900565544201409907886038794575689542927554410778807249997367512779551863484307879875879375566967381377027544837894045247992493998964970515853123184748796819681199536484299459057111076869142856772337760417863653592363086856936942581763057134883571590080364291290662627634101051575212572188982139287798208664534686438389429442704902630164593004267511207560794298819059021763303646039572866532705569498352973422567668963097258643187527996682991963498210436833309128956946398793327329770951341771563273086656736944203947248879444500894161101386150536664264783029538906164961330450758209636286130953082859955428858718161009424092701480013678758624279234704838264225878407618542488385659639598934970662805407532269079205424828813772817187875377993208679242773600295193632873043222426616810528651034752618590916164750625571638912838045173435555570666385465949896158068064849599189249594520324343332835550149763866189583246401565773604323267101679328290124285089543504781689973542995103129945564995069222142428467347798309083977509497656505511337996745325236304123985248978611300909566852759669987036508139970825208245431270890947650825013391384920171401610074453427155223480965403143548856951609682547514452232779733573878018166909349628619474110356284782666881402463262399431699944558650635747761321123053971348144967942810556666839733569021127571177944870779913926823282073436978926908120461965335887878921873307533135680175759204396262303262959172180976662981769163378691653892118200188632724072415769133998786303822676884829439661756255716395318833475468520037071782948456520891093621647489505097758448511833793740099349077397648952296470105492965121272746656176054018730618844713879578630355639162463756748190993576095363211360700592002933781613540292674188666422140280425245285775008086045920343408223198729816582992750472878147249285410422120513477931392709137458962137023299924458224406873556284810529415560649047485641962647070996123945184289608061527743587278167498908957221638025633005863947728692469013944420565293471899551804505732378527707763240103106778719451044870101939001794223632017288788859594664841417877169871055097717848083800445898904262184658611428514744015028682147117360106298720916530594394412704755280972448841942675847989709575587693729239013884642463578505897941539570738722592343229198976127602259997336048981226760746295272116839354998378002321973201686894889494002397950042680814913355487166468165153114034803300480358389129666075253334187137217886150431251562311192536906202977309864778569171110881606361597027150753242160174316502540251906791502135225466372017650923837292278394824859436770986569841752575940029935885836086092047824812380745348121677590100883339014090153634695263315169261415538082555156383432597420865451349448782161931130278096559264786071162072640795114847050874712732575394660110903707982827571618417439812546808421872274305259258750822733753522521552196190153317041459778811223531071862892823235198361412774274473515773625057443874011690491090805885702857269069542000015997793469162878975546070353926908510631706051283685078323287892145553139779055232891513295646495717955423219973050198469733421261575054179372131893420668847805653714380916253149842954749453052796358084583049915942736587020666251729274045422035888470693871815438160593351170080142080937086448114771779903798442823539205501322055133114247343241227400019445166237952164426911550218382980219645524298721527044846358691636780810960696456707700537359245498642982415360815533354057673032575310699981276374769257692345345948427089387965887192802543583007617590894155215625971381444016109140271576989734095653732935431091005756901071033300777435348113315657677981905349468718784019831093710003696674136223423066398526777691637396880320571856803360881642897068632199614565361488828865257903799285604052889174216010596041839560597500140041221188994619026520526046379389918929950255995180979587206696192377135773779738185322090304447411031279949395373944773499246754591291185154201373431344607663571395200020733833076764174171333982568996284327972238769927872483134642373447596608614851785762810644810352201986922407526049266740609844908801293508708361255933655918873402657735415594530641719673359414600337420514883369266448776653741614800736114922874380303047458584289854069185823189350501053082048293761835328485203841456131922232855352235377109943803614019937883126137455003237196455878997865306163698674201377391805529722949182098271187416094634639810317056510494831425532906175104579114992002710532613582897392236983320258835251563153177502155056931306689912053915237942344653594365367556691635265775486172010334983846630163639261373089435022229343445679804666627154864046249171686548454391405869090108727901026044395394887107051341430747388197247723522666703443890639219550441087166274184220702387838169187821543692725749772321997414632014769947359959091933887883206322091546106527215455560221271068441131319745354622487761137531725911378628698572014966937272141919645597799173219076928283656566036071544525937900062002774603478059180875647951414355950723743962469228499296940033342255302361361000408834065133645931003519967837058079273554628698237539008318916143026297161123131684934180244060796627936301343503006299549370301720478028770346287793994482003292431796320191035346432117902621727216792259974075246591779084505408341617313928546823114433962565893097923107527948948781963068555338946652105446673077096203307662548877616041261943877843926810101612621177675551659728487830200510549258273658204534206908554566236315244047860953195806956425864370382201707453258124453477992083528831202673504350241080448872501053176613494563855963783686319986213789599201295340236007042012559726029561335864374999128967669617568138987751920229894034382589024774599415890669993515939604438920543797623400401577963353737244912591695050329019373475517986357083939919350145865123945097469554797424789316317873029138218447086919480244935677934193480524585192726466192576231564362081014526694015011553700279977421625069419064839096459962336854904727366982454724243445654073490985832314708859335547042087176742160921986790772664860717339449466132013283672282062689192770833729297583659299317009692762859172832900643815792694565681450532819650159858277945463395230963986586180116508404711139682459191764955682533949965092549956607655736504127155399478438943920959287303064468993038196007135247362098397156290354512450181467451851278748282247206027395264751836490070192629784465302225953674239387177779239061205992367868984047103457731636592440184665278171161431677824172399196284001341338240660201286473115702145843901604273785529861154948598321596906800194056587912579648362744815559276738610017395962680025675525631025259432047887330724137196188409991546578857927433805452331999153950269484065062311357223754878878279432471714771327965353121329065694387946841984864379936497926386015670256993871230486296320435261301519774141234305810610386631181020573907410566659929996791371753774118204283604733203334952074329349134379709313869606285387413015960316448626854074600789906325225270406037400568917781712075807155275985262901648058455978830891434366696112129286747124848710390554649458906695730805575601982065011937518979218258212742834751454103149015369683043945968240782253287625718672726637722204171531130721041871578888323845652285897579295494129896561714725167608239293988007923418485008880655396111459379226800493070850018287479833223681174462800451859018687776883974917533542911206020203608825913907810975427295140683679556001559925219882080236283451884750286693362957733810101346741184150046698133881324725508504350356235716056377148372791417028851380774287468367931221786845506638913150754708962547490897105717741184285827317929166445479904544259240336079130665859097806093720774134821686531941794410531701199071503180810308500428437575131515827890475280382766826757799459721246939622830480733608957396424651909794823218566665533694207413501231268843854328864492940663494511640472557531365055097827994233780097481503335352787458567493035470188189340514839038109899270903342907406422494034850296572410541810957952790498794302167742755389986455195992067754976107075601498564326017445676637224499089802149482515363639320012328259278546800019749342849651249242074367172541025336179764557757457991206131624400301135223147871593978190997132453704690795810930182469506709078932641469505435501090891915509219330777965551563161865273567849977512169499692682355448141892368316291104138606477387551425241269483804395125363169543311954625598856235842422970116451035919137653152054337496388950121611400988144953336650905137211288603300323661289959151009907732543315580894027147394612444631199910776569659927540534907290535147509520029062719397915875562879146138518788970942163731860121824825120730628895715868669528566236790017189443090790432423445042113130426225825550766692554615049682814871166150277064119063591513635967443565636008657287051775096373459109428433596463079750766741029335338008838272521084864405757204529527783341126541055007888068804575213968659312586513986453277175870835558250139654278440894331998945328641001790628973338694843381222734082126598078806750397558224816319807991387851550378684493608516481215699660588101058013122396424935287963413855186216629567811636278122680199925870838514745908776555301806470306461141866531069772975038342193161281855743576335363224747748159071361577899410190853274645347055234440280489248237705276677915187724895491443949223753862646961540219549416454428779356532175893828109491729455978026394324544706091685416933715919670894116270899840682184952865283389888799596697714788949442147890766547630289470813407199853242895904164756737443113412484765419243254358873237965193342820846393808075163249355364471405575661192589022359222950607357563013757108757187991809343270752702935917718923048663504930882755437360218171728787527971479053346535374017930630980060651520820276069490727652499247911698257964968657919763754910589737957075223941366073686747677482236845851405724959439340587382625133177579744619969472898969265961378898168263623782903266073401107980060989419808400510792770925098856271973148044118405905330743784806394869075425727957036106257626951453906225832842354127473931806674374770915732620300686101412886763563889459645474820078384289560788246058368613552564025330942069533848055754112521158329991922342662052939592164625462742971455357355168963228089322267490711587023751676581853250508009447953032401996101413045390163875197824990517935362758804625813348444169823107401076671446157097760205258482610670533039139378650878117149192913513895550446768446317947863729376505490907927970297549844292088014909606197229975618650367204996668357882630226722745260305723938233325689606695729497667394001472367774985846849221782527925466610136516135913362297801914399841009864675864135984736227314042923637043372346897998839719807910296402382969536300790716299803972616448826164545200111983561360702309686125820902555747995354125750695251586433445223813105606543578218009081035774967894765267585224352685711132747459993029648443193705024907286955437197282194428892045039229511644111932850261030270090561818939037775095985511538829123881675653639474864651432558918431894661685678898312083373788889307018044918861036153584525484234685913425200425083995245484016444818238726775854744435456401908461976440185897207729072034775693725847601293568674729012778577929720836993650400413798398714292090634830321901584826008425316073428311026319727406643890846765934397137894595407939361226529522311836558829403174030733184589056268155683306322403630378661270417064410664023440748413682207033140762697811367610825974373037037670942035639362829962973988338566824038392607706230854309245459635112632597160888201359204927235540816744059244676990531794198887028170977414989765344026823016405693031273862566107064807301043161074755988176805044297193065459840876441278996006438571921035901484502877334334863401515016958641442646151149064516031383814334627972058167391524102054846413178467025779393700441524162396774611697254295999623549668777099040609868252269887027120844178709830562595524680518800908866882335724754414075709572134157820745243995681261441616247022806450143249653229040832822627237076573395405779372975025597377529499918406641726644466699172121072378192917206239714728047533283884746090987196605159693600328061372290365326226243247849746997785662099580721628561187278425047723492808553269134452870827717787550135386404948129226774304936361438651172462767669945634436108717647776144043335039908586529607070430991141440666326155654078820455380035234089234484008166848889682100298735929711996941657628426653249201538311333370703200189056987083264239322067372757017947661831502938099562286127553502102726470638372945181908661076807608848628978133282316497038028755899401854319341221297712035842779794235274500627801829856643267357914528071143044946345439637779535538873486476571457752514038174713372352148546207450270326075352845582483804207619610949183465216390036149249765951594168958950485787963652057079356091299473571191896825957176098715109080457995839097990220166197211716249131146682008398729389163117900072854698875687224765367346861509900239473637333201027667001307412463164839151925077641753444554137204420917453670778406619720370030190149562551503815170098319575735326138960497216567169268063090574107798620647605318904536051009254101532865787422713755646337632973272515700252461801298504940479200938370722459593333715643347629502976968554407190719199485331083709153811976204851315916391942611595638577472348574988544441613887418891028283772054512339156094207636344989982771785251660399667053017242374314768711444445981178533467750165589766921801891261027948364604072969064594928564861918348212343517972885231562739100333694974272301986620659343133490088063168955942738051836472792253518283824972316409893072234003788366295059344168289820196839625790381069222612195163642098970882665749812250760963301692348668233604939337262420171990576141382079318578983948193634530384186825533779059796986397586620762998699441114863213850249897943277489543210649526811522202468396238360671276291044817842005606674409126030600336187516635851312011472770170440655550380369270049441926846690616551860080171362764534125777191155409009864246238713367919054302002452400807881214909471477233013488057697154995468709126766602375103561621546080021564377180353165667196821076933687441364319448608771501266376533036986118745781307928564106821025553636359634861442818178885070653129444817052324721152113504039656387531799689336214058319398674641810849280061380502541417695055959586566030496647947026525814437874914384062176419747167848225161393533702757074020663386194075561830659365715413165381502122064020429188768173136437507538022254307664738263835022843414654113439612657731570494402470309857302940766355242206610441099727087388750148933398975671473315953476063537350199386188915686411081297848040841456417414289024830143149144932309601657106511140116750112299656277325699957038716388272241708632345693451387551528292620217688461975952842562034118946504400213296813079333952722707795058723894234832930296847929003957763060260834997883996544874107875172004400981582642689539051613359860060745037046119786981866081860941760766960306145449915754843790400941809046270450265729505014331868567298574879581033844300265597317643680261799359180341119799381383619317813700054960496957274558480736662130268884329510971638200136067411316716382580884021535061578126662945367634341860553040755995099961541937019904773463730121471975924699861763249904122677981241420734709760400345350319454190605003672770793882705411276380094565813634675932866338317313539465476859124205875421477795331234082600819909183087277372968832324380995525074527772446251730968035731140905646646489109796401087522443483866133154743103630265662117433971844117229030110165751125722789852342518023585241573381605436773662627501668330370456645923790907211826492609537395981769206217753333434673045983585899530823278384833019550783790757762172914758477736727642204102030663928992749193175629561704484610165656335851391403725443007567393789982561787889489872825659748770124418080565447701823428358901041769013559724785260589886406891902662743011591442329161688588428467952391715576308527391948119559721521994824978508388467354756351853485690815210636201228775821081128764079495355174982925681129123929680603263655095287936192621767576159662682454470877210550322457701015972367526573023476407893828963484732315182798517720801774862355823798287910923021765302497705752537957183224256684896473893583987598372599991696714728100650266652989644451901965004801751716774068398735708703736172726624521308791663454167213677481815914186370075888135268425534682386097487698612758965432170672554641524058218568182440877183914719344991278615374772467629878849109864236448863221018151818924804529622028465099859974575160709067267997686109785245988565367924200363356318988580122969865098608458263737061679868568999723511338052858091732773116887145605470595433892010659527485834953420058112690687324416476425192046848751491595443434977341055231666161840906506460387977806212254290441889464957191288603127739072674221694484372264294669073476673901753555146247408542037966768528371489878551882855909130541702953076197584546092627387614088539344002168276990614830396005964368065037237685779176528172537942290136408637293645813551025324175236884212002767661801540412376092795757862622754142047292199315148859484440935108272271590429960834636438918750621560865853438215042384233823507372011258285080795078159739046855410208787958064063453889454174320398231890512509190408325791230518081151433309101466215051773000290251797859834455849490701448937289068561456011959643589209054529152032547209839632880436836564003072792437360405480945434173078354007107007583731177258581502794732554892072707262575368491507450515027373720500942147439564536314181609874135162621869041149295072873034123107820242453451046400278961852155929459846445536525167097514277569545119549337360428214818212222439194879944754924729417523420715053546762201725607505713118428202128767006712001023966402048235028449759823437369995161484216069524098192151729881211882622555482650638590820605641291872490630730244744037661115746935722873578899791782828729207646055619222125393241686575562438862605104998910276798218640469496776914159713783562754972244935910479320804633017399825557667269499481337582157922133056470623041109563380803556896555675589606192400696438175653845411518139812523144872726882127662823042940950016017310160741897638287944458239702955034071412315220778818653921731705536556078427768026526766817479648805811743216736302993718713837563223563277863642102881942565099432837366946941211853095943523688204426372862876423445297475346904679394775584969735757775619953402454910627022294500433232864796223956707229273352969022572120264484324123567679713244230688423956953863460875465630217348949320989460047999199525730730947045617067465330717059248746051485660226599868493978147338567683011134383783676138539050924868673167265085625194030560411369977943426592161791208347915136487902537659494732203012489844353192413332159748103787492493682649329275645220427359655145773303614214922055184388265924897498397222360544362419646978539284683149350817333983840383651544381946049953058737717473709863432664198865623297571471735011736289046762192704154044755281324529112645051566848786725862908169408449744642603136165053767798082805017955122883546605583848704193526498926971731829112810753340331757611358927090558975265277912031770794862681428517776832906706418801856008775959855670489605116981005549787013600676675463830524340281016706684354117669253787973208087437047501377845113449809712888421362772447146196036705190306509584849096822032143640230130243396252447509305806937763725005172106040043962421374922614301240802469174037016952273928590054746692344364929490521885035775364859706502228845273491065605891571345030527602451154114994691020791249818557429147674203232040737915377317753761848406117885527765350844479305543045883903108036405586942526209299482722529517013022165389409653409293214221159513645948114948769141648051506206266801750479146421475927190697964018501378651001976584562372242375917968255454294019352818412517835245373955686602447475426435136439775725336104044526627166803786958814291406627676224964900136913595030035884917533214835209457417930406521380907915731992977976162015813284041794213020506706877029816908676733925523701494884296436191721878535571354328875434618035091164895012441038859021910753303130778539258981564110599038855816976725091595100097750072370476067591637759667061459084246119647168737010381754543907397310415835434901100152356001199284056838087838817985845186762905220636116826540469670223920835340163149562260213172328822071652606468243601134196642805208288073333422084277749140956442461908932893396304371359695787666815711180049404674001462446956481583661061910150833453693407941497235182560844122710558882816778403079425033408459594815536481704459246339921611710271188483324469766333034071607814741257598170105795244549323679581904821994299027355613744862311864567234083147021701113902187136561768335294002067908973102308709492288780108042013761857193359682387829377047775091479171015939223607477348542296375188840297560799716920968253984033640292133411644403349811074735551899159907167438308997903982740151587673740417271100317785677665283103679592066435626238671298639454957407584092418922079846601619802453864912809943230413620454868603738004021153374537392417638450827918271612947492141472990885715887807053570157223421842319131349056595717934294684926019785001455369899226767884234152281290731054830716031440589324227629515017870688061484053496840146430448272175463806487045733084164816083369740529392202446212001551832204433447805914031388378864812567954800226956928848790978629221664236970009833518476782958439554011979472276670376814378724700019113206169232008391539716744601008838667729587591531798452152575584433940567105080996441110647985688169799531277091667596404727500586522824752220621600490673859331002158391608850027167269110254619738224840073883550929946973851793510724230203506961055499630709448405574992599619564062187449747287014153341261670033729255207362567554089878734099763960447992159594447977559601967699270594431601092797556459454395245501385025408936797647921521820396138743612086265643745179770780745994251470116109162177623279759553598517800778821299659900854076206536264219582841157821712061209165641932530460954820283108806486645503523095856805307204632691074367035229913889570845258452301451478765187298745979022574284162652658391304700137362897003986516876832304220873484290274638010829305736566367181651699539570688524388526357150026114590262871098970426545730343251998571188978410943520125575309381507273472745908127061180025155448454623091497996466172336834052364255702576371668367706281579990392522490866171081187390355109888697863751240723558905978453128087254088602188630489749976836757354187543069796816416824970163079632479224075725721159944516666076593323371581763303471064725229104790338691403658901753808938645011462864826692409689721069241668125269380033817647424918000372341552493148820783320178301636923272167013455526693999054020686340520367966938604104462260130168496115309946958267505051120759730781109332297276093292510938827464575439134380244139551560857706932446124531311560801651467885476208475717110239379414401758111770248114568118168771965683917262259482436433969726661365126727068320747402333141366530130827823810312096961397300305940506618970211410078906708058886273291318845156469531304552109549966012960111315729957946518967394179206498963397659613054918488375294886558541397785296003332037516107054573204908566992178027775024117265656253862929992973672175659856693552968925390185170922683837005319008883589129542528661775757217849850969659495949305416504836911102506050762846849903484924278178273184278864857185552203753068590057416787926027517195138272763076591700901333637371951170664852623837065567227247299541359021792920288996282180578565636327205539149272292284677738441685911550050129006568059034202218383593793830042946603598565701741217570891820134669565753635315608319816697924706270598903843552210783557643264152585024642423763683856426121604265973206529287415384064567621943351244771285430864162656618301051840324818525266124239131351136001161999737982205869238705051709565110982872642124283143815074597628802474829668093787269367297227808012781453108372218189630415357656601456762126218585075763367994750581021771338749247283773785163107345825600538265804531687764832399075676524110851366621751717125547987653271515055814002735152707567509391886879845571703347976315057834979842127886362121090078418460893149603921073407624431350826234819357427127008006321489142532145038316789897197966685954566692277995570112451166152712049796439473212767746370662665956326223996832717325460930716037469736005009427513396033544718293082673104242808875306428955676071163756215993588460025421506959372355098914506090668945623670863945287349010980666519484833333695462025643898793136732991146285462367118598474380641208730361879591902400116189757103839553278366301863668289504503583808552611958841096805798364709063766721536825851289782317804013601819049867656867753404602077195223747004670219130909197710670444902890715715568388016208163727373206222499300519076980021536562287652844056711358211275038785899178414213118104720483143061449054321026451755409680791734990169435437728672822512791019278181794557605226506587849759196406349077662767716335928562698719373541227029464274410047919011571195305211150228268268283847499830434583366974790721343748120700393068411357364300101459883322643124361628312095882157494141982904117684387681195284934100232920035853991255438706432544668199881242597799388309125632350646268018479375012220093254932400592643195318719573979137913182805167736325061388586580036387706311661458536430759699742088595416301090480540404683151742844600434055738480211032303112521306189170867650873772977173665395735291329678955688128866331957124403885172520415152669009775542761647844906787095103956457283871533747768076480346761566820171711223026059722589932410335106226339704830109424888811509093217738277432634574911367505172402767047829523436827683571626207926277219681823855848753962329214642367741876086160635990873695953568611963868250397287552178725707638075251612352181418971528946282712775750293148363755169838837272753803454791401406720925063266237969475180515197376444818626435772309705203223597764303920284830172564879194096203891704882801718045810373480052229607666792668886983285710589845274488855777460492449750270820096331790130348349059850513277021735973358664273312784332638352690141656532879387831057189617700861069396889822250420794735975363518458131651132435179418091685309774905375690231286398538210870935659968634287126873322004640210922081348958501140163637984116605275394722087412113242555206192096197709631182154433848474252090735609606060821472534063296416588302294323811574411804011349984541126384030981880852283254527757449889053820159840786518427391953611260250514233284792327436241418378865232977562070463913642619884508898759623696696348204112083576185133987783810467568642645964226277807671934861951492337378935927665597867104112881187647954280154923843446342160077267704058248266293531271859627112962203633947653967073349888768818621000911738998835269090784094124265699957938180933521333441939296458780362198331219775615564478684870094261620560795246258527840997359856902534613680734848035058065102912142554344721294487541830425218703246008853902337960491356427221676739276555682052066930046079303452782673956821512631196443306609439708104486896851196151763275272140582112758318200096997139831527526366405041787010631205883217633827774150076607206561009157570987777831054478462242212747842772317903906191335960717386715130433844343821773528219302760060616039183969647303841700509505155718683604342815753636092936660385667013761245939588522104520862046172026133499257991962931063221804286574685924441657760240858775418749206894345303838394982786521006190161454692628848585812501143975661218142946406346719308355451146546991806663562587374973784952904073776339270680427272725267336129103774062345767463341424224650479906761522435404213901500433814549799472856663495196867573729818529667701630660010632791646592334506183928949957249416687648190299394818865641185833206866450265254246355067820588671366979111796071728645894093000021050180007242009160990911863056040913960804242534227422501022781179850834536208202706096427671138034679416529134676376361885602426957303930187173000790386969639196453421265648271180107703524325958620820035918610908012158376546384180181300838721229508045596017598636421851305267451288365610415733844947478649602363808964557490082271093556024588311629474348440365974077462741836603935985373599701158587030696924812702672512876764770383311559926727855205609272663509243291750278374159335431934903172220562155462342485236964734491528342414256102472513016081743320746188096003163717763579054561933493572424313211228576021061591225897452863109522029385644236315503117388845816912115644866255153377365336312190245130344750352970891272342730495831626397845238563781133443506054376865477866851052812360335241196188490083016098248358809722509830861785548437275281167517972136784086941862672613022463627202613728883959099209740071963208470811270120622413931159610928226241087655426277349715590116249029814858797579796172609374905766451938355158920864366595104201280936483661861420033568738060642219872713593264666996055114674428229570274963386376562701203359275612689151024224852990081523631956717879235645033011851607487328089872661022499401295034750370379480255685566137164164953032726455481026614035907437905212315484253751707135632934278355733421869809373962384136754929641583991198875237565770024772682585734400071827190807931572909330784051318114647034290313505998568058226633673533574993252146651733159632766963441244500633537691213071970972753227516405317464860436223646132138262061761589163368571754845698828884898947687551725577635971127370177012519293816625827433834302952682917474657198793072155751152193705510924818112230206202415179077535575059216780193210682899664937616432916618765500723466951959277390094538626628981205049873401820847841599541474799900290082624943952110359914646927614388267680626780708721637553782903339362097282774910018301719311109046250819453686860815677648523556463861652179235520762633380391514700273188961057874136778529925840490297882772776363837092534804592936951396338453854544563387094065638602786140642637190116189623387078302211084926322270999397540192452762247574246793572668237159027550333574353854822603460394850037035269927789986046996931330566535102778644939943920089444364580819241383322633901229265156000005855472131290348886601445305228941530607679387691518636331520073956198063714333075601611442212842353126827232445918239635220528267473233253148241657383487005076952429766948932748929264385919019685307122952492897902411207890900777471099282798749055616353538117923314675068125254099437160467951796788970392382351409945680408559902857086979325607769200411723603224486940579270766155258144113265890680649836076973243208146512949364029072335198947655184344944837242514907909307841976785177408937443641530324936147709701283100531696243697914396539483416182571619178889164009622294799463612572396469492460694430094393012647355840618544080773235632364931798918978580439165684403868963125791841821502947430669630482995089880889084421128210975759306871343801174545306141246965860175975675599429522738436265373471852374797512114705531276762345038820804242501299580671831079001319139565887966727996040718159259711860687803845140738164003064286633854312605351539382451413305023365229629714956997099915931989437555805842667346686801519143024236682038009865773091683910252264926095199061838678489801550034697212160548944495037885347465667215347196837059613741370973076862833556398974492189393462858564004037067834888504782311948667878227440730424830891122326697498357021194726000634833507870738195619668258231131178065455297317888803352164609847280543538681366571004705756559586845733241074378693064748164178838379555067075300456342756992224490912680588191101275247389783432526655460930393960839837915954830894267363584988367945525280876408799299884482604230876850450229281653619544775109334207674348470454731102052093595914789329125189026268607098956562530079365884467309027138445288187781642317172785249704247402660877617087281835222789657355932605257695255697305065805230031349269963192883875304508567924933491835919987627890199742597616054722004496229875040963359588341831316621943023489184053653389059127301364441049235680256730334076827304778061442012194813909769170552818272843613733810011697461187876322671558502392070420228052088019552286205720902787506423894390844520960985864562974642139750400072015136836145014918397637774131021107438620339475089606144358729213205045422625794262678303660772937347437836743305767267324193948350947766373717792053919573398756699589369673685700782446238699890187419053213779475274568134955641154972562474839037059717214770350847984269699711492897342673812327064047340731527695997414444399448570931992711947397637052742888669884135417386925208701302729514953023935087114569192063787090570920312142431218953906301128429780813938646288325745113878463558947857436203953294166294772042198174224343773657619570688980976457332164324033465309238503940105809691227957745985539803396995612323896842032800011884894620870081598739066854607923163844899085102666856081792730037942398563640019594822744784514288041957851693345247568528509101643210634450334186903324305691417978410610780392277867270649857863314254004797425308795473877190167932465097741680588095377212586655017109441749050258684146411574422084057092651409634229851153667099929143802336148954934334875887504951795328394365704570008002563333523011144008674437572154009269152100384916302828897914658422434501091602633370215377624467844351397186291370405608443578273443622346790781653595812116699770692284066799132301826751218164799666670810602736347762361243931564200634046395666595517684044330798673176004484422331904103483797190938006230729398796623126863183631291490276260440964367945698190055795309125807622549466918981810739844108036859849890992372035987536599898033130244664914878144091498315379630930142504264552895962060202044232208915126071856455357856273304635453450823622312999843796176690568524816779768480495594322101878250054726092940142273657914216430948609901889616050551192801885637611313207561217055737635738909526251859782147061997434293882900413268040140403699058005301757937057037813954430328668264288725551829496056508739727098523023726118426976461357485528023696398353707975561807416605235882416673963340968353677649034280148018996570461153814856411395821063748813417446176055848731772070837170602672552288377683328262184245804968664817092968524432079580340273493244897946488871333437307705296436957594313936417513010127605705042164209540170603667309696653736270044937014536042377773827813485199071839885379314474770335836806428177642648534993446285443984245686523344086494569176843636170577948938356481256113180007879002772795353640957140105001784765607466019076266246959963713047890450186243829763195899559485782815287242275450378213280741983811597219686688031151300775019701891169820187748012998167679196338071166894338859200375818465828368697217841641609171036646703983323712764287360632688146728230832676393867066207170336589060252472786657475138366095846797362641875276111304986987539337569275420449654814260351634246098478723723040559678024428765314680657432078046986518160083902086349694125702184774574601840894477833906822469326313300297264388441575819621321484103570720426224022705452776511951580732044704607597956815356574643931065649359896342236071851792438742715155435154975265261098560520598791598778286504084186737048756103312169501806094284926656663874263911920573883766661050568134409043915483480607995639703454112730232445778949735750302900476345096647207127543035898914609572833992850637855528013821095005048447030345055888617109572120247510442424656406961188510198846491585245268669855369469634775525936960420049806100461376768469831975089946798480485795719880418600195033312692508484049973158324158076527244241738707819634520461805346545352385608824336058997571013110329931108036536391083669024861110506115717278857025589317670382695689847690088485142224115377581926047475378437734668995494448238902232249641727977388648478760975015026832990171736668002752571044560336807999480530247990446661926170817098110759349047423435370732059601407458504439710517684313082934475976987922894566868122118435043724233958362821052032799107612299632100492994664390445073760806215698636796440899167539099180945260184488211751597130508907889038882129576655791815665187430241893337303239195786942460561584446780702977305032551368414550836394930015338602769747518273392003349512429486399966916030126021406386465585716823998693530542576212749193407122336015809952817361934100943622836645578155894489885055323214049793848949376816878168105622024026746602442540695751702627926682616703300286411090989058672998060379606637358983575589394066547581828861293366237896628053458976972993196174820944029802124337199016294064088858017238285622954443775762782509871798852643745734872575075014146143166874018649471724592568018813340178823532780799778554764410975722143280620527870007298747486683637843596367973162365417364608547422775960306483402415172585865052420986636769746596321040670360807479436550436106240292256403023237321566117806215204890015742362196216599242730661609335568286449138005116557556968467788233743888806256706835911573734997977554060251230280230074897768687588194158569546632825201089717915249685003405804536907252544222577635309406838874679374681309496847190608525062676744688807195005526625613431018029138088416636215437072226022207405149049985948387913364623240238017395374829986399218095838930585694882571534347481281571083575419252372384895723258680852403842093143344225876140546850252893211293206459918236806973756920283548225280802271878044610325865730329701242519072874509315884028713705456579795175792813641409272461616311984487230384739061545542401894967123621978290987782279992008530615457280253349670072045447663343390079734538655172257649836622285151460581895064326128083060325560577696287950002151478925268378728306995326362034941131267036784795752825293073997883804753302348288910556820605955635279764460989134212734336725581476961479472430040416692949552529885241117036401477664458070145720874399216461152116379604478172626882831172133432568117865907786344245341357501950476258132774302590949904637993159556168193666577293434914574525903785159290198325144083817478568162885269413403688259724489146421316018926190598568527464288112451244862775481077426213029015051636072574315549928063559806442776225312612914339157246899539671802727063349834910458923101011250745193029491997899418284929718002031406079001336584398417806041244206092636814382467686923127042397392741755671032888212063063833180354595561163510845944185376618493859959609767827271664907885139684865587618180364230229985915310474120745941259010196553133825669717014619230651173818080905213725896468161902533326226727669392472005155826487180519555948324316872868628659566858699978381143005956340189154684372226156863071914053119237434167172737425401418472915307164145031637654362646801440484007681310033136441600389648184596167110586834306989623526619983594789195548859623853795324147374201305676294435235951572952149248598011991884619512736390446242278246614455671654266912644069581268313289118904342074672295988755426519794558353942168611462175844482375506485796076981932403978134188519250215548795261335343200109832428762395103071493024717175495124446576622486852938113875620918483366674820821413335296286721695188018897655324560555157776684966285595590601824055996909304672943791145130062885255575362246595443958628896351491037556959796250194815288311369331636618638914068522729601039125262493360587120157450800389339113878914257614858044622688714856292565559721823813915940902500304854023972117527016335130978337491532403224466576222642832122463827640492324758009138222999347902490730657322842198492085429373770667885728239086807816873747176722346373135358223480121666616992728248714620336848341436114016952992238455774012887274782944702267572104764661220536544037929442212045037129961704331576093363729871949839943826679921130134653931940214890036756222571166821551994544483057065641891515161405035401927469511843829168380850700571592990392974783912072615443491589854270122369889623712418004547423236145062511875446401939401380254271317718548571848481315524582485409446989682268945842191550920365881837735014702090950518818638306264259966654521093784001828955345015476175548681777983557600928071788719624307684219234293855457457702792764556532197583967251001938388631574824338654833333303550565658312295221640683726022924928519587687081944455748395215236766744196242093743555378414484858014516689831644503599556836441451502534469365627216598938401414472741108948967212307833025395099406491936398561961926088220648873161646074766157417066212801461238726197018287335677843046474388149303790200433494587444354613655747833840327173255678211238185387992213105988372184653107808160007835286809458446170834054013798633242543389448593366901187548149481685119261671403367545674947124064581492499091903318315611722314591657166330026055189061566511162606519598196533279834623451162226826050261162271019509590411496884555732775926788960082238806764536998895266767442284229597502917734608996316918998706199625444814043222940558673037679282111776510358124483334578348931817053001042341756414024679817005306281877457182922379885109792948202923425171443849551117229720934311092623961856479234857633160188263403650418791714956189474654855190988285861646325543154175102738529120974980510413975814858990329654785699812268200178987440828168359309059533211643095351688416154041143347527704377120226042721571714304955363280954612266381221490585133025094765703308426718289277815769193699342675970532203894552949679048780731354938703115302290740195520757188786064209317383291821209695340010376393899710445091373837421303506107955256066985231339947977019049706060748556998425012057118005093626828153665126406082364458463366383202932667220823254028499331415124868231086707452916868283739787603235402838658055705118837745558084532869842232488916631950009041035580436444962795365744049725118039659467460302346554823687186472411370724787407450279703307126155080266578613534895986639403744620678173253524393541779404307633127683857191628779673233466740426022765281175242602849884285988448407654704013929501798028578232242516205452743843402983563824419523836301148646205191394373306044810618949717841258768467763009284617683044190488318680419060909110726370539038797538149018639248561324428670316272520633475635534660315773377865326759179560491933338249266989728860267141023369528067749781289613610569254765488908499650871294144250533714596574889346262674839952412142979539508647417699244474478156097198365147875773133521939150267901524186866297283334726978700327990116886383427392687555976704694784093539254071473843924412016407553306006925013198559048585304060487829900950518916337249987150867700601704375305963481792040493274593608688878422884670532643879704670698045638356727511665991034248123899893531623777687855786353177057181651872866930899020217578277536726991438756614471966080119730232371466414096443221828660134287458400110093973589938904970531424633915855318789424917309611024126357896529088947835848871565467867830267427220118329807580508819827183659221502352281651385859092065646701726507673549657059018637372673303845037967241508143855805382688877114015609529315662058619835578320860673887561890254987409798030430520365719250080589135353150079867165745602237858789422309417826014796101056620116614832074988241323165113201251624420372168976917911255663029648716166163075240540396846064892192695231310903803227697908114443545024181469898981430462576645552951974294019797966031266162116043817361885276388487711129076153856631136309056830601581825077703585372204129749221992283816354551010495416231508538507617052181653425786446600272642926340271069196165549888285464312063643026566356889438360615787158851926887837955522399306241818978565385193992753391464207727551599833325180038734565655381106996871117381513922833745479781456954742999050590324833463021130800370916755288687005974580858597549915200858808136051115915194171153339070039395334846443693343102125071053891131098824880284176296454089664607465823753195957708187013909656860873918930259220144117035394962163420568518538703834878729025350095659045870055213220683847865405587873535165631125059623064379842913557047317162820634747200953450858429406057899345188300514844585759641156167790616661500679337498069847042293309465112886572338792650475811934226845741612385105721373280869417575053384059281957424973711025731158526960863085518563581838590367240312709343501187737205830756032722827248990855960530108514481963727373177785341178533911722232191865739820237765507227023249899476277421209665886969494942327933310114242384398747353560138712584450912164510722692238803208021931600654535666126005110862875788558731209925078760162089002172063228319344102581931799791944212152516188388949455740915533101059525507063724590809710688219591404090612685617747131712351509577792527924119746458599918970078611738340688546830110548739404319833588074502805276269285110900933149188514431403209876409426225921548602463413871721514978965234190380671443694668763668468088387356629229386579203108368004349171714954213125219222593523861545451177910727639595938195814243252201925492993540663411595502563566728559897076315361464315709733556930292136574130206254865010339748327462338380624784484353557181996582729183608181617924056664480569031145001242318721811202228240757638139794935653232188945551476601403322460833942378235138775054111705892253867270913043862772349041709489627252416278062840592308163493548997126181957329896463452685180058891620417305769788382274359246234697998741931170534262631863543253898426787762089366173502032879493031461757802371928072287993830952761181187703844386551295450702263988655389281053965934421909342980312501007860893167570954802646397518866287299923844990035814446604108500790858923546122575926277514800562682244826202383444224782972960282215348011797665406015804113371390365373638029416807425775033551119226955775835681296129915458753525500049729635545232031328438504908148699385714673945016648660639994245463083385280846946597450017580941302991519115091981596438856775102679509599484320259056463996302557271143555465552181198148040060132852590095270908826030924242211005455053578737726992338794618919765785691911630921633415830383110685490090912212364348936332656675650423228338182294831497158365589722008582331236247261912681225665151464069413614826891114630630964046342375160051238692955395008966751744084618032524355451385393438204737035740490058779629235870018485882981572025103694132263490109306214559229184301012789323536665026310689814150877838547345062341027356559081994025772405981490290127792008484826974540236346348924783390665700535861949799685654853713444625331292608934863758401509103956106418566685917101128530938426221917997341604199326928091878364538483205384781857643232601038371727653852445531557914234443732980525200679684996827829302174011262007382835188478958488151198962247611927302046150474341182592132976130670465949092451577187674488189951256576472940266389982833467574572955676615168704117396975704381336175953834163109049129373103740813093883112409128644130484297971702605562668784200144649065829341548956899804609258676351737577551229974902225090841212218322398184566860991509388270115909289410595000655689640506677153970887328901615665427614329204762321001401691836776915751415040766120699833814200681907933024625200476951104419995472368292529923743364698408459628715322420465599398293130170389989363505499468839057570966557470124098383108570077220239529809167123839077790116169262689863940056167371926674165994713839935057750250373993310802196097722808596474256661730004614025604778039255321363167392737035700210493138862500114044262452719930310765647471644853227733510483007281726853258310796936902025835473233603511746666709389978290582606570605830823736431641608132193609053724287714989478610961011885972714872173017171018703840727873337057592247407380276172794114491587820853929719922697097757735711365773649748147138656528729936804960782544625707951019972674411602055445612189307979039825908298559648693050453510539816952509256145913821903268783580702293816270809837741609797979171765237204503310974973938464014827874623987939841925186568572740552210878022559572687768852274174313419623473347213433898961036418734657710881354752474158495834858442037872020994068821979266515521901346834946806743712888078038023113571598787690485642025654048142355376960311887750456249176100167958807330340912171855398504057145902429988355879509740053504141242076105039309839654915417959219699394621993604390530635122546369750954244681637356047960372642219082626448638808230119136221352806833878309287995571433900320943574782715941598043997047115534718021492455420237512133959381261870742963682975408760314858309280473645402230160940171634217757649251206148781749290123051021671517830931532010144266888095248526596324990100462362399099367994867869947817162851666054354945050554660815904321498543990462938603363767299859018833899556436095247704257655404752988198416246172527816656430404978892786116484318796416330357985249715932565569687800614372531644578023954350007507226473888620872672310073517554047215411001214674704080949081859213009733751134381324230454238593890131532038733112162945936299603736567644971005376988672111811098615136557793247923507222378840791047115632466374126531147251414748518356045910932477997414894737304194646598503695770114916103754203335599913692937097749366578973413720443241126286556690915519470013947977900564582961681891058830908486969593379074274578900145790989433140764178100821688359003336408262729906264007624819192350267420282949284730796003976101555278418303121956556011745341483085451903242053009427722466778263833294634964349911319025466176625222528887190567159137128892464617988363408372008900199990810073221092114034572530781346503328282677714543019881122588136710694629710717630567613678786739286918927544756777067591617882409124032724771579525978211900113900612823669864489763777768451520835826182891708813421501581526779490944082287652899040406502080447567930749077486577103001355929338105327318330697042018247111171394880196309842910210690760809262574756288825396300509419950328649123407188610649926323434846198700775404062346592334136758633012748766019211280325092462533952807541487249195813148623942243242823586070329443471416764011303968820081633152195795750578709966784281444345311470455785981076182422699622490302168807047563801374831166745613612516885866535592668807614421819868622441115358061587920792501872200488591620881476683947959288588493319762070338405654056060071221468801573581986802618365826850292296724864798539004789217758380012815125322253259284661247643620089801549952324140654404341284386491213114013525626202944635960520614435004571817980835592778206893039373166545089891257673816228529371371790844493696670759918310788994966826412651362627132206130226255095597826104503126785103012159600881648449337554276547105579886678409613395214399051723455338287316794658061878995199291225628098025227481657994963460100005018154006842286586516276455476150154475156864165752475561104516021539423534399464046971391958841686963857056909040447749125827393770534364920731644722290011758370092833509145611334681498828683438866836943889909855411181608573027405889959913462599545249848338030734995030701115138167502371555710912513842210381641158237416238606142214457505848176704857821850313380469369355198411025946828765784043625149270003966341731673176054766181121228478342777959158792637616869867952609187596191121299678462341102992481332788009690136737928051455667067248072784621780201685816102445278668953253075945617771136926065112717631001795430471720033538900141677012547127177723592426645697948730647707782448411807453653360174224075359824288551327823462729386001280956224262682188101283720961175559222183496770509786139475247760169750607184267345563262696996027796860811528333464908607793105146040708697896234229771291005131426224351053759439075489250287862081477578118683091518048072136725903923850226703368002974636552970458639691636687926490692320769087467111782931854624277406903805040113625197812896315943536288318976742952348336287082399275843070776585814337628680010671462161599211841709561061598276997496802198949348471372117519625549160323745479227601152353374508215301403344606792160789835639582162582715166965712892430885615286120007786992920791836845166199432113708061490055075271897438797280938008319040371974718072993554527814185097960472547322832490633092887265277815337833853668141712989523843860524795692301660472551014715683475551050031663569119007023770256742261050703461688692287107318709919377737500119893771225745949811093247592903783178230824476278826150015388184455473126724466460515590162744761514694044636797707685949208209380262188736245117802858737209906963921453981537026596239545831953274915101030276986730659036912549645081508217413199580552206484395605776655730750088215963385396447199526826414243696472104783272437047733654288850135278618238825830567027562557049426991258819185725507138981734279018657001643564329986490390658867668655025665688795831165387662921818374252783749053043439853214695649962628035756194116074430164750197490383976329688340111150557232625757660074120219666897680655133116145417834013391919645789969139818215930451978816700764897915360178305340843072508268239663351653500109626062026781647181622295356120403305392334297334789471930779485640937811126603249307470280221709672677349854900514057395929676770630567549520610692013823418643568562203791282167047234911966493957740264359834259581008504867240841944341336472186372540554382963332953608461345673674284102900180980725077712187249527680216123180308309645314878861185419409181856792187459180121408303032408932383338380751082461785077457219685525718018599579880268533807538235382299118811120416590192989081492343869647525656532475918931229660024902579798406197439337501966884091036923619291042921028191132761534300088967746215126259749426335567927088523501716441139580199593745126586174852398306446534466509181056858610731524553233431291745850243434828163323674205274531574082123979955151463363470435696885537979845513272194731866957322212736938572040816624943665751413881915304666811468225411167784226159194298646147917876624870268760677774427366421524884717219712242644539494368215997264860916811074414259493956318412030855134051809743082504056796741485196890992884145078543496044546123256337231142850074868425399572847961888045668998040701148689079339331182793886277235198868144220021755984089003127759245154253771775825124485949510990314745242956354803419010908689192672327981207231756954905943089648991465149239050496238863425028070816807134312430563558804116085446986557888830413192830338989870903165097333762357085850833997352666316394795248055152029314190920283589760537649644917644826141035631575580807346661420660336795322590001581867742492890926086038335022993147819816960257732281894861148072700551606048290941805306580195056079812101620195607515915268685962153159342110339911284978611818767753767917883026160052791994588373285723934452798708697327432064899801197728046429385605498109357558962059022071280473699363769802771605506381135030610981336657099893571255601445905777595691146778794193208778672182237775573968941003459692570024032595767497420260208577053815709228981924372189773379619296589748557860275302479271023490077176363623030445927520984195861834952100752386298822647068209199149241007032577974493144243956054584622702889064350132646470506222447118641835247741153952117221868773402175578843558730972410912791487011708866388186494471423817029078941636500271368580108236558652453017097643874755927074969352445184107842231153214943357082953495194570803210468403204660773383353713494469220599016444252297170140862621313050218175926249966654899569764706960259246314978469128152702748220785888697170846699466692859323748207036428559242172565693382556297070975049359909185983747555233254951874345440863856876485092916314788177934068056181144930079783857789972457162770669618158761713472908948047489992996096392157999181990299578344505732969611829596206261120217011112958055443147615095194723752739867150245626548168619281497044517250071187726099610969659054192383447117639846723845093410336613787036628613417802583278090260807452949908653924930686619496881800093854622978222866753178631288158431655409119641306283821223754458873516264993358431732239141389881293965526503407129810252618416902492691767627481032556539370553525623583333470405212364654678550973148381111563171057213744431625372146957094331306079419715805746864472999132928832096539454837835060502470656147695785608214912859166935457289315158146201657438616587517262003519118130933301143707642984288539273291565868421833422866257962150718433947508848528565794665106837328843672824609660559690504271028918195922309841465583836324209703105875930180727331208857518124979610285774693169819581747465063651232915431924351266979254030574492254844244150530611650676423955788313422630493599324062461730546168538437304813208099019017118970200540168786910514695863175010818803063200459939506100744542798948107616166194103422044906857763580073295421076614377346470517128425552311833742907237644652239674697193211007641933640038070948530160549815251708842532683793146902825440638226607713282395930666255980662480253580692713419228256104633153651389502442568272311807026071534455301717711408342273187759933845496829347136381041205392063458024518522889946787059373283105235886878202618663272698656666910309375500447015897169200652505655711276962668640846601053180783676306261699576183728597332581729410970689787171705255594263448237883657277954467563453514306712126788155369959962039026435344926615822569269017476062452348248564192008420383082698142063854074340785080352569862688421764231596308031670411001835787624975292714779588747027590501673671577781133756556576153069990256364863380074646688125154681952269942730650005406492108868189901314926196655354155721310829767882237739370481151300240384546143280200409558710785211528166062851719904748906231593141886452100865371584884682624599228558281581121533200025919142859172507394797599904065428065222501945986195527631298292221082792566126527274121490705516642218270351062273183220601783095044964382978943287108421842445873224679427174454342327363032469202777986356903901728786628365609016627866702398721410878178885098686682243217432745647794252803673267034243840071066718826403129842540813487534603258052343968579123277604544559845434453473818801392864258869453328064195844448238242503850049000525520797972736984393467309162145363799938024763707385989658254620644465252911411088804662007355237425745529161678294721571001553185556370303878988494279823054522044484752323222079702407306417620567900009256211330175715805343920678076530882104829512851402063215301553492479944713683549454503196393533044278614911311375631578023525734236550981134574631360048187673056708531676568543779399864138011945894329130597281416524457542381768265646637235016414560767271933785919578013456022545639250175102917891544556564594009679066086967211734214177044117251542510680302545301234546284326586121869794377646109552009968514644263708597852220648386887750266599202469312470092990461928529565897514458582410993729851662133048599608163020955245859248461523522980979749244319494788509673228820092238943765848029077756803997580516564236465247713725431621449661589025168204528921994408795083036485148178598968527993940347747583197688395963255252792581654231438120301147868786510507545942130257299041279309644133863109481382730846570631664126901993610147743259820853710646583906058105383657941450749271719077341574320505999975098330014559272997614862822678485931086227330648515518638924915073057155484202569417831748331741472048715166598206121359787414189267315252821265913347973695741659628970232811545157331065809076934844336348992883570063153033561165550231813605085375592918846348167751476104183898668705666599638504825698061831117094977200184014074657638022072151377363704335458983006667443310364624280105816445867249637659643667397064549131132997369862943367854960466664830139056151944298430981704535997207626282435567741764636729575719980439479598109636588141670533044633467859981681317425014560245537485212921718037064081745026934194243917917190259981457244868211699371834068997380832399284554745189922296014893545336641370040969552217063236877269568636806967803952284244133294474640153183544870555156365167326600366857858860930913572758113333656690730993182817753157737803944366929336139515713660443290779927160874970701122786989833489483807715128638565881150299925302691223939194971579955683222453143779657659449577068565874953370391212480803989376364159829099245016787493534775853134614594868426464272364201689856405285608743411622992099712515698472673507255993632940290787130787463703236036519286910336048427305821938739974820665672792854138175975091352236214364123645180459288909203946524702524712763841780555976263908795116484378679256033623132500040701125200398979752058008005941656270583586200074658904707911799336044812414167194808839124260935056823362941554117204269455911728737933796909328532194382704483208022642832601160059472448151393789159615943064742239599707833971768640187887780464213464649546142580836172644079030819318845639995161261800078180501759343264433805078273670034487073490093525253258590159673551909368859531086895193389887362588578594934499803392193750251897634771672999413225589057530489535736386818722193153912549702839765141489252332466616176015237288809798944309791250650846958747245461451973894302611323216420299901275355443251974464646496778955053745544512667711381875385883698941389332678082509521287558642032279776321294560574060295199775554316120875341626350685125079044933057289854295917738119777251018264067201353396693145160385250763942427160141267269190486748418396485199020528308498739454756722099261964175427380023091257111788509478076370276597322423918721892418245564326246679236415668458958235650667160303214643946259984486166574174089068002004240367356309961524253157388956477120334383207349543917685071084849101778417833489009865001492652611097357691821874786908246576803995480023557450566072940311733467640570746550911709124789077636414174828340574444503045848536316978801673535825715448089427502681386624821045247242960072999109467351796402320233971303504800403704661747349059528077234659064021304566425388469890879746379992938249284176744802259456053738720921351850795416704932196842905233620243816222327301430009980576406330273031397914501918347351634205670307178338717147754881168389858391318153336994691454072997151803486295210842045925996216280037217473081079178218754673631987599747624972104816841069896845588878186983402392964103557125558433262646972632377293726064454068394717395180382855456344531471806939588072663152774705548036529336664173155156765877264328743753812802192238382496733666363383134919654170037676997635133226680695050622312508919350333350255987391218699087198659976995389282411409336277411625698716100746445883734624755279642522550585987370530716607517602459609701269621897949098147888368108409702410332152446626741113200330293500000995101158776921156587173922509749556869302381648209291734239644194062664789636992473016232588517323905152496851106068593563470603016497612535645461705249074018476870313362297596001985605019623828208164739114160514022237575266043475793225962430156737558309442818194982690707107883967878163768801475930335817027862608543000074368745712564457999670528395692668494320812430337761981735643470740269955691303066842227696427322014935819317047073271368626076651229564847181888405203675405920143734899790362423223251829559074279333650396777608600289399430177035898459094017792861761379998454686997790368611443155733843080231579940865011361469041121523095305820479465840861318971076562755530030420159583351254359620999669912328049111504113992258736494059783761458267301825268713030393855567271610529601846903631811780038089288606426544090599085865965425708545813705206066371043445614077269378263652779033157706682875681384741885838141807558799088049354247227628645968893425869837422764579279658726774112850451839949330194886645383013963333873761502350000822021544650917311498910914493851525921005725355288627144194132932240440036465797185775688673007135024330287317076642284178434710035741025512014968786690166168304870160474257803090866439554392503921244343611873196500825969269533653596660115804207611426318845290449516289951741902463464534773875781187439443657626170489343267634398407274363015300038006005368015205157855933353509882701066463401442625912379148138919150300345957284678279172650954438901559386554769862742256749642957887128584925224252210914826377133251344068910755110763716357209224715655926369212967587210405597312146880574308469558636736021259333350839996728525668230449790445224794810569357316684583546766930778636915777687442540842407728428228137853227474898766103034883502182640873460000729610956251294261237588405899194827811199637963509636055329067254721715887824200468134313097546257125941013204692330556692707738355844883767575399240506804951269221475378626896888856704168174439376494290118581998902159779746096676659320455570008136776552576545086415723933079181327604010109427374420722667043259058677005285728879254347812288938700892462828584784362665055016582549040826174779522714765831525363437077651931230961719955406368807975761586919323660002581308108597927995527442572235000205370444129860093269882385052602159377103463868527280781523014112159834508139911666027933507217972838470912147045724106750622626031376223503855716847426161243470474223900381131590203908345147821141878122380390765644653449314850507736757858141350250499325316727927340568413359580140905233944714422922888963344968595027440999104634402536882236716218632304314856759754390134485319410402833762769128582642942593319693662927576501257656289583578964921781324351865645499417398957192771955295682268212278235728899348901537128490025234777560432833942776014580038988333825174363920136698532451948063380033764776080510888967575522249977964299243025612849111183683135031572499918910366966461615078365901681406997804461094197229428466259844321404928712472696104151529053966567507563800013697174410908598920976164711544309055970254930122608739830534416102770439666308904839367955617209888609647122635577410977835366598181236585905344329018493599216926342431498981176074086843663984567302346409596827699269459546067131854420004578245101967614479905107297009046024069091108039430329832761249530874664145415109036319963608136913056056177523892379140456050382649617254316712440619126650916191112359414792063709713458336865856219136508878342940635300231109238242848299806718257006630973603338625234667911418594640132579522662955655525774726146960269089950238110569239705967586603162710184887326312049490556567768037670477343681555083820838838247438634274328007266365390558314260641137475043867469740440483012425569080994667790770874815894908780928266885198536212445056401052713793453267863181185327839775875355546945562204201830160828000269919857309619663193432377198476038518921209189503030098765489690893538770293736213381298618550459623016772780451192537979032139402422625447490411893064233111670128052861786682250101136116532871453460534720918873975161937258794689936852196495400252610236584224653638630567340253523300130773714795949201805385308832722193198623975211800784246417372501722201994800255713682672707677547599642197575003506790559572138806531988770730367174540794233705169860689675432856045509007224570955222834604966634405739265706903465662047083609062661049764900489555687357406083335348798896096377946498213855576959688807703213882142403799295374408692841711961785050646584784096701304997811266976571324332125026682006159671482391436587449331313366404864684772362188094134465492915691506139766460048635032431453197113769378604729718660434475652643461849483073110248358259950916741327186700674364040490496906568983749385895590011524167212055798276859415366146974672603973387516702582956679453822709482314578550387997196609297172931218949321080153097079738071987626790281737329540112085135618811057947593492511838073869752694450653714728616949762280220390007994335881464739503548610044704984199489935209174626158790407128978204259498021667951570146266894076383331383692251600583617565438663280682024914506029139299228478186309874622993404351374147898444796312889214737822954690296922590706774477300775345893729510349257738901117471249673266349312287687652915516314615446918155946234276525128838293640031288119426624319096006692703024346973111108062943615916696086965124806391005077072963645761856367141739838746213683393617187388030317104269562301790195556545047277763506556571136905801543170465146232893186444028816830741409311048491627903689549526552487560781385385715979600730839464113136614240949817151398850838560813858661106202358970575541387737392964137496588189136397879809284784239189990370134753395342435207554439113279313195228915920067702576302072563039141229793778490534616815345389246232586102338629213130941997151616668961331506153871903686216491011687291826917198860545390178224138206637194357164039904629849462186122108743533160182131197600879400085733794276337202747752525650025690031556908558430304732629175813545811757163520528534712774526692275290401694010971958995026743226128272871572363152545984931297408987939681290123018498791437506358859441665355319406831189766035621745066424172740653789373069079443245140032533075719440437955211595505527826790526401087638463604712770656527656123295399860119066346432283673447021179791369235974190994271379355469047618170908864679057867976962228283333558900349781677238158851900570677435686091297633875529238208528989004639316693235326987601871610474302991649278035167276817768475493674372143129650162979448184246824091042716437907628706783432658371299831698246177938403342436036440443698454499299528388463397716628878738650588374651032532471079313397493397009256911133014917775498357252008552689514213722908711583711565466458877790790370908635431294859704472142851136820912309739551514564481879906328667951672838154374312186936693551655816860747006436511828445345399904307076672985250901758738921872224324825315979312760892790290139892997922381822473613004769328868886515538920101863119690901267077879656481571891735635388907610910497779998121121468506993936249746696928675982750354095751697784002708142427565390427041246878267732963060770567923110774375794159424911596864702442475789990416975695080785048800102410152978910024396166352240966977159780241137822539702914487981737623740548608379114214464128746615987748626128442423287908273951056063251646336802762317841407886180718477345930476072190068045460214624867921439137600690646752322378782525777762729619201022426771039511866640040221191747047573458994202238829969256248965221740237059765787616308013987179293330867219402057320862077338446807021725436993176080257989438544523571021024082881150137081763570856517331051619647939689618979588834606053097204583954873846231512988200704734721389323219215518997009613741996397387235604965949949348537233236816889208203871789289085193169707072450017190257872240073887312535384070222338222476028986952345405757417520500173670847700001547706942520451781028502619660996805891019131092261349790035574857297725273523864002527621613349689719280883167092551575982831328151765899213313255391810580830229674339393632281009099562751956486717358836166240480795871911280673496247229142131977715654458627222443537787840056602122931471764638280176380525617056739838521615709307576562212308613660333850206073874528921566723600927316413259542625127526615362505321907542588440118310784616719197562319965352488248800370021608552960523904749671863220667377447913353993237085654895097507204928682665155885341635194252845445882074973240756919224710423067499700081169401223669744744006268860568905883649964273787370350515797158692322475824159764014765538430769428840254030664564065332901866143616611576104706972557198928463445589164549821927144621024038388308798753432919948728608397287366585062435327611609233174498209204910161027694035739141256695876638208328649031096022799565902080334749091383612070106365448417701783164077789742054669465448341755350471390142434353928906049099398521014294317043504351877006101827716812804636536658779889158244047826437571577841866011482132767548779219413738825612144018573865307836655629322906803837638957394111781904003694244176576476037252142168279078318314360285187915799604698860369231564330178623216263587929337642259491090128890081508824943246477052042074478443008336181294288885337937920052350468341740648397523068488184059808835894912751171154601876037506039205121162901505709852070584861624530668414734229190165304559947066240269805363766055637771969531932123074583506441745217049325334272382388682569060468969813448963359029302580125419736607968081936675187389991002003979596478043461779967830340683767107150061387509287026035867811615207512038544800163946225035516163994047166166546534337452444938877491415053763876710693447861999188884652808128956133210153014190790128429200198746854835756146479228022647235938400127693039761596426833255356876805404525215803064612784066609589023163309963049455099957425132539320243704038253173182502585650686928255172965143125692979130757097517090355222117914632091896264458788534207835095816163865538451147420255056282296161922222678017843543022564963717641495823403560372192978681328215989191585375258842986776686854589749738183047945108550040762297651086591728774382113414125380081383021239995900159291022388392147540132539611650661861192889331503224183540611282353139993970685880085446106061653159281082677386676877506954783708206700259368552649131586195930185436225813162758073838325769852968818698903268430100165536758478073442579196347819705559008325791579762131743461057223302435847158026180271875185254368918872253718363009796669300562331568276985243881835519460265160380535648351945392966586693784020279157020876362446032623081062202359483912900280720705746261040183744238957328985609910767681483642200806120992472712060258876128903850775097960264242397291224116030028403856961264085433033827112143652662444300973724217487946003664250203500275366590880017704256696596692065232092499509753939031416848127587555133807859093146749977757073713451797547448492294930478647811244269041776026459683881759755170460637447095081161013593011752748080757475868738391025218944606150678614644219404471664782736932472240192878143625222478024434154437624267930312524464103787388254429339403213359024403942157492136487480202730078856052250196376755420573045752535475495386104896061208817319111878429617014776449442884339261535130178245823218835327592695201882897722944231349100226017922215155768843667311424919689934760612000405172802952990889498875121009230795534602518531098532293496552492889218282418084505049530677581933758965025702104175873040457024876132064217107372693199750997469868384127961328480138242752616151845488681771946115382131128681792094720815553880865416857492904717323122706676718880690611448224929569107677659555560549424685802461079080253349292414113746748261530108718542490891481597737459676553035532397430908654738571269508407300932420803272027240341650693994045802433807642478734978926993472937205276720441704009397738934699050937871597961876176391028596077587317840657260046125586414476951574969795637485080855074432389225004224582848177917889406791291290453700919238418446499598809936957756494167264590792621102752065575365318517059505186817039034758510379810571579647624331826199687640840998883339098721348431442994409674434505722378725370282412945383085907888328412448469237621471998494642532445299272788418122997352029633406672226455190567944289132157641101547435207749582514165860772801652367140539346065693713159811588533150402800078897904162480307520041527619443450980675206489402750846656401627348664598445141469831527081004289103337971702741517034852403895795280578011796024523770326003792919423448949135614953124734318759388404074874110446803407569818612296626974686466845032704889415693234577894384923408888546441622103183794370765122168127148344678674068711652961881033684644212994119620016450713610774915161799621595244715177665934892048424163288647956306695638099020460723157650291730759071939823300416791596616197624022789672696896393038590178520408317351164457407797795555486806257821979137901720805068862985398729644492081349237159877639315575786871745507636338294695404584867004789186333675804298496307468013296986497537659857555839780227349606631590575468710917950432635709804850504068931124131320201595213897388428819004773459202780798233502068279938616916693300027082939065112299116507948323235705448861744086060883260677242074325043312285796327621412069956191438744738479794542046337911230414618389606853652872117939266565839599782586447521607554517827448011995164107608460234992651827038968424181439315799063604156638526179518081313393127381579342702261054246696260797332924181951305070778422991867121896967006764546598506997954592903912162244870645632322839056190122887365951361692479503299652498521468647127811911647240149011454246487391010612064104233747329457184740962496894903703509957421361900947734042648915117035326433564233477880751030251644896099818422664858982717529362407196832321614591682294332849647446469366208209803310306141775108150732855452422636272106339428421811362213556300513515251951321217047069780220463550358008082012179748448236774831520072900851010211541365032189229356521922742533661237028318587768826648624080488608653133192319308586830379781756028849413059927238328546458305172169480775235645120804436285169624197937553301668581988053046526223035918645054863359008199459127829925764169723583863695520903152129675091380781382744744446420445817385177440744880755317940015277843403098915299392602034242828161128950809802525539177247573710169198528524088938547840614108487712590836927721755686320804037266117167915459404252523779628918779631456699642823180652473960543147793024553273503506666984151241543620206302039198751726281632785869829412836886293927872795925433625990767848722814646642501145587819636220203896654704551580261773188617616362442799288032085129439315096596503227615359029516747592451857974602427826750133024922734171009289960455256626660933268138616504026367446811853433845673705494244996446853950061048598444810884757942944444621624789728300733509323020230857736950316469906131991152630940265385212328039978444599596162866696428904383407392332690838695775321003932964322292019403675178184274026876272454977403978930025350753787484252334329470365896882145129999557592657103804471466681134914199654465558191884490103337104523433853777531569047746920246753684298112139267904457802138997557138587211958975839883144643777055586055699889614988065181476090345072471268321383894439942148479067507228236511255812347802451633650771070721645209129593154620379294299251974684469066887815535488235842148464006461073830849805378327631686959843876125148978173362925103918573427948820185499080203256916698565933378460936476234624311888175786161387420450658318025360482825923128782748185666125735023665386143065621584627913248884770626865820095273355155556057116467015712324206636148238854097135494399192238498973903410437309821951042018791380645354534104102330269927152548016010460673955285657801425513821340272370145150848433440404648421287815491044559414906091645583877995714966733937245848804633696456345478050701181461737843669093272312559075743304236320441633932190280978294816390937425174575649209000365652621585907425304085872298913630515448495706960273718764820100313106779770130948790606458138150031956383036441893440228806104022783340749562234183281079782465810327822626810339383153586377376510984763002812526718508819190553815729677086254611867781248630014016035154787809538914725999667802373095611560199304032033188491547872084512418089337309291107886602489850824480029159988731837969291251023674121001518164206488489643212982703982713622248337847103438098454023179937402054908767061155107875503914655473737509862894264208358948276718489563716872091607464730204112833494988746905413639860002475395120753685664247111795118298379428241007715325058552707100806653127344097206455217897383027041571152673250540419058215549689522309551209805348164222257672013343889182261314017403158628247849794494584684489921999509360941162564108505444567082507763298806336034412448328460455472748675228830549027573643141489395380095573024141230249786402613805722345202247991185376091303191089982277900598985359279727411710157625614011793489871005554388238599331972745244859315249468304621392724742129069728919612249898847239687573353035830065371618443650444711237225584450271059004410210025792084858136900804199172937461126690042050320865201053982265671073696113480747458496970774151546157321781338797319729549497156813723103529678663285984969332365232051970385795492088885912948583231758970301147322562891588302007610714829097541080769538043474804803735310909695167975412861686857676290318386924751890041488691598577870624911644019817243707901243078320121503375762874493389610621764961879717815883114464288409774991020920386531030125582646176670100563786473829809926524317937969033723275061030423958857661195531960553555863136010761360901796686460629502721376957383759886808761291172185416150649391346222677104821732313991507752157359970100516943524953232318257856487959505857849065567325046350275679915386438191849241149871036543679663061778246209540150580654943447110813288040256852127890112084420199458720368994808098273452190609087063526000283183695691126474623124344807482185782732057109636109914760546129764602103354984325343514279886961686728018415657090651773475586188538530809333663419044021780537446082055744001101154604168057069541613096427125648755004322039645842449128527284857751559797770477098490784872851408999004369092246471951973370140757330177206944110191346232480896910328503854120949256301828211513663663214605085824379245494550707354332100249013084426450872763596916732392620952418466259332336524762838402204382933780178013665146316274647473459252096987527418048699029144008290603730085680881885615688226437360410342371588586465688535256375701097364509209780575563560898997592479629937904826365378409506807527869462375969594967196027107761547149599817010949805052761981828874986692992109029444579403955896570216786858058802994690439251958572690859064314689714927506941555392353711766983067437864047877525070022174690704505027279084373669701589662746164392265920273436662516044798435739038229336659771413912265355512134979380250129281626185549952865345032320469128574877190404186493085185136793323689742128272500801206896274700102422548526687199760954960595151762320688420721630649775650347725967941929433747239666878624283917173501973797850495727667238470934886011212029760405492936122812074280653597822186187565081889560880347875675232672684377092066086042619410341666753136238433696335778109494528517580729774747688285416514466000757705002230499344082287747629968622109833456805844907706533059588141854122621508199536695944521303427708932869149854878713421228738834343800291881364133229388604905847135863646939729925200277829922539169641923369375882528335636257956881036416994725692032660171209339556328408819278647246052379564248024303585179493698566594686351961842210320798467315411761346058449125725028018529478992442512448749045098693362899132988174396101411775983602090520566465442043743248035191312260301522332372940020297871591584480561629230185337745588164863207477969269651372396821906797187061179449496108639213827547577076608083632122568079063759720344915037086591893188122649765542790563938328978666673901767963156397397486274723925861739621542063027437357298350102605968592419550700141294963733899767783734911202964287453522183411592874287269630972204966506062535543210004603399075563647180023187651639207641966927211562148337710803297945942071774324093973152311794997822159499910130142226251933914502294245869086909448102266536478104984819219325147788593217948222852836038687120544226092270512854916869375694738285295176087854427446074197806727082560327713778509776028625364791232892844677396277854564331887601170266881375661435291084876729037795185466938215383818777087857330066211148630767000638827906236854852665863148031899647888836588357007206867964303373320530688885757665802262692221394833007869313710438076199369426521972059391167656199279995318888296275012251063150653844684238701352378786381244162001916750448406260088041189861108208741065363597063874110924517472217787618388431800754627725607120595400929764513544191041419813634920103357121012183118166293613233953331215683444086625276085240968641086670022570804969102546759253540871534038343525385794479204988771949998420528373385014019949979236133687169671139340249007672635130370500375051141137752461722630442709948185268954069280994520844170028158513052984536170426555898227747935879551032025756591591144110595223549785847995824402220130740523650618483479412457313332041580510095826037816840831589843019824004446360606301468180587557664773420672196047909807157145533149998378693184242179922629300770624784287957174971826927336607339582930936332723207396733065101585664288071006964381232282933999195318762353272129577455909432506517285184074701294300420454980270798076447752165286441051409821403998020411275787395886891885432606240434444981365118090305844240167951837331326073785415033565428373010883836607786745651490616160832578507421332270089821795180415656098082263586841694059722005864362293362064056147679379850416216043938350069274677366613207843200408689562390575589612952612083125514672785825541581272712208559566673683025799887488033129713558836449059195598794785067026067066117585779128181822699289765878551201688175396584171786647505050340738944726539112730646265422989249436495246979620071740922465424521538656158860580105415276757945267576597891973464978170032912249594718693786571064354008708968286797720149451873897049911642771632610880715819520046533170713291890021729606888850230631917250503940795796785589398512359131259390456842663970961292937083713928118880491788803331103544280140714453287867233452549155974899514226765247037236183170614386691802646799843657822793260208114085865325021421418331638468573423668847640798582230034587918184908888140842546101134865951224970862899834166384244413231210108777185469485648989491356395795895894267901799756035955996196531691818837737119960047135481089363821257846583665974925549597360336468021768943781033546966734927165704573890791448848077859890309407499648090400510017451810177873017502022141133223796658152110046380558092382161970340124724505768106462462776425355944079114819683764244408771448857770568579807143986399273434727634391545293380332721433178533195530291481498052132315635526070790961478347522815763698535096951111919486780373506991205708057896227391749894379692269782645486492276915868383554652763060562110798993189518536493964605443259678302443216109495361362177033250704002645380720660597274685749018526583448280368995171023464013793735546972890312774279231879030775575888077123261788825671832731035425832958251038622964828050314395534381712386533830701738631854128039202133985150063431836994729322427769971960922008224387245060079152252350189283411673944815011027990666244232567795779240901883370648717828836510979239724622259235236390275859597978151568175901952684721116008463891043541242079976789106301933023585542279154337946362748146027447202294685887897611663216048678836677525350713853601896380885122090031861465077164257152724258829503673803026860875762431202133907694718339888427606749969555852433427782659259990410105516480093265685759770167067737340119887025661052335709034905585234246832596941558049681612092799487005928378842189527891796148977836965939187021802824111314252855892931106035051124792968879171919438381094075213045644616858683235928993508367421554368339407504313198747830600027225489114893403444177392198132977910849039400162095873317831079865023479186306402565449618950306202895311741480128931564030959195143061918551482614908338205339713278829488064466420255321661395971767981446421718100076535088086909541324462902809469153141040010943570664544673734634320631291564929127386346688640342294217465700329730085103675453389939845725829234645113407979867071194429226354744236458213628477264365426920015501987660158587537117113399272433499666755161100500222729834342253563018546768944099294777677973624091750090378251416376117481815618490750339774320537420641844389883894942107622160421222476344072802343646624641912924013831254444328279136819616706710252572676623178235883242403167607862490740697157187736445936775425823170159193045280705136010254741849807422385476633716003160936198188284969597229244151514940265041952059916376346175705946891477879154726636430479330811487178152769900773839072764616510131309747608369713586622286799195057542661080719029104333400223120198898678547260160960863274457761769346570523553921180569599462895770196967940390413174029501712111691268335576566459338306156963508793467897107879414635143628617213550982998523106989562694853234723678793895100949027444957976854490204242497399057267560476810920790673612073570525384341505532162390161154940496229605846143608599844876053728818689664441572822195268522563899530014950942154254190863930374123374758702478917481194026411917489541699344483005860186851189184286527571328433963751763909938902011456056383885073984640220644672773865688775778117786513088366373026793941964424632608106564464564977207051499254095713481826932971552345512791755471111971619942864000375442790897810548287671261687274551847793263858476194100135403841924992603340874790476804999692526354592594392871083799734159889703961712036826040091373596774820047433275543146332995503658852405624129882201756874742846686772988761064258344813444109033584290505621691023825823169797654056192700104836466161171742698435545301695739179822695182438578919836875950315972386840549964463195263614168408663973642980202514205361971831518759160498263364424117648990133344266457816270022250865334542764589760268907033578856646213082572096157786977444079158283535464793306566250730199203286292316305840833452509416240724483198974947347617517116503627075682955747160212081476633511404344287412330776639873821904724109841710442308407621234167866969668968109437930472649923375176828129232783209999426736840515811016877540970576000203401082904261035458375689634162376848886615942342605796403046309799138189873420597181345727896909104471083591694192201921300542471588028244594478327622870888308243322847308570899308360298687893309581793406689604190741411172226677419191227903288995716909528630953890176820589242241734229322857434200435957784165722804897085722389590079673079996346712945626473620996708178698918001158217223770853498588262533754990306546029215128653346730558756600881798782317397670003499282182205438028684816710005884472869050621159536427608922235148247028139185692417477044905510685839141492254803518301323329187687446230925135253164396396300914754784232127619966838647370046451363735932598794818993672028678591289014822136322405067822005913944356366464883386720156793890084606817634893142499448962898572159093463464004086843245485939995340459272753569683119938993208660048753286066510810159364017326025858835814827898602235799151206052333900401490876223694585846268401582600269579288785120047497473733220410976882235865921787988581055922469444742362160925818294821197175132483644455780656224730594934064452678697640418418619852845533926822324775524088327498308965331017239338682327571921679517770543053390786631890827165496102896599553514789453241275361547051663496944941386889281225252787702903612594782249186102935875271206538851965229028606049441256636297218322747564230553070819459942656708364651484786978990673551116907662537043115591173805500196112360998629324961644577157820378088210552887804493893017632186305562927012600389397632073036440261939420349766370972686441677425100262906122055111557298205268049569051505170379914876535209510025725003032805180950689487604991741588970482832222090617953259736386135841676118502893923831810266116911515170708346143722176518212774934589602484677755110963916027634654004848583607342355419077448095389553039934303600584561236596266033769775218985063394239564747737267559439862795431879556990368118370100974381066719772241612284765151666558614705410020888602945173931916133613152797317361802577574455523456103687136814429873752443734489542128206563697458975894696199711399335961593448755412408083064727766930482190949938950496654252110969176177907690867267317658170069326843514653965491868858927244436802609699792702200716046618706856300358227941078540176365864357637783045547231134600217783714793598882985985018066547717102623923081208463159267575376632769533481996623655053811497660078892152961266004414716908078205455946420399494987080306325318391787953956931093712941397537966857423497605164031399741335827654586453756878610918597651298685089515323348590471107718660420831175115562337388152188495234357268895543657203866591539305383299374600371554839611995857539939547666895344391468993155514696299000514239356454569222331655359987193715575672134278792400963618963603130501500203808901267290364595767139108796540355269241709910859604118945479729111821659364672873021226727370547954834571628227027390194858476284254662043653884958592232656675195088485374745975304406246149449873164068387390353378705407405390528104314074724115708027486961377508503103803754542465605608254913987865138338952383017996384506735473823874186405655234357991748815893399115631121550333194741691460750505557549587184610132909586021041942837913650314945990278335586544543301592099293073284382601196784300949393316703357717987780803936715322023332559914831768145029378717648211950939826235248244484952692386574523905808092635542601497739809709646284266141419281766159371761644349728242874623797338867053525243089522172183863955833297570654453138158744717296464865667598649894389452800604186743483139138467630408282844348762537256050762423792579879087449623430269876242130582117225664401160657551607412839289367163832757884358216498831076172749177764990835358977806083751181088861584496900973538161383713132928733610792510177065695074736322711235427048678813508527280383145839827601020138145360196258649234200283983257428356693370989615234441256317966413788803822908574317106128456737215883361087375139143599926053991135548631903397536210789782821084509935413033581264362178382364455665662132837387158670300611269825844527178120273478677161781654950075522614288238879491088393017214942059064701007285607939030702365458039028513238117388180772950691952557334800197179002014839338747954180777251645267824179582134482031671123449813260780505567610350999518277411599959532566316310867672885195695586476117476198954906926666638779162638374232036493037440342076886237900220179410755566733934035537039311876866173935590806492602890522174900814830801495077251256713146956330306103914304195255124171567669813471707286619626256973724201996115764122189536496249472609498853128348410801652887383485487998654629502378425657576314054818091363594538253149993817050233215828153369135238932938328201675810748462570743502763576920238571964567179974980606882753482768006463341255492073969972789379214326421953931821167046564227257214403318753948570178164011687387198980501312173311212498546672542068578613444856487651181199291069085465397453068636848333157838862068906274752296628507921573647621353993343917640191627764668743150398393400489473176257366807110280786634148038080699196927538773608140251173513005901557394815760594570549523129211531404122196345738114493162827364714636156490292244924066659282564044499093573865951167755497426389471951942095478749149553045642671171006815212795600414378607247137269608050291355713842150758258266987949002677337104774077779477435861883539956692148156738029802595229158919970466483892632177912843030292179945049395700437329095771783556216399104271693587514982825724056183916328140547543164881565208103535228808316233882799450569390082853594955934588422827454325663136089240141717222219745674506277869559930636749430933305247892128879397777822756231258331513167091528665411230457739557607138386594654173773877875361547220327122588677619263876027668502310899834067081940000584606623174775722931457348800519074497901273588156255264005743870170325345984068729190516259724685927101824643991304712559850891349158698128115722932276954580676652315855395581108103100062753214500505000445913333062784037254816711941927827073213778931449628000267027503244350261482455414081030879594037815640330543258308286204424291643888458320747963369688176012692761563556647468939710303920181173236778087951548054614226258093236661049679369755049105772717236817104037813930868422064573337627559717868782509615609090027708209094841966934638647219984242309515099149742602040752063221594075549453704124076672482560548870681932038230535096435111080902702190275545049890953761119788088187009394323857260508783608014152749667844013639909568890193864248049184266907135920939951004917269140757627847026715159579502375505486135603462255120914139168255618753524716196251430280707237547098715449776435105247027781667221304718322157312469520374756276751046307172291713734831942927193722182889249559003256589443773197205787060632646234069318140793330872727623796964096823447116495173070403108613192346948244507130336523883366263190141729757719362446612471839815674894320718163598351699357527024590990362610864503536867334989984761136854405434483644128798586064784494467240312818629361510896383265481094534488691173955888987165900768311252932118062572036705926921134489118959608649924779133197323784234289557964164350622288250568992366708030775209939353197292048317464656341974458276061609772031687168298138822544303008121091454044007994728057641786401173895494266435892085964720793317931444019417463262872406285482543783138049054905559019448400138787453184085149953238669300278527823565686787160985492404263208690469812918164927479103346310766002117729386473650332272315474647130380375039172760379205920680675976223980384148867394259969650914810000012954269788295355027991269562543601119772750441770234817247341471325512224241278693206658573457893034388065363437083507833048115025431725022952826626280948444424671862223809776972203476625820954238010178101272254271632709491387013949548755191819983248391200425133931963233690853184901920919247520105702355281969594114995244405974185399066954446330531858225459851197676904636535218916673538673484388528957473663539437755845645334168623235568063050773060535404800350694286811904613518705141420935996034281392325645989117873472318466021125474287274462455863541553009866386096521208495999016163228005682880630415589111370298313776424955387440959190612512935472908710731847030306590338904893698046868949497865456924227419300804147373277312809091753173319334274452079423434513684209935225449446388578654952880313874437071095394619576820046689980351242783696279298226475045749902990150614760336532587620664866307026042242902808013098950005724969135518119078127876437090399110258223206698629477010545427572163620360282432028754643693639323031606474630025749753651582976750907025508091418803952624897732050766045972461296942457412900936129831085691029505500937765876876926782803703746739044240382272307939182152213389960508008406385219672670322037988571125049260606570600451693789753375518998339924308421794023850142994422394411852345234053093271449738480405178361570300190186396465367008278872953665379314800405064085568748260892150783990304616801634451986282439399831693033999898336434917461862180361200038952674801588273314757063431395630876246647079380705504585310444599553462929592492429760758466091698199683350350307166416896632534937490566431298241760025185370227964849691006719873423474936311729910411331755664151282196526611276386407192754085475176665663485911673179095389990518865735378202718453263358551612505443452825182541518495159291404667074735649416103332329226402659818405608130857788330462674911733055174317453527446273005925938048019067262101921038161190926470649904484496156986449762935602451645347509173207043743851890542905665704656729259976248110317218193537222698952302799119746186636659838630683930154042109933425301562591454694694027703589206870942243811049965519804643240289646342003963305051357486090329343635256105445796822596725609442500984624458214333745233463204016779370904875329479407660875451130949838301246466431353057830116617155753537098491627320754440456156541648060147583306623977927894261160199829944483817530730063320264094068153038607924029748937232064436111259766733747936635710095748988848414456622426169695180587379144058881422899474244335949478437071962189714564915453399469249535035202576621079233583471952478800038264553015687174718120797058575098734153977939622827743646708749668814413556242046687013234845317467538934865720580873992507263966985148288713798395164258643151847525016463743996910409548940192103901593829385424296794990202564691071569422292444980367648235669343839053158415675244628535939161449678693938450981004562021396873097633558360809025783756339831301467515676987178151831539285424330649688704615855676833231544095565585953535623927537006900110465176379798269770438742996791301619724561678588259929020706975983271778010166255029433994990321184856424009919302175358704812025731353129111407557619068893601191166346911916337454331717006339737747097252369590043438811207938553966293916268311050880083482923153340035086787803603095957630424421185036446739073876928838997237792812699498281261531210774519725139207133091851237139848910617507373968877996864820546209234669735121434014621754130520031724935423886205285871136886054284253745718166317586690306052765365786252435263175796063691281290604050272740726072702949250289064688148687894009250460986345718702233269073981049519496697584400333000258403928627826744427142499524240096834235819839029223574679818625030474095309311215098481402972788986950166591644769848510090604361526296635656130008281231417648421360535158184733510425211883227131080080794176964623224810504312037741203926532641394225932116981297830053628632361771153983862543723588673675282113211937486034804924638076195184497777709806974771525416221526020464862429766741145992862420706846364307166529419012523841069008772359824970470005014646820760876933956209642398782314060411865223617943481776742595681738970237755359792905207251589397754476455151516449438029779362712017465653614978665522185301962803525903505457894406402571158043947750477863217559727838380147516880449988917026199347355213399079202483380358362353150810239139065368654575951667356402848460752634139938899137888385695555701202799233988759307355661518728935057363777228068065177491169693304326576151786750094993066869589490670464462466659002388611750504344637043598170362082035356698284499003543625893535059840914897678098290090085082389920043901683121185011047138101514775177911263038688654437974443751634533556760507685838655454239154101550721852079008144518063903619192032607704834730249626322889740651693113791306744731333037052325416090133049835534909058647704264241518599470817968743553666019778138146846581332041299605132175440200193330203167415142535131800206718874415777051278817520961813371522783808444973080270158121720045533015404007054428834251987953906151676273512697378346175627466888244968244755093462710901937207970226289581806326077577891030841529233368680343151229971000156602713425427267146357990076045499519499290933631338244237036634466094284518562793327533355067552211615877226352982570655783005389548696836318487311446386064005418678594529454145879885202911242187507935673077240630108259084711348571960591573476635706554191300155444601876667009184606855028454792959676058558760307264815255150439318518724509075594350857504872299669473769828209658169302015751035766477012915165982739508545984041164669417242305440834744279229552839030028785698348064194465389746050882154652085675267181903297070989907066552920928555107872965015892845251840337449444695670310117426623301067176107272759098455549311308298547595390974046992863238986331837921702030009491807984685982069178263568779909144932437615772526844264791238379688304741023575955884919440881938653632919637126247643361715717005911207325630371707350212751480352910218239231769655456766300810504113857768349009910479801537096094256123060598113132572646929297485141914054780912952656413650745276924665078318770356612755786659254619954296404198625174287460001409136761903609862218270771104335990515424155661673078461266039704793431629471049718200042890699769232939047872753975062577506996439565672641306623117236441630496531183173543202379864418410226543265145620193808153941311776780356765848265914271849549306434160459708056464063165835581114654153334167138462271227556664551226084290545414064304369911659412043506158757613570963802555450659137829819895086042185736345325493821257168062370688880210027790434009715761614627723318852553806877901826699894476715795156440435197776033553260093979268001152075309651413685001247996717721243004179597048147827767595211147271566913998914085285531120482196595855758100631343624158201527976776137124402861633667475633754624748129932117629796602073622873689601673826360848475898867833652072059336265321878262225748665875534148227176786697005598094097033768278755730427245973908197713532101550725824613866589414032470296211547211879877474582428058926628285421210077765893126096465861565893234845764040781457235663883180279491778727692532164523767543817665795262504400887513989687104388018078843125390190684220266685507581000390474026790653432733182880943582714871342093663167193943208841623148139846970920338820700886709160253102995009280210057025675699302167307678935269841172099677120740894381565848229068036268427738139937728390497643851827433783014928597962765519680196052661836872572309991131862861866018220530580583541396305506163547816193837818835107693205918193228972234750236833233487998240258575757629571835041633044070798282857135915079917720513395769656948818310266971763379284746270625954321830260433060440333954651746580408144838328576712262501656775624516983255387045638919073719646017513864680914800706772440333568951519310152103391274796667725512625274957706283035167273371812389442083648543457788856720407871852431599357643497850357171241563069025465668578248913839586768036387773066615233847299271894473734363203649569362652897984531992387543196168174503373562370717130365499502580885017354772928640043885585573539760738873270131780732837837352092150198479329271590882096955146418119492288889047946672343887153864591571315900656234564729651664077481910556647755725940578933389170100035514209431887759544691076453556224987097208078357492875393516205576031856092702822595596671088729679345326225217491581148878884836888090006304395423343936397342455755946399525602879326078373648269825537740605888104345601263795790273148323878247328959824128617080507958712364331156575059184797157443970263579166484794358618695396931071925238679760355854887922125594608102620519253350683151537316886262946817879682748016957086232685661010800757903324534015283408269448254827990603143620884893863619642198217369325436716832393932578223953892081079364650816087499444707146716157882358784913586385588930967630654280416195553413795886168150825487834484515164169228754251212482322580627316028160182781667615795257268015515446101108723001202448824829020852208064504749525100967980217536480837024610626498062868963616597067941132446348396643216384579562218523070218179252063609376656079284328465443630402649891327236068416221080803114215943621158040694073107037494186810122148558248727870483690269436688330183433435356469176800303841736318792837735845973742169339552848112698229297799627170994389586151159459775605777620955336254261877956130560807853635719961424190024649502293033571343785261954352777429182853667440292282315939494684838572170704800179977235723608760173709524174833770815053897470883921333354343156693627800509196321914420702565400826016744832727038154737042446116624428275108916437939578740193997868167263748682192614769551954401629029073003391735576979606309725099505609058150533724601012153236851947972263719757984465311736736995612594937964186941264523024274704678292743964577442365409106704493537102014680712954026675328354877969199962899259548808628908449475299628192738697055412729608982846376809291311991740363592185171792689710298715976020455770928721741963702520892362129650202461992827574412594485926874640325887859954999466887055722172595308899644607065891182115783545924999596379522501950392639480639415668514925392000068428006688027122104550989866917403021346863503116413889577388902094297329067962273522855816635925005779354206553424037706019290297036920860634504658491447407397620089913372504279098846901798231291937055056931610796781085159355428182742679515218413933390875152166387346917876498977402214568243504779148092181494621763452866882091763158900419677235408763251084227220454027934569469237698719523396433535010196163664427170962464584302841908220057605529200496929686155418206798259887017150854636803500166437095309472417102299097338409588864001983690472286867476404966336139680223161728733320344469540513252143068330395143761508298802540425109242036080625093487207706191840773040447457232701296039121322468824116194354553927229378389709761104777135366838658459913585543336163289903515575913454568407394767324919720315919965229404171573567521909181870259653786148978063691678374999444143427711098885965426201839144279329319973335842488018211917198054958924785375033947843993846627490769761870854560123551959878350363784638581349975687522138648006608726752783633452743421659514040791763214185157983941939740453872912805826281290623617280309486268441984461342802091103311217741660444146654109163344794143065888211276984587100359587582457355489012807478723551239476843550541522239477680129855295636569094722958220472606583727859402264013358927642298019898967284872060996546480363355259315462935372023039127740540346932258603934237589435330134601986672097835633049805130723017753040672722519836805735788789976463902224477401375757337548816393347079231839075752756083902496517312258399801241782337558471886730424274660561545210367036312617149065011980364088868206663117929022901672927161442923610115038495781530474467629777413216228648469563222866501305113456112420042067793318994444121971901800205008251784448447542893981279701766377379321203712218318228974663829218028105177583686964453079417054212899857144132372631313505786241299927036160931524309814753852998807339589088871802801301649031862862670512958549754321266189973033703904263565591776747034444817420140793755914128805846047562805653685797118069539992935211996672250585845284808626730313055154972763482931425248875136086527595284089729467291086236579663769884229115094385860855103877448455132973261878367047377296487567570273696220755789462459490397240409493011671754356365691104408253654768624748642205593185832019458521001039619479365667441090444555492764285724082999721419130035612164131343548282139890486080793834117539073054827019893814602470621940782014766191294349971873005521000286260657019595587584711176833681605282571780391007340858013364500240260829023319806536778783857922790661099544563975893389515621888183065670269818524308420831185488707099209237913388999301151359056971107303319859691116993657717854051831547359742293789112563514492054625003651598202857161981731142601906962596409834885840897089681255857384203509463974725114830237147570815025162522934140653528702922746172980857976176498846822146966847334303909543637592742799081864687734029595988081775675958673757741020712359895148624786184363918202563643158950666069501013456951409758602638977008923309853849812343470422948583432970706324760427951560224028695766283792521270168413909496772086555265886471263856762975736277186821297579637812808460201130746412115924776618946848199381006454937271790890723196084902036629000728638909987681232548701273539810132188577711541741459483864379241182688582257740133219097662648453155715956102252480345291877886945064401583289508486324600263184494964866729113904975866425032278032190350884913137344934778780543168200102544383186709726438620389207796074400944655239577019071421566178742790515637375612002055826681878780893793975057284709130242190427773810322799401930318651657778487589189407364220360825904432209574586126475987729892189824693335192152394719372170851536247681289099054425985793564149929910916671543623830943914395283435819779121517786758719940879549917911101956541662423363755978641818425468796060227957718477060647261740589168812786045770469432671718475044428423360390621149567860508858309811724588513651121210768497690227332262019774078457115170324136585306165698141661901641308155956368638589279048893798985437051876719185696718463532830063680345391219981415786463177467029342046399850856663279406696038860341550634881913392081594319390166198315069559177024588129267789020424212980291353081856313139473825501138812974093048432315723874921164621282139170397062479604252919058346078240166816751579003654700232256240531709540405772651689316472269736212989758980885543552022906299871013744852829843685346237423293735233765799526311296525349454846915937778793116665068302308552899512104295609258115650468025475434258441798779173551985787362894097104570025171940116395403507441082292891791469539207695183599198983267351970433433523123740777807655344835473867912370776481833179681453238123764292071381213265085777299274613322939570723399694123772176180171351161177366637307555176773731828909588092968249958412258921101485596021384558039091456036433446376451375402281401921957219703175427044017409464582248330165744614289001022934452719650973774999903036831615963648191183580078978030683966151032331621224350096831181536683375209415663737779727112817684544267695196294397099755314260828176185634427019818955869512101162010337337060322902574833031759243860810068087431105401621398449578387556558590069666910280402140387001014804413600967033865571400607521924308561846615195764840441897992329584013458940957580367947742236251196293200797002939278621442058252787305819774135865657411956010653166363292476771642377012876921134669890077115204758347717822968785414505658444520819108606723287112544350312335670816586318106282433537141807503630354379535591843292115002976440658708244109801781953535901983261243855401566670136168638565611582665456890095459319364774649348390038731085085582248244261778382909815051929914893609130770583366252537609738789767159511827164270237690293401332272023518468735824481040767464856097019439387595983936494870078723175235280391684304526423553139494566931521466023148632770996888922512728840520035685938842296823740036688117427100402262828900257589940009715635965003657992728989854012427291538931472812481404119143115139393600643454779025298549308005886410228369157887666084389364502939004833489880661241592145459802939599390382568805830481540428714298777755134265233668237133407307327492937567325255528372191415619317693236844340967877402853287801857523789078288771825290364853330637692986299736116882913547108085913215009143056054862251654661665557456645622589734098977787949223835168999085229367275963877719742345033055011485388535277197494830233327168320946162967914913127428510739684633874585652269298619924991759801104356083594924150556009727034711549928698353259556911485420521182553860656487360359225315561094586721805663237752201221415228418288104092673319335737170453865523907143386193247272943447868269118229382477570951582331143470253668670973311808349935704717533646101683715377727418268698708347527990527039727887563555977958673245927254373306377998672393817375728404099960746542142239211723383604873359170410639716359234098928153294691170671729815470068220662143160076301297499940880195194571185595980993210411933967288732918015914013790749563430820500252900932694820962721892614381073665197711248696798274817886154999885535825654208830170888765475530460067152343970806866172680308112677573040750889875489603941596112355118922920926989336860772015290825862289623117130171551468037660000045112062217625696712130148264983829322377724759381543245908338924625772079358658843044712546544409862987401302449027641080415475158650396182732653117884024270560213573692455150901354578704568614200443211599033848006020934103026622573147361228716014154856889921658297735838399471059106973418726100501221553849443256778645653402957000947745343826487286172915742364467440792838039110241142129109255726405705545974687375271404048478521447812766395049005961485096300681198910370643565331181233582306641570232694831640733394176174440393808907582617673777096095145876178712001805270410240242436152210977472071465037502862920812362792325667484906459264951981068133886330874712419672890481591646536087761655563828160667886746879119776973491943783256110334177531104762189743429856727296814719448656204563788603068135604732043885101437285521915229461071918000250028142081327333774442837753927174854059466294287450428135321572979113619192334431477767482473557471904856300493563409451103121638605823106340044743326171339937948835057428870814988897252434996905031166610756396404294831571802490065010313425750735386451725044974208693553429729156269016979643370122919018536733091030389973664076011765330815617452451961971383000621812868905514441029935230355569442050377870755235005572166140596700741334095753981139863109796317188856152640766663372794029400900986050373268427238890520655493261959047910766724444605700613563724603151574353802237705267965917565535654657432443287585921926344180370635117132263167342304832976957572710147977859368095288165989611847708917070748691965078004250258482537221651175404161878684554964541128188504220489672654308611259280348585782456453013662147189412541018806432684116094932861229728282552477328528453515793229957724049111538112871314061322008490098035343340690289952272290354098978728048591483820783320601011625611752235252922948677124527667055397860441839732949795151461893194506853958827739814563028223281811001361178655170047167826731293455828139194275844900804392059189226476443272775155265804590931114880763277124344215724278275443172328479239263948940518191427192742250850585962311470453335819498312420025782030818135223309214389831184929974723256065315529559235179379738425382254747583882355980882433099202704764462102620622746357733353079025279401228618986692330340611330928738475553160219601828064850292903475832672736679059922282206044199604845556197218784651923867903097367961506683105170963455923590868388469749843900071506102749423227717872721632979767053456004591799588092674826566055727376419482875155492282271110981974116170608922703434826227510702901656007205011506610249564371787802952224345465469680545031479581961711372927964446112431876557856464243507744664075762714804810994650123813071740488931795289656865640695702790384976000496418550443913998739733795273300713609192608967070914614912687247730203828968750966071063654240691159846815361420886819978729006006829469659158052952056875142990886225428391669806250118657313697080613465384435531515180322790731843867749682498653139568652659680947482327113475975271239075172786160386724207832855370582480794711519430358285077445842223859138404378127622470035533525901577115923279733836121638086515443871578243344991338718812781310509998862193848799289149050176034146894517830538571385786865580861626994515899728400725916319337824642513715906929859621429387038515385841660178882257718599306908962105451717768568817625310228913777874461663992055388754739269285113480518973317468295350928669768280150744695807840764022658924286419009327329234000444894204028773856821741157253177739332319148807593929958939839417732777780995182692480545597375531867061026654783713416667879544496572795238511173127203763915430122768011801423167121785715737109334845344747582464285980536072219457949580296609548835773182004421467179777850356468726537685056619400130760346065943339854963230202451855600530395658590998308953734106719817932437628144172594734894714860016550523278017894052867094788396323875577455911796918991245207039818275499493756417048913703466444049881478970435980574868456565311878097260905901952857243534044777264759097200040320448997565717842948371310528229078918774367044155905923459103794077589054145336930412258867674706854062135824815813294400054464512576991709580519183605347159917860771108296858124653516192456056385320372825897808361699714556213099490535030662201682112131718094699117255141624321436043338274344159745608218753252511818556518847145839284728494875825188507762459720722270712409069537419121266104259099557372511146889013879004596733621452742603654341535757965141995039563204811322586024655792105278012108740699811820046503393771382727032472657895808654926884357211360775193606090022901154264516033971798328022545871949120937242206435376437392631137096118210675239287496017959078805624456576580636996258481398645462482425876315689385833091647873420318415828800759212571430641704985353117061919580773231871033752060915743602987223012848521008366253746295351499419013600883708190563745376931755884781213506895230695970087681124516934345510689586240899769101314851195265170111733335845975091303336209401500050861545056892470805598506324877168825464192394686381899991010014496436996953015222630558001410487975880252630619666288659199958035767944535459910930842721877291177617814973733167295626159490672957463428007133519275988356282674413300562601841297301954798570279381286050421869460447981781963315866767833586866579061432717800341992980571858587263485774470813325297822762447155166507798349869510630979310517864682699986413122260155881531513167954878721160451577231075338362605239720599187124754298444871406500304060527514869303313477254166752418680248808693003873894424490637593814953856222126319136263268270345232606543026234101698573282682521818295503357300604277223193454063004726720780601582004182786171942992776515237147442812057076353396555503024899951587450086428383404452207336361576914789135087030095498463097487357879998398173941929856467968494017623577163019298074100727454060581490761776990134526536525918959957395651129089927299655217116786593871233743582354543308517839815013864809091367520252378167186510934388923015554966808686130337052100070183545389297209857131516934590423872531695508242007797810371626502572055683627102663988313337086970556178909735298756221193863911801518427024877286550588077909457151692207609794486312428472000357153018149659188032247801633805094242831433096094658350944052645357661886644559477078706569896251013334776274526755831480876421312741124222336793302111785223514461143523667298453416125485013298415926766022542554776096701341427544152821398923446052169596875167739399291088526231276158187204850043903983343876762689996490741443067781460021162899442007459238652912208110283416256610258287668033176037739707607993773878912914086017116834096938486609809964922707040417917423436706251525081172652748647136191466697418472780752995744377447521506802931413139218387749736210223516779728257005754790040385913408122637568314648550726381083041126339444954250756031647540474171003938928612058314842312396409218906195166311932081704620738746803840213003403497859883321756719354668751073654673585268422398385155049835881313112152815625629101356343805033810597815428917005930350755892269854207616106346741410719797610981890290606527469057251145754214112648095722845584401331273126424390421517971159560714393691740973059892361798595681506040679884003023053859838581296737248234608458189305618611038290006263619726198916298379291819956647366603227221907289840284737015666089115918229083253654605058761384218451021677488209266991205058543589983778120877689289459150675947503673777343516621654605428787224057004721519334804513303756535653197301189559273335879869251841099900493875997015054086343024711628527296659580325732255662229027473827260365926040655939538350034925713359865715983082551130204797124481990223072967438998579463418497292596882395077103539498490318008892791782379210637635985189800554962398358043716325853550636337407658438597755182060919721777373899562145464571283492768862553208811347803048825836352167435584122869963377339697282719259153573171661389799218087587912439971217472414833915985490476852015480285720452182750320005360695558745637111357815404753310937680852100551642782455554269408298771655682208484466487421110725182008873484415585807524528880432294557330814255339358717402591481784313084475734766376094499821236528208769507999859581625725411838035473338854515635402112605118865317423053105630506055272620261812488484779478362192706344067762972961084930454306090407071292093296458856437751908282447984687044463230080757383214966680054246900993181146195878783142737765765579299249199525619614677313997143990007668609437606293623579626219054928957487333988263071519020473900846767163754839528118673160216579338370952255838240230770301315147871567850885390854424047087397874292817692884917019050755701683680917936039597314613857617931559089096530193735078484989768465558723217476115785582575008812604591867191016844423265033698505337287914415596389400251964850470992928124318947529234168999082542811426654526764568687725981056592304972324775829073270468910196281011582030029511079448444234473635390377784333973953232002582171752177046848834843840305077493501769332081948397978428724214291590545419498649992637422881938430091952326268012458751884885631678432588206626792402471183066503331276540647270295989362985912030810175552145473949733364354072439289906792225268828982545489153252906082164789043128550091382314648556997728972009250573431622353659020119661916019356890884329287081982689820883633929394357390749711122649770130532840938893462759622325939480227705855856153567978926211424552699217610849713864113375258085826595424286330641433910685470502880715711852351808927446229920279745236966091489732572077751847790828977884242379873701911722624614785271197573941004092328091682372253270816774604160882205298914201640698453142011290983841299199292081754193505604158378810971068374447406974767821079574539557458988844205245174706187471191865483375220436903411886693324609528848633766243958826833085689052950332474594504779310242984959730261208920548134586677044418842886225112717422094454284705086404698462062755703829814330914032112774841047106496185306978753606929629197868596637539005516740008544158674659843096293328151756216497098843725371370063155432114321211279954701545147589424276001712811011331236812259980498957506281852492515245423666981196571396696110263001115413458217748455620541396358137767244265833469809103012650558651399750400684081132230929094163446354299076808283900258328819125907880090925404852430240212426912270193939007309045976915512330393611419934202828507763775603649184167754923697999262010784720326968702172201975246799963807249872541924414650264176259173364755222736774114010438060598165738199913177036927793858854471446740375956052061999000778130645921039909743005486942483483830804358713778646624803517596909582283864870228828167535256734188250075802830217226196428853461095851594641545049451910053391613196583671919928329448950946146703382187731401952822287577435285944416552958429602664824188079125063028780719078268020900743383109940873329696630666241961201883843046531070056079657979400743328907271727217679748598229859997493309268822041290666508899588594555193683173811521271694412439666168257911333295115396813761547898682897104389785517206123920159283859061300130866514035460665360834505059604798128155115187762711183970370324765251359371052155285872688906368502954600068656997042138936478930669156718381632706625923508547178391655183500202381439177154777454769633382840532773611984724601436258608302107297363392214887433716727613643755856658093390284883576974017303524732618274813113190050371453349567700901225286632139640932087151514801724769108426994416427217410786380383753329766740061545976064003288727430329929148069256548103098418603862103072301726648900334984462628808904084369796931244569939523502398109726751888659647205116280785569353472211837315194589138665089222218360896404008006300685522031592537594047238189862007412963631018727815338775915697091585344648498590440799463837860421907480532438931637628937256994622359565533556629978197609001293694982786137801705280078580909916927579615005233114819044379801550047100841410806775823812851417846536183185359195749973224726451144620448986182462877559879555054318524697998569281345603607636367960893432154892005878162461247470621999464706671180057570161727044113848797957746326245781256105862958700752893779793496687575231518084928602947992103677164701415408131484118661207630340473876235107304123148124710912980516873706534000638913550731761819472882827640857030118233510298570284918829899627859616251417819175224727302805780215146255110420642658146999065409626558270848012328113855979825115004407253961339108047016673984701793453793137656056368568766477363788301506948651899273862260674283124028411322295113120380186156156092839452425393781590400188354025186426122686949413301636899379666929463310385226755831043115300226879581549563457306374143423741201768682217333163018024735165561458335965111444043056203931189423144498938118265751544587345089097460065034694713726221831072591254785203977433929923047973705649052066675616386401562541806346322053076660780152373659388790704159883430237947868983067150180750250801536930917888607860488716132775316493083972116227638854694298004847891085829660094573986352663717656710803175027105027628721952417365426409818462855064076449968057416100794035190696840220362740784393055483201209001138453251754431847491846926619093628335695047509836813617355075594573923077620981618854376513650965445348546056667116597335093290069578090784101821987363822869416893969579131832147367671448756901668157109856404546926749852848034725751571996048004365202143895390293403339810494292384284632900348020899917728843071061734751794984859592407555829533538534542253574478422532355825578412872107660469117944227389577722907058300126691220025946521071217870634417665862152873599809182032698547311305115996297021992733367152821237574076859052876800924197990189410933267912749272540320192134156389858753926527032381636455546590050311230271532724468335874666681082586464953767674252714231091262811078238673890110182013854881118335675723205076106897216911164672709534357981559664993687107461259865234483006944929374655397809197787429262779261349169809583753314588987731969420326128580005153737003669956014723586488763158546973397440201189654488176545406304203434253090960714878737898799298084127001270663073885165867388601753170525487224065683845463456505063480205529231703183427689560269651131296388212371131721903566578056224795734038132034713800366421920102928528127488757823825172352877773690944244163773066653504118834265721681634260910221138900598638012384137506229834973968053044442893466363182603273787436715893531611819598970900707656679657987707481652729673523133264199906654573925529476435370978657835140846927492648151531066169495181587927980903548433989172422185893872651077836818257185107088673176646951024758989847728633477987040201256353473235176092008709164484000510306025317251131829396094521784419540149893759245686432962489066937401035171014536312786223179458040634444469715976195755849302059396864428002338076570088914764185987000133532464329490195543476657955639409141485995483369148391268494843382725663219962213907126899331760069543585402842470225513284410045333504700485677379106158379935173099822977691390558627802275527298640497835706144828459433532936746414000545168337902080759516390259284466815085617312855149011668136109908379050401772509160456849323445167153286603773442815983161104305023539379451915853591479973386824591474063866799766979446944147783385310359819482596007484785916400021221634628829532576453365106026189283083928959325031286121019058205198357213498887922159790639521406963265855390776326539565552379947363948165001997564268658432684325742626502673375510475082297438023854029430884540695444226512372624177665713707077007311676742032661688897599479027415924216653053345467472671654923988970263434049507443399537482042684620333951924293717008311960480267209300132642790399072679693479964324605012823546662004438464398746016300325631169174836650820975911468332770737613753191229082194734016367649965212001235219021315113615552190515450481732082334737682156483793141399251228247280594871754731799042903247927315612612246350205729441498868238411059223392871918526214832429592008265498947289739852696922002089678496873114865203360966389737500441760514275540918832610321578749788227046410683737966112880061525458883043836132350605983001744503095738317529030793256210689498945335004517540933023710359438076445368139720489281797059067878271092049368715412024920365731426888505100534675214601717160077371399950376467485314948895897731285138469931216724083556593290265390475831260499216558251964541598610566280915198345404849698287801656002961067266510374208582988527615343265028114153051599105693844296059921287450999059808630297224540132628581427389934582703351373398285573256597650356282128078712933345844025170005580171419010806673281771903225150412315559900606985744837665383022363077872893998169355219851476127009595599285815626341507903344218670683415258927862267573584123546486481709066320889365837405493621275540923458537494750248761281538351045104446693060163725104035803711639546499370798298797155120579435888727472887127001652390213710357978095312138613554329357979497469528111840790425279197688085790669453031499328142655695105067218405414675825080049658691925907453180557871153251806971002273815916706858093366781779416575544890647158709922403664040007876444948458755859100650736709758432927264960993788595809470440821644920556113535797729182971570483492739519116119715373077138780423833082188039909792847708488061560307512398086039150396948959745233174784911853299833250681787532043433317287940747721554550584163126390400196865634546855576355994497681866168405338788358858647434849868275518055787459930864996249344601925100064954908153709453518797011220100586011782557183454846527915874992150239321594924414239950394444902000454122644028964942037583251334122838665815003547403758989760182607780134730559752575602414293136310270992045358832651582730484349951883695636621867117560032509070868490982383026658979695080058834583946009216884099076027600412143683474358073170709542020886040631175346998960639116859292128263341485606891451688109073335500939163490344464313609768762270405671373028838141901722659776536611412222474211158236316394747320381943969064805326719698885877722146172992375847384660125160853369957715454916795952949995094461324307880722202505395222759949274229875799571508100420847056710238901642846136918780392871426984629081923678836092766819876484931467384608128093511486429141444603370998046271132571934957221467439759533467907287429698738345098757499505718903456515783871572320061587727209897223325353900342456840021236814995171351109197092690868378221098406811685682573585992077294047914708462473754676356427331470555891032848820777987318499312110455856994954978675057057670080777765125630245686249772780143223139374826769941254083488589620548757727479342812625127649272663303304226130567473709159596894271025709933195994083024256103073624078112979399310256397987128884208714848266586793544106682643555939694200695655814592639199125205150621798352234990364763622430939739231774983300535070717124638431087315948464666334091520256007648750442329103801749551631418226305690212863184160656780330350165332031058466123137290643409441605426827615914023203294295372086362143386136664341164997752728167073217587680692624072272092279947742403060258138432587737915569163646657338872783772928231190790611480256675863190703647698846591049982784427437169070694847543060911641420785660841607141123926328800466575236125740056976697057378128635496013354204979865104310358887629792064931252879354243919014035354541753745248720108677239772928710156118645542833227030254821452530279211907444502654410636890945268854234093704313664770958050380750635420365206751146954996653628987216716958600125288941355862679586935934962272869805369186131411026004707311216212799431255451998815040089172815066504882909189957412964254479762460273510093973404760058102055978242573688290985092265786122036865091226802219490686801225552883532781568877381186818956372954995201682314740940656314826081737874136645938562595864430384842744620609204759700986982642217849195615920928368163767117384563825747201287127554114116132751820681643492834767032320234052421624528029460226610074876076271270391083207919538320395866914435425353495943295064511095667794979900579819441458268707906816586226500601668145151564464327524623585550596966845772247344437127072995056092008556813982313850292519016877994228058489627525967087194693963313731389081255315798114740862538106109926689501984616010918362211565718797121949383900961242800926453619866289099336732394003925021695191194219492992659530394966474695682480020607304036466888181076809879997903861724572997647676242432010098322663895536802255293249621238141984716353754008567102543143050626172383095266598063131534829375751178025434236827486054257649079250862396754993055022765995314408899108023622215740441399225301130393248007765379623033641774203446641036995245687250143475224475699892701490054946097273473245332559602261324903024452629657013895467554160949334200834061783106806454839767563029086485961766043787804230117331034041826873541301659051604301999304262586729629320060016520886119623562106542952796002478265863452944107197677105942925415607962718758709463680688016978928131995286422037533867960124672243521725957217383729516072761335633113986970781624938054443580155821788777872301654405803421278874294287621087236827126086021086992938290958396948977675216110578054866604520554079131394411160248586244024835315686389560572710515923170096042706939063235495193855087477123137077316120833480486171084215159711188758620172161713161607797723197353560756128978096443672698300130682553780049281038278348938964194497898328593230718162534365727678173676496831533697786490404374678093770508750805007997804855181050054800821551868673954492510452970396936053872291440390195753327582812792709439250582175232675279012715584076913630029552971330927592637102575442673891920550951924930693026277805653740209421754287938666068330116152505693022669824100967420064473432856876658182910352287124901064549180542382268516768379903572115211451141610677166036542763465280197709776374353044487673470508453030412459768363711250278693272686023631251654340473200731845125245273572888102204426776684043995265630909141958315279786977015852177767008492207853914955258459156473646599671651179857788611870618077023001732008209051996658949744213163375568651453431368472374497461442752347583238838977840399348333037721288798077914303631639727981336717314555659864686502437510486260845705174289631622909740837671629130199882661787114859126287638271996323680027626379708324522777245053802898900533045393955077812656303324470760702858816900697576868398556175732408451647358663408127210607512976056499115294715441967536995622881053040721297670796181008005363918098662313435408935437730739483493259622600290481741267247838386686371609087495701345243498845864208996320090516732103255051647526075825158650561278423248220595258768986288470976810101067717543542544751032164664672027168865099329518807384801832356621237354018637980324095722498418241321057747007538354859723825008639511304533785026990521791388462593570880006660989040582259873687339471590966441067914139378241618991399438312127361335742154478551458543911479857224926621119596397430516441992296073313810354445740779052942166482228119223509167571779556236728308149385313998868550078988783401683551054148993385826175982216206220088313102810157473078765454853469484949515453057184382000779119060665259074461424096736457139538636035068034051407076010872832026540119775030190843957164088322845523477060128654465444413372898997487284897709681467713078293774332450472838181924440824721919732524252143249932311461487889807236785035536524022746378955622303691348343751540259241241809442531843516008531362962344417487405694365336126315216176479892684197451934982355130090832818025612020408991142944690967751595110553787714066236338394898583370205809673141031046514882482949471357335730428555029143311909519167111655152408203251433033471662822700812794158381713397246555091401157006220225958308879678778244901496616495158603744712648036106359331921216738919968100503668076258641139799796922614623979247052681599245471305921321454037456801144474983330933283539356424534789128078291210991868899525961084166665341611203302951359387126501734953639217318070155983040788231657839263612288351634445996894759926938113580260065903191039890125890356790892774849471580144368883012980208246529389631073551371771174211601662865557210048385922663385306960282192760068449793796468064786435233895424120879643716067902415940593794930222946313606207420744682052072834399981483562891068584115286356914441707261340164279545359205316231303106952089118158725056736198155153550531314938871575880661255568991009979747158492738844538739000907343871747867191512379335590422639215008837590777794600714245646114746820727415425047475247864089824639422246279680002526498787295269236440798898367376261251058295531091840718393265060106070817329731959448019785415704762980246134344683698810379355384338290129931608877840272304448132761166405307926972100319079275298953190068643021405714954929347350714183857074016179234978202118135008909561449265793274739849934144359811076215420966741687882477919305890731934542087488698014869118176454810999514950210580276925908787916979769377206544063302188481335112677267663730894985021680043041421397175220662766075723651506777348616745179079815804958146637513662509882969987230861735496312743182800386667264128221579483387354589504344289271305765210367999641470570546981610705963790143929673506607288394280875469962216543578452339607087390996370673143635244192285829699644414780420638825312504491426122223694314547304554873021341351781414156133050099459950076231283076704324421843160088790099010831297445904224922130648671801419960474832485247487549651103732330233583150679657953944707701782839012300067651404409988932349060210820986527838836687782589852217124900187642314840268198245698910434228431736960932599618802711214798670404025642551344616127206002002400831383382575149163944941819575821391494884202704954157135822606444989876869453924128467078980754058894391064524936627176906944345901771987216153803411695923827125033352511349441276398494318156926168669021527501740967258783675289898906840767113616630805575305624362854091866273912473162508553609130156018699563269058513845715646929242490064305478445394327029587338210563282256845433567117764597132325896042454448450030761576552809715678825408396905287836280956240439092472676795976690393582869913587298581994003152971402334186906379551310891876748348697702597479783428202915550020093503531646090013295386704352133145798376298148432617274500399972513712331568157008259249872200212341254490412239206097008874202940317047365177002140134314168168511778459414530463161115317879927849932271248301205938111800259247186217472654758049389238296947791899365298408330621798739888717427236992157773686219395063697099717505038993975339583218283150303268483500251653040582110808437367049355511786327512184999106861757034834572490946371235142377807706912201974355473036486552561269945721488141225089104079562115224868307627069593273577489857919747786339747251749847240431440767547604858747897421788930502923161765736955092924750605904963080196035732605740862820399468288838801187359969167634574315506591278982365217243168537487103947846204583110359172057703932863448726877158319310041948218902841114796494027677781022964537454526772148954981700039461106553661641310742576859291481086188669096944359838290967590322658645759299232089108558526224119939436861147894660970893195427078258001871281249586235544554239062788456215483826310099181137247726102336155905813852416355174972884154170219735796497841676727118820789436009309409258662955293978758838095010543075545969690763309118240230372175998598932866873503333312427770674948906375207371110788038057505634317463302240800777379803618326479536888664602988389763424662786563493422252648702127062388855335082181358188855617148338717403090374758215808931622502968590643050590295841196926944976709357339310405449542894061840325496536753005383877389942308404534544928562444131705182045357709779138823405802159252788563837969533594260157457987956606850437996023393102056866406903452369703155472378398298466829104097211996691855842193922214956456112992548283684521748797565234165985934644036906320403375568553275374572670271771098771128657567618720172901409428723171907350817618287402562215486312088828207139141460289123045084164174189273941842906145478296347321158763091561309904928596223669614497136144962374144616468822106269840881305468558366167187576025606940243695727629515043996905190999570379024168246490220504334250392400897328912444939415118955199300823590440245640933181815731943911365602478009071616181235853458199979832792510909155854250555239218026477585598880713290330315434625152483557815335417161557786262352794480015736044879933677640448942487514101440255725211494007178525553681536012066381561656115921398967717639510378643485454103987684550834209255900385684710941770615327901796433965065968121630389723699501613692060260299519010513399455430388898646706019507126942068725883399536507588062159241591344236982237100389148651632953450091025869456863994685624170663757958974625889989219149112247547117833699197820129995426964453420065509956944897947571186177025202772941408888734635827313595891532270151008523505171356660668649809819382952578954054104288894663383892694904581660663679267578742231120294458915065938680669391361660460147177952501891840272514082357318506106794784514335292269179995234233764068474064087008764497834861528790002327064825988763275778391588019993813748012324204346568696849019850512972765209879700386645263914408398210908594506805060791676220134663375422670189077412635391211603092541488218052883953454020890983953187351082218972808357477766108932728931419236440565606987603955649800168882186745440844984308422714871581446059247082386015881163219239803360032905853420702574361597616516538011105819802636289163624953510789163203339725469081186807296608911363608413778625530324123246241468057811842178575249279410010607386142687833579655520757060635115800642274660863470728174328900711102344825041232867666354280193438566624462225509881249994013202920582213124026193738896823456181879277767054428909365664623771173841842163905874051171836681731874303273096360232447577577541184711399890001748177397776463715443399267155250521527737928457636490720263228444187884329790261821331002542187267432423812146719646550798498989115449789977754121060533088839775966735280402514155285339709864349356093979424108463234036125193572403365689302525784506005414972786603074157300728064398408946341665263315543184058770667497098904927201110836566883737644764405452307795541926463313139311776542964509003232850470390126479598524398729904202631305208090361767259830268262517340269380917910941067757364765512591678174337696453643471735409200550804937276855720922747114016091609263615509871065654297456785084564107030430915671279825170032417559022607557172952672697459868898751024709912810627253867933641719751083588950003179288615200358096695441544373923900360883746480104547474493436842522722724082557968847954668022841665232053928419692414869197216907550118582875515288834660707964428459482764254159809061248855143757894692207488902986474489642866025309731187966667788154566743240393664668173785163783428842603972588297250661937671338148035337512507210462226588338490291633988877915073987448006701415771760740909729922074147272137610172133578363043917423874968190533094459354973982355405983936353569546414566794976397610706476197596664536025480539665948112911612637608474526495065039483524430074674864617286252853187521192410010986028654305700277283560689564936125243894329363943637891238499257055413215977077829355375104698319675483352315520663546121638456624438281891068816760897272496298207239993652904842791796446281065154496959786318444926539556038925308912960819891675855893743665563321179036417870835862333940823084063983634360873775860528809809756601580845365718674791691395761921881460886079894532709655346619961192636294959651318364705703408287489887070460441084027143203731534345187465061365447539353984468921737690236669428483277218904817027442653631213867456393379551768119899509983468701964149071749304123914465077019157521524735551075364434727712580255705723060396575200515868681609970619323532549953442976334397134006508488089709566625629591401071871712654689100375095111970156584588260676977234047543265399689901043782865636833966670392973827048093970110704323597829797395714056020491178552902834179999373047863968176815188737181629053476245919029596143425970126916610861507199321516246652760777458811952624934858509306709313638200277267808328214693949078784969961006731904397499348006726520336803517994731198634622970671896342841251253111338753319927564815737129093237170200738198825056253307419065605066739222926740642990518078734671528371070149852845554667200535736845104229007056988992335429784601082255605194216050757014066279685609528442906827967406210555294677674955826950547633800912294260702982625010991235551664247252030435184957094002515148349554673823073968880728579231717576874689831903986183272012104388077490815326799860873926199823598148068580713331710705436366296237605844812391562488749125849681434672881785502196409344535138923140883568957852672073314099278783699292349313863188674747220472226416421827208779113192311221997656616316384080158014092951307700509500395453035901586116098942718618867600924378841381721757308932754055830388912961389420906484287416033113544712999185809136661538578048046581711639726629891641216543330820511621417520083682765663536114735844078989660033273439671240641224502272499549301782086535204757570164148435561223710478033373271438521925574233162633420234736404077794784926324045998540096749067172409589651176218949383497510496433900407323979160631670340204565580039317526133367153139080285348857166659780578337345860930665925986345850121407076233649317952417077777441737179001214980844252215701416744038357430209499941444162487983012282211073130751545315357879482123515661061779421570746079602546861783533775249934085625117912820861537051388315447823388208338978857562063963933573756931037454457089324278350334746557709069828243046258379060413807236426518227436442771900394014524518225848585768452148923765323715098439254977660911901149810711961104919924201332405569831696830245182084285757496242052724407749574348549772757496286446367474038414862404637122633686081462790033686994341716802611162121618760056185873463735527489541167265931198988072408866349582582620432615822096998542076870212972347243492310395521330596735065152674551963823320356047081864297758129152506880426540789690729032951602025875554628830909578136328733315180428304450976413176714702526801007224615602961743688219217684999855070079071940789776023831685785257093767346107664284090352124881542222615651719975673586400776915435397580101957042795119946571343541694524271404254152185280572272349163034839162045555236981191270853112525115928639952954287262644583307167708532449609406270031831250533091891381804047442206746250359280402032949736905510516773155441356342995076814082830491990505443444525211759061132574727031480207886657655709185624766870534674211595216796845994669074086298920005651842135786060459781724447898526413470258123251185988769214524526536221388485588185709186526049023645645478899571929990837969989250507472720786798456474941897582170535215417256988341445043301110255457804174253797445450501157227512161836329244548711327315981381600452453082509442025125253997337517763560052983713710297252614536238176979892403311135367702293919145561273442182400328525701661278310427147907684801529950067541162004616793580495603945686516280531106547565548172752159991237635083057135535151920477215333338726544436391999155539068516167472179172717240439423208468516834528067082421948650894398574134871932473007444955128494219070047180102769286809099882875996372627155882663854475774510616965515358624134214711597654975613428396606547373858038571673314021735105454161844130562996549535351864755748615445905081035641153600347218366608904859287902061061729149601362271575801523899005495513354888665858950712835713350819608251059528967868234172163688201049107228383474491112748627755657624477988875508311417416349544091247334447256583708481812055672051726204302539999608471090167899423433137346203920018766825196149720189912059237607793502184238138090417205546231561270053074012636948686082005713236413316316250887432995397794305436584991787039422480920079943448401026820549803780037927285297412842570940442121669325928849769561247696516019858983328288378029069061540101542953443259488245794334064262497159150077053006530696693945928612686093971636429780392135675756553583748884043500356908905391664056393857515860856835320558060418637345589062892836228636363217528940217691554518383009653149765984976801195807251643823960163719414114075241564126264178633592441784751546281218375548532331770455478642267367309269489285153315493455571306295250756925627744090196303820875008647207553630705739556453483259989475757328569514462460193164066184170754216481090707087065076430789642499528154627405266918016188605401552344269649069566856032711707068786384572750727851629067753849886548261450649091162602788506050371409334036071575504442627545466427720290717448087332489109522230976443004934588548010572427557563065081002636928801145169471569420090532633552334673994746580121502160000927184852828689850776592926103821852214779844409619202566095227608583263313845224342630540243484484011040216767228347635200481102640645775147613365536127184184273796300096279626180440394557801649317803606509497799237127226476097003254860185512501759118937686015110770583675824494165431867781774025698340860459081930113474057614943421967070474930076767768235238686164793417691531043724348726230208976465821583523099925537475671468805029575703048453256974796309336930620346789045425531447004108861033851858469716908603501310873950315610826782278241516697943320936087914289974505103007952942773355245756408176279503912524487680504278333350768842004599324984345514108940927280166627375542022803962767962443428762335211371948643370178759546500428231213650212224812250174116718073090684412634690939476307443983045167247984886913697513336125948951982448739177469489252636408581993726713815144461449862685755903028033540172832187172778392676558955155663580711246632673288381325997209780439789404190066243346248634837267195015610559318605127514900219270983362647757768428018425128458418725839322813129875373211054733939140571808083504453395386727048165555266078387800974638264061775369735120439140070411798553746826481931620827337957161959453853441259348083253969133931744946710845839539291478191390492329201220083981968806070864188599257059231225233910012509414685674123986194884024751868098995146320240483005338825000926075404430085798056640797946792606095098908980470171739876181252185592226052780026659888892264804816914896409168651009600063052954080684326592466935688159849896748405120161426228911549772390452447459413267290558456573131523855730686704427945860060527910912600863458295220378726947095487095824702948727828425784322611772422757124788190452179402561607664153670048157038286050366695137739885614342429791204246214531838705466740022834704566009480564880631617306384497087291108837544742049794206065839078330118733215961098041583136711292736570483242833197067445157640316394391251653511830071654147439041729398962946978188432065564971928869976072765505709420904215688087460764154487043655660718493910568571734282380485274267917060689602944381907990569549601766512174594771736442672720892688891714987165768887879447213430439378422483300231920682549398288863491610790779294066280567726752742682207706372795895280910022699451871748452400974341570124335632772417310348759330546361971534229579283771710703934145574610791153704574187270292730213054429694584894491677893563144007720891507285691256592983915872229082746586857209533798579417300283623509616392629037480921887841944186130479474995477114779680113743055661818823161770095163303806752292045594647959909831533404312861311696695386100283689959042312535837606783516440339867279988007671590359673157319217891512691417479431331942864530905885555870487230985114130152276277273273216889233601255843626552619893345587668440768203544637274672736176340041903752408466671052636754719771412398484821760082488605861836430464987890840285505417674945671800417045100064461019613599733340076181868148566860340977179761455736766236072117651597514835634636477381598060535930595322329879374580526547431413214149210584322488712755148120472090244755558528143500492183893822230898085689462365203818718800728764127022488864583643099000495955074471278964714698668415230376777983674768759859501766078188296217813858363511691007629827624159737568089403128509135993939640344079248559247179940084296980708054927646466545941356880778938442581287593919770067642559556465366494069419321381562572630156907843316636084645685578802736814138343423126989059768199710115248763658638915220931623071413840897388311256629113533023877267686842876157276626089996482241683886834320996405698742712806618153300304786456088626099559709713636727990117327938079145892318912018961999467357368368958947698078087069742045830607681301560274711062333932472389827350997610464274223335172697047036991168058701330803657079747238288787043531326423975063920636846952069025988514190473470274944565600843188271884887996754841275293707414056113583316669573224764518506771265597674487203185986445621781431696936071101382187047647645658644261551401071300504506817806562788555576650724330502492468883892821574266312163225392416460396923304029402504433378017448799426403647916809564822781034767415977809862395008108580715940418184284002486206426799118170554923497120098777338726838810353720008537223624552702385553049882124500591562160140392624038405201829959286820049569838484027671838656677811486553870660115258085738342393974613400685805903203934801298990197490116572935796794778453748029406294808252380933721095359692914147307315791992880249270035007921832621288839720788439417406437386879360560561378212558778588165620697691896166398319034717332147009633537795734844132696686979516726783005551757372765256296043708441029057352589881327117433836142835203114892735013767094407991638961262917665932043545574496849529399565717489262324258276022558031804948009474755422404461613042024811335943814390108303246450223610836059651686889829388846887267136044317633226569264465718156491147898593438272676256639081243200271126838568927274559586431177816916322828883232849913480254753694783587965779170163639191012785052211661191742938755169568892690573751864264489754130840152626011289417211837061573089790695981858158869740688911380088025411152817181810691469126619455276395180193385711211331698134655138694961649914454907428885455843734130963363550708310566826243081823640235562517874933300183934393207901190368348183299385651732173123214615542832471635692219161538115094522161646634221982123083110886933507145762838328401065195766526727150663537128220833263565930547202049374784186798847338009880931475658227541165082040208629117085191337456992100504616608114919923345351113621024215805189959221586476976651349290847881177361828854706569539305875308697533380537221347893444427004250198232270467421391633813039861611080962858247576796490396537634425041151471922701942627413040685968731268948843869171869159128858672561978486026619607109557150418819782702350016690291464429208378289759763894315322870161869442608657373650174560653883977687515715619110938432685495454528471337038681725998988417003196011371623621567997469008844231314236917560435560467656317227017988060786344906531799583600592445280879042665394933172776869502294908541960746269006344753466409104781788620847964588532406008789523122217776885939856608141363808996689058125560796759927859345145245836130940044443050512586076490752376943569568275427890023740234847662810284095796893065257968997241053104175354517425559358938891659862958276986672924791906575828286323913200538483434388722185598865824100857578412632321171007494334722115428084866105169680189945386694854886493411184659511910923646244463211795338111783539134757295800054084619283428357493340019869251261699336392653416911432080935617420209029046855116195158739258658784383043033138750860607803325120742463851686211529267743289947095787270239216480420699279470637211260973541886186761416087589087484729786625698249182683291237664827889933028765956057228326224976034224468525913969102768341385616613658912886825867534281640483557898581304908212047663543751246490564966892541097574723974043088063263033875454487483819809218277684551942569804611632724198055874783355541356626314634895321055021304504134293467481440447871339412170612023121831241796007686629922207315683927745394460129110373550161414377125662454744812390377290783555422053705957096685608474379689877453118407775730576329111540198220842334137194697443085589383485779756886082707794819864485977878060991967777127883266110041353468922833846534473654495718554384563587637666765144240668698852636384286285059573113201714807973383499102275932907768853739257628456235265336857995957172065109154589275602365316634561983643416425408478960387010370180732341504498964700355549992983054896304482134832403982517404348451567038194162323837025070266173329056491452107145635127833828319210590927480856356282913952652512073482808679445124598205294819291672128749036778147466683282440756126790752555592315060757276990304761559728254820953285142710886650815815656698693748290638667055905741571019110587472079353939199542251555406474314386936757969458154498190350214047184443235684403361379822009836518750022757725967564887975678684963811902176481705863902114976863903434851716165724914830019928055611471321071116093880627726724685782125828761989408742668660937773325968235126118791261097689207118422194006374848249066333804103899036787883927680785190246398041850385475119632674243097717741069850187697714256259873668518589971117103719634375919424584451710846621056412295800953025627569724791706141887518378808649659000046923114748404439401363490527985745541798793842281119611725332542873345927739000009402784207644140655757288065477048863534072052294634822158822286313866324858385124568003375224388637645449004227849594823341898599244510734708018216819917570746358426455216431258039004813366574542971074772174408573091729028733411088586149572389966914249593595808097246090845846760515977193135677928570592182114161846884938639383855780044941196195720983991075272093360351953528635256527260559052223703163751323789531527611059082812896200733312247552336696058687281829113210893945604335708229886644830629069253874178303004900869012472510535584477687580578794341028692629866493230812261571158680541399841728587592782240464815394976194878128568765413604058825685452959702669225274525063073079310079870162952740518292315119349122516631053536481557058953000277444600410091138142640610712243513313451722676258221824473643128526846979592142139151148640746772032763044618842971655340859052011183555902028656934977045253988186940790006505968472273341731905986210679832129815017044662003663068128645981520521763615488750648490161546456219722606345697580129961346427674755630744473987728628796824189947106130158809254845480707639978019309917100789069801686857011954780359537075430020661281218002151461027004669385551431853160799354910386480865360568159828959926698311299168822948925456864153142851776377885599438780624268896012452142364665708107205697757584814252011537641830148853782058901998505933896669173788121364233341053534265278619709408367264920387384090300851521843476816840502291245567553961406585927580187443169665643650402186873776070230994216193426401189822870976792690158172422246126629178564292378926198933630521350175369481927619931224067869126964881141172788698361511650426199538596361960539806500595642768570548803321959475131249233647970632425001071777466035680696443618672456437511338785179297821123917780052022718223999366156183422515293363674595286576616882569310939112520583823867986748276602286271179778249813648139205069750444958913992129404720605890383038478116057909822172135692633607144776252658066360841726515645151059996532595035276549433890907169422689142939535547982540858385463258831492196878397384241372531463338479989469587745532827184673800129121327285013521992785059367209982848569090092309133349160798582945167280678513977828656585902897340075159683468137604999940871909693833844724083785245183044966261908844615715464611207616073705775028644550643699215356700606114590394250618777919562521372804649170970037965863067233180727128114222604042269092041555510192252914630194300923593242533711138974381346483338249127601790924520598032817803550314933492205527411816121079330278765583416847962804086127714834736252800439890227100154241313288329936327805269642645608349175415184865285273969994095982569152090443235055989354379663146859078493134290687649041642071172536832935257368402678317374427809235178166515739200323524715214730086861987284119832051040937438359075768952607823589216299679341860853288071522709072491926666733800059251771297190596040348055290692289259487804179090534313507403925734523603857314097524842636129602608644127848262438424593245473631540984425237289364077346245535809066433119433639932807294722341655725500879986375374007992739863486330492694851877970896360597847382726728889816391405425493678448411265976490890761433611828862776970766953678523082092659451066261514624074096961952250466031154837120799135442113495412930891991379683064368506090871215484375356464870350647583796339653808879534244779951701579211397584190205552834210701500776426323266027739637032460378722190654139254263351226875399272128742351048801594029700115451390150457802273952059442441264190400357577428637130992906905144647995895634122478013434512481260381002331838953776009034261766946334546429080099193502946406622427768297536420316510425196865877007785672496582510111619987091621979734078984345757051639657913296300571617056366752079378821215013117666773571339502400902821429341029975312843400022875569204702988020169413042594497098360974407969399566611139669076796145929233214500847247714983782134453743952303330804696331186099316355563300008398112114182265575005723976863941414359529096386301771720289575424881107741308011165236733788070282797181222099717148375379995040777895089105185439808514313953427212189181278726925077049593569575413672365715212177329074643623095991360708866985706380850285992541098267669598288281865252869452029933457325005673412856067406542387897394717584351712290452019573150877451432155716429910193608124579858516030862129955708621040508409110554609183556084361294926256401419220573662441760037667947446306397495240501283555396719664702798164419792791038826009363632954083788960146155401590100488752884421324042497844721564591330887345550275210677785176854646169994486752605272858093347078297082787611027411367756423114127876070236709245408636516436697706112080910368053494992944531508144984554838885117390719334308530015975220511709195857161723170367529991284762255299470188617135152912339803337463772427763851689396399429779161912699860857017972865363988672961877414094868048873839835763325718086481865060378958857046906407502665245963709855648473278975240893591121489332699087738536259847359599232033630214302248168765249405673331132919462279702751211289968730219133170432897924597181143886354747046559734907789989132399741109435556857513032257417806526081250117881840243911894823250818676751340524382414722049760247366763514840126508434725624189167905923005913817781902173426821781029155558252948362084062673851307693777140116315443413227715579131303772663298796285015077592592867276003063108014066138064419847855653339617292998823378477071074993364162780174355937896800717471972269794736573335332072587730014012416396577523073404354922430856637058527512450682432655535929208186925402328619345570734657931065694688035493523286883563481234966426134522531628276258127863695015557085834701452267043313327364167788923530539368875439881838945119270689745364286961595515334383364853877006849885471648643566917012207837305840713449052572426726486851427647271782841436305790321236426610354390056985413423875666754293948919956383661004909300435380802955709475187489551949403412563930170281406274565077660067935950150293069295017364529543622670823643975741255008249933122500035300451529286394635282603440389849670088724856612777123312313426748671042615965960536353223117698500257592679823943167172046746511728058673239265169152215476880072686440845401836091287973125281755077069406005184142616651616504911535427732720353475860389029775013122979127094929034599140559017673705408245736449009400982265344197700492139971861107893546845632572775375028823828296401388070592456294569328349340036957695221909936632821869022656536830515901939816561112489516339118642341183314300891664257971225384288085980882299864607715567458353839587502772930140456297668557562016315163314638192046940171193511783234182320510184742638849898460519134308677238059647264564209466970307457805954008974679371415146981475841239225076890865220685568238017970581849651101951001056656488725666640909446388047482983773573541140549621881616848009535932759033714576209489839882448547190381128001100967426091496729986660364724107304586275385980700375344937303634416912696085129466558468323998947156573234027636089950043887887136389268612733228857124267899796036366372222929532769743002882534999542040776668129821278664890513078795048555790790913094383509259604372995743038215214798631426136546349252452762205064318493331894125179917391052398912932095479863278891405520996276414533815537485140312645461432823044737495812539128907878416774862445223629076522564167461599533619733139011419080068652055736573405789171755338530082348771835513340412446141647850792093222662869265689442723503252547615991772540715360250378202760369700312606373289902907778691694633188022789950525177492651114771892726471713559922397687017910364619973099861122070588149070828538982073557551699520237863717133531594224987607910067984071340601375981042730258968040684203257472475975365709188462768649446042607968537397135024563788929027495470632937256523199957429924116410262310234928845445376227658745212158872944423476394461881030011301006402660341854159881488671984450041708757531610077268411697724221954291967237056203268350572785992904434510578619707576856140277957278214199779129925661797212446376723045384759284132021121563661939406422479003155169480343019139033228395850035957882276746461164043462658828935651823294102223749555175354287471374292511663484363433307179940478388186178865860640619521361533205397033134416415097712530496670221943866933182449782158200151457016881278787632304541863693149579093781844458182365815966454372744943584608415687802159326636765789653856332810331717519494361247305480123831143429452873003676687288687712679903832427847409445369585351571245416216182722146574021778731832971158082418307171735081233069798200529424837721683976688649431191856581371994010535711430158358835483847398488418621507455401039331477997784791251659491341110969439732835103837603315792285293689021789410083313368777359799384496734928721398004926603140144416468552456836000911473564197605544403646182618219762498162431856270148512503069611151331254793051761248404028358657332674559207905525536549617699318032098864635057210829907582837181524338982077094578113794989967844244830922444035140296798771520583665591424660236199248338215203203258114586354669968299200407440290263061683316456224593680471761272344328944513715634661402921635805409662456740092421608753564758191916535635105803402089712879885031838958215244704305910650101501062740226149472135732408112062351998716995686816268775096656981641569664535301477497728950882718091188908194487537737559364693740474546007410761236913708204779914427726820112064321616023492767163388056481169154937725870332736945023353092790366563952207784150903220541782109700106548284852647242270887709847923660587093369416547185281693343298309559473684417794291305278860478717905928932925439551640648022925541315009308280561559170203553496871225540753479383083816810634378766200894461876952685982611974168977072398182061814794231807225660587005623008609129121453626194458881082960749454408369629457240326982246700497249898225594078335347774842559767870091958666898012358225050561056218530040865990085942479609093076751648235455468258915146170698059175948669213290784159853679418623793488822536695338615443913000232514132163252921376794831493241222079740943366745349789899008728889146908591495371624652822860331914799701358657689823247974234369264158984300029589974242531078214219090911410302346507971839851816769892738702299055866981324019110130944883367844474852895025971943048330145018741042426896806198024725735677588784750938371170979723642032983707810186113356897719444528406144770737669106867533340205249783234401085678128971966363892367480864555945217228071672633335737157324913088086922372077072256053922190579235934253508349811979881435828374929489006451979230616208709210878917102742248427311330609659084150874201187580470083451507291393681137062189636660015219581184625250076469870622152083060842864708555804781148750224656174231071607940820167346635078759148712677800121436094617784426645617121941880653618680083183784485000304458294801047668853431721742624453498906710700499946918318630578112772879610789599172129705311155089875029913502426176088159938888339906770491013620939357565965578171795257631807780789982461659680723091244044865411903515065264890511152937722299485860714193273005536753521107762024707424170923350306730548311281190766682997027211298772467864609812992072679395957108824248109849883142178603640636733425678703143429766784905476573553354651976668496373278974293282935909441601294834337195819938553200582153263774487368102306884391783245972426719055551148091218224422024418150503075705474431456825220418652140812455535753223025695222130666447953123594250467901351987515683672213092677119101342230499998977708158007648286812743200411649861553931852085565110694408968083836840930025759234318673416616625967314946269293980663431405813516693669257595161636851554488054101599533547610664290054646894336122153523650404771463165148996094568920905472732039478592052613305725068960947361002569768623757242808707058255245300794620709564739748946167740891575190773347823076282265093575580964228970102572146991934104710203065492046639644170520066386163238737372602819819908047890879436514084198038157520517447310430936563531131437898620323185379869534475857609060178454748539907369574113111571477716913491598846547447233318789429239353755269081830165042679257016710489118677680542106574461426914256779906304294359113617636112222334075556006246674498113084039085687467245393144464966692022926822222147242823162381572201833936206341628293844578514342243636681030357692075162900117051450734925540698876212302017049547612147035681296647374335877552560538742417317683336106725005974721141155180357451583149311720384015492362738870973193788114916150228551628583022909757036680018909842667631786794050909040734451260549547063135282616738162767244839585221151940218864396217146331111317888349964479168568837110086277137475145618045539388881692150735783073556199716099323446071560625010458423870801528775835024119053016766592957742221035459380955071822071369669891072494266791287316940953429847438876321788224697542752280727479711438600760542264564824467476785515773405946262794656902108083688633562710764400675822355147463573290090955328966976944072430516140081140746316935093954726715612266445201235589199653028231242688135711948628036508645708690922718882884320000193759704016328019374406056694062478270042861424185107849752409309036472945038939159450185248526817135852753792823276094355882098660843843338753741342015046580924184345455036077096624046468807528069656489692283591771920911878768357974539184759282020412937485907377535905905699274274197818766079381337293575886450071377988147340450156915807238489360214434337773573720270544257315517844648018629989288216723708825818596123869155316914989990403283718297281774497722876099882544726291459256561856269840199797283107848537835156934672181539580481102288080658092128919439113279209128588925922090029632672360277513088002781301796994169562311884801507351563049731166018236745308080106424103977989876972413001994443442678073752440551644739895093902527340141350717186712099918588903662149994446372121079354634702174386827991178583715944331958761866225967304824938558166158590546292605742469475740077976845825252564273548563640472015839599562524726410038857719294068088224888108772344352581791796267106002349842075849532782709589677221334422120445730712670967176200912053645872653010282310561158024684350192717970599896558394609447678774075984843790840178763965569170539152874550173116913127484478327212019694284571062025232418511215327251612317223288837034826053242574483237088822972040924878651918769972295956965945196155237777712517109082558526225504515947961628353418559904647953595396205507282827298120623101415568032171745430231478969297695793630982687114997812233048063645048757853326875000434655568342668770369935581038873429103062360683545246198233792414788148845957093110744765386528906402385720897311767597678471604783850835579542419366564469872461986060118131087267292304038638104610952063988200181586999989040381301804778663627950932093277538146708979213504735241887041809273033689395534743363760569306427834243458581841531254803881477302666095955366438445556464978418066971150222652029737665267502891415223635508193774124432119733591508221002842779196140060015217231956556935990275193537861765335898088813937419227973352196804145063067513265013376620175075678449191642608518135993987751176375227081841840261564399625600859180636456071620964354495260611712115507436139791945659713004575237494833449558800319905720013639961166284183276272302471759250674051139878423630914559266221482503383444265385044341880410578598090334635532199984889836324284896950760311610828102944990178451614177429143323462607830305248217120243593320828455164027725651444305657220673975373234084120830153645630464915325496071283673024077409448315522878747747122647372359233237570278014094911695308479936404815957091837364133521901518911161298450460323258821611060584671604559436696847050982825892491825050666900383619690227127359287698751962386062965759729969678089513230792847627715337002024053492972977060915559704115012774945013718612303812037464099016243551066860968494743427893441610164110341200775558948813923504389736266277738541367368448979409337181748882914768667758023226919865847274588745921085603840634390206286585028050499589693813532067529963873363068195678386670263483388284568881079050507085845629362125022738382664972810721009924180625317162955830623253048986982248165993756912021238956493343588224630289752430151030776784489615316730821868350995536855563712928355306146230009402226486553140835636939178808103657436077990616284469230818881901976789196777247971069341073085612337998770568858692682286207797029828793854698101622067019759629746822569095300206215031994893296135766746950111923804074819875126170502956028727084209763937686930506061870981041182183674952964608762469433189411705440984468805165800566078082979380718293623008166913025881014143477850455862248180912222857343102763453994367348250804162313746173278952054212198330360080939426282864087732584312456148506113444554622059694932096406597825267654838724595848030484527235977924333083576301629876857015634971744756944673204027357479287064415839375633640398648704877628478511901094739646174208957180021320567437002140845116163530190047724537671916914239707139648505401453381928521385012045465476681193539736753480858663175264354384940533784085808769003998389218114977222813029153742241856631947244171962735368811443345330853539514244861327811418846716263420678706523303579821350561123827062558523000999097732767682370021789349741758098811255221214080784236364480840313337461415190627800189823269515698638119108658272248155353527575733471724165985380527092925539985964913795519730173012738686561018274726463409071251512002808268068462063162586639493656646716416144867242225830144763079708407206616696672181838068329758815276911461636939127512963080867448886280861909433490718520734421185276712936837420086336848340589130345031825237770026450796773023406175042694069459546596993929657558859735602458772039621037213415503427076182999925708727885287568388668193787901920372177509636004741399386480244603446170241810863276709524050842120076980075691586661043608335025501621775788447806380902248703666660470327046588835976723578580394130908510429876577826805950289244156068974151629722554690942497626024913208704072572055011098985145215837673158227138674125239950380001690896884033674467361737226215531373366098266624540549480812589865610297929242330872871083556823855681752906203988553979457392739413910811737696985403930272347516484649802393016607139429183614792694562690933103645091782566241039779058398373486324292615107482579500339666093581985294022149318383567979306245446976552498137134611186192400801531644027373428478274918316375960371736498065090918805326818654741274603557426520245947052009688194004396831879958598846851817789411066763613173261786388540999368757490028618540573731092983192910875586087156204550400866616675519563025916206552248338784706482405126283970988799232280270681780344948023266122073091636945557995095419707151814720113292214576547182177447214786691891368648893115705667651442443012954307654786033510975447927556940489909780301921227862254335213285021943486241170111935893135559848108008109380772709099754521921705247692128995888612182120961698350853182907852750993146463933931347072084088403566776715735268844507597903390917382350336282367045790102091818775835656855034951531961419513285027931261905022345530081917329045459481555601054128219982397174676593523047481331163043508488841781075810472380966444794319996822425910037932924011528770102231614470315426634093492966272082493588091051426408346335894881211638597886411948507596118987756720914127723746363971458521754034000961181333596779995028384676461484886092662573943154303744541464255122871782995678871301622340845475159078805737894699305188831212800734474908200316522832132481201829006509829370550872186809552411955112368036909511456352244464047567094495646851831068102067000813214905331349565338708159466607729095278037895604638941288621832066707845040161938664455284187845532400151809176799191000576315366886891309424771742416792197922722420048750335086206134342170357181199358044398438735901377811097503237030829605878028188848273980888004553224303639216621290321110321284658901956004796349549016835132389986279001087239479320605897140143515404671362454300755738939012585714254407628846593712012470128971252751945366787655051891924280764331892918831128165641994504951446217372067439439018405967904630695338798330670988627189907369276212940696883024444606216287408660232639818272453850334170450637071584074152217451895109466795704822650016622780926702750429042771188350371836636289156732919781082084557870015630130099193998690170577793497655928467343804369713400267657579738819633629833789631111802607611277043130970838271477009149642820541836186639841479185098926898347768471642312759214979028660030877474419852071140352968318864232283449519468616696651830326098875187306135974642594382298886818782108809132792017494021745087662428296408827680511532791040574127010398619192174803320827158278794653273085580173480209686935587426852263642984947257853957220414748408034742912986003439974424183524010448479765022326096246854575139217537715936254131535491601329101459702492449634223842496717686237249634864491404369662353585896834984648692550147771124046124570199586855805258313442765418766763704072919008150270476539668754395346867294499134435638638621335182312556229042476846518201671807024435330165194018765817717531298718759878256422772963126743439759167825960103274801043652666091125643991150444995783568322088661509289956291517390375292685184985500700503277002014371473930500911317684876027085910861800718377378620717552102558837715621623911642634506608567333933736346674724157102036529843160111574306219206972914854580740630253468300859749667064299202885040056612563132084612543837050860992412160000851615300267244197628066715822458895726447493775962327678547775274756511831761667418924415969388631288043955087264065539756036660152007953082771067593889585647110518256262138694678325082635161756574598349775356862679814813896816193969941348360746344089501905513151045659386407751542856996395961860557303457055103447410441571683657001635638753881041547262245248764628372560041145363698587551288343921461982214249742866391218673463020778516435360279174737199672918905581560772183117981268299893678943210790770161532080479699938220705918763232510831382651986021134806891407160490180417390889064037810145667056681319988574237399652727755725262349742248791256608033773971720020243154948120212981548426393855264030257595527326936675255760886760586888530024657488998779396731087139776627861314653548243455319732954332318209510824282243514614257011750856594361785475639125818628713566746135970327846734843441527756352332813690324153304698415649493748195635166990432063225526595128038572381965508902484659422737451944076335350489407669593472345502210494965797171364852019828912683031489567479152092486090502560662259800565193853443307264438322033637483362523371256755319795219990247059339486566689617186889986296653162658881394724919351963359131120458740851843776992621335326080209913306772834161684341356999495948535404712564745058138804912091694094304711638133264160484607210113990789054118220202506484301325720322682086914850640458973224054523461094780125546971755371088769791259055418211318119482812496135971055314586088591902066633884022357224603851077054249364773749496553486608347299552977381885396193151281312448727102250083075652323017884679808482682868309397773057036605176763203557373687690529292494879511006350461499418458705550501305191130328351829775083671703883291915198407751735664453502910632011978166157680842842343824384895742668880714155091994346151300933029710847519070760419956398694757508051904045707891126432911941868029042214143100229378867552758461140674929701500761801663632012195281120755432961660724524599943659677658485287871476360892702282594018754378951872089475523572898451681011966911099305665811748226523891967363122006855054606664356622847582984259374183720235731180438121533208950980157642960842673389127293774675128684435263976864207166684418385859586089205030088827473722259734117631472304486818486998782673199062539659091227374196088665032655905714999876547654223397417508575255159124841800853699029832860740760402345353048743334107482689469654120370494805170860866000426657179943889577190249598904798018386939700720257223792219618831318659222346513531128741991137707039003222012814247448954224525837696773504754667454984379974561471918145068485770580413893494492428971270559314183625944790142110033250422428704720189478837989637050227546905191902362204906296713084592038158296290969080295662835471152375475660943548718811479171664076139920746210483934508634434006070805425391036541974900528000395546814372635370266788273718237001336481932076341149678872194169348253694641019449297653291147999837348642339917840285993902492661667784046434650155303941109476251127514160649042368825657908783953812382782743969963746712701718798484719321476393483396388920844000405039332754861026807304738561223028696695682112861914650097009322846953004848631939767789331110363803342204226991856328250695380385736807355469068465447502717658908015717922377571160322858606049671827263110891596628880123267780192924754337125756421823115963431509597182271387644174171132505908104200120245924111788321777755804208858930511772150399784821638622731787873629764346802463494898924056022388263990144874390711911935926282863941614929438408782717405877639121466320534456899840689831787991674359374165776939547146378268207453003621063149673673207667415060563130862741006599100966334071186441732208189620286189604774722273944804232646990379275178557283229205905425774261083632858570612854263749446779681261345998391793533015268475946748152509786950994577040867702516572026899377863426453596933567530854094496571153771023406880477756915226135197079571337569607390634455530334286531127720186960364482258655217940322184456435255148752699617638092433052707440258833489259847057052879999415047596467693552658844450668783098601234798157746520701174051155131016500932046409219062126368198316323942516028189479463145390013838460069807461936385641851560702085773619954547207898602303317562760797693742886533299227609594887660498979927141148619620074120763652925916455154005158475583181806987851483641620781930766365946669185677474846049157581501424559130256100688338462857669102143374494411472486772580744793922823589557912121803106132020419403981431965827625944679488302756535715360452440676855494570337789901995525614826065328713275699653336979846813107776945121881326528361584702833520627463136066645585711920998629691901337531373858349293393780233011626420692603503975157611140798050022607552574090145730760075965255095995086593394501062097977492041961749745389905707753475556876507647082199957167553567172485267009652411438936933163455860839853491715786156869821865815491874608533380853386228594826887884639250713922348348507718241535715256699962632428770727140395390645929488352710449164277544248509439883275478128985929138756236297506749759097952283242742285312383060652986511275159177094745326842214023886247892716210874481028042678143035889052206540354800163301382043790979043345584696746603110133171893991118403568205025720644341599153669513741222851728156143068184167360203044539296669550031727518196280377299604910672416237752125879528699684077961409374739651841582789989480148464894987708382941273690797533304631937379013437653704570460345156195620292879939980925046314178713750487154069364582784454382157777451409209071979663256432554661340900379207160459233514241807507901020638062709902053337990532871668533231133312927864135041408688653278788281781101891745346988321407297404888011706057798466899896579856852807353476291758443299636148413803261389992998911450190295911403167224623428564560122148453639470193724135839453883013541006653306929037909406683367012188618384116372961909163496036814303406322436479595747244520617887085404548649123995816453208101332382170090126976337648435190664869076174151860890032359532997722002647959963910160784993387228955983517868622501570843538269685660678535938642067846989024050831321008456599340587352870064373237400363929215762604743500965083711603622064035735626667142890082882843550352333377215747449579570523395635063849877682723462071040186105310734694095580846600752253231396563148652103253791519636670244446549838934594704204764572487016471629884614888920599357351616628501367177935049511813257930609078678693735550272233119632281468341746410788335989084788064950132693292307820415559404500601288167039941109610117466661060594616358805094074555742141127570777871833867043765930153449090540330065735208652109248729869200507395544189058313490458982783134559815150413374678726682777966122586845530803631293253705888357998140202439063062014277079463109981641533258599983211517841635356815865880431340372555903720840137687763826967017437628877195194600715475897336162517370147912470085674721768828626888305606392124140765250536151220275981388155826505944702064564183558319263874459094005451923443331447032225836504109111744469583970708623006393100806246203631594232513174268286880765004541944496061921297634404621798420814449549228712255350939488591451800908302786523320243958611961288438285585715615720022742329462276813186869456761958668523881820271494471742447150401158073108339446084713895414284613774817810701631324312242572880178361461805914333907547715836363787650033895179591295005675973214651656285245278111155350768339758302933770115850284824547843136992697788125967154330711396275842438667374915495057823157210697215187579193448885853370528835383331339975592499642866991499612817312307395866300165760359096675856941220294654400689742122895755523276243673203201999883049461930279083367898888830838788848644060821170324971345969377609603049374413413172424144691714609672072371308651676878881416237159217943171788877240602521356216019185547308067324004675346363872824733434775825635843105476314736601118418926522056974729489606916653963163917728326290972314120026758074959010096437546425469067889222395802237112181827792474325901552957487341389046540880387796585226960681962630831555104832977349875994734991003849906552309024660373649427358974512825791599397911620733565957469935613487006731808704974718346709517541625213031530959472001595109801326542601161361749907564860712290753456314881621303831025609289482492410792285259571796989888537039005737410366159245191204734827282122682761529768506666397384191980394863493953672606723586441729598388538452167793400050387195388850547926966652395500251672216319085211321050283240338563555537891754010008896408580259788178861573263016931820387265558890939833725031466973577945964769925615593160858093079923317911454760515095786881914590212803218179042808661701086125918773466972512473637143204293390213767245510677214738112665270230788416923863985350430871119768542935978891083697463907546763399674533396246164730766159123092303025232311611194029909184904111879530663998919961223130732376465486052050723167834305814696236186845866224926086904423858798980841678951967560771867485186006960752572808064503230428297146059998202985570309717958092516457631960434936601255023447561178675711946203257781243923196914551669918632506234404973955307893521005321643249586179063132950362103540849722334760650111839058754163717475268037977349193268975372870427747883951751166889035452610051446303280924903336769704186787989522413749844249539789982807586872712927141115248937809921732629310730601594131525318161000943397223402172979992148004048912520649337648909485288127695534106858086818293664870777340198124061336496763000231597379574645537920734538158680537943470069899509571912943073438499901460827040849087954757509232749304491594925357829227013089896193853313075403967084208806985938940790933411033859783693738767159505306421153913706871661948207909037883204173338357267170859213086765159336060789959706119693203952890945869177648885518288278931343288872161162455722703462702363979625988256089003698783503996389073181612775723500277170462271347844397075453158468030386653155865601079976206160753089484260120557315292617651066884138893113297633138715681146674012565994076962789427729594378440666107925926301921140755368013460024055749327024798861129887337689767713380478233768831392943533117613798905869059694945991728797598746763061646579943622596961942269838801421049712696537882532947267979584263774119802990145196036643580517963165669268497179851407980544501336659459256935791101196870719321164932192693398974170297470736009096246060157472010709433067343015090483370271657944688139122528789786203463755677253188674694849625008132156607212618282441760411269052655273783772816632215388317274543084026466954098875174644800695555099253151037348748972325549680562446803489786790879338942860312383385160148466014230726120394194522529755450826958794485456937726725210067863139171275392501307639053647172051096670980970780052068883432458811988630371381789371489933449251994224758753154503067876367631176767019037249211653331786410906797744179877836001505330716518754307900876401014492195467103809775631090251005819310705104474054673824917599016846258534094247059069611257055945422875747341467412375043402109127317671183768162665930512579893029404261726143757623821477808261258012934582838420847590787288222997250846567511954039508877429262685418192393409335526793223459096652416595774339790353386419551752027548623114235281422674948615681992064520058723536946992152868380362594491689154069263012590344544752347593871019645883748446653323893933202623251243571732640653743989948713932036596882878040371107760110607614842414340759456616997271735800285922363992844589678876383688524498214734637152574414478254788329688760739010923007032615833584796411663198434600741708570081998239219317195937667410745094658909117711621289650681049632622182635925243144149966763354437853521240792537442858070238627159502505736752164820242324027187447026967250729242377168817708131687101545800046330726115165513781400732611429280707471714630207576885444889001670209377532035411450221301028248685322191575246360904379973075654474737837731642626070916891382349949531346083644940747169782511713098041350367152775892671996085606190852965092822198696274856524908981314576944478962124420548032196117400795105632223371566520560477340971328680325242126466293184203835423338597876548024439028061147241898667982977368322264703456197637959787602951937049683670143847188387999551654844746824281168375226794031894839140156613686045929134990834874680374351978559539807612173102063085689367236734985952419076399696247722212395186677671989628468827992101795484639748301047787138303847982735146701093586931798856333601692369525164410253196046152902632193667425373723339260719631700047791329172118428661898656300591178324972790110422665580817521849205002139658205983702119743392575038432542160152046829129275996626421617926648516477048393500299554137872046457304449540479600818569244283894606579009877709620535941060839362682487527382387771141576888354142855913565193717214593647818097671498281551401540381587230295468206357576190403763534019657376740821472079321736624540380575342610099419192504098405323402044463464325796174570432033696845693861418380975390980080967987967249627052538773167113189675611628778474409898189014765929114075881081802339896476303015143469720713690153953219525789979924592290414113335172561340002607824137654998894812603236615062167231047519050791226042905707424692001578505147224798114060955574173939383239521488420489405520679140397047979262071377635876291319804657108159415935031081759340610629367827520794738718712677422914072376802009050267891053823926522329099490479100027930293712683175144659980896498819048657418061874933392427713728437909043068521929662862984716552146707374504493994841198271775899874858896602777044973666531542911244777991120915933206762397995580370080937312335405626128222734563664718760809164557160249841817218262287438945960107428093316938934080672621198900456357349520240749017203786474957893679515059449450857737356948841236482710132579669676833831896864192894828746389163639494917873743177661848016059943723744486735851137762515373140000163474295259501384059254210611027388885391632807734097106514965698236246185622376723440418552682752217858632442559832427068368714136379536189770716889800459104368979578866586320217499694903500859012678934761309723307764762722000563385381422489568345549519000065405722808398160826932660345914811829171837267816700741721534647221194414100268185768627842979893676358583139570161726507755971104740584791078827181277315870569878058778072771014031101593936541521575200439678006295186408138673327154415647944125308720413844742263222136284223709208166492104541703030742063391448818694106268765264809378430108321352122239970939670584315643000405648865764670482280605479374022901060896650449220036302035364124027392384515774017270022209452727319721727243801447584272986539425239202418732284933853188394520248826757104408308924159258967687148655727019987726448584111644028328389832885419318595705284440778702467387012847394051326932689164130657741729364994072596077909249522475694364777691032009135496833628005622085961497102230591898019236249957486012357433002934561560241283758098440470901993063192910808643343811599792552634585213662243840713486136648589436893339596851332779355370250752713168061739187005500422762456930619270721312472105186780094190462569359833556926342000176888003245460735383691164154144387385257602752050690211265467093154787073296846736596197552736532896530347488975856739981103028914935902717430749692881114075849844774326042297702506656318070223491067865862106160879943409921837648836597062857242775394683150448632633606538669233356773670581954913515259190947916583652823219580761623069008243984869673912146933890406125974278198299392376944364892099360061778047505283135540637768322478939577361604786554893200995846436377861245907209807916513236806076148481104455883995648176695201611026528183476052000680251961830999495115420430326198750368073862171101403352729646288736665521289130578403370499318009178873861781212164472406642104609949363699150748735425788096456517472697587500603175928502413123887742542478811824367559129746576857920282718724978675334321506406652720282915525959420511112364471022556520009062243131970995425118744848406706740895093648111493627188638308303184160123731526788743391282279205671977430264936487912162954737942478704790848053056915730342415358713370850220635223008563230166355371218232670397366249031179080450853887956312644153955870099281588190715791760667205207388072462597032795036345766082717720037092613613497153916796182742510265783975740894032005830554810256701619808749295402612094873340805259385068547265976213636860049722168123314986087062951603486180282518090165113173659439184987104651742328874613184615843752252895522555690559867450661179112882067928352084214365046750669210103362980653471528503740452150932117516186004557003687273944117373086244603801118286994767793273859118059966198935782960159263155468768790291028972511322516309934090925192702965950654855228744721284710122327941292828046936740397722363895248277071096664255190468152597146529431068128576599947419516883819847671170557601897726840048193761201570124454582125922233588906446617951309355559284870888984081716465189199459821077853976910381634192122492233157706620191069738045176747764660098436974524978159858287293084157342717984454533427644813260486377703283374227411218659622897270474455650334902042962269724189220058601819207176019175399772490628090910934178438702948242788015824867111380880193483425546036690174280781190171791223376863488045729914786632777940568421308804188584168898083105261943861972805814369778202216132859498088273222741724889637614445333718420167301279059293368685382214732380715913117010493637244793333416055592049429354932659443337701069338100598054357636600807118535858992174948424786251306269184367469427811704379441691552221136192421303793982126901205004152141573083106906095668163821590024896566347571368070874375538790535806931155686227942386862310924700617243067449070501292106647293837900216335434269386099070960003396506217966667697374214604134421983883110336824410621539767096485155960468244640708290712909913422506421808240863559467371368857646345871084337400857664142544935184737100860752462799188295441878965232665528576574656505326990285197767261795024312541683903551063977797361450094064993835002626719129786907098311099545730050423706200980319422854792761872181283217412802681644866336213667759007809296193732798760637957380687140636964147283817347194002071352004701300416337741331619709563152031241164418005253074519954580098044351865745975145121507553792863003767511502014756907571844236342286280287876055829963052057447547617449132805432633440693887336191067083677210455497308235739054029480945754955224023646166407416413693804827463367031926030885904200133923668437705340506040041840484283356592757456432509133685788088059806043688183547891773918793911697518472839136931797261297787449288139244404040292574197675146189182585536228182513692954056407513715752174715145788233917977284148831559620608513028904030960836983253474577456074266490743311513718431201316971943969594776505025318856957032787501775708200700298603443622865636178985721111230408599185292266764758179710705903999551129184671799909802601284945087977924348868441087114769861683744398656468475938089267752333930789034218196386642624926377348291033691335910063952674325137842938660278535398505370096552258853127923926508957403374464998923579440521771381958872543154005811606263211775313147028622123168298224769949384081380381020136605335062694939210993296072350055233158912595614229695917519169317131772469381533235810128268769127223269893475298453958335759790887387013130838947627766097794968787741707197716739988801000518043458061993310304081635143452923123272301565648136006473599787419353468281516878864507247232475826655727293959497115713887004649069391890958468903361347814162634177928535228439661045325943322731294340814917207849326864550676401599915065040024158407816647542980804405673754129032062432919465737079624195245142821272765959262661149447846207032487109523998371306348700579047577287011608993563874309545154559670127467239986569099098590206797987748772196297024024202378734347267871975641500764351166124582530950527144372870161944402943823093155726628995502972034975300913134786799212982757322650607392758515674800303103033141652951374050465524017527814167604404531403738006516467407957497662711174072629609520902899416984766794669422220221324448285461853163313650904236759988690896078559678138459964782833208549370238041948000991205018606809884631775601105966819642298044847057672961807548913444417547868448330637208209589779551448002699256455618311985158848858689470504931569469739907488610593924522944779046390038045893069924899364949758490670233656130997328481776086320122012667254946141993517554656122673752029553584620949428419134300554925933312642436883080179033670468291414619384684687099521997939754800896892170194686977572380854488427412273737738207810389505967393096542912221116329718466181350830079241364698204321252580906584282353897633745889847878953598729634720943569779873961051922303254485028654700239547688088087900642541526104691551234107225439798999124164776680383089875190203379875799727229249553762145222617161330798964398540197670837204621455337279410322030902347141592878538486492114219398434262638229472222173596128587853239594642874239569507989968749554893853376426945109247587020331926172545773433748030968053332771350387550854954464064281081502294421750062152938276418170911323001935836670001393097363900723016632840377815301500016913906141581633302091237438268797849935404996370811798075233594919954018679522821313256753090394967333080053197013057651387377502384887423540843874162910532008483321820582988644806448565936972551180470064258638431433605597032349148251147413798417941713757972384681518357074993633132742336598423444562631445601741280338148362463884360187247330179679182007549638772997797085775602568838951840057770371535416793660081860780898306445045201721967468802876203361801669397263081822569155932563810163423780626856457914096489806268753893601427530821874431487419222437639650768233967582859098294577565928752840416576284549095546006096781287505570542395960915671840010144253621321703685682023176724790490925929041025367502603817727463364407313513294340699661405436487782654535357568776230137418617827767943491389979439646313219842708064556900813918548965486140404609495536902108339297289928808497367022089298224394613811348373009538682462857040883857938300292003157038665829274851359111973607420178651270074684553751983009648242736285409014103799730300017386952593955444887332940436619352498402373676049505420918417808069868033211079789435486508339728042883621062549554303638667206528516597612050361003411284031295597944767119156449578573648585681048202764778804977639800137715921554228325926458754843979530321543174959695217247688083677815605054293194402814220181988316296033577498278596193024195090036590402480202392502301534286573873659630536907091382895880503284901079051622302833172705741479899785596286250067044632521092565899313793992464501790179515619836609913492356259595630215428954277269290110158774994281437103675827352802389297034692091892061638204764417970476598588746469064115413475839924508850246188846708323101944794529962549272024420133051763106573472569840617475100216726010848409739310899803836053683996165809320012588562699728209141787588149527672999878058119807643113809156398259970339062526977825740927476476783245107326399820208610013454456425109067419156604223279430400271160397834048560267789482652032859332378998567721318950299490451261113657356477580136038333094831018208085878235064972347531266331886135538276694855325037298769490760571767958046097593435724691933837589503028945033204320537688779498878261613753553512775352083562698364692808064982803989293176283973472785420968398188150076503220238591595759414515535039569328937752006562559005276483150667500424993078328700798787503025086754629070270328767442094438774203970557251770515521023237741272987016261090083189171863264762843842247618858787429509364696523511188642296764965887641882107801280441710464109489259842937147539154556835480883079040404662915552604912848888481593112695828431917715479561488299234711535454873617441559006926715394353460374056273970917640364227064218678248265003242875176043695811438663168118722024209190405711054959172824447518409939324730177623395740294313826419315642211049483711637052555072386616793828610715299552446091164625914162594611277079256309686664446946157143995416379052697201753373508586198817478570843628047095978042146236068803397021959032015539929212530647305734417968888514210630051161748427619621146759119564321881756057745035198619537495351435208788555772336697305495930097796876592526529309916137175424505093848897709096157485295687472902107148994485751962771138318919271917774982354898337047083538444581476549892457129298973839234153011490496454381553350755514666626663683667725118753971030378324539085362717722610859895607965169325967656734814477261403162433900277038959880927914908246121855996979451019044372307733769976218233609126778327830723665804323582070225045794294013979712504872918296687267309964116331654912752111467655844181147084235223589039431415683124029751344494147121139553742774302508116561909149343797934795445137463036349998938613910577975072263527577914089201760050241933674722646365461389248335327676538128698260069073074606872416926224347937060215902789007221649119260682974186631520573611741543277869858308008211574593690728831060229663665003947901130875866555054124743059180087408788611877827935506889791568278982599876179710807407861794032401883834909042401980108281440862320603698744143890747591909763054823907108770824149588547514696592710962503337447658620210534023002717909580294005679804274996812859181924959745110773703507802256071916686507946692335236985937690937044625750485180468054949052295214663723537663669095597407783928156559800949804769274274336606662872079788938523786294010640277791828279118881594952941613464677776436794029474730211562572425274592173631003618027297016054619453704719063823774474563067805563579811290213619704902266592527882669653792035298251729991829173783475978207381146403165476542391761315996668068280793257879262751579783423104878004371361722028210380437787162073845553244776467464658612497605803118106700559987772869504919676009890374910604571996277881365629300087040204613990967439515770876968864450258269832726069281966177754670650316987822306331878057631138538849190897446087619767177281639291670658563153708507509325007204205857961115822925684681936698669656234522839644531421880555146363471006168720514291346333961310174738621195228473999538279526283209849991773332190264831838092756766498725407191317648280573118145825706343663030838092581682879404128182495898685292948056539232125425824888340475927461214365714396617642363306040672403011031062397156847581304653306038786161164264815294320270025199709778718528998237220437162332564378135095610858822911269033909372987175500025732977212972633397118122760066740933479054931053821539924914638527547874669425017748052398644964385495827909085615225793698575449373257406320933504744370767263974432955368446913635727444726702734863941094219823229275720568122406288684164440536747397411154454942836775485557015334963361659689209970562494210717519736567852825700762253522411705594406060086745933445897048999759891345834693741531094319272075623730713997467454275807118996957152871972594646517005566033167001266293434713555075102945010693423832371391299101203656958247567601654627112113921453639111124202215182299908012047987455973927447819304281760897550375060383817963638067408572620208944043770002067815109306214055575108784067285400497124816806752523820128546083371148200299483318850797370805420351845883239403695360569104717875864925723867795240443328282800228201204666924298651913273420147885218006156568748728408302994520363538019203680711382653727912474429244401211969304342240757507952126273410418046296867238458071002041716961606275312742673329542145613445846435789693692566613317036534894669081985938249321770259287661933158576518682691686824314508755269292168994802285291229575967746286512591902726283665882781462620765308517609080512350791442010961996929574518248097493962351211811248016920151437582430305673825003476637446538537231337078876016561580389788596425639512063505262419904532297631951732371033105080725080581047264375339972374833451877567679345130071266425783620884417219142749982553276309840576432144231867656005921812285998004206750636145237004346423219885413081139934911777492982380291410745768069744966534544179101031394587514305538017492223726830287692234529940050885052032266802166328733559577357545792340352711291850537875064060611164596738663549921084693621977446135201745147838558415451120103684136736979195603865186159038471120522792541061242240659612662728830315692031670557963712750430903303768462218118406947323161709325460825227368515278763905427363996838750229611746357176573895134475254835001335350502868871618892321415319665505447244212985190247340527007285843834253718183811408147847187487495708704240025305727640328472336015848698911035548627933506647568944429099539227977289443343222147067037636111862469158263870196551050295609599978773791244374293092022385910328841047041895074899528038705118099586699713967575202067770870831901325599812060336208907320915458835883403051857574261055909685407793410217671953635405355075402649565388020914728743461707353189724914760535986970762581229717450089016010703682067760567999957892902916230523758342351728758578010434985752703798912939688666531102907833063061570121159528638352925486404048720397704982984768967554707869025792929560186291593664724770224671239514230959355747343055817624282522725333509930318117748401440091955304631871837678853464287212950340989018890056810319442633335311658763909106875313318734840505596913135459959553385527272859971674190378403203679793292670383313580837997885655936735781434337186743256737005847881384433945522531372563608767348388152760484050274940926927774959071127979606772120271574270115545008652933893833882085747627429886950731239830540471383120671303037933125112678632667111043026536878576396954112998283296601945863178806951538424202885749144069854387057094758101292320968387313903052245856171651007836381513759519531069724327398360025277745573927257082805484209212941369279873167674752128235420879626950209390686274846280179741483791248970554288356949557792906275458296385225150215589509295235995974315146228158652966596820553568853384358194161794117809679387522728499207119545771244869588116338608641588966530022839077011249047340074879422995112553979260218072080483802193729000384003261881941100750538857528975439348982287738357583681166952193597275321105823702870203170154328022929986059243390164332491463711400575669566536814351921579276237746497083048793269378422176306085994843309154518140819787634361848622568026695219153033193057871502708685981187435365154755152885695358112546115935807339674116809031652294403095670919199077781493873715688625330217132064966186913328935296405322084367095436339915207838350986197898039976517530481962310366605582313983919555916100914191146863471509907896944305090339194083156582099509898785102947978571167746947629066990725688220786629201194788282993449237399440053129798237937274520199568486433861312066693776646103821276112153187681742318845842987448529744091382208056116778630940309810425089387547143294295046207369250651534992050039621307413996599435373419282419498834785162311790873045548700896823882161933391238777519219799234997183693773555452151722733397977659255088267392329425535013106460178359683663046091342048724321552228373330180645223230258531153830299574930597740479257183874166553965090139794568490067176371764420035194181245975595796089861363328645117812277036912826476329701870979259818101246943207395999398286999844138490720662403564952512930414308672109669046324350740142041298181496426435126291859375615099119479787664866615479453443794663484537706616883224739201735792134546169799903682647290769160805428023302966035875914430826405813838334865275660745640022979363935790661149296514580125149029659728930921802034602660696340512378809528652486177066974513504175063860886420377594601409896179823992606206809467525590141025969233104707293575553691287842821220238810662799228305042330806615142739227365678089475235625943589993613133902118695736715786704531211280351230053120490430238737694960632866812075299254183349311204982850926764462428992034057216808074903979058006367749001896192770814268058097984655447443415046258365038813049439842556227501317491467578297711687029127890191010156307170304595193317705571199928793236937667076639798175662788303222305818349409550250969661013034552658584167086326502347500026412905101549833809085370755801445890827687368209089464376131396079840300208055558406170165628835808332971314417765084681473131132467543820549201240098824420170966737420384288971685563017799113638520300088799664886326721724610300355370835714642512079148722268145002187567389322661124516368761976931851731384795698171079893843090206262009735777431843688120225337805954180693679295580285111223566181037435444042577641060852948453540041791501280886965936152121233857147978645267583887996958598170963896984889460084352190504959689054071625581245001899321068519130539393958007123771228217058349449320996032324240226557926462711297284600379323713744759716389059950689355760956717844174488044900724335983890986739293809999154069487564574532562022350692049535355898561506699791043440035103817981560973260432018717975545734016831239525614730198944827408053546731630695611944206840727326323416020900656915488600339457894685085558428164246132612662461489760369982000207800630691263079118034433285556913009846040517676680728317606204611333381509463280653286349800675693252100931027876348806422749958225514155466243172414908379684848034530578171367520474137427846892151613419310407193812040863460693814857924924425753272395575477797946408754008785812825944708938531168349603800641558652428040125410828642696842343981215691127127495058501613331375869380117954717698997432357892139153603095478035660905160339602732438317961226159736484061392211232287638902219627016216626181713676148510195486036600597957726361538754493715591074750639863670344654566920729816745954141733095277065938857890476249340314700451027126873725099359746533408039996720968243440805334244117442309413767324699000272431329202257432686151715190068766152505655708580269963378904262980772683778776641398458867046973133825005243223369737880909401639453511096134846794342676777672095132298262894135216270716684463267900627767404330554609055221199405224508046248343557525497551845719142096386226436638295650981010030123811295887958648676084523319864862181090179887853877811492067031772231461214878541838724755788869629611301713672473647806386066358380799583536611784202914432081946179730525949350547657374468606074930540771153597153375046786801110641964680056613498545548682307326584566013565009465098727464226710776729057947404969666798732750381783474529058153677020774193084805549548454072188533161794165107433781460749353327070151866308719681838864659668701833173902328061536892165241837974688022548068878150063489873738183128862640741728651166927856290145312056201145028175614380704579951519204515059892642741506858071486162064575425148688325844444369908904050989933214525972847415907002406835103289750286826109982916786524669199773800472819381515411222161271487456627554995032814530207307233112532170298011537587163483509793240686342695762626533605272568057424998669180382814619196613290914486878745633559162056201914962121392568595875326575232437970731651231404368944202906851986892194399658707872264105582680253940657228829848123850579973123235149226939670398810029021133922087820857485133620788729829385509749763793059890287642018754091197390519672839059111385783326061561663631377949219609295519542294882134831703044327576929359444110603992803952960327179341262919852457694885189125033819893920297663770634840201180762510744007574700877012746618375200531755958115756350023005157077447461262428508383039607018931292866597274603191761987274792189569684663675880128580071043793025543666782974334354591720431439589739026903806631987802455424875596743261097613835748609867449567186680942743240211504081900620845891149517234525907732136066089869970492044213448979075743880068238275027413757267064515172975822963667193748332568688222606323621394675810895038665753727080092779173047901614326054747529592949058771211516906573711516994957222316328369910216164729011951667651820114515963382634534359956849678022529894170639668069054961935932654845249559934814276274486533210084067936130220723322925921800624491724361866007421970566280922974155936836757723649974999971366030392901766473589284986094132839395090253624263334365926436238438526544999012923596061679026161369763685188365976594583299324830728060360432221290432169207446081397832791713381943840488953830099907601174468606098481262541199716530527889173937677382204057299882514524658303185091112290996619265093877120517435101310549863890896718366146553404248328454316545619362982220915375243095285741098342068525723455116177384409437764611825843409971621723312597548642182800616236276615994933763953817483644797868957463950813715696468119203350094691615492416626137000674127595407094054612373862101192827337190701237068898585230114686299240179410018537069536550924661222059646643333487847573943116568507730586745940317243298516572611345390931109248925393726485474758337031728745320113667436611632762727148925257044687251221281427961261488744379103757047788880902503282040208353335800744137394904629167997176402667545942249841349153369082554796025486246280827253625484408351657891993150038034010044405188408862820619256762912623463067230819382552528831733184957486250395849483964603720207294989393788939418622036677625045639471308229508362885235683702824387797995215487140363125955000439925395155754964919995339342414185316174923999334392468926418943318076285914910941885002832665157750929847099618142162818709053490300209735791499321990623665499254193456230892712392553637709736284332177906001420351012376394628747759924079203825874702220724994496739787972781969684054019927676638761830995751786122741137230784984544996509757369580150125226512842791549755849264964676373003087508423251912650839818706498679117444035190743998540667443313256576215361663401192306544766350015469347766878256794643653592930933649194214228541398654021863997831671959284668476823587352183000748108599423531410385902308854250260198475838141462303455425727326165017027907986259076958449790335900783489496181653532246003704238639920847470399900531274027184262705998860598672392096899367843518277927483321331607448733220846112146580564771201023380780927658284506478082439678937327010057856031470334391656228868059394663099686914986682727830381701212609821681601913918593626809636372799664564955612726915196868813625937462100042288568643656923782618988343069922864855439128274124448039304301188006127877899365286532661946928905221371136109329917375391521329098523477595330065672705219226789917371302545000540969381807190292610306538647099697204988411581770208946337297129178221693113056437733143299005733208606019207418822750448334891827055881035798915979843069648682864194252128688594436766065097380791241930162024336667819964806553531537608797172856226714559663746651917287077921375726706813813548679953371145505643323819382599396045601743893671455151800691504209365612211805090954900269545311749669176260062593136503051085729285220148047323153134272339780455045090941586879218202721906126009351559945760968405223855582335107822103535165016943089015938818604850179167966421629641673307249320048566185220684592497121372744985131154038140670055151170974961426600382968979599070362447842230477232390190964209360428928043154875015263815664655787030175488625005360552939399818378881206346001240710519975125108991613368312145945992824307712910311240619496580132633853356214440389264202401712518153137924493344549640188825440833212427777723535603421767562321539659282242318105207842328369075496982136680628581321986646636547286978295398221587899445787262744718498445973102354398789411620817635332022791423076495399332347446937047445428732539838528123415977208826631373434880329693087790115194831947379877739601302034376331071713359229595422230063907065153404253939567579068368041800733575297301792565760691031982700312748230287929797571785050321518837798839673090902827789928017555802928649791248344235387744700038083533886481015895821092632182580425279903914012803152494842273941540779834878843646755799004550298465056316588924299414225836021293450516839225953616907194717596883285711597777911289547061759868084502363033396451378724883457418272857583757073672844164034823730929598504344877166606417914085199654796992881188283272897469108877877185403923827193074023500204143224970992169733955529445572901933990172258776743210210653684238807096890742018089478714504253860935288100444449164750236737603685594617174972366673028937476238602121501993885501561771174864659455632692609258056435883176448699265280087094976473981056420970763448833186528928734767753558109262492250618600946192126260087782390131805765305104066345950156632121940280455942560726618710450695001202090796603528631263552145541891747808039930643081778340895832780811231329291673881977703066586512031189551321179545161423917804378309082518275153289148503497729808708358339240899265900331222974626564276658842615641695770824648403297509237901854025955671240221484511392445663724877933366171136226091429160409542563344203686667028652302659844930006841684654224223593504341088220568048244282272730377752290051535169056621617639569362505288349678657679831657019852179909312750347020361755939424946619194062892952197553026422551777922511400600367806651455236663226534650150667776038303843216666718525675941286327326012470181352263265049049761754343687640973475967100741174403246812487587365505362348810005156514349284070437660260770623610997466463465231138901027645565215465902978131032639552513800482451100128943077765578428412751105871714158948954237856730831829479349802358616359843572848963181573747609393604579470626060103484938661738539723563317382214430966397613717083266096504658518695492975483601020958163884704092086366011730092692382178520809890076803931201120270556472971802760746472008637414821386009657747495823138932925532157312752611859295166341531855920421817641377854115994660650670653548157339419445283548199458974394856737013798618041930446253492543474369132842646019212497643050988206501647645510285756812802542102713693237221839437482047148569002467837166220740632107416098337922949579518552328398858449155104622689457270013976350997622779609312672224077069370902887710805583233279508519174782897031209351017807670716257110616174028246421220415859639390883735761798957990164416727750614514751168301985605515862080349763316118288150970771067686518983846340266990775865531834629459473706460558197197080494618223626999787650427096243592063095624728775494045057706346343446200081475726462618873557128831804809120107687927429737360584734625900517727218274881462338614643875102713581651457048366028531321503602149695473054937968453182153104640490614944543502610794994891762405783310767862854904015681573764129259044054141595675959522519792329509235471061376326140393661716354049413848051553663298540359906240269203721637884706580277959116118911794989574711233510042782462449991443368060377578985590008770358891241728633133560285279147590911025575672305904061319016388745700947175841280575114872612336183153810558544344498886052490284268177878007705871504213370711380580400022216893070624458775486255227142457690793138073140432790986242172674907139055510375188662038064760790070829060141419755850786589255489926431330980612876354760082378997783083527665165756397225627571499941163407290733775277379394757580691507943313377845064935838183955663147621532394800964147820100771621860881101452097794001363182689239721835576598861145043038765940726495348446514198454638865917292502942305441920555271238775318582828238642109877818181677663155308190715153160327634335562972849265156708319677449183939037771777125220002812440170394981534927608753372168476582822063484233684594538007737461636039526371174322172507381982169567171200362548056034756975167280219082934861491403444486007554417479675947941676555693809451342643586926450824670731943711702692510546609366424102353048144930456640825666081028201774426362612377641680827457451124827577312976081857455866057152819718348833417287759375216359035458269881539488476260470331647416277771442411213394220364623746776493203661291513446295615396233059270416262042943790423788565930710945506085752324407332748208995961691780884898073097248223915569980956502629415528331352140827475687777503726016533626283745930130644407961486096014793452060345899299522894063868635345862857744685378873994871150967370180261592186435920606439838043949833333243860888641584483326388718488398783043971594055724311026031288608301858226435497178672712889769853591880557629654699164125347004520665558445549739942630566793163056192215309735493418861407148867127705698017414363947471976640440390173952476248087865913299689397021086960290985469972858014668713825932645406296832621786417661230374827764479045082481923645176239522356135621180804247508916580633412121804861708177923060999039546937744371555141562513397720996130156494258504674744600172055213094750335061914772599749425139420341262880917062227125881911098340969383526224756998312788203078124687216334868362763219141212069016661899236786267951145534408363853047160166986127286825068591064430108179299670357932126616772554304347419542722839641974112134873586283308686324391665372606813119641187538653352721160979311320626627581858651373501847583993939357929687613034908846757774901092169874220279166706759846581344214818700348726797946878954925380179738732947242687109792132360527464453260175291477868971960966257230192331452952979793580559777235430599715649183273514446742042485037069241092356697693481052606361862899325982719554027126301332740663363963743227626932732430540770314238777805136088644720901824120443682457559133799469701076253242420350134969003827432486872863641687313751863069076154387004380228084985769360361254478145229168733708515871921955081844078197848642318556840284415680611043107165803888778430083395114876298965977148555080696119885511312438651848992116405663475605637069726222687807963766303397182366742998062576758359164785287742816130229466661553424258883194810695050624573788915195054632785548301184852969107775177092023985979887713248522180149569590580298344464327784707764367328492856029490719527869261621234010214964846624093583403033613363198358461808408912960615850277600619068505878598093689221695330233538152933772030412918785200877300219279979530667702225790267952254183671830203796999316196605177004070784495489977505741160423295558264223746546005686443639415794439797439694023458019246319455444342550290115311345873924878589798186626083312585517718983523584721393852563809151325242795240815206826425833467513235542359431025259103454345559353892041589283138217421994871183629726099377300450187864814670431707990178266248893065842338562209836834480942028394184402816697372977505424676858351136536885064099846552929707243917368498013088363829801280959654315824437349306602495929836483925968345268076625638807825180396594157278649118526509095376172733547215588410873822199881778682316613200532776434079017682433322196361176673389574228763689741374172464817468978185387794256009201274832582713864482177594718992031381249353499190793578828540668912283244545185576680339707626186829418863222070245062687907077215282812415344854170147125596398639941555634130833150625912624318302154671557270088856243207233592826356694241429551562573237786193941210345497952672072716755535769509462678474838205571743841602674161354950728163526389471807666340671626899021872881714558978560185469076947421237269621045139417485915627625311703163289604676518941282395507126240729330320740001900369911043588815236514677124375523366209753749165953792847271649324818041177000399839205506937910566555043963280971790931231349195268682582706031460393102448491170070123332746198059678236661317772211189530546128185173118546467159676019151249641132039675248123056090221357754175949892486883582432775791718576322411234302504246635521945625626586027763403434727940704531357669409718527599795130730799135526891160398535640167246013792313128820486283231399665433856010995129944553421145253108285061777910982081468930963000843344099105422655264468641909120522165219423651754607311477980516492123519681126292332015296193347238876675309076753436850634251096151591377672614829529779789311907183846908710553701118333425153041021410234399387424904625590861271574888954303475679533019915713446504882173497699782103229570138656305434037380538118585353031535081903578322047874551184153935651745616011933508954357550222175678438642178061269336724153108887980398733907426889673713488658246528389156602500254784183385021964393179860987237842066927504475006513275024198779451741484839333185528707096815924212708063297449943050221150723622524341732709448977388638062868815563897014995495403498467075345141893276858358465827044266392712086640856496732880133405666497740985016610641394567129509119496874491575827509884416265794127115539967157813544108022922575060593978673720857350485006365635930146662911584865542928613782759848210452086235658196468216324093092075740036172292902963245997755407199747037768233313703689596792595782011715804429608831060698715904746846410327850023746543391477301323974809960066035638755364370906755069020386050241997743276765398122957521531987057801517506808182168163245187616697326916120694935964726635502531526366332328853116090041725378157266125797992660793149234993361468965004789128274213625572382543587555844632496142993005280167383514420201669657481332317168068161762964611433654563687774732874317939878649929001656091963456690562636831705414537443425993947804684527796765750843238089977702630792129882204026169423970862498886294061757319304047170319624084434721598031277005574364825864483063656186966469891332898506678046749069735169556668268286604520136466297995738574557169593570323557710222322162080537316120062018034388642868550704033862485244441589301159834700914382112483694400567485259786089146180194384081297856753124909990198115250838237746494837257928186159714121903811844455481943577565078621326153847882831024857710806032435891318682491744087423967526004403012168029669967967267368185652759429069913215594872654128812646358186698889176212509766475419633852130377259031048383301192384895933810533231786550356057541131645890083603927026404652111368470608598048724369786507256764912280142041834500590339287164738123213761749052579290474927253373809428927206761667336333852299349002445747468085153928235873089771009996178831940151949288178922157933584835008742172121814455382214205506587649808781185881782681939622710920667523747813321447076828214960780055063479418305161256688527635119582094641912861477034961881740754465132843391912763474474343979094459958121520117312870807745221051373278687770471814222946089146329109704492839012514951897399274549288909369234162237631238626866147083539555800092538494268174284186080593501910537563495187601326061628471440248279969963496056534177946465613680107998089113954525035618926521884596994136152963146786346632588494449775192926242420801009821423161680602389693879957771582945945124830794515420072429276672127985092065114828306209781384640694899518001586719076637385368977188280442906434996277854908812043394650319067897011531428586765755587963729266568061880271877017466469524393410396812908408319137819861443467617205693280061605638588429218838439659764882777220532416854261186249802116472948923648644319485487866610050175474223439691210789496956790456050760861003918032896922684757337294113019083028067663325726080255134239592319534013349307141246182236093473119517443734738928084169017698102749867806591176176823044485997946306157809946234105945045097597460112318917091516920407610268580782721352390933317829291676882820570452014048912351136872919187584690737385610057908828045988449687319646071404648915294957767335156175570566846970781609381533350469065159106619697393701601259107241656191227803665917632614784403383639988190710528458833190342903868803668063367860351049425918162857533797803532479527416729679086991150760245248167495526696767777511084229930893408162794957943783626611765314721101227683980382701131680838778971293799410177633226603937010360135986891271323142636876393893707750300578789194330069880140288512940237846147894881111014920175180515825208695512472358691805104402673326144853735535299341698176922538674850051127545877913697752203629077226093058670799995671539834695202996124604234007604523666190915512829098566398941220215072372807376926429582087214571693861185704903356347977836161573390815560879200408474625164097032688839123273334529052679348604320986889408559309417854375088675681084093363513648390750385265986625899922279495136900283763909075069607209635282538807371817436792622853707957306055665951819188597164887784202026145483980352550656122090583703831457480815363103929399450978790650575543597851803633521286218680841279887983348473630922469953824707851801451219183628579360034613815836611242204535084821649139680854486766304654197195303554247128507862673482780477970036837827921101816507597349162634118789939953565060397391546460868385873125058291148878838573152498638920798802620693520872471641302568903568951963720274664001410342390775928714332070508190925423614104092601919961359449693896226053144888556393530929125429390294622286079179109075693890570278173741694818976971502935587712662805582088305041203694854638657475075673505048569710382370446817117318890149356392691169429888579597222579542626171991139379328551436916533754970476343723976207727711094264859629337635408201395433738637106281187382570749093159994028500702242387484589245750177358703507594442200465277123633895888597319692255915398301378051421319288414733492888467686072640406526110006342853686272416594091576495106945649775198633399230057287219331402342892821207618676452909699530463796851755434950753586540462399803563419608477253046853732237854934288418148763142860344438006177911151851727557743464971956928514909584175882791271403574066827317307810123710349169418677459175596883586391880269600648172107117499092942745873229806054350568449567136689150209568499800457302709290019896952383804160723794410296547239296007353301399916524490066443186422214507064592599362867096709488438424002295000878880100812358742969442216087430951072423344810320109101546465587672522073238714756744196765560441205770897108518284404501391361353735171490381777040868172957292695063198751937779143600815691689877178840333543002589522432603339170994819225362833156570626439634092108740919184768365389817764388252973973931008974214798900783437792565491392657928410931780591311843406132715599003044590546455334977726107688689348154038608827595438852856094729332415963927222995593898739982660993863431893468451499372397837416142562377688812870408067313164312769881912256141629880289154408865622643512807918287216790323955917302001251320253042294520287881288236916676259004972837944150433504967977241802464426087148562784027544373805453522806310191781856676577164410940396345838043117488812936194923331874875771431253760482806334332345146723774938022473369571119724357097334379178194892673239374618805019677299357344442032377282528015024733880105165890250526572166807889108832457231209593206566549571604507710937567448021943103474869227688103769135249886579749051097055610323838483652991764675622223045870438537390140361846616576567254543738522990129204265675264233209819953243284842983239007740247273242268039946896004537633654203284356534325125537161591417324062491605276855143517210456648034952484575013051181491425925108316495945289719561731290169143336960753194523718245253629188315505793326135629749880971846743578157195966686176726170605661498440461423984371923653399638962237728294148687292853812677907750096791525386864572114262246286291475381079724196134383558861984313245302338570757348964926987767904800007827795923425027718624873917665913790135633469771467251437621674111997566368892290730059436160955127952502465387229935996097747773441207264002251734064290393584072839949164402428840824821453056063519443560339920859641801897884754302310833128665857846438633963352924616538098556975350898396811442843575432516564634773423426895994522336155921731337343734306043369129376159573531779576214834790652219953695609067218420378162572396981521190925517375523805704615104163788110469280422586058077774442353035835240842414210014355569635549157976568070000425089994277553671990330642067873909957206178041701815016011187079305339833733387953719561504347257494671449068338641595358230565581821111788049911050357895419963991059438851325070187644015710725334846522559112053319413433880103115993593869358029036868877720021485879249064922296685439214301534150216854044327686525062414499345305485256035355894322162112041039772323512805622149131002809834799610737795841167746493363991020979778793185526864171857495021072306140595705954537066772938594493771243796667009518193384634677405977355244017931952880025838447140218894234604427324923681556150446213157537378623506550539240445382503028898595623787853452238271396419263116302370776444719054081414167147771383241668683514451130435719765015839383266278489236504572664016743282489425013793622714444952008733108631720113168064302817161472263591870848248124530403035047534036582125451608656826513225820576616047925475461710752115826958118484339535545393435335168748997527740518635790319339081700739530547356274611917894247979075422364021399881858743113346110296090242499321772201998685871718003139538604928991568812551410499539659926192875610326915910659549833980408955377340294009041616411343306632495584546193996602430089071644717118259339781898134452916076942586424292919877346858991530627471118402250128157004928895275734317437111766398724756463810356019462798291116935883662231816996646688115054782319463525266044241878941377748422306171005328598813682534419197694862837021011665753933029843295602417991704782177930738718740224378642956351493066744598141368059220583912754040527507685999658793283999586010239967353189522578407280447909633931722238085345386649406697305494543145195215338898361931695877010553672546420608773438843610744244741262079138260748525872161932165498051720903769670642334229973409400351404422158661477272150397960158266200056850233687270763484278089150266880029864167704546504840800110511669201613175195609011944636435804706650924935234483371309251497375902074282121861749387186104979333738129794135500639553205339980282410240668571303056722386576659689854493881455183238007532497424519949115104351031174153379073564062034058799044309686044151000179369460400817476961642504447261638482984016297214864105960982807835892215586347899368146615443703302658365901460480342904514027651803868834471766941057922691312102729021327471252513823834423257821573162685955627165036231110959534282041558625673386364609570371004153611128771420972156976216691167555799237720310126527423149229885610078866841418349848238104911216552104942713326687460232381213327087444276945213911996722166595565031341599509696541638301198471114362421950191996575670909957017730046754854894134724802752866226771507459699482602068324435381593065944335996351244541034233654586439386505793731983413921870232413887891053420913099470198328147666492468885664386195319532582196839897221486737075707088564206767303125667480592767499168648759332955917668732310001707164635189664449928099742915565497816980739085252745071055119296625871427446662101278359863030737285546938181085907537992067369076979637456848013281093141033030375184413430745965257381113106822766801029476487413365074235480562361407107113498763420945312245197165895331568021984494843773207444547132115072725336177791380939427067782000072774750692805860466965934630331563401152368625278434001232034384380765253842534788528582279776571015747779151198324337298493535380510246333374189445712150671275741039406138900471602497705968667504593218969949728378822058232156605744147927459518074858757502429260343859954604478226915264463949809597665887385489216863980589924022919499388245987374407435334721150921200772752215211774708017547785759207377150213552504431600432804409349759087457410043808324857458570754008215913785606057076133288230502288888609631275798812895062831161040828611629806667547361018927323250517693832307443952101950377399625585048295467529172437704182513747569595520271431343987305750427085844359690903645866380937325478173700881303769109500273347425331230371387179929054484524981293535518734451990568171237150861993602923936608419581917601935483089366494729308336939789687843345602604362027444479014093913352317177034538424396319160004624038671816338821073634608961987249752588489606218494638563021320689452149028341689226248732072630556901452623984414870928719920640215382335890138725388920746152619561767437771684142159407439909214365491121160873537796156045271451248857170411075569278139531707311035521180410137017541571425578370275438372747662787795296772992290752186298379715822025293870670439432087235073846514352531670105979612399052644335468940595250111909568795316133299112441077357886408770448894447091093079728735970323970586632267105312062087604639299787991841985454281724120176781714140729594197248482247245062038076711198022823428235596545604206599269794804438986733203915924822266734262407892555223592964487696853877397674112327095697590574627713658058952531519575585632596247537111730002690848409915078761330451619355339157565719083522524306755026456399676079283628509614445427002911482266530421644344596408060937466042610616459625898494691070756006156592268355542647072792554326202272200413998502477654979207511847124488880952496536720186007607249855048100224864740198295671877384050203093539418419562705749043843159183786634209127312473169893680830534713444108977273765881630007981124175202150767801394186875683174001402285078249442548968032526413604360093072244669724885258569602149491312149303270269209806048002366954578779093157854191648253075953640542260797130663556903398009762718439487146616804816000138766740172646364820779312663025103066964849923422711264525110041239371629715643008975109084899226114358356530003087839268030428398405279409828707019238579491581402684249819192161715706285976660687598101369951027993526885082013506141918193224088996984366006187778696242077248864858666798615615319897367067430954849901963786958633061089106388188769560643795590591234478187218575240388849418983079781866141556096111121870500627563242933757363716370010122752188582800172873952601089373164321095996562457677755093877219544923796742569721375558670962055130582153868324165650011916161525792569429053447243300409513049222204255333251206336927332467625791627314380055713226695760119827245506540747010057177252438189264711147200271555361063676406054266064299172768224421596240888764922058657849260543823604133786293417533620797445991424989559441906894706804877788173248793339768740402765715781966337745314119868946799922449908687549691287082595175012346873802003516297924852344494837678985946816855585711096566325638074130439323782988296035030077646779214117117945030271369138510788977102968119187147342089324068711993024827047563676525450826542200154894214666464694628237161389718438160561289513152712960163746375658576954837037984887664949546040740439812873682104371465282091995356711695888761059533019598623865489224664641257944860724288788760049328797914348800199503035447898502957394203969493471067708486382989241900667539960285082256529413953680422310534886379101414646325539958388477930386855895865462773877004699427490060645890735234948026139628323874492550945176333732354749258186439596947073831814791959114977674833007365445063346034165810869060829186692964022281260082460398422093104981372132566090804655971703258674218131774374625102797549344176075018716689993428362100267325235946634813461071458133182458063781386732420714621984020000959736088863920115190294988454119102064164102730056607097623310175065676752685578565819704468916146765099932687840194867077631867346187098236526064406068934118544695850933781454065395212308531998305579705118086285470261697130600280587177423323743688879049796275042271410886312833679651524878486384936005164856163550756644309944868838564850732525165009876483724979283022056705295110445179193967115447362434997658442424592789434680474636680729763282476409822037920807571606077207833393050188746680126449653484370699393895660168303047682720109912753205329031209002794385939981728173182650907415729915062150733993738985064962826215930901145364101371509385585470898030974488239747626702542808473717887312775794166169291181316056027079416225917238452043699026509708077376808593578753734412836554346535106911286196248543700509793006742378780447497728687527732260881722540009110627313001479756377951963816108308149428302405794248406503986161138304339797769811221231791709158007016296091951487500310718189567511733743255421020479155770189362447456749959521135520001189712821912477837739731607305421878939032115024635893187262776938235055958457943445427982576758516405487476872873727309206164921802127911444060975683027389473171306190083059645038937524576367528214949487841241490091828478854931081945796662955788546810824094216027499627778808333415928194683537094592680802411933506951815668986415435651123593386978842425279940012873912531134813334734484986981781539109409645528978401681030595033614227434463195844035726859176640413893246471590151846662719093333236594218373684702193271411476203094872480671160933159906046832169604772157896202442763827388506005978559548239271225200381561714169134080343909845991913160564279515003111215571625223632529353321216645151987148307008531611782598902375831627490286231291569681392794679565496040393200310664405974875921511432155804128630291675216415171620128757158807934578227034537399505512273073589078220321473706005144471998773902579763098688609779364615324910752684789264247919221999297674930824654068770093578719705245492174049400677282520766834048357224060570724401513266079467013258303496056036040916428367326800270414342600840150021048679152729468450915724181805615364814314172795331388879534810149607592663411710116755578812655629782208277325693144833902626059966585766289918264761287194221743606225910449787130684719649928672660011029076722428482613013130104342575141625434199316422294051226842099303089637316237013161923734497234696654542441029425801684785606072140004319258418847639047256222564786388600043552299118451700015987774155844986384310810132924548877334214736525287590480606540566158435500729749584261118892759779391148792152873083969090096604315679574655688791484970205547946176969885160948869205748688069533222344521022479577866302572209339268644458781102392930299044499764217113017119722213014174035194150818465031264214416299008458913347668854834242676797948710764591128339610875828052673157788341574963734978024150958301371816190063936720392636410438999580980622457163134580012198987276563649028535054384839471840454221738341978768385379479723182798084534113755269268703735041557667683921479872413717273594556123654552171818028971400747203372208328908640413025987170926573520890634071257503679074214086337848761461602489981398213729375131747037254217839528957801926266678315178228040166900893072273571522827338057093225044277551471673920433435850209576276677529304260580050035905465785173005177117862637269004491021954631515404120383265152291954645414036460184747254178246356263885090889169526526307598280919862688039297814735233431829112519447971753360979881958004241648445289187143756078124237994221540741778720883722962136482692729077075070056081674105329718278185466002958244000281125076249101232866644235810388699568033850774298259890806020475999981579764979709757329225677753432156675286623038017754346319719624705818162571859439244347370423097113189910376003811958104837156613594695469037481199294697958981372777177412662146274732437080488245620716510878005171078439963531645561591533689835037980212826385214039813392973904976682257938409334864737802367598788764410005643238325508019864216040423406390369088925356487994618076293098393287009560710138585157207185571612891726642961825691342056139213403229937433277104186955869732719602601407456174837525559517020051119532711458492444627016153402213289405278315406225952949744420550004001360587193302630942155842872073113475231805581705981835902777819419227181684663589559398776601966151371769893228880431467350417302799850876257838333898351931515266076904370551874054139433257459619588938735735119665658459949127173816455679416386477892803049561088017390087476292269273746681101555063928900213993236403236786349385386125017277528804409339808503783478455441974492456634803662921812215013481821472657271712850813556035523387194878982033199232241020420451174299279517235027577060353245901060945519126333808243144484646329773107366206229379833513521656171237441523097669405257125081246006993814848680248904687888150726184314899791017468234510427927730111136738496536905139185021199633754128997503947314500637342734143125360109787906394286320216599440187284981762550926637231989001926702819435294559391904740814640404812759938119334858559311306601683987998376600060629951466046406115811388202478336978091509018051139004823773249522096594040337541746250047347940678236721798616358885637745824671102188341816897842346528404929283844179386274421565197003311443940949056622824994038212984887648402403185731476318101300948323568447130004133136005525098503731396765355543028233608144645818261692102455124873540389861063629773304430796963378915680076835183118423864394312872063946394269318914519207780984804769145634794867090702213968517677918808894072280776344167545560781407013815560574917256083427235342094897808003057629389475709841281798122043580180094547354760379547564856317241444882825737591185654776573511699316074602072014511841495344939144844439002481526191104180793750519522846619704479557006102025938214150472139020802178874043793644543250610511452611345740043850330564345460939467964340257796483770661088109913774165426680296778345116660835677553901027653682167008264463045949408563677111601818799047094459542346725406061031023018016988159691058935606731868225946138120285928906603447709679062553988896785506351117294653128211106955784158928475399733267343025886194825085654036706343985601925078747702506604107616880592055750240989507070697969790235145890815769838444081170873028765374479385399878724844506350095906235167502666039829460650086005968739698371133187057727304040639409495338544607624308924727313419707486675854502350236473627589519594095618442523421172873618421276652055872180701061545712541730304281324445679210149604335279578164407513593088495464304438428992993576319440658130483204388546236650811640555809748512539289030134124441068436078172939606435334249185729865702020255110391333290021114140835899577914771017394685168598347293488213429560222333981651352156660352596680979826180711322903960333212419531137087115030114360743772511161064597898870826229956136825056116128488063352235688008274907558730373580307823400006938927489737626595367377753232692097830165605032635522239778829686069544392283054664760365035591817384228395527252375233529038250684024126053293149502729996381438163590119318094100930638439970930403588877995683008361730285514710995334096015299688821989103695315506343199996913677914511252442928975102983337356292634214065509148640539228549780426274613462697329441523705299317414458120252647791544056160196231091702364773630218481012498106958662703768316105331620015598358975559840728194992956449374590762037719750640424327833658812112018623304254180966857248067717827664112390661134743794217059915476967907300214768559808614536949017342579358373749883161958197487046630698468831592741682438076471649563388624242642609253286941499756295890577668409984071191664255996242861518731238634644534040044478077049641254183256852532719822387304381433965385140135588457242811063377079672583144329880829312640263789443326812795012538292903044183105223756797954899824986527092499494215606619220795433509029294016648878289375343713770154733923708381903436797358553680951035209404010481289920095646498387280296427257631320983290136768518364858849271650573501085975179899879995971543434836604506490025431985197411984550977862742149748751373460074984102868028751866057069574356255853908719551850857700171157041056804453309003842119209374210810338117481769007447884670698385749747277597022540521841449994202539413193141077408365912458271176081220870125784736051119844998913539963668621461662427076923180944424818793369456533602071839203407152205580286490058281377427367688372919145899645861994790628384125811874027566020364894875681766173206278061997747154518794809158680698119906443107614507112099453512147652785825328969769583404979769076988024413377052038738259743555669594427440391699772148599593443472443301995819111262149949475797268448165648955708796851526265872714304955129109315952441067892984996764014760671413831687431648691841398811334955323990888270639058075005315698004234826368306261592391577474609917764269868368692515899478102962479494588440705706561151649898382412419915989527229842017305746187555311356411015972789839429897719856474362475264489195133619377002570473676628735149918893869099699492321600211528326961428451873854919679784834111184432638884856294430384713903722350115506422977876235980281058644057887923724276620670751602713460000732996964296476707461073894278912764498779242929650384680994418224342988540390387864672141359411821697393339621819060662471819348639985814506701996604669668330585877593310495160284056121233339679083663553725866114006440759964336849380355197760456939001521115273211327306918136427322005873927081777214121990321860354291507894978439940169898882767374305770850028661870095594649745420515931152097361618626611499253693779849645766513669019837634656093002478593085292266487296619256031158233600202446937254119857534853295397714296553553991294056568962056190845770578053274585815988276501813547181525927784797485110949724469837125651638380519629142978559253259856179563914952487773012117068775485638781999813248315501210598697790711430489906992228994299384991612952752256186545490415765961507255530075496071056138897103186133487013115054276481094588050982308340758199619655228606582028960033693144454388624957980905182065360926561542538812779000995345635141395744892937172560960781834233412179422241846586833866953012330261134949114956344033169669296878648839743941240988347236630457286927180527251588439067290207106571756507498103438178302711086970001586903951652662924630306240458154632791627772450757243942825005289247585393188096777154533606663893168341848264200634502336410608461356215211809484029650550930819344199693348626777840090883960133163022312969912167312521928813802508734014891912421012742960430326623554972389746241781663608321855760145322919880694596665050333468199407991707915711826559276939047289803275245197941330687965246059568169945868639716344285483339918546566276151118684005609334478482188938758563080679383884577007271173405077220159518926225578533646070472945287559259497455590469869486015768434701979340561726948863344035112065347174352536741230063221150129137022361314953840412159181381537758845889330898323742190134362628555485956692964539972505718444796528578588249285258320109536345563911139512455338563306281519856297244527630110938244287900026337100074899776814605615539217327089146417610200362968760539455300238776217334816813433454155324545581215118024488311336614650382856491761963477975493915655574431953168303835326477824024448924309562114095058216556913028016467322293192513077673471991304537928592896876930579271123387480639664067435727737211839583887794325670906524709562726355029342207319900360123048847437887582228842772257341053554081954610968059826403078639681050235131282035625382184442489797878341371688369079353659272093971751091867443035764715915425863892223143132413715996796864663116986401314804232270196440462549631505204011660354009469246275321132663301972324433997953485356930529987801649495351409354225738128388741611332336306516165061065071529298579529297037279058268581258727510696636169249308850576938580991757604250678976406565073549242947845736638592044536814918850763158423661342759905022217119687217343498971982446598803573288637627363871103641571377740736110258335314192492724341379818865030046585525621546100941798973947702238048384641851435320034744950237242068220485395601078212924172031689232241724335811390411545542361077484218507497611262811867130334436635099009968672946865367804194514500068193372703655971649847499576124235492747345886307238413640500809678292362937616261570233530951024642450373124538689712106714294672780953066664146637392345062733336680139799198209655556962630205830184616419575595337538424670955301761638236714795263021817999413277175935627738574495970842488822225128496324156139558583153060268652145509209191512089868515735539397793417808283525181748377635155133343385326798683676389448092317379593288208908454825230728532581748533371331941875130350469576385770197319830637983146139609429294472189729450662027846366731171795634248661949051135421084739999703510229753355817130396962805129811683462259813387143141296859479372616944298110658311620175448390201169489096831080167676249078033655661499598600618494234581102056947231258031896149987207696157378261051381476050188249255291832491910025965140382296591657458870226318605657534170373431982319430474243663961337593781233042004899839106722005385181975165837688615137543719625428432530206660987218201349507716111121636026747690635030480992016647441162758373521983975653299844025339444315229222654496059100363912417417776733197101086317213085575704268891950793070773923263121932977508256342715285076432320321270168392109513916488532617639248298191088241391597504525687697486661200019846257648139813371884121228625738952317498298143139087913966761053636187141015084818192224729474019337402928176539623766042853455871183331346413560309571436232912975002175924939363476443720023693867792375605883619943964543763503862537869490830386870554465916607845169382069317180570044897101313688292199521521968247793288564848250013230087540536130347864030585004400131872931119889815201438877863056266302339300366546880168495577698565810757120285434523371541817759641961224807915892154560664395310474075615802421683027673427161462509066855135598976005844311064323321110494523835390435490237214016651070512826336084627942941211055007472457632670605598222970112091185135217891847464346153110658671909069149417659563703225351882450226332994961912154059393088509367494823017380419935726022146981863966257419685698576883292415893602672234810192938672644095848387117432227248218140176059837795031668485144550309742256942976299988159366733974971452448905761500676894974629926905937095142749997103559909984107911076540032701820320855435102101965253177255704706769371540970582743898195826775339173166252386454664874808462119079182127194660907585351264198286871956951723626877272174469500860157728984985285582152845290705923420063240016668365254542693645537563155637331826490960247007890400672701588417525149181473397266610028228479711580247632780215175383839712720416372629950745485941599265025820870964289831021361004415707766103537520153570396618337945947588401656130891215319418324078471414122892352882588878359319298450880987285141554701024624381398459668427435476096996743328348265431846647266489950767099552971403774837151046765716084012099451266901927985742781721143705528365195515983906032098942578660176225808533632965208120472785862068482236139895941341222576288212319481938967691861558452646146213356006056149758933660670307105692686167425879382973459966995431937985209498885207947264612629885434926864701176818288590906854000140720032735478193542726471934071314311645177820925874108141162206573033141437560524721796172688270973794100376643080908345547094859487320653190457130676948041609305991011491552162492984710325873721105419077343879959894643683476938924506431030341416573169670308425035883631995929953791041885125883540075725111908280581725523567466417970649072239545100079388686602335743385393483197920003184510171648654425252082703540415862272044701152803693160618754619969719271247414662403116179880835601355504760717875717004050824645156841752649999778251519547402082093251333606228368635767236606115869865423151120388222101231591851182956958738777836317490551342754773868164719654211649050241154042163400893304313305496359171518785941942244789811969956190924429211963870907446536653680559518223706616546733337287989052803464726537332644568077657824447537606571703694356732741875028857289329822927520223299981261133345828265512941379930642529608903533094642960034619313123103912582466799412296818056181233718600011485261462798472855441781050554969795231011364687779706975711291411010855570974989768684800687057749938510046856444741810913156096660742755690476766196910405810443219126323390777145856040679402611652834765657997929994319763349363729146867408387783689995893077145114571399798915087994328906297956258368420346997290471673258227519644792010882383154759061275318953194822654376314763320879330101080171447924477522752465414915043641268969382768664164065190902113529838132287586237509320507613259473168783635270173475639733566211734534219271069985816373195741253960478367188576673325057008537183399847409821982549051416286370167919394645648867574814225051108119449283964633841929221715721630491774827264173253634587467550951786840278648413988286878437359671973895322279437449891456546149154961797800740085476406493713372229432036914844349082451296066089654944965323251478275290195149992240444316940859305497491458143310967110861032541704900578192387291941325732883982991650477457964052300139924291632907568515394600481636015507563415909347721212047894727621508539227481170614181406128030305501002155618919793821196625380660920928690127210307526841617092448940831883307568571132223504029861594054237171568706672569508352320417590905420101636104184631195817182208663709065734937956053512181122236752711012098952454276750374021395767340027247327559187705118125898578635054939975637010916204873044372365850316949386309911897186308638914504077428368623305294501252558726369805730517780173977156519842299361176136899020738209387927300347310477455956508841646266809486771281735700572249413826492182747328899319039727805307822908203764804679334263785635718191834000300047777019534265897877992193407215322482491907810448834112281584608771138311958126693178953368565373763687973803681620564929467355240690714080408056713787824895538438713414601598341211756232595809991160590376401313943810516614812210823840992225560790841376973976803889059490702188084855814560383843881628259175371187420932460564191349696160060057862737170985280073008639215891087668334258496244471870503953917714093831255206583753945178317432541529536032292303628241967777121977572206057944678287900707895254493805892971362215556867345750414009668520766452159320721516377092044979423986804748925437438870001813914549581037650372274068900242384927094440601100906502543628117556825299183525435267090970156618711301601982958774758984801134608499737553439348870826175985614040414933493505991409000868051009864496741074579662667525657355791841507200086106441324706951056223213698570600730696758200016641324668042883655409381870696585590751913048472569013412333993110125133370127798594201891289359138147056562748882272091597475353038232262634048222371192707981432114402400543928817758942767430922498195946692847333372305213441916609644391585124551133858628492384958483148559153434412960460785846453473624029410290534554359089093342958411826839243505280031323879224039254149428011876187309266170861155972193105348187531378568205953677085325467360450602555857545925571427528893257851169832156215269811645934707560029995785294144342052600664886872226471065650565546620986895969820779986792163463543547540392951415745644782149730135059270271942549741291215083866340243364944767275036811228491305158074437631287689459894744116656123358846829145724678619933987097038690489576086762172338650967268709976364302699484794520052393425950882698528126787922951000635542195485961276415868811041273175517344936256763171120221862982467328562452603548002561945092095548564390348566224278139036520208803030966990921042080913772861593969877065540195806531224355291263110506262938130270310772239530383731474475626373235253616497271797263554346341713706415164579323223206037016811292901694739459833326945460519892196642628284858054016256008082076726404238554447732513333884874496961755675123627761873356637227834243111135491531784862638465660618773488233554597328060270912934893950895520857082244321606561811812499457864525630898278274709636052274900753002463137129402340829508074295733122196167097528880608872022187193367099482411474400795545528433477597878754939027476292545841007778151751899766529266893667734892903119629422930352586443595934247658725261894405543314636007985332957161696241622893667700957139434488820590824942462182385058202633926245891640154773281632247728048897623636608834229700261264330941191174081651706236591361248759157523547871363256870578374880034034338689822603272555341958479409832830130919706527648058267140979514233137088663173639129792841182475993416099152470546186414606271756399527660582064265218556355825948087098753188815934538113255403005632989301552954274962552888605746016818428630868649471028589303250502973903904255036970624666942683114561381195440139746577214222680564654474321594044197463087793367149238756296507177798649016060859413740492959973191369693640616243293154058110109037601908014006519258122588407909567864562351496238745985172551210032760455903151077408507982260580409975886124249307205839476694951910463781839513125988833183152158935752103966207609418297471906960616593015829140213904437667667066932467266591699972713125769900614559896550321915650861455075734805613769689312150946313447025383509441951463207699755974997493357545447599022148239575366056872977554436017937577544853704109776887298969086268127138928942360256185599579625782344574401241643314779249493725236422440963907961617296990532322835963578123095309318212862603267174045991995573659010448309235085718623185558424881933595812019373122389912349831716345405061955821670383270728656110355507878237902409403815418293836220463443605697572569729753794232984204402202888296444079326086176268246600999806013683530436261565688213688026186667381480012599862216336973786401777435514943331313995547501093480246931555194801044127139852228721418005103012352551475218669040862835147861850927739202423515269817309275584524788070532977222000666535807146827152300568589899125134681721438791492676627504014426090459632101006179588337264894655432219424785150604415349969115818070257716421505885122638645081237350572107877119981450169399092068407901857031543557956861028182422171337209533300416443760398869629413725013973887820980837297328208990966155766799058025637440526085807232638360285927681735435570373989783844334840255863684894761172220698749573903612605119756128491084435334757974022747321640874820791823318496287043906552646882514213268400409320938083284024833499358064677222040350835002110214892230992718238140187005908419111629325826133400342442685830043021505357635844827586337187649969667968405394958217135091173078617607906900970218228382416859203042346872266044617590453582655249337749037870558999790188311216439254887084010352162959374085740641185684812308547806645445993972746449668644503787658007189344110363783245857475347746564667949028103298942838336345849231219630338590834049356415404603252932941075642993643354062787940735121135313343438301639785328543610955275542647275224571602939012745240485927425938185320247079205258075252694378574749926078477807705945778482377191775643129245222869903287270486629029291851363331216321702374451473960975312742613438428357702965629256985487956725412104401528298906443289571067525455732790996811630192154943570709354330595208578391647311981494468869461807195856090402379704122531085240196711261898411162988363463864336533958911371086365451286479981083917511766955401617162980907545949215061599431518147004918444185428310929401739616177848080501113030455302404650205831068935194426829002338079606428773937097685915227986814808792816445127809046934200373323981733164451785956527515023035768735453677989698643246032797521531328968236917454574288302201131477307665997520859273887423232258163848185142844010427981382150220287705711998688131304030795109991339592551922857243532135581755484556038040603360168138059636769011262368953673009906400109860688414611536123431082185695918888136989269842157507975731292630237471625157757122017554655583756277267702944431829729276092929868179707831880626126869653877077374396451447675127183368531435311421830042544802925236726796560397063882253145224967069820386432220590609478745154609333792365869044220373093555750940660833430992986289203474715254643736213005712760950081438692267204691001663340148571395318488491559532616814950643866309229975023338038993087803636252431765341580323662222981856156059715276150338066688674463394122561667195826096813186370636848731299638368043158312087458651766626415136481851290948157259965853684842484346122583574615001807320243545775547314689819252657244737698841219985847317175497293757692024962263024898714913012709676745708128262710033932400298141467890997008461493561774964100356586210968272926843349790126546195878513365917211453386314112891960138172839285739671227199884639243476041980502246903044493697568756718695583575801321359012452741647475288483209793129202837954222868252511217727262125254887550957897603660054429195729223589402069501873381395158114909639873438340781430456648756034971803860958273643755363323933369638998986157457787269051205399566863844416595736974694514539825471706409508953329900981897618357347701356651558347601259187155909778943181821579725606639184779050412002210620914866416895502361498188815506048963472333101568798460771598432818314431531540732999105405067053795547907978020359193645337404775338640934018438570598774266515349125774278275428159960827919387400538869550424177231729619319088754402607851599574165056967925190325811434906961311472009357006853772071863294381277888361361779520162158793362093271245022829195949397763743772739048868732268920625996448271219114776575393211239226707488035271574128918503939204778613743724940179920099355378309193371198710502242112963425122787388081318450406844237604652092791448962785743129207025899277745878942531960802773727932272522961399269491286722067649718636257359237815074270484527960341858286925361700544593877191350000693818090225114904137405577846831927022368373890961032888523062893078287619751914934991428315977118388717288789267459967023055936193058967672839715264839361753669385048448494327670388573783197970408343167449396043838805821177561408997033268452846187469039141242084376739537434551478348512802163155254702824693390104871269136968770546557848581136399289372936033028375124947232616523715823935477936642870523256481355819430122364710039735027390120749484811703924575196468085879325433335831004910982448533132113846272612501156718129466395410220893331854953969204715062477721109455450989006546620639115125486910477951451041400277900529657896455858421504740405439582034635547950585581874621991221900016778973142983792595394652496878432367112069780075716519230422962600527812586808512684138855563689125622859894852027472003100000785290988360328607344345035883621258113026739030777920241252615642471132855443629415720772793660296634933555156066211477301014197164816664200152811592013305051036875376587812854387135168147545102271412132886333942673503942724406027309722171940311218421323246128078129991297302267282788085604726523297196407230480913861127172256517973882381470902730790083840763819424380580260945486921960075298224328772830755077115783276284903070554818196475247055657885332578199180303025365679146973124252873521830319295411201322264504253258013494730278545519635484011708415919312493011979107942053181032345389837236620985640072764071575011504677672235248540484031111366807920886136631877795867487324725811631669467249804485391422227162008911485951956573185937842971265209549834153112396440148967348401695537303149342062195459488526710997569335289570773631597531316870572422680706330766676694271194014135775210541550859659031099138478875192418631516275068023495782692687240910482359376605156357123130936918031736783537820732669310814034503948131994347358809488690584877557273382721102425256683584298606486546674040262489422564386809814022418361786803348585288263798415278095721322129865580627759736248928505167080516929260022269802343118918149923381417687892743796116948364985045572154006122143567622616385995800366307690200511678755112521363075777519783479885533372450912942558977797017218057074697173017712716364517126433293322384830023863428161137297696334470412522922946215296107117905073951841216662623757514935165225666956437924018129017542592478636968577801226038385937732643377860298732965477023249496619689033807372290611372017745392296831357108766098813203739021995054207332080256827878050033038424097165177065173557928258293943901748545035230219449001139611416402070658039572974311735071133405636280080300556859322555118890505788568307579604807022571118003113036034856771522409446056356191734483483694452308809468240960566584375517444557360644048582813158737371871001157672378208498368642260196196621299716976280144359847181561160501520689502525190316935287814266075243118230456267248132024842729101503794674785930122494861447314517283436843982134121718095901145239007135228841489550734809764916147961786064585536686853690507373824374432290679177769690838866486603324030437242958166066368515041372647458170062903375244209800916968241819751245607244969606866411662806413964563124741041331866940776281967273958182189744830810714258308865459745151407902951299510463078516421545514919843262037633061876998726567409945494610171667619577657764270432325124872959157301092807459731211458497009642566705740025174602770378037245710617491897465520075205557342352930870486086284037101599531060588380942226058851414670034122455653699381149305977991673731883243230596153267849317660455794781178488033586108329546954964222816680873955869092007311453768825928910591647588009211153129400537107401551708599570240681068936322486471510924002396691172182850439409081438699463546799594681709323895455252860895799561523285509638241953197143241168028338848465803072747783375311677202029532932112880577142438179967372799493848729677154470256145106854234756655206193409007969150989322897606787486025394759328315648101402188674573420607034318597938469700498867294125533029783857710304682161855600780308837724460801417419748588349163879736163726010721818120534635014477913288865438346770218727190167333747037628639214164933299172879652875137069811163228465736350905164442705482025009358114387450829406921091305055394532706549486935040827140367884691999192499097091436899576804458479364407783761957254917411007630180240825001617937897874679894831616838361660005475237749668703855902973057871842269850227961394427829119066752853849195653120811968296902867596248666306136172064377088006503333924615684646621800878368913706228106401787510759107800111475497597535428711965501264473328332033512394583182462413883673350319916266349766047484730008671093086360333704263340317640591197271581060642038578442138662490747864550341770632470611707197282525296509485563731076978658964549186844960866609748124937488392799085051415479971848955076543942595068600183089439174261684547995811746411889884179892901564432299739212982716659545856490003487085667665996737680350594974309918673474110765610615526219925641377120559410015029104978343524857813542203360877202229849654774536979425711843046969716233208957927760149461293577042161106867885471970145806149185051889661809750410212578041764776582247482028444459377411648866812419102134752917796276139021395338283690038110215475698279316333737486173555647612240816553854285164197197335370828902682698508416474196876448204975481342045262319213289060322799204117484938564300512532583183904856982478771951139998266987363928864902617039879997167005301019628106599843965462871460097620162410130132933291959228423768900831595325274184899308384931187524621242592883174212078820758029131570403889461815362176788344646611469108519225226887011267840917083082296445341127550023388831042105986468639818642214047500169613565109326563486660100057005913778385072488142882346262824981546673947931403586205629516473520313188699166138429380572816078968599092105765162270031472834229084304882152260525836961887951698954734031118121911799385468040275917888253368003150106226866068125633266714065007340320711222082190273143539879230877318286702857403926420016722307235292729678766254748959512203022089384505174011911306603533359892375179016930832499705520264459127941134930976005831302776956610282370728175719844065765168258196511044132592836447582667581493754005460557744893814394310808811345880456178150367413272191189929616382845539027751963615869331970601308296876061379086107267579454635023431046321028419386477509732465502939777034092715285093557561775552534380346936693586274703977679119949459480765868582773429652573200687507801012087612921912448933312969206901920306044104199606309435265866017971932118033805591280832598540708904160214219127846205083858135778619748544312724503521991225236459458512819992266403245786124727902445832835068081038876724627995663924493883586213521809875517877258195448042669447083845009844052240763105751599440126766783374411302754387002529073313741450178997321497611992584415898514166330494185527119231996679417162999936793398319278497835177197502722817484495894731293696076473582791565582332600817361370464991075586222838373477797100654611362993535450181532328192406953734652906298017324348485633410378169855400870014224954614148619355219258905049637868469494948293338317570060149998020275096318352804815158084812489392462819591050120169174295881076088312350986368668604305639639305270537792904536465546610401988704774073285233685209110827459537418735910895600396381877523266745423335239239527321095857625239235954893474524483602721782854389327456492638932982264583940693289239633047044172626038289763786197789022869300665811902622459330837654734219994388288450105575364141493361594803382087254991512227403409328368281661642250598416389223266134911117028787506384865383629872851973500082535181506342701881924664808032054100985568076312271808847415681904587374263339249636129695852781679948165140009969917283981315084967287058851788700207648033251550927112378147188397415803874053134385282560280531942248776927718691909410685909031524921816179521067220108365535261126458854561885488298268740207359637803581521305456127815150470834835711013000689916662053104534521384431189787492791264082730125519633980024647760614989942407797876724546469309354283946392221504011495532627202678199821649176946674381996651081146003622013005926893364341750151766751321642750197034886505231206935739836534125731796450444080141275203048300847230068282338708925592581466426080154254641033030672817473866874381981653850502102850441804024475003977300153901095577512365287935476535716116860516511754534482034067959965030850216287436133913698810089924052648065345647017837710749617508931904749464922745283946433673987962515067373321016018774128262590088003052460110254546696677003787032442093673283830174389999813940333128924146865935409316243948343816841470734446143455474599955366623895573942438904443186763226012268689433105837314409618480813281006417887598513764207512466569333869346703808168340119988492265675394139462715947087160344178240547073490072478288485369937103881361218969309215801926135688856458560961955971826000980912568607239279941058905799881608550990604027736922663525622220398910819486307024077439808457929021054861477841196337087867576593863760229352044214472578433129860102705576288167034842593995402857988731861151393681387332344350814925606972278717249596407845109145110837660876713058002694651787858278253608193297595417838972541227410752334551431866728539518088285789948474799250699903373463741959066581124890998899383941394854555093890270388343681672890865383739715491776252820192452858227636102840078225011287679541366366782226083822376634610001118003860822192533672508644314343374449364192864597121641881737628362320718908452810124119249480705402119973888791359182130595203864221366801911697437573223503453098195453779440315637465599307443657128903381939422008824662910619341590847871203976348393832427465946996300037366837568974184238569790881244337045099144265362338757117917575101181148878768708533793293845782788583024433879292726490378313653363386257934385551113552576342598695073692464391249701997992909944562667234862155868869825340229541566625504925532553591089959982731966622953826959313600543095550369405708734302973359807610435252177380412054356465768462301604498834203341336487962555686197338621599538067151161457082792819636226065102271081985324711779925016775114123174954708437762545029398635806561976005300014694426115262004709759657330942735628387877023198229550287491049680385676909663106440376693269253062082131832531648227530999356875891185174574335225679236389297353880557578285148485636420527228937748764372069089630531430178186471272385652970589825753733232564109287322078161828913765360160498234842186138553401672063320052521576846129250352703497569826815489662203504915054803926667975547050870853661209120410807727436803405001790243840663969294485441952416475963990299823382784005290819086245786487832696745134095414012558314623354278920876783499449375675898269765083548816829575088356444748707062997367685769764695140471274301995842639128631166969807752366969646017588711085938182653168734452721265851640708541930571197495612711484127749184321990673649113864253735776531417108041519438107616066636379135445918600041580790525244370045002091452545138713301147889786506886722240463816530511415742212104906034163232384135560907829961927815781778614764177387578946620357267669615559111690371525189781584689578348526348466572970492428393406602454436466868544430698694865060257660449475423188643068852993255084388375839241821339046028009736026233210099619830019886440769369127468251031493112701673838613315269901137748132671748741955781299542649183878345211694435693790321833431315159690216077327555513674191784671987654903079135719432212984087703961934222691850877136677750569163556628245706422877557991677802273412337529338803590567259222873069340962065619215461250913808342272423991535822773207976358089315450842261505644828385890212796062219498874417632050719528917789581028538647760604484827741090301222562458229900386695246682971246817604598570712661920549816032853886805526388391049770107762941484929642747745550334000751310575360262569802742759491545949036485421038259899652157313319813315161681458326251006833803711959924838311741117546228473028552075438712222028586390450666218409354369924662365655826626591527432123089478812416479872823704726234341292561776679857078378314600342054288154055478042998058516104228178350440537772068997312930120932549875073438828709369260792247382180091125706593275690199479408044629479525805332002517071176260386169605193948028993341771789397691067963882926562850902266039080753888895666010333071772384963284451362352370805124707883470821982946780910293404419926244599215872362314624483854522515996216844479096388915003506660817391406685756224626313603831913122345138915822368700890692992869279390732798484549717251322627713213140932361990921291023521756001956644629767245550204585344493815747921418059045695434646734702677323363762490730362064971195006930588295527289593125734837865618789006255816235232472213359942333452309215830703857554385185597076104121801810534206293548497291919725951390264752405818620937990586466176804022472386940740391554140614449222576905830108033746580915203403901219213971736546527934067290354573390013642903427956809608609994816426644851889611319547744973676801632756082841810665721466875367958993103622730062170080933456472647538440674845219808883202041129462478226619319651272231764155551450553495934678200950424137028108126789443480303378016059172780120842251454840152941687015613873253912279026668768899677272397893453007826306462327586122150043581495901706242938617773971125605168642554064412082827740185806092557752107532901339014299225188713334227934582155826658448466439781398000735007436969265262421881097576200281407819001971119328611039029366939092138807269862021713243725819599509729355885941852280597319236103598594763319889184503671006785832094757433997320257870255978360823903308282670674519288632573828485102895216783891043251321290160960380593177595500268819720060498859643552472313768489619428160258547643289673262232480973345754561076253248621852469970964492300297987245240971599669090356627453184853380728669531086225334997097180121286313146234309500270313564193578894490368364529400500500218260863376623874976787855667926971466102413711143863096098665644530786422205850562503138514619136258306578069678235726240116561972663692163459809049754579163355571224246856179586741003570521310082325601330100376117428591058321910192916412053507792329631703224773643097419781641600658191142992161198649648583700063508324720120374090338141694742896287129840205380552551502363718610142082814428600832646987211068860640483220454208150173033353535609885011487868503440560204542142822076284546833223126305188631530636798714944250497101385838589233147241397766778439339501588901533132044263661969595132398311355824598499142321728432153587844997761670549423837390940889271785983722708361506332955789678301712335091499933513705920530521717534653405478498350902504039522132674143973154268670582008508571977972681959313581298719255921261743093468458995108153842231581021557922731660128939096836712607916203484012897998340243979671895571251624834973334870686585281117161373501728542122955054398568035687711878019770468349177160744728279084723514385086960556754669769961713939605031239184411151758002311193613528810570561630892073617660595792405628199117273468806606462993026724031543178933535596793759097007790166999959386899335843627541078967943117992798291811613951922031481561168785399680011759719483054824984526621080661056038226303613684731167112300559739361578752367368321934736600438721575116116087147442632579284791701107701297819141752692164100802678542124167438070604336873825126492915713260359902117546801974074799872594128279780027977437562426972669453150539754738042622042620556608398529396784715859091813885921275537509959331029928021584283779828203087002329318676412564252961356968642110902809771058890451030100523117113694192785677437105062106379143673944513903941041926213766876378504515963092868703869213548011284044027833848935465091718282019019284434691781537536607821189988470924876210288892947299682713304112218285360241178216751927388145528902169297626378384967376874746356160328848745457124412682462279804099922485995596914938886125200246692020554463260232971228114335095404356890124967190963176766864871101852404133848032543448881782979031244238404980780200224193586834921911686628973163906611118019415155146443932236055298278109824326827563724596078268427770983466424832709750129928980719797274484233410583169308344734943297355532550300817607704388109795647467067369057003932924431045600998527832768127782788326192723768811177266451040197412858304061243588923213896064707732767016691514848684402778981132260316282608955757148083511190234857007837377592921992564601265141679411700534582519689787299616640552835595063327695218131621915800216368133629116990179259065833570239582730327006295059152368571750347264802437334179380922410109877238123161961025115688129504886260903696243385666714900915408438954773094717870613415227256993314994207435991925990658656173483023401106201325992359346432908519390868980939446588376648974624534460654472612087703290045207007838134621290669403033853625177095150199158033856586482608714889233985350410892732918096301587575699040642765524371595123459633184836477771360322830760543789515770664160577133305984449048705335308523272558353063258292068922292574847319672439718243122588735899643702060901801562573516611484703082281759036052480321016594983356484801686892449775330597911827002993847733737023995559715119191082469793010449712886226538655235075366134157973862393789497433894669902422663282543819471775697358522842376371119510559419476658385329070513787752289400492716099259150783632769566069407355181873264118111005515303098729353344004787726999294234703404735101080097486896802286134396285783505454898382946916832710744998696650076520579091522826429805082591759942202624309078194234203746502690390584962496339640620007827194278744534287438320880728796821582346166450965837933655531345326656965423085412908554071016755594979778874872145536967924460286809209154861488308930225948447931030723990345321898130919574096539987240407703875531420622626649726165144939722205116823052491871872309960789615245114363422082994037048367191207773277283803902762515779405434682465221476079839075453255729100415004534094372170935457431340320561701337094476743858315972101209096549671121977839694853082813059089978547106327359259355890550230641435214367564222683575055761972862492642088164759549914341154128871521341843208635937406670915302964082909193031082462198065098388610712596071335530751648013091103673650118059530341553563136245535029484823834752349791658306442763035188790264186510332046900439355152220230563107845407373262820538793274466273065626543057521076583388678326452602077865893417896107017136350905811887076260634058041569669030877251720800302412549822369091234741196789693346060584288987066244172265767840070897695689432476770674679757075594681788894015975038606372406085475696280053733054573950475744355489844916781185136758410867558156240874859549024674763596003370948828088552135641286109362699675040110553269707879766354970407144379997735029630842414119567094041634327475974073742369435436444653288351673572375654767886647198460827842577125969071781910087524327723463787889174055520992786982205328598651148885352178608760570954460046305648077227586336199586187168395329169326684224009253255568470323445151788461836491275889912989439508714863693753174833594219144831806310149854833866135157135293584629130005710283813395326441334842132226581926690541235764709662433034849174284709394825323268666247720499374441508173582418674278740323027022129091859371292808923749380414066950578816925207828191067839651805954786797688033134690202490715800862431734690250767957174825786016180775125851237811675718513996681424319234412130884996601517522305023268260370466782003256286967897838942642033332731010369110056033514073514704628650816060077288229037643249386664520333312824648926295963211198777579960483084591979398087435149287278760516711945861043224951805485250020418795280099908410930152199603252421434787714189914365498206995284831107915393068120979549379671754837539578385564817627530314032928903235850721588437983140601895211854969227802033787076829026498809015061312330432407515342002530735671123615152715333110658401674150336775179735727551026188955660208164242649087416451284239103768917025473879702488367947758854158955614291426675145395290503514671492156150807898471307398349032943857919522600754446481248097176002858707590047035068988016800050103042669767043050460433273905736072046862723945447301415444652951460866971679350928465278059638224098998246007868724972855018870030852789337744311469751956683273881766898067246388933768438873311658446218606534098631833564286989440361148736829418498755821002212140331735613136460808633577762402274832168770795905940844063443193279233315385147226410597052640036933020498168254970228355359684730477383464911433164868444694922963963804004332220847158325662107200249583182660229798074110368110843986090891943583860911238687184557623544286032500404268815859226842329553393814652092705583050640169210015197991006742446575088395495423777657377742073479826594278994215976777668590045284409188632797226613265801766998562518624459856388336861707686905442183579653252087983273997570820565563367826536003146945258357216296535448217491233248034443286195692776566594736046565076447088849907683753908561251185978564188972007116279685688168892772638483751075112093702898965598907481307250490401411180356788792171364746726379505819184933869581045397413641373056152759868888083493914134613487480962784833192245908876992847743094446148152666114898262573670655282828087221376731128491963825951254639079218617448788143189661986475211568238944602498227813603821440346147583697261148115099027807079267443276058166317958629138732352718513494249323756109561698686807122028963837920579437301417492704411524426618248620452930522071971396278747862281253640213463329116126062531947009353317294419796197905035531978282304859244855465290546005629174890325097630987645680887712696780178788279232392166027661155112859818569744464085955743303333099997022059607117626202274539167479913098806720436700986730090828058496734903486595183619100638864029447627945849200297805851819362202453095711734629022308214452719491621852849941033563347290859799527468037604348945962461112178856124090714191239619767519970364032438584724163046000665363963460710595288196023225953701264993226200868831308061295881361304115829678247760739542635579328199995220874114710074793635594945786821621522337747595857072427641433638611284141162730652393459241088680340113040299012135639834107211463494505447160352047677689882568489170416625128392949394475846224612477499768671675201698095390535949960237461813963823622165684629658788912581563337646743506106882907621261509998427400703213717588023596237614712037380017253999026329020496923038452730752739926958555063501865074206234595029697434854621168903459015650895244256372167424016924748028424854333914691163790250054429524477850828826082821266688493451850086454816304726757505544903130595058551635862084797804004697911031962519646467842899829872167087935231143225799053075685639515943054065076652493958100554664653932788048075035354951213272349450095507368948511176826941994665318612285072725053800345372471455527833980318647861113541610838590990777064733865910633565630294637565941537084413272209035799491480738356236573258579323523834287849161636847348702616304329254011254443274851889778930344830767761504568900424529629197376836855731816720414103708411240079471229250817378874991137328924016454275189552316914428273417828594621503171124212393120547198621871908901410584950746811983361117606543498824885048046258029883201563433373438988535152108689429267323433982413036600400533461808081334852249305733593610285858319605220415700941012590604146265970182027930893459509437191205538811337769162995205481235235466479492061718330698986926844318677665700674758315935373654979881726656459991920285835235530939131706875812074839764290723701381216185648799322483850873791476398436298110867593323835887769031332747824288609037759695982450469398771173998314826864179781421996592475832942707134027312383833535853581158945026322549479784821260024982072673984288146999053437790472721758869260999146155850901241467976358690687109946184140073355660853009488556018535159842382046445979549609388120399849537992016966446550400415589495192610058770153033005183934316505266809878044621697951802622916230615260170239912555263141744614627667527066705788692449132988464108516820399610088031148526061264219151907727853445825313327238022375474976649540885085229691591122277389521833218415590481343657213043497599584958801651324777263173433736075613307689151616676497087548807482648617855490731818808636475417953852799303260675946389883780951455046648962921769237336106554809393360443557357676976972416285731791383706136268044981452956926555482102564821441457938873489127770225557141294166891117829196984771582309767934354275313903731327755130595934631932667458283216246933886574748440945859419242342506279286298939561371850055670985569225311170592064608386262827468492340995320440589846921889891259828185440365072075705848409812773376616552089398940839331116724704455662132658431424130712308136149008361288593919785442836077164495306512374316972942081684835184724579022818399948528949816206143410407876826466228775008905577369656672435548418813382847247754915271471986328372088145729604762819276974039085351587930947182627353048355538529386605491261032750268549217460504057489183662280646530606654098013989204478758517718401680722784953773525026591935254174455225214691693884350424119734155234171027287415846097829916884486091834724009077710028294478658432337745913423230776759488528896594162861428867048283570217015321906344412568724107585084620662074964985076014818457768697594366322236370457015542439125911750909399675480172481146466139503342412753937518244850388737941261821233165038981699260132240082442898825394583875977243795371348435836171240946333520023881253517084436063963846126537878607266498336389530707417158688368508660790065847365328349089113841763781835401989456587135648891557076974555006193004114044433313407832072610725468050583845545536963221803112366145597001514597261882982433328876614552629453824316278881434573562025245894589061262475136936102935140936704828559382552297027595508329181184376123391235371285074438827312425268137706053447036371629883339802712919880805172214773867253215587852450176419347280711391692129203839286328861500986200777708048996131943312954308804814109036504986934189177103308322474921985675025722267145884666154886916144394853691171707851225582885672040990401228168095299779307128718026112747984734469341738088629242795552151585373355817301361585017437944304296022218688173804431919383044213822373745688873173872129844309380597308574016767840628534539327816743461461670917967291556538120384585791310175305766015741251376586914088121852271224238915003201746850575248550603055753293824836796097322629956929574143365909133713950174141886704780413542389100349460887468507367832112464689962585374598185385021619494993068518256117440945189036766658942651754573597472797091928039001213257519473021987931371181539141260697159721160435126439928688124571387095124781163963327115049622891904263024115832347256952650273347068255974032260946376062525833213376908862694019663879695352026168363055323307898734558238547784212749297558961844747786071604048753856000007677157915588008622047026621866005592066396115209056406057911955877136935705534857987661801289547437281222067932545604033065902255000514140113523222487525959666361817513373419187247237009308971642250695644943924736850799250305111240252065545950168134826512776682146539110887953056007299554370661885354026139741791073417083138987204578614960969307404311481130251801859489202677923213243195223092959769975594230720018618729316966208260768900560331424538348413386058068357449883674621201816770541007189075128018297134695939240580260662568132770189339589833685937155569883831278675429525703151490202790938083394095482131633671370689505327099175645133129310858964824690976576822229086415392945561298351291097158710884737819924155913184302574964332690715098068140245228568816609190925264292827612866586345932882929876265658355952817758801176808049590554274290413760103630066266782819554777771389967818789539894928187943479834101480255338223758421413155876974188339582459597316390933492875057709960197859385822581184780758570636574214268202469653225566276278788215636050041454596943213955288174650464043079808147713522739243993977082900673282550054490140148303348204163518408658236727519102903694982566091465286407889897064641153422335334373672132243318313981020955665430519423340682934132278739495537840673958144136631090494244451257949029683714145962776215208793052046599297408449646127336215099575404532392206315163363460456420840646855416133123960617262525685693355754008094436247053533347633802799163144055200536610222390901531317522712904413580736911162900045931228460854102489023257197418695363383480806990919368076556123899316567412053690924127053116045821971827418760978263647266663750407786608401388354401028910497794181677132959342788823679228657796038202786231655027074217472286458415541796658431748731482003597838072625597982300049494288386669256692003748819029379068819503833642888353099420966285747951129990061240107004573490522737180322243801533294935410190955410429729519291651173731150446842569800295881509860706267303819483835555439328920674465843987032769692337725659425709065869623060000352316377530199145161883726165589035976867006016850271270551413063963453895998432343085116923437074132299038457578593944033517025578065881299855587236073214016842803933578968580789584962209045752185944905968761634656688287828547617475993830755693270177164682212857762777280383082594137225856062899116464595983495315684525201421436130265524985075982390518832541542616462908914981186859910829638685239373755114637026007878263392750030648567613018119922088237945358667995265337041776479915496976245135888998037822778361057088929289696563568071076923997782567792510032088271456355859136805958446012420405632134950675086658107899745882770484803779337395292453846517458378445227110353162641148470397632157213345708935109491511572199040464388398409653277098670689970458809014450935255708357561418292112911750072089175390398374519906729661692213131718920383201756400559592879348387063796375986258479368070929954074114335667334198023243284253435844889031501577995219282003335947776439439840941799674730102199028427910310504373622005649264244626509452362139271694595967573866090946053853377701769828155190373779862058192585177478755945386047531284362266949190132726122702570911353621226089148584031673664448728346767517535742025306029297271561535570450301763341518586663581985640094290282331397831718895031394520218659919227361004004898981944159865629405384065195685773016956087217966406110686197082114122203340342920793238557665294063343806929064466120811580368831125983481173921647549399791637712119140488673317912675844137256631866513595651038281047006155753832280152319139636483453085302217118677813153787327415509147499118622802430304989952732449230463194216006639985437913150700942734327076584918345867635264532630685271653673481139408498557034803767653371663152266576720375940568056162644070712705369007987531635643908223624873472322861005528004934457637524767270891890634325620947153293452509131582287610189484095433991716805412244873942347714161049768428292296862384409974408921905553855687555842162777503908021363359416241263000289960677956510242188818801308046523069820265009179448055085658997895098162540165471816128306024646060665765544351136460134117903714639430099578876333344862474215881384629454991449746389551848833322251484599553640781783417400105539560109632341317928265918132175884414850313379013280975857988590871739786779923041274785082777459566425591490292397242895539944274712009083359346281453273317457917768176234952343246297017796824960945622590693335285014702874481625888839418794991442995972139343972269591784503397088505776824492980891795954468083700014603956179879754488540019269781703503964373424497681363329042851062915661768236416091088306791006168265653858872516239235721469366319577303461892171764031758722843652669653867594967320989831203328321644698725663700672812332289746852278977587811436636673597425224734340623326532355773437184574482687316910680367782225555320770851523282921476251518912490539768089575546098162457260677903774056931171814630251190775568750639769274533173306772671551231052525142398003831494147973699161761843138944737479198270206329519655489301602881758549329771317134179748362861864015666360969190818676013331853590069145503611002366904697027127416499924295684123111549511655357804525736263995246384406460898285731856651400658802013574114488688079541964657005887215375741032283867767475184391284674491558259301106165243645009850224861515120328729920118345938763904922785966615756461493198543497615952700775362299276335764978000011586788020490687255359980901145454357183657486647349400937963363987752042574533037773959325730601977859379128459257464156057469043146206919108131093088250102861432717746027162513510582624083685084611203803748013357119785224510864242887316938006745328868619804175007690078100601652048806730413081886705875860496588569503705238378275643464178524317694866478964732435226752582500886944409355633235859745978159531520521048112126283460344996056438314688091478580615962966568214599649593100754771760870478775255148669321721044708180122293987461863019202309720741676606170000540430011028788652395248926456047979971157202204398013131886913630453178912494120328667824099052446978617947423285201512551066352947788147954328853165936964239370462994557171126520785206332771373404789199440675405266848704304205871733289320073129929927217898696825003960311815852977887187594625340820683318945595246204172648687369898224028217599735777951471681248160812915101501985357215152716811993925025857556986796388384676162765629520035816902252674627080863132644329454581026061154826528529420461441332526879169521329748339728843445070738361684252155878860029297981526766174677921795091587409954390478058511423072546119541029839815753335554255922459064894446485919033287741625040375183000827602897143210172876689972618407544240313810003536649269597933477769579727218572505572549019962872435405170519856273567859290555217763958204974302360274518550663969480467872742158968635245393072818457781037565541589368821927244715391272721740049269666914204361403461849274764987109845310217400557890736060784899056840194532551271929057509028548682138926196270650412987092255047420187770101699625551651611692586239169924644602089993733749187090670073909743905673701866767883135759039747645616846172533276197065418376139900730076873163531053265082157827301112166860472494582412953536022365632262366405571060538160854274512804854578459013988068471592932876693991941891319558347499451301536800696832003444515881671264663732831855529840173530536466268882915105526214566085347969843175546085147662830745256470101020057886427553706157496919617749482632532433633454934130277685594588605890423404224863930000547357923200798554921818130118564696477167411235155555512819810793798074332129026964596993553364392012806858846814255419774776733963427749447462674818761252765198309457627697766764472089589669242246923622504479209757767663023417606379507236129312416189076714446711791525343928631060481997828633341275984441474809439322268904808565186776922852169722373660405419638620224788727770251942133837400100249029835377233107469553495582869570342366660656155079990933333916268102778298073186094876777446446488771611544776474688009268168681530505330631493841302137292599675821727318612193132943159596026664331202774907237856402802525559892828924440821266666892481083925811291548938873744342786186410163497075640176207566090409551831513660463217249422219609506244637668279953728512594325326811936633805480823568430221763411301681065558522517330665457922850097766297626420998522876320358965164094612036026884975881028409469733631568097697510158266910460746739300060525531657999623800074753709628772434449632564002058788507661388368764720083252454958453523173990158467582402068192323680006254559676310135711115298414159284226592437725843279162609513523841723915876352593598449035445137791286331182494613590964500498175246495007341582912683069801039135390385685921914053694091775466386768534374854423865463892682264398771790662950351889002431614961509921036813311619693609395833005575579553877018916159347764522372718265318362015435864004761131508616936843424738146673090227712037602551142954969634971933478570681703248572383133764260071837819884378260278328508027865785279198611897143110873973861675580396879921294647035539840731901667964478509458186085319305132346760735142157883825169491490245424432178691283826754683865958663167821963203721517803091792604564131875660820928838520486338433669456964030062880612368159875170256175161557427184806420692187698553338474835544809854807430718790690384923769925216008297085484395588677588330977941544543275327294111383904535399238055589457604153814222536939385365489463298390323467997473884688406087360950836028859341317582147424440499762209852674637052823734947134773338314320407939361669966174392976474861756129140338655214219584747732841694242891286263296721549404137156745819522080397420945189973499657223321413376419340488136085845952782367061543949210556066353268051740455848724371116818627290562763175368638548645571283170477074592825810153048584639970168101199379482701772724876327978816630086203145236215559129260358608447512258862965877293135270464268104549012134075957011647261824709077741318333361244486945379447227435146094172134344266052691587303849675098481422489917336786013414306913006210493379168697465929717144842643347353470933848928003143168470050092264636843506775541994236433733010218751356578781351033497156848533066349029858708703692829975612521528367095806939985609123781242044754623351495308282081602430283922931830698941370664386436988507760037030775484291795230589279067739744101462716273493535139288621816620121236092390723260582296025382431020050422385759658312886975267744698767536078083562180228209768891617156749758657173057994295370416404479826117370922040209779039474368241090169347188486039647991191003900694726070929253755590172715859769878327147583633073806222805448948831685986698601457924383120116692920569683886541098173825554295187066614703137491903249343284405284624821232087620605043402987061672442769786809585822275959908192866832656196489981282308943590649235894944328263726333485827133814819842618702753867035351392956446512031158317864911873740246738476067730036111143892003018082152174023768322900068639964801824133971587088433499245647568190974730199169740058003658075598879687357967219275810425411527036423204561356495659822890244196518596094288173264751098009116027614325498437769233123627699976639137635847758153130472180628398295493832700320075449343874450931326353602516402751095437996953327287726743715106851964515342189187141861563258816864148977955486785919566798825665801538138671703421319590802333609328066452106276519224128308355372804895244723221126726905563344876107348956275012542343685664037142907677639365290391124908764030807046499370862876477077136626004005831811442979240051072595828544589111870448277695828729208362187066953314537459925475878200612640221230695649491000515172983366900244417799782113803639606113957331639398738478210878471920056733669796103810483357426670047293068473981693766552641272353051862898413833550880884738255242539854687565812089780271115342130668689454327834593666531729642312564147607631768712911173758810062256832216178253900743711816939686855924895489392632444864167793598242481638806314567860271424882933393006820017470544358499562524502017940679096129649809600713465300809817019848794508797731896888025930936911805566248805540750921215731652086064544231965683136121967782080147137324776435567517119509849169730489517826589005081532795742356070036444447275136341119835657723290564928548415560144917532474583175683585255600418621863852375423653071724922037337745797387682752114036380126833277899291001683001471716818199959418206696072325160615211989484779496891920535321834435050196005850841300456154144658982907465705012146761683259077258189349297133392163109079977695823826572235496462520302884599804006081883282252313945141450261584742388688203578589697685186854897935096098594782861494215402407753524268066944948998532846120769172820153919668530278780098692056632505609131423307541511291994889009350435543901522859456439519857455721750568251716616178179751667037912345483548058376817074999928142485097657634000480153242576759445544472411680702994465026670220956170873617084496851804957738217331588721290876228134081693239730548050252984393679215177049589563023063395089094508133761767347935535122632441316739494850335633341591121892743097795786166214075555075523125427377940200320648278373153201951105140664916975747511141655356589664024890072530372485688345822352525477190068615920223488131521703754659057828790418403705061991734556372634314137759296126127442104821089434812174019073028519043413387998855835447456517042763003109138981098155449921593721608825959500443597447272796401122693730095996951236627191629559169658585228025876474840282682355649032186055919831569077104167221743855251462108447367660302548967384116400967457724669500501490634293608305058452002085680309457997500840734948735813556608886701697076390249233855180336895440908016082483347070463720441651839658737249689521883984752534270383686971665581173951388051097700593244428365642648366371916218797848293850005078387045840172055737226763805808449727123806756088492870563762681368249623291299590297454333006546970891269250658019240561358206830695842282357961520865355257205003167384633980728896691621186666546349780309344524464068304869185470462949756371446342800763864951484199790779425356253902575722496059012106986192219705416597036298649094722282118401040779368603279467056468389521970111887730445871819587484635274702079342208974448526704148231592945142458934254784285784185886489043459108032972343226113710323156321002374329666125100528202430105723533983160386016452873914251723424353304469529776532818612930204570177354249100991402484771078499073356446323504570986065695885895351744651899531195304090933099407511018414021782157569089617273141858373082527204204481462388247517812946702521305729256902612242180389972562554427642357517380620750646532043718009529551461897969188511860992451527084436380058708578449352483762645093621030667399128566117420691627961026778574617922284156332529093021144806719565029843173530927352572045268220312421080025986952929848510201358875933707332755862153140777795197185069172715791691375128158517504846959763442772566474284790845094834646780320985650737355945568447495593575355205628822592987107480052796562078786627529646917427389149904026136017468755188207273507302692326324341279180762373037443570370092284157563076167757304381415637751834606717650641721265613870985997819885738184437552459296902480928592337876418241230302076543195988209273283112097667168255051852335325953602767431107851092025498196996111001632208071169786993872479483076259410266032396631263008077529535069808645818819777912233431619926237018309986749472724880412940214711193264137779202134671598911809625115052248105212793346400119055235101048151784229705920823449654646915823173138777222613545961357367479110191520717745746168138583353218449678940531282621987827645498216325945129712744076004824752865223948865217959703369067604831056006071958664614783053295309940421241459617120617942594478362828852528554569505356857659782575311688234191494023429226552447828131198281385322483507189550662618420004576705372535997139910047099614486088874859462715076383393626462698424636146665250234138714115775338448462783713344962753858030405933008707743590743417867414480294822830420145782731455410062165808369214986717799942049774187578568456043865068664010454055564155571960550260638420686415430780069601354871445913102990669815977020245145996017026160009190321042822242535301478678963966156906835526974293207161984594533032507867308922412687701131683979073544144383655630835043166284189464371327703023679458111828322040860999193504621655348884261006496309337453364035451456769672671222215664597512731884885905674894253126983164055364666815691122691379875801618009432913111098991778285955496068511797034601519936137087982694903275969741578968513657639076952584565358164412777477115639043864314158171632415500676278131485765930811540591617722899842342012927001921887631730367957773214465178082909135206641715596838264233914728293830991875462518895821909659678021993414477723928257018292759969447516972562828078868820511405327017092917076706216619623760871765566552459530869651839390820319477957744509730458297854814288123001407842959609041859762249416919738301214251209259959010921867690525941737465991459097029813861183392765315468559936530188791395632038473178776736248844984692456025084457602688434309949219665247407279021442359109571945727342841973287854173358972567032934591774287370130011999959704613931498453328574032916709464313967669568038468259896801829209625443969903212697481872138746361554996688322623796957124043665688333964921396996332730453337814343009237733537825048422502863570878775304452557910462709042169558213236796421246508263457956417472803693287839769739238589250713612942253803190370293110266761079776021198708193063823753615593213612110006562042759460000842356485894949489076894453493634730393748770825116789327406785221187440835338327639504768080405338234417574326233378391579508461694636945951871455912630119908701573255084042242939390299116775555465529588254406044194222150668006277484362916714146191668994838608766510697718001507841960649264808571140054867745580252504627046306305777387510009647599269262785447608313505299704665423607648900467478837028608584625438214723704296673321403326985240342812078332940715383848927361191305260527989743939393232383317720095355479348961098605507896173459995691553401259128240102587357397292601934177436676528824194045047806440137099761397166576183107439683812384936564145280236694431390096732737306563286824240639772319355865377024690904065852031077786123708656004909509212951894809976582267523191808743087733060335035779858755648562482375609927386788313159795223283990606631779817902654534253288946073715466471371508126585493658676794238735448239835750131529365714444917193754341219729337180031188066255195420526793698421985812674797300773291457431442705907315358728362924983313656942174067069039273380307284599896918465378051526441052077764099698378678475291292528405421569670252238957721755505618207172218221333517010966686475742746892134199491354604541304544702962350925199241419624547536007760183166571658391678488912505841125768973676556155594970780916252783544299454483780285673459364164108726189147924878084918978478987379885274683450939898317020568313777285100256685364138523695212645729541402231560841852213946783944622723813726816556137553010182581523354976386712332771835311900302727094825893506197424198255639414583941688746729920878628448270558130001906189294090537195132570008701619818888318727606480246468367818953553265969267080899366848809622831834187973537234691357469854605417313530193855553809181442444163057329566970987806658037761176496494422815077285739345478523763362115496876694890678884301200828622475240812751333854336039393762089110074880671958528673685002024351555037473051501781162605300102365150253719189784339843352302523109343113029214000816846786007194375195024702974291141170418271053834525183900389771391441331020209159760557022402182479985669984860644425804086806802829661645968177345879497781746216358988804080212555881420379336971175301067198632656103193147994276830051472821726987145325271184705217304690696655883230101677849558982801042968399354024950446593393354474551953428941382723329153120661103371761923917601742366734132558111354441237930568910862215818041378686561261452998520077307395103738518055088503298232806894112604423339629337151545666976123053538498195525639416179809829586001606431152414867424780491441642735205607551515981303434894509588424732058137680725379608504833737075032769453999397474549887751976765448576593956184671802690346408950179176039417231776558149644409809930104973960814949500737260600560769021781137341661283972906360655316966879965457203203253828702063615824055361124448181930061283181787514875502223833925799931145621534466988986136611137159929916984432281438787769567965615397953551796452591580844414943907180833691516603005358409511283637350188934837117088263244128180638143294509060145067504662650943712886714581649901648206470473474584935492367368429067610444804191572188917387984399992782932843787999389861314203593829057168308415926846422539301644558800493390135558850879388313741362389831136939021694235462724535588352103302566146225236884211604292530544613578834593284669975790363880945556671915908445796339525577808112151543948764994275613644492091290193622062558911309853327172667176331224432420884125330653769337931288364779306489650919978195928355116180658016644869171746740182529202779853324566121138284040687426183011783653363147151436933204757251223372131382048466680718463382160850321781483031507458827315969237301868183745794259005246039279614767437974295644935439719567590017484312705993404576416315104843893060061810524573138955981368899133295094452998797165037814633004754142158758052539513762632279678398959076231518760078341884321700086137271031952061383517017235884114174314829805569916272030829843910307195478498171050368014864947150765826721983764861178125377408604135732815312165385624937332256798320392212486000992656589537781714689817104132437948765159570706557139526987107268089363117569621510548137549554670755639700520645000062392801222945337810837245189778523703764755713508836151107895266022265759014259681947321613620065959702061324128590686608924133720434780496768012481603095822816134632538866682110051976231143694511481924384054152070300713720840438711539769095257957637145472059564260739860683080559425677856851204429835096215251427479703749325772033459404706153514246127979664449459504787806762412302257138817694591116948056057163612162415391314302069537795800104401381465677455157214321015708402094417541534004235399546761405591334464525092570546285364085084504384701141732829715546651216663902965738909910774162016381524289830686832330938988688018434304382738311912971013838735708212291564065468267637788387411534422210690235288258960610262173888304200132203027562352143787545464410532397950514538168801863604958500735421775788731261021089437995734882360977094236200650212721096814599300860557625506735314654723658417136413084130243708685518399831465539132128050965740891866239410644165395041300039283783774711842932499020171860174284200292647352441379839844709050180379308218205029751940959714586883735795127139325783301041171837902911843365657526244355165651181799193281864526725628455962782240808060897390064807473701206469780051533934751755188881482134799716766794784140804407715141732497398403281058527595694685266654208573484041771763345873175454144730836868529270330829212277063337027520586583410381630488927449765680774304255062130829155002165616871107338620067566237904538079695556644798029704237185399173810413920841887281852635662794558062357945239660454652021850091197165571710438880713525045808895124940788269406408256790141339388345882205493929939150392372207612931645799926701588112541986761554385570148252484750915006438734451774707570087814581246677530846870587432118330514297908797502506706539812171394688297014923333357292173391293009706050721379328967150265265979262963904341942761260966101920730356683043972647159335931648331094446123811546589196223756407040531392646399717557107332544068348518122089309842409791869775957905008401988287188437886314519234669975761691211696397142362183455184533378368430919053625676423197880267976538096118430176856801791057844499716460751857730417158328559523387201905918366172141652083405130821889343026600301996532724597749137766760676372792157218748094467502723901631857057448751839650601560474459266358760011771252405658283352703763229164012378542298365425620022108470701587391148001414255622842236388180618364175353783726026610883750793125420183373658125729117099115507473045443404398895176185526723953587204040361675696697556872024418268789470679306070753672522447718091986817806534799076930245021151693512951159605138200739479900884261766451466206790574704962264592190179753482472418375689846302084297537820196534533382202612554920910765547050110861582433289883873341941666929402142233645956933619546263276493913116911153017463974070870636643822139722383996162041421289168559682546558810678778341406314138469234021368540549232963873876338619513577850429914182461323546096539300633732647156703752456764965190229644816517866908972661207219159071869443667823555411695605973686205439418422925649405064158808977723975415497419544469636243856677382491033524979271483671380613850311302221845409890877323404916626687057973107988147988412710442904969186726430838930956529870792921296920580506884624093006084524928564595247860098667341855400660681880276466743298713978348348986514734316572209531359689982071399159784111790707676208044274442375187188636707627860582455004481297752148549796716435929585939600202254992544933821342646026025294697414260137258931326329706046278961236718286324344999349062273887620529914763044040198654230562691970297654347377169238600019670551761590027931819001948862871139110324853770981143870663264610026504615820827945620450402886579394533408511170017776736215576510317209943341125391729543842917592790929330155445729292139197835254368823188312329298577486887919575133157251360746665235183836507608732651027810864181240689533482197439490723881795036104976333553733309574363344870270548104683400023708195333753841481802368110155065257728410335041673498362668707165512047952619111057478489046403332697138174509824129416535650448376714691209942579393332661532160835734917169267025866481859578266606719808851235322139805991948495752406178696578992404301836252697650298050207282751356263241015447526857606782895692709495613550276729668300841431020113737701615470418688640700663071680261875560981375313047356602147026273600109710939124864042765301009950971275872799085280481803625317464346229403473256313460567753719112187852863807839560623810713039302321897164025974359776271287647385335414437717617837276563034722934207283574301359426830680453036025825042417944462391414271775533319177178530633457249907924460097798913632270582985275324171447732550391402301563258334871226418055786719894625609799113678104944395837780407420437296615160427126446461729471372572839846571743791202510209786406281181480429209791476506668014481214236910286822136788864920093500230074550306311541140782118214983878120546997522481786069278354009010883558556695482086411907256717225230863573024751329938478110811035725301087414556900684104021545938173595514246008822257821007813039849229650686373856074560855088815340388328914261902913748622052763788078326115664698477009819916737623837709975023429633173746525494593010040768760128608395586119246124797571838485393357466478861007000993560425323551258056859069762805089829145139046360185108482194594009198038789005664978860468339688365678049400943870474547087076106471942015095244717939571678780140064025852766098911460707889451249886486464044548928298250233700389747720162803042127674928311479144525572061995205948289271178659058334316445305094144953206201887906735761537893922286264077576530655341542095273181963428604006709276519330884251627978615302113021732683076393391983223424470477791557832844524810445886889874653634367839110691486808327143914003131159231504829727299188760917832369060328736751856635694342683495798930173324708780315703735875284088233542165887594260732631291029758378967132963585074023683838878479318359108458027710361346846014123128896520129480894570628511188918771441496479587333104490057753962995222876616948926866396370656688910281160698027371267949231040536627146390100855181215647668424283699227484525228943145886724478561332015830526106687432942415721571720627764079233662081198640169830061717020458445085924506881997520373618606638201458989324367307846852583808458475996862233704368741139632331781659544681846102375129718876782384496719824798891345490816307043405625729918733919245934507230599789289738066687687951481360019217154106076764855320645565625439297466388500455976160674962331373004674927803603843345342820557065857885645882104832044683076237121852217470652725719082113456907862555354203506722617752234485220914232129684076196942572423781886823582999887321049705006949138468180274245597752829822885206398001116737702930588510259634823922749321255612561132829532256703832630722595239327440202481164621388308688545916930289891290701471369563821926274082056664617000769888423811961510121423365058981384580353087599550868877980181704191724040814241680722784378381176387879603342949586324614309248946593286759782357597949205388892707492508250536989377908448129126193264498181848341004406858035399036835067075227583866549165580004375357887109970933179557195928034187673560473605773265057582482404082118073472212273672994858045002506232422472648019683817924170104641122608528058101110976458848305056775906976943970220293035646497824110222808389512081736009177024278932436147042718692474876991405432821058861388809551069032202547897637538011189260076280787402209999192355878610697602062450825841406358865376039888198460829418541254734644805363320602914568086436785377489204697416945325867952972915238015984945762737736092073923848006839640779539731751919756260274752209273796161974651955853479825762882272470661202017800384972338141405699035896467602240296591860212736700352825558877215093640573839193054246173630657811026425575392787766352448490202803933210585783312160247046847480383804003287710630453806614338068848822401737316388100887820138217465935932323567652280107093554393258868960786340159925091749653239688984714006623369044921444256271769526887163701028183031404610037812044549988289222393937419309339011293120779759780201770198315310333446589086933351756553532070883140138820264666459368354721770533272387824528848460813766499279522480971670299567922741663154921158094755268343521885577172000259309209415933811552653339229349483346844108139394371656970508812747074653097613009505779269636852672370475787048724428211953889377331967843852169045690504210226990464126457760253612625862365275666216084692222762111655508252934108876801374391186236473657039558291681276960618061274722297617409000066240266307078316597653118768975189101344490678694584363157105555011788096894169249148219036033699850462342725389583077381857446180704894870919812397793950212901904659188687194222840293411985305937337112949919470765496749046106787942923649946222176415917005535480024760745590717899396722192941784112800955988517048836863331289366255225812332400653552223179830300444418975600703877150392683611998393236733300492120935224765741664656886541647691386350921456648747163266346238033530153795004803504552544402738251463674482657676766357176198482187356036112907141699050573247484902548752463730150537243184102755350045578646281810339187358678954317890194189636199596951841399862596059182439942678135669664228995293857863435234025104947684650684696283938349941355840127215421337289251049808896262757321366062559230414190197672781677171369827881158410900701944457316577747610690284640748568241739241010451278581725787631026150429969086055432426097147228512207031186274534290707588048285835722012212241725162020618137387260085680821807684001844258970066064127936318671800743887428945184023039074534122519486635524048964802842416581423654024960068076442589901661168801936269963369804312368442087919540429079067483321880804451829305024066381942553258996777556741673296653711253207551764659769253971953687191644541531636554047109032801726136568456664618056118998845993279567792269007644995043779529225695183908236029250526366384057670633334287734772956950014723467137750813722049747874196095014869299350401314850044111589811080079754791256621203898374221441830723888449988724196364652063265769186403558937239549030892386818751984671067722335058233522760917360434220879386613357240977067205157518700854399739289666438491804671829559390956101602867210863545521442912500691346869657261638367008782455427648101459679313378349099681716682630458797427890481353572862995684384243716073997137877719875528139175139752337579274495474718456764416659962890697759875631440645194783020415559643574136608904303259800318653763749155581527701649920859503091861763874981090178790687389006384980387911853843422740836668927841046696419540469245488182221648067329949254530322874875061736328415891698716234600228819760974422365659278107768306644203533626824246643831668056742896262147311951532963059329378106313965990096129906874527460632089799403202545546636880975542856979550984210919644359875381377017352749844928270544885948011828376932952855536856171897686199540458180438544891756983163199113951638598354434443536545024477088528255995702822173519217594277491202559128365895033219790087694758631498511338671386912769845210494703943004030378485160544050302121947266479243166767448826309867595395446026503943062474575104874788769249231138908097010669863542282493471478942118414870229932227535342313855532614747008282316979847093132037694125643869593368335241563983475154340180970858493918851701661189019284500292629159654422437478462150142187594427493449059745302981239471301849024113833536222233246840109762316363899687810197557489242639694804606327581414005094931328354935423096940656282107879571633529352932023668117532566387538924362724545154971038521034369859080012933545116530661106530882645518802157501962872574091252144017388166966030643474339632710506595111946075582874594178148195741162896599260026484018881689165491508499981443218997355509407195132631880595409234136918031090410508827871435461706342918380191350863155602197059036814457417521697318769642298844928476375571413471363431411463386679266484354261456341216265474691773080978028712575116257106697338906647442395805103698801192176057270534159209343388074956991074307317841579870404201975163087192544510187177258206218331268504703576725969631222984062546217689668802478311024035291306885966687078189808729385265652565522451416991474953133347281979552492450377706185419291044228227983460334542110573352987456138986488905044997006778108874370789079549228609168506190176480477176626490471658516704364921821946810063539061766077706716029331709698665679207872670162783765478301843281068617489913742167104736433529584722325934501231261399376001528465360413658719391863512687197025455051694614734338998733173468639553703884004763670393785514758238989668507175987689461555484425909528972454133295161130340387494883817027988424530774454431773985386227076612699551742031238680787958997563937986645132858076109015826506534031928346301772037203675994964699734348709955592201190448321082740734369698409103860711543263263671692651737804297518684793048741196097841029897221821029131185238004202719201684810673223139712915771936229889939188732069974653886779084376763322319762284791240597504131043768911052383559964421901868435650855497019989651641458127979261963933996298610600393696260848194784522579081772603397540369853785011949717654086325914668808928082425234470810918268187680576800285464338094597535641030032750291974008658949269604849567224914403475372270513148601065507425773396905272531488876513843763408379535628705959160726639850219496185661479024287630491598298695902723404306649172487986161346442181018471832136065615349084378991935588694677020273921770536720182342987212463779500838773803248834034433262043464427355045405468821379373831309140331719327749727851048708556472620464768774386511427372976187468893108224586115517423091611222088879980805333871622319885467569838572297756288736674941446550636787597033776677762834453420346762137825737897558112254389495897533426222959514586989359529994001366025444889580227779845194462017095806476457527142873501524289900948004456617303678179634203907495880580782343842535833896679926173740139710175603262534629727729139515820412033727430694052230157904571439001415455932081624634052519565887378820615992943184686580199332982705681678107207439196667230118202316012311221123457493360066042732905772305742980454690935366569707658708748906210394047014145178570250788847340144800829540614936239589404207618020511823407735026378673628018049215000866497200197589653131590660184623446082643414274283291755444047563627892748078477304207310889798866350193948267878568036588597429723956495631172834923849457819485147749870292957461822661636668664910351447468631458867266417802847499230901843539114577258347347262287944796171000005948105519492522939285308145729812963538114315721736427216598139955526600300728197593706163947753014815262743151876249611442821718741359702454502663840666017374371420128068295131974357743740454695529516838546780584204727239686333582332530767497721747214167957260731989259270784920526934349379527770641049446777128787816820208517271244937412542543313989772801752090720389507232375121726652706152369460239562347862057303650382724667503624323148288313676581307880752331569146384813663723668446648242767933300188243954160330848363912575803960462687337884577615960386408147938402445163073684969150874668463092245246211796171630183945927848988712806153986877703581881385099481489558488294144785892646054594686679371150318944801053150406661265577580167868564668045998123163032802436923702418050982072044971529927242689579160560212565467449250426044473921465584409262936013424545087550982612617657307872428778716611640082296911257012436566205492590051283725160324252349361977565496258891856915434181800426777471998773989444253385770497548803544458925612351081525748978781758181920286712545315438138051403113239999993883309458019824921055382830502099914180205650855345473181425325741780932370781560716209385236347317553248482484868667981828834040464373906879751650389833967356790651405154712356733051023010166119436922998109787581853923395981703556221964548635917388190800614588269413312404804422789654195866841988355108701744815886715208115085934894498576967394875936231703646709410228799353489209433021634126660493291189259221080439072078472273309951349280905717847252149119637557337751920758601961374273689429861391536726225170504987255216549859350625702757481634945747521326035460498653695164279421955179425654510666961529761269377835291608109557209325156639404062848479229356353253587429815132065474466929998222711392432823631471727983742786004107312098849357689213574848070787159031055563516561451731543605044372370849246657243019022738430179402727513174651680395193682460236309520691355723981287806102707178706791799626305215378761801687659809865583814755313995300157874971797026236773324086207042251343907713753908551409290318632227894167375979659148792723674168167795493927256000665407200839770732385939440822138205966872252388060753858240645049960391186105613415769895679827035291269444217760292567467579149498271570437361226786826784054596148274167195996458230787058835850047042422007895706050166813004114457408017486865342686318324171292559242124499849855594985655124794369697576042075277390342630267174762878511771820029496444199694141827985515703962705212187362446183602702061144386188224292670787231698241701083717511058236355686056571776862346485174973859318022791837105826528348284063313431434418875616552643647992985250465260491652817646730427686697419674120535708245645395849474584595815170232272946831118258648369793250388474688064057421554083710887560595051599083891783874047643090285140418064953445374302797690510642253414138843629429846373371035898073429337305967792929224995870424166740225270531747940463182961092709668177639573414007116041227512571337945512772646198108639120265729016708888767560125202991684499113727592116681932725690789395001260062958171037204890870640517297557325741766095317819224280720609850956971512356666600787051635354461335281226887827267571071887235528550761181120416484726837700040815025838043836308887008127191034863079869193422342168434372703453687645197681875636652968800017130578950505154365472947996560377993564224011936007421933972271174811146189090009948910676867654613805372311287856382202908290723028351524852951688110175884129352898238368054802166810431299498108892462257966023259912603930202248167297153483302779175128667428968421558882989653801244774443098273904237986316670833435437116020090017011983996901568977293879676721290220178048111494018089392315784715897922732028398323978684778697690836216530722793490979649271698748885455636443427112853793981767971810785940874502200396865116800696069499768316556690839589210281863113127492739252992485301134688845462579153674645445287470152008755057489264055833266074675725720199806569185686700756770393534447450314319980535945398702035603116603402536474982090011702652153547805699741325259318194328665848183621320479713941249275382206808189438979140795538206349272604526424719075613567604839689718522355522729250520987373756564104052022793177005122119511993272882598844407365399645940795283798770768657033255476649362047161164371950840245486010484736164158472690502510790612864485654943997194928488740011412574527422090163066608333985207034122318394111491334328417801295403327967088701234757403337667257484988719939041621543653005956357345133040346443835178610379453286240910464967136515535287435847144106359584374425275945576510988908886859735727696447845024849945981122240366790215352085707716841747177545127411403849726816319297979829082504703489460511263555325175777194038834985909513236421113378164380653791766607658450719558282305078451194010333430065603781799324439665399761868847664697146961486819726268728011131080251146095452013097929445438545225678005658240134460741017761144736135789945158534363368808381262903020431227386479974194859672861538449875536678167170376266742295509531495507208661260643009671798925155119036442530067036297443447307665647635832201275751590096853865647987891459077906774950862210182991804247543820412635222565734685584825600916207373088442285638964530974597009235370362972205124163879695976099881144079065501742932307685252417719058770289423661951017029204934860747675512654662556030452640046828966283184943673904718725931911100280103655062255098580242595361885140629791966425532965189154533970797999151706858295268474843079755680615009421250442475564640602035206900534925103105799386354501345601801041162513174282723970613494239263558136143189971639566864437016457941544141906696337700206446754277633679086156397221971809381047821807890425061308908473891482175791242170688160497359567293603917045805442218896933929175265256318615876129100037989152063829085457570815251403128792653023233765135705786801902906104533455402272694305479900970520678344372918464293229031045655308488277026551789593839009457940389088006056231486023866169156645215816840303665815208390655267844373520500717114274861562776076153008207759191030374589000364251295496132790092792261193828659674233147914319954411914193819000851495515682242991097009253262702416608825928333256622223025989326045532197074580217209456282602876030320090603332353075760351785227837933071870841818106656848138500714086927796097949833508125863063588100534228475921471394126845160345153853594822816735279957957398386370384112320984683661252364783984315636814182421467803074662673489855124690855294308813313380402567450111591490935049746697346380561461393471974860714818161983489155851810411992954541012006678578364493956890672729132385247525066162741682077908191386048111978017047322992262598030242027320156045168374420556397662365417988652312925889614183287335731090897615446713167877599298494260209950539593025023772068297015454553677348707760222565548322743678133566442842825170584969464635430638892858651728269391163467254436487679949788688115793148346080143165253780563840270243684355762926862232394310274410657702951648200056366182704290880272490071812604440281022148618648336994547680864709363022939930245534896714639964813254202287216900515514651999122923430917211406164022457068717694804693817657583231219430106779768375000710407873637419301681878550491491351945833312818094342049878454288235017318150377685270178891686615280705969565895096318042168955304096742237196123390420339689947152174604414446813839701053279338097390568861576960911862826802843075859980663700786717652034272534485350001913341886477266328465551461505071707449199083125751940321892228787272958392703351063778629760229223185197696445237180166497734930983009722306327869931005046353322403429559833434714273203216431652202372481689110259746033487382117935999522862616512831145272808546849763269595970318550510032438882561110805330982478693392638485644794564126063552924728046190200771708837334373460957463022829516158051392153698408584634650290084008155721381615620559443653317376111550421823210503721956432609193304897567484150582736448375283179620891881760943321961961771808710034404740758362592405518799491614828295879367625029918685979224279329222191747060752097768932011770363739310783065730509155862216068943841475445835789164065974068268403340453333586373656885984111365741688137987112512768858725316999276142663078463330870629654451571619103591034925492246265454880306654851050255939512093071956913802767313976173937773330952881959064700362084969130312183318797922716359769294090523055999314786976141636476996509066865424058183707510217787722565556277925930415603216685068262225776527166057432637880970444046763365922706814686019074416683600386349187639898748401326840198604420962529067464508509004317263614934588963604382228221336370874407559593645923004531334549744843723098708819020479430108954990104879884776155159628311721022094456329158559553893504829495567665375091576317973379707904851218909290615761715923621781249124004042209680863063703108603326201580256012568260561076712882817048053523345509785901118153539310142406525997798225345374229020840526723347058999749642868033790368551414283620010579788843681924097702483057084385442506681127041019145604469205035582694172297157726776893886071417374753023845901380388679738477547047597273178627593893202860310857703141785188317057333340818509545724596386939037807251549527325002067053037217697876409103045782238460455736065453606767148662441946284131334640127672366604581232584162424592388466049737983204000603835820698655673279092311727066447654155604074546145096650116114901728408779450457932268464841568325373666342908553299475912531181680738120931891569356403597599954645910152072829862467517263294557405143506527821311035243818800832119473595014349236472344808532760618871750208045835247543856525216738678016270443929244521066588421353354424620911556694789099481492686187870414199326708471594465874912591818374469101729591626376004383793638204749433134751798421380236927252514763265321752543412162406029969132479863446258467024383234329739470049880727971411380842807598308182422446098852079854275046137049925358879435414073619895751035026191927409153876384103208472555154285266706000965721931292731147972102210373014533087535502199282272753999765849078481321841447853464826919572435198013801193200833963032057113223906088197969549003360317581052621189951345003470694852458161613168290792491115786399409556594478146668490103001687459173395952675830301771100040360047143113168167708051575528359321695770688316933447655853699906662732439450912399948269575339935675382216842745547287675480787970081094107624671619202417972708983051269034405448965503956408345918308218051529075005560503245615591241505822066233980166531735968251800104495348806689054194046565539338674220976598549555716151904714866112762120442922332020534063864475246014858127224273181938814676110117526056577984743457878994301676049918347863744617856601096378233049404618044249116288443461357318777186166602634049760809841076353574967462182927104112625131742752331371254921117357085532248044185968048760897205806559237096993745542511230614122047702478954434337955651978967430946376807710995423272332960719810519232719493778995355937884070070453911973395094092480804871067238495832246386396819624747500825098984445437036696439579200625800895650940472832370514589252032744136151182667787890164972828882649496910074340795289996789314756133495010192766794841351921179368875735252065609007542145986794216292022142428971654424680389553264486814171699080504023713552724664377570335891811647483176502125865990917314968873662907688635841887145654616735530672397371024363280176626686522762111292961107417622750912229939551465569333980130546542456612288800165934545240301917274676871194997811710331002873724806659717282864970082051805456274053414849078017493898975303328865328349681983781058000238191948039950572952630885473219378039632114428496702279071176177505386820261789563608365273298987438658971990547524654907892411554217223916806828769712918651057560155021312612894877942517639442277151933765158290691763903273094207836223614897651851203106688212879581190186169241168064557862789661881915761616524526971510032501983573435281934578731183621505138375176933086110840349743174375414373148165047925190820051555705305539573834865363970981280137290604489308712326135609912711714136608407501906926500830222425504844091606161811168772994327590851220379795785218030239781123358962962068790487991960686159355325431136631395580496476349587368934580326367914790294318475858509923187772095518467539112151752177310887265704463800559556417345932487815293998744341651447003328807463108625987966796113836623424935110939483399079446891446633340202158458822311519070577373087145903757057167342737268932418537769198333081623441082600770155755778144432312041505079605609591901464290138537755118150190126588668831808188019296711571772166358671525377992761881160150915655209221584004911013449890193087103254304371838319179656810806487002111719528721608362822047622633228143143369123349496553543965582749521298116947828020672651476713308172653655398616901962483113568729034113812807531252161001083175619477206940500072346667819397038410994211326260840501565776138420944052801949447266238067101123649562696876167927364492303989226977354986480938439523302751689882229861117452892130968459629261535291038394876316769130710030270464426868725130160386105645732457098847558943567887922491462287476608823703937095275047808882375054367557875007871669431620777210833018603206426810122189374207178555004276920679729295398437779258221535453039599766439676373188652057131787162707135319388966966117468417557843103790811994392320721865019858740040893702193280208477837514763560024681483152050741618131815768501742858523147301867887407525214918737765245172150759918048116454173935813510090232929012714554730788367085618417581681125583160280136883995578087493176007427907739624092410253394529356430042904560192715251730023895921949184941239695579037041677753941343197365261196118992381687744550759159979222299047498997225020868979786382567844785874019407759230572769025623745855176191818304044904738953094676909576683212311293968673681536960479471771924747838924407858590000683716627729942678908432415719369597082082671090139795646133080700603004691534628898430885877935265187111320451888478652966260698886989389252840927905325965167550818015839088211726398456703009584829127587901355986245351244504811669105036668232814291969877358789363322653154480169039529375110785304774762376378264046484266703714233800414161439259255423021861957094858131528376167588525292770902622056176754607619878465657175865253624619855445076884734910932806065507598818424227072994949191704635946733361284145728715923964014683357613210175032934278373272784859553204972900988132063954347690732892874331785841547240115216239135404207257863516874211997503153731591330500175481921695608396518122028447094984193471463323308577021430947833348075724811298870390076206552438865675862481270740397389032276383555006766999640972893498753220817774440002592869095940317267288096352848288861245308431967034958877766955766903208854699673573182573904630538235306729546755412464695628892402261997991442283594850776764610007873567146073338636419176890175525271925562517206204313317295235655897616208385491644778914491399240688501879609523914533282560848935451234214747621713617828771050531173479951947385114867151731094891230204928566324945902429178965236030280139759681512947027572629580600284692949995898327622307684419145586100101922569798302869190413308458138000203152480984399058828479599773626740850383643402226842193878438261022030413540862098227020103048097103626289113433608691822819539319409277941028724627756492222728997726891200891410273729799075548570636085289116273246705648768132986577793043006897924978919350583367091716435821273115452125809062531182248028286243388276866235325299232367590204655934256467394937890958116723535402173281581923177696975325187163316253622975101725031301797762575829417311215211114040329803368849512081176667541253885824337553340630044701513389098296337519631157340997820339063671959612183568625958265304416755823022688711451333699725179295475597986592647176989909794410505877168516912142985190889592410884943390022679730880713005126156116955279247614144791277535955879111457658164846650891413609874819351963855255538188876948313967674291517330619428358869726364624750043403233366600973229560043909395960694270666517384697084787971716771776014511162926400274830830554990078618148164056000948732706253156171783525871885854309194322035301198032229591883568337422396220710134959940619012055797800439581726151095664630019639834563992544755141611308084672132774330739749753761463828780585699760484873780686865757471123452697244362631725629665273662615035310258086134607550189690726236882777615355354623166642645207189116047967949924217715225141406848358885429363653929343269286733408334572952804652200957423429940419808171588576625473293144187887445707399656365906215755586513568787030441447692679128671686668163413979423111958338274006055657269711275148324036801316736282250515984335107140669487356342835251890152695135458589032264859405018606735393539825215476785982828591365686949097934010448530365377833601049315383829202090266815785076497001181596609167884168320543993944246863916075650212265495476873156630581146257566222384264079397362676514145306605206973493096607399284375704591911385971293391412067540067356924585163528945163592010357721675405121734749162875003353066963481031016147810357206894920110449386235694048652335504990476361218399924530164366642067934634798248034694396904671364148997938540291026924441064570133452793195739448571648050562206020654780706787898147014585703646290671484971797969578126999961479460640960859207722333859293358597613369367721835223479267715198018033114143019854699427787262139525347244812618602591733635564145914185500721018410937667923396226104142803984318008060791883859597673925223497880689644674136833256615965809247337778563687435787104877145491327154217055760812185244700206435372976918906221910595568766845766239245151511666289704048748385527825603612545232517584789857274400216238951219475599923960915040259669379204186720936593109989244410154511672218781768901278182822838379190742013914050461206040831953962831834661480439429956532216708990098485059175600343094066942985617910167841911492398800658607637420422482241104332554435805364232962969825637052546861107833063656604882427955172282039106446797685591242615469767886843553501295927848927118098832114267784682292434591629165860095211083069902428040443725435640313940674773909170898474865083990974331961439535777973215509966437027890993107071470645517183458750654404120588338084242744384002551766780888671299003271620634091845900821182142851182119676246964234272007229236758301922418463213430455934150415265809993580994138754324389365985831546074653785763328685215695645923473612165133683106183106366334196713990222435469083986304307531063613688398203419015707366696440590718641256965833470898888655182313564966699181513987466577495915246259959106129483794207899893270042873317280995813786871821697196481397683801659705474655568940002506350503605128055129944733434196721680978801463364040184616410689194396126495358988972484502743435240832272742288686781280543884699459500948237382364213368986883957650938366766026248326884431516250000703494108616117912626967446826831402254811363961402140360115407241579470266453035276011203761858194759954537717687240257356156297159103943847057528840973243041810699908543683234220486608683619435252497166931098697368716812294975612013343126903128772078152345455969478377207090000197540395307872492096859390071772746010389430910762215370855253853290479772816066750761819958466631531082868336763887342333511483358942137401184592411620614879254407745665801780950044062732146390184915891204561264923061608450087411421548522601997154574934013315761874769182804624175173392633878051311272629251294625635076482842905690473493183259324737331407452418010866566689366366571795937717106438680062616760472309111417470690453882874852356339728125502960267408678575049576287793656827832324760997481602354210487975439623365106815861017183129901772625435547504123379380481469210305514760525987161872180546361600894472010783023412331392162037190991252545703386111168406689047091522571427307663695605376769529656627239018065482855019508775815695655400137139704915098055699374184579092320132996159434581577071105719749821911176597335356278613538834308476802917445841006923369114140263810319108314564712017061878246586564040137253260088957250086162894422826141747433800382585712944120340945517829882838528438220471687103400592768871716533295899393666902351099238573677772772686223827582293826266725525883962582089275192899661445265144026129800469757055210946697060778736362083453394611220111799738664924938463845997473165255824428900279338455197996131372646456758529188152646646926603553894351979022379203348116610876818190763656448640912026072259064227824315602929993806707598309643858578867014335839386434523293302342349970936011420747886757506364726687054331561928359102940130367260098130974312655953072181276853294959880904076810699884388298073055750267828614349788410728477305275087251889983764228374627359402540483906301787632430210723595792829268175891579519172213226548649096374943963722059084851835837799002712372555531312014627705053368470990654939801947699550603695708768002729065383066612558982695168418942707073937110818937869698996010162582091340293811140099558849142351791416757041505844329697779664053737757206832720527701130021394164882185612803544541135312728013849489147446582110621537418141843378803698582575505591431648374551723395435236270717743146283951885834214342191470934675475490441621294778000471926072601066522327344569734465340532233203621878280092105245116800635688078054229957554096834504892929962247658687707150810322539707789424777934645975695736386924729021449797803000289482723212866104999353135344218394975210885621720570744842160665126768286757216779266575137811576655551685008398573550963717953035461120670920757661667234763285184974500515086636472363166662060622771275114488240399983691751278740919228886355577302232989764501247001891410121772106968247241430704655400078568462050043502442985022168227320577577527015196454352744277863049453545073121004646480809840573510354546712723917749106425551639210721107408367778325737972094064019779441466331051285886929910049244486927518321907265999266977525111034900609845700462288152605253095976035351774752527572628159909934791845494177407672682623524312442111680974040127903699121000052331508695935033735953842480789150133085370957960155949861721608041489274673271907609113029295117215267939206007059746192069943555395868000271525592831225170680799459358897759658735351433632703662585548904220953244983116046467479169300278571567295642866116228053692474740599018319611324967156895840102633619039303718209339884676704089928917486785663558231327567342529777595475969647358796341511143782793196593083124562863745219049368448787206779939065978026244003827837858470388482246624423361334432960221832949610157255619614147941395981359473913033815190336162027698013161052963056897555105459955488888227359982743722509580182756090928170856313714433498166776837520470491690679232763729181303632688289167354517494863588341195351477483603778872897788507243658408877909210257241496562186581742780096908768089360662438362967878026089054085383803822523656198775249479184329963293463135990965021714636455968468007190434044881481405555930999754476299126721748546736535045498655256992909085040883900654203239625564072361924995692699754632727766929050506206802571865358917252772739271034825905252896668671216996382510922696543916262075115065116586206910634960334264835204154778373105491738883098812010360119352507115397281073538901911811415068570213364846417664092214957185117116983186662207810444510567108297009486316948986790335161124821705754987882628948892043934632121399195839927301492756031868984838586970651750874567293183253502462413163918026005181865144707831059899340590462910389239598783802678828360967016672194785409892020926177034279347272338742315849774873267328609130142143211165909387504753002010079972437609440758323515151157064147735827351581756396412038158494198492547640497181284878290126827304902724284272481992131762890212909177116645849662144410394581586368007027427896839956240426811853297138437741589208828835026912431343895633080715852557100801214315966145620911166306076297606167324519752572014387869649585728400552585818038376177240400059689887738726085676277478623606356782750411052584241008526099761461712559800418429278268698715236508113971459795630916104991032551286054677157362376858071422886880354616557147681873904338241623094090222753255828293485420634521395699366327789682200929790817417013912665295453925069180779682069927081919625258735038169509302194915833886267198127225968528906991184052822418796696037108173661921099932498308536151474032050899591945951351999917304243982872519484624577909912740203097363759000833521990708565968152707471398684325099726831418414610876555071350847682421389678791714272107368331557194749706278650803692638128055384144733690146354811245118776962278087087054357721889550788692876490115183917273919345706952919861515050044621474512779731318787490058188738474057491788170860325383467160468493354463986337912079768124103268368891203229661504445433641438023990096892779502821201274195920601434256209166587630076705200570652377258397590345378926538924787345708663962385299120715464075861529638227827227098841219415539243149982095825899179187067788699184102715603328012909198292259981744134203994099760685687684491369756043512327776325840442766061356110270542947372968988318455304773232297714317090348035138710302769580095679885100788202863898903426124398302942403858385954087726023859940581463866683870665463371830985921952219003087092634499175184017848676867400425812550406380457314974778032326077707017815095225592146231256865356949498145672519311522309023373715091783038520040957366105363426917051131647893415309976698876333244923581013734268204879836845130428626599197964922017381068265711459894000207321263794629037288203297817526374602245900795900733598081074463138767127733696303661513006487575193461315817994449263644286669509738454584650359096410925464077851143403054673885154795719533504821582972700757940439204900298462712602219922360478017712331553287793799618054788920956658772255218926226068693130595932821884773357636058450151516417271154566591827745888892673804088747624998711432907816538214814261362568060028176353106361327969845207960291650282520194049888368615469358390862276447404841874661367577494451453872141287787316705243909282603222056396683988000179044123688490818634292595759318654807685838576961723886903871335108159960233132231583909202700793293356298132588624773355154210600699222915499637920209021921971234863725418391335886461451083952396381278343572419681271047958481074210116963136591115485497974718067636397257304056376562465161684596409174196145682968316528944511500293859167436410494330789887118488753261275542513419163912362508710715345082153767090646852097738630335013930916807432221538187613272426409871039917402915226176297791424396848626325785182058913793226236741807028650508807502273085052679721242017486816177572844511804161899207227088435010774026670629421608881363031076510252643952799790847223032236462787125065140060515682253019904721690384013706247826605965438505230359498437008843695400544097037895183218301902204598357702746168605850243716887804689558750134318612483126488161558499361367936473230207732165769171322041503995929286652404751667855535100290176475886956903563891764470245417243161044671147401284148453025988123320890730870524046327270669812791409968854818770979248168570957936178865360360439892550547749322473955992925488317006123833669198393088472118197825613339580664652916165204431727507371142635531038478537147424701824464812104654938789320526635820426469566081932887600764822947059381470529656472850498509875045392537641087433426967915926869948129525026627033479965368592845201211394934852516680167782286944758764750419233568436890390052081045678114005101771436661893110271035468374125076787532614439052335503863137102782154211738292635878089629336308398409629742825278666323533028121617249942533943022656798274440340676538742217088691801453965818130845095443195478644428593410232738739517548125533895974352638694285103492116384476047283608567403757919097495960502766682199957127931693974356347059587567614821610249302198488290593981992163297713305884790525973554863643251388218426151035916454712536865635220696726800965366941092507180961574990494437500433165426811157235336227477493741302445802551683289785709378958097003632653714644763482948393871806441181442641837291498953955877171730143714176318630154040233793677508858534271011661193393691955931035199190968358075100051531855765156319662585984343839353417203012913050320441826272490558828831059283800216458672609371037049812621149340726583992514668073602999839894639156774156681083708221123981545015315539789733935599455206313476896290850739589817046393599938484961621030096432834533954885609673560528712036303943261467117411861408487601989198365969526358335978878491521949017132109692960230227898209318214138205291349103900206831106046662459857541744885003556420470149782084592757082509948264040546355794947705373355849091161827050095535258129342999826871542874685991585257107577964733988833815022324433334558802237396635894710159715663609895459400276237648650348357039878068430990651766765845311107874535717281918582491871835618808005897628418354054426609847046169111615997790874158282683759385778132514936280072780094552214884288030145069372931093696175693384975068161306303777344774332203542257129568229636784648170329460655582252343599539239374746035721294201264695213308646950923705528669668517792413397532563242483698270887491290065732728380233834719992538446906038778293220024980528829927173849840866485136589876488142297432260986303003514263437419358716780159673972501921189721376405129413257294357826917698954459601976093678013489508108037776094324598280649298166101643134042558862148168484806724812071166718342380354269735643136845810438751096500447663898918031883963412520313450698801126236956064186680739377232964770984862931051382660799664902689885330959581835218223035013638065261176049864307782895224569757600002992263240774864000125569742920557283422852346797324187055550973112943124841734789905090829026655093858460569184069364755872098962454310394494218037481218003292140180094950844846468753155618725887128577858814658086885335358127709261818837187927156827861579991254767296428334965244909898539987053085692523319347880472690258070559455228098087899634480206004499635172322456762512213243199986196454601797605312142031226035785536207516955729258006211035520443087795709700951171776029069441977071766309384458286477350924752024180019506355461104797837685500155599595772839291245976892086126984597845477271318814015671636829322488514111155585482112963078864513368035187265511211025224791382997670180001013100097777796728274175887543097525080270149374742742838132631082326297391368436790101915295107000548729772266011547449555962615103971207829407406169954534442179523133132895445494147352979823233534346166761412078767489947152251698656084284103545348282368855632565058900541416234145857319171848314209280193333291040335622724273251595908228857360796086519422281571649359908192841797247039881832689147769771299948014935180199122481726680410745024606703494927342365566666787700481549894692487632706856558022651942396052481743799240152012517327192116155000079572184102761562510805999518385263799082715655954377814373792960362824492304525261057027139443318294208486908438826487808241583210497535163372284242141646834353676542907558511223363213778125084971523849348996904189279490511505531493940752984510573252503140308324171822570186095230688878083472306927061986383311717765246751836866179529858425344359082801700740157237350657897420978011270581512340647438420054246974391311465378840608565447450390639097680620600614434843208615266555211010609883215329537785625374565058677733947868801442139817441508501704269665470131145431391266841879088201680249788196699746643891494933194476009120141318108724149297903267419027791763413386275531247322154772181662093833004131273145983184320546065215915807401554919455238531352624913397577573654494490337460794801883891388360433576735474960523502082222742185400018276846373987585536446965294011867615911541795984406550786833511356173437441431893121212080665285823393440785174970541983563668199175492983247004479314944761305218077077016851975953180424803976361530452529013542726069757584106643864825812241626034163219784817351980857472463647760356487310427230764160535475718557936866214289414829456215111471720057260555293651371247123438063727946046858549559301166366058496248954248948674734064985933395317687310512148019595001218082188737089506807335149108184338986273675731401934242284296999065785167347047224646488405629634012504414714606493225318250805957088204131276789591458206834822836782840669765335298930813592428603588125153900403254757047668101403531457616398624546249311147107710962959274991538395218813587671738095909688419051920707649030358084048395725897839968631912701142745577302505129462356978653180593975466469578221268246876200018247422016409083385903257905216402306058761041251994680991961848147064587233077543039731463282881579512274107208247353684814214417051269002706655926571842524733380761077547583099245406969306132524061522883879992323383463193106345222547003224891382316887012263355311480360962703058764852418610026809735891833822380418159139828046954517770275110438882290116373217935806716870016268174167536903442063176818102458990151018036248700841907032546770040034059957353233972908956256658161412878041371342405173560625719383349467845990261755407995198549300950966523996482184908270497220941943371847675051439822444942048010311929340958847285541109405891141758594690718681603092977907045610251571340796333615344426399059242170562539958178832991040458957980240838823506158911708798284393584699361854062295595031329373648529213828798789649510974914034656848260493506934835723278114649351512209160177488736853444317591737255121733017458470792733699563726182716715943889466091608938770498027149876578963938647585391694601171111867784199399025639331519407218881221223146030903594673770796438588620624655571594040044571345417969474660441876575610135863435910847631768226317656056878344152969298125925924750467621973160803660516189446470252942844364941763718941581061907178905152198537072369398912864253542392247232762199813818684792289307474244179461364538768945763570666603667302831629090933090185349561764575177794153045762865523490902009442019422233556100339223491953784237694916722342567559951088308240117303367519222371777782269881002353537498252239031294859296628525819990310203787432218014000032633118815400177602521750710521549136866363963403810239657507706906188736972568467799441469849373260885666041765535338695341294406236846233047687346677777281719545180642930486952852190209484904421801850073128806055984110887701690153046858306867819735100818006213466258833769311020933923576320075736214261603104723884325933175933982658848368562289201672288167757982003947488912830075002450166914169410088888871367370070183914656420760498611919488094390294426927721479485520906546596031885446447812830184149707992747381980463967248397233284203486529539342264006367382190671355587275577117690313862031962759859775746607872266076367179201045547847095552169599143664689826677159512151171340231533627375266640113776760950606835807027757884512522688678849044993618892932253442253999735247704637995205738457866868711881886478787211885390810105674180646784623426948398950971226902075100440401568838398137714614785030052871492484906515887634890238835300110578363586588154895141717389544300662501061629637061880366131851919044850252134854310191758422112153299306561594209506893904009054842338360116728485553034605831176016605966986831327791178357193925362850675805288519934600340151673238553712890511502683584647213450302187934974747195067168260035479268372449380653706898343403141154363045055717395409599601372687500211264507132496880368431685221087453663373109690726207621192968504880079323135455400244957134540993598551712182584965829441050904363717166679400666973611584500822035538173753097252170632467331442009773975483422568310048821345268354054163571918523826959568032782147574073379433080682602534963875380092159237629815822698276685669825044946160324835939957321966192817489208506423738229325009810983528067779935866483488378162206986476228733138640923836345748893088211213353920265405285121354876501223916153120170555477380893989956324772243284365592403189083338375739782825264067642271491071843473977169568590111005472608872757860089526833925873756451851737928411008448400010612308832188448480903088460193897886026044521724910426631438307821221711970003684237863580603926855522473070937867974578169043933898977148064580196787131874865981832197932269049124995583823927243940407015987154637312075077043485549930014641778600441265461414562999985803887267131009015702810673883790450641940562759595920337702410624395461996187149965053013809997141801440149352282883169473497767908924522980437188809403023282175133622717178214968859373737119882862655921346193431781247927932964278459656628622305626815318022422928497568147235555298107309649785042019592979455100217065504721078131445301592086737746767126149205210454820083585480324551119159324710341128715162774205814255066449280731876417812651251157712645331233005055415105125030557562225820162897717205307995246318676709543890244983944714485014688412429663147484771398880912555564312043761198832987906573031536519611889294993912258806334493831378991987602175791549583463135359804639349808620169965411812826593188935782296097860919167302941897602932831602041377208604905538601107048202007773181248512444828159975626027330428079764488028974947355938155396940041381421630993055512713456271739589238685846650854985666235585463935177661160513812635403551687644541037851701042702854018102447389971766646626704522553178813685181535170956267259644488356975102478719826305322963736767865205185799490630844567839503046143557210992798728046778909569604777282603970167189795013422129731857215262778563288098534217508200384339217705068282105824483605867362115255868857418509836291162463191692189998176662090726706445572303196554512152002306282707417775246900985674899509416392199691848650422009894804789482794961017609853573447507186716370008809759051029288137335395311688093739370968206637895465015616620466436066088805282314902738580081546011067463690867763864946436309625954470159887909618784123167681300268308239549485328445608491212001477923223534536949470453797555216019164350837357841237278728451295094115769772112945414198179170191260200063130820325342905649867617524846287574122922610617496480214812734199739642746607398882460095994040413062772466566130463144369047937827534267993602160824918636074220189672493290414390743406241076517256004388474862457756737883081558820939800528765967473131649083379307277328519236559055194423121748448330553671345268221641757849432721588154373389887029977423905335512353480547278337439048881673451365055482793700968101730983026849178959034429369935698721537507583546600409023277746635498241618883279655609581940168382375128307089227069096467157647222859285977547226251232197606434116450672719796635742026860685371741389923295148678729587982408788052158860139215517289714118781239197845435042773294514011266997820063410573373577441076500831568134718108463872408774261030814482955495780606425602812531273687930438291123610368976318685627033924259156618476651063097804930461912167284608269616012175774137194645151399001377103909117655421058163637422976638537313311652076710609207033678643923660426601679949421617904852526849122795247004658946526208455404880876265772823454844325255614073108939275098113029708244434293160325900760125178779390684741828198744115917281001287596705106058807306305342769203612208042018285783136180779270778197631126750642225094214495554675279043491431218092710474072235881581030560739562897257475797301616956835976542969545777676804228339081054295360083022758333274509031065546209987538030439048566016148881322660601519171405058994580680565522338846332110600197348898241061668144952444651530730952495973212044713650676876513965841442821789395687783583008634371383897254206343628828335372201165856151922299694611568607492810022611141684299704770650460722343234111597054108307817351175569054948002776590612640683764387313796554158837158150353559929655316863634975636208698787546211598206689392032497321229991878859391467268943312980025922185789949606410302367613558475041266620625188770144411469428741436863873994441044582776804281101645469859867081432303431375840114519995066516985872588953776247983387450093040315673636351423230923340639961307144051211691211637204752397163421898960132340585648921036584235131617876618708728816310392021596768845199566292915421798910174249643196057029755772262879346099516364916593598197018936329124711064240941492311049535297570359988064977257175406485488016185623347853529118383043267040490548961994364176764246109027861873125123707365596638064291346205898516815014965623232452122675403421931692229543554539631821126268012789843166636861355978397007232999042209552543925134256890398094039350009864318210023312375338421169929084439027203439296256609287146883388722769049880147879217110902544233211836558812447550361740877976319644346702365060488587700816844155783123592051493619464236075243868680626310664181463786694117868695787254077094975690242038451391444963941153355595528413449483605712212020354542345091120932463216413601184271776244923485647842645565319106880132906058928890804841108821360423440391670564302468662680648926123083538315400509213002009311431580405865202797939705064888612954387734484353217151128271023028920534146125042157555007494761205281425815144113423782740729737360371092237160357563266202849720464253087564429492679569505402745402736226820360046592419356846820487880890229801663690292766513122582607303245107565683459095268531497651858975644961539395205736942790763054473271354374830163155816279900019222527434366544952343315186999208507732696920508491078617194406617654947126112999063505137198063617472966278491594993915107583974349668845637600134524654441556701762444915816940479597048292116496377836044550171332758876918132350109218133458337931229783781070034403133469390114997154986001594338685899799546570686436883805365285947076943716770843140858200856125992009478445475454361587779519892876325200395602067084070468757238332716988728451284631532513684860393952206395868615173447934506518147331457782800075885340503243924043712948351257288175643496309440698570335644733599732408693788978900706293528595913974952646979543765820890953357676217109410427839980193897695658688738642078604206213925451869135303905068610445789372541232272171791341430574820881336951080305629798700387161278110226080357351048096805104274802262815489387429755118620675322549707168708895418190486208357126028292977738611894147461758628857337942386263646832512240213404582533999388319451890692264969962795005487212542226544288756898362396730164183574637723969007165001228066776847396777096345714092598868551367808693166061146635688140060523086426758928471150698346191841001720348384186980621125184021154797672407371390296066808488922307038630194185078458941942456896280025262893590541418222870136499135407068542792743520059787304573857428681031560664677505680809698669217827170396082904141354708174058400849242751519286619285075192836812024176634371884591453439681238509252581547071889634394439459744021897088722030068633288341094041176671888394750351072065874670317801904026592665011683012753051620530241924740241053302270471874841359447806198938705613320078423409472454731883690840463357730778829894141261004961002441218726345609489313550076843117603732856438310808249455095450364382972716229108489695357963507232059368348089526995235171962061743268838675356744079895773812240144335721590059659314133368306314307188666809570228814378867772952516201745281874339160470161762721513173287447850407354550357437815737079265282339754745796799465909053189536448100150655387629272731470226337951304292394799042503236864905584020057380736201672127322232085968264408695995009001800464412643999621724230650137760132948883435887658454963934479953177537103873566279043028658156397968066820287541370147225255250197020421221217272246995563321630206676854942204003920502023773323131373679675207287580002193873785056863553413048871510981123079759135611918307888082061530782293530734235784870506731575732521697337695247468496411713232808724421519997747244328316801290494186380173690443496257859631158675604023213475807964979105280424033306918481879458711170672023820176081258701019666447468255166845184867730784468159956887632164007056674364170513061913150468116561916780149163799943449687544910800826289552963109671459704193447869063113955448803302277595550370529349650463786245808853047374114246694096707000716480775912569605113268328827367015759981130699802988756783624370546438733507981020584412908212131285320137519458608450755256994367098081713562024536100106307755380896816014867370883392435887022038141961568138862388759667921746223123746583966321062455365858250028136340116521392858089822369396845565107143241056515157379848106926331069383513829773095910649421024767085346409374893055145940579914767811992309984452322469882574452375195422930171815364693053430593852452951635911587362936770818862944109540448420963718503972610071884293465286406047512717740992851980444353280169131092525931926986571357917582556859873383565956190393539200018541833668005096624669744578673951884145802376385682335123357794031297341611731421727791481463293148841105909222868074142406112957398083694534085159412162617066562479992377249829925212618358476773216864175716539316518379031030933755472638217855615723044417413405316981966344503820026184868669994662545275686358400488315178228198979605240254890479022492270497475752821044567687278102476565444724599767237364094794579868231927118368002625111809145669660092114702650033514579884509700525256940221161406579589644317733137571503221682056038806147175910323371248793584129601914140806690552786507949283806634751512740093413512020458523039499659450642674689043255668076355003100137702004302762441396573180198385512130776316340178322668169779812160335005346969089286235133351873405703871451873489827061068455556683664241408374279581308894820655710890599959701042697161393985573207956508224600604967226027067810954048274326247220941739063951285585369463298850267040276652429735648622082575301243244171379723883128657915709810329837257620503844261072339542230987172741027997879230338068389173305146737368992402502714787303388349802287572909412450828286672319928873089619893054853057954023773769862250465953501580264240780295840233292579061900606148042752353287665456905357660069282298527248992597264258021103990466127121894775024004991393422393878872286141981177464950084386773101648407980533869568734821266111418642777426874244029721920271210028260561060890418324011178479466717661818950029782247420765885234770293726173183064129620630125377464836136009726193020734327518884832719898908885398743407967651661592084328397659107638414180291933413681427608337914842242148812449686256760881454598334211731701451854540230706960142617273593555410589046779827715983504719034669567556245858930831631017823662897396762000310226994390261197385601144757138434615595257811979569502486071716661847820153244690479173476646534020022361933917049144257758719973327004545731965046853517059378249854504931123970222755896976604062220702014216574519826709730097238027857074394749043355194967134037731984445544562458889278752049415707104513466584671305305120728795030866119960702242810084707672443357292126177691104952397308045009271292551935494234911231581592308271433021331538314539610870655187010162221432615358654930925785498101819839417666630677531711860115844361429540043712838527754902170593341109989751062967613444116549965007771526467052768274461370140604901887624104046319702031839952466225146367030158019095255278405892024312476403654424073513490164392843450981053756034953468455627905991811953371048093884190919137986340541979074785760970212087771827624540078940382860434052527034154811637710965527177411887095395096530672402922652074937626328267531256519938714648251345157432501355110438732422428925444905332198622880090503261982190984286196799293869955148497067703852445258996959580301167227410074855659968808005640128103418913562097229880975344792772520564921588893756560818433322736959395782109059715399414941966239791331925447434247465189854892394960217633594269197512613207162529397730425624152265374243289063870114856143926218337918413874419219375629443337903440438506331874270400254835820600867802271257021409184208590587102281600298740704499170361562496024508770324376737996969844185954007646010091809086213849990179498684971135591519815341756877509063598408073331083129673011683927115036037266596780362728478037234256718130328514384687146070691331090506560203119182787168741280845400179888905287762344678866680923021706710691984255180399121603179489790779795650107771736545652813365860834366062906359031469806344079432999471003971147816521419705491931502629424813856647470066638489063204395690624162995421911546432191398490532341529889800328760225777590308718140438065493584755149726971336171378386162359575130853311800792728782912292264185878415904876779616862661230460081518828246360013349744348043012870836230052284782789506088246447731712822824921022412968470289767309150832268426787987460153416595217129251785310339467557088165672474974580161475622247724805130787226737766963332290580210724955685952227010068814332210079281229376118480284077435287898931364473399557672216128618899080579848581331095657462094766050855797553998909799682790244360001556086946812188340120824799767107279699825944679590595000684008024400353792483411267515422068592608734383538498679352732184645820577869810410007635438279302904999308657340012714825618288568601963627630183833829977083440034803832208215935224908556197110725493917298456554080368575879725797213807460335010019976749576624322360530941201715874800699305795441182680523820597483685627829985818936926999974398577690918711202416736330013749211319303359518066151212853193397148511823175208824902999796705250751816646826135262835576455032103261868039905261548823258313719474466494408643152899577125751057738712982235579911571329487697150772615125914895878741679965849041801232613618769402068889634020389236821082867253105390282256323442032431325900690245055697228946817759281538669268529463978029895352627249243858038759360233063908674302158370674741466266610897891719111329376966636423974209662947980945804295301865630209644067244409577343100266991545380251524387933795265264603151805820926134258254878826250582502203439136365120645248070825940746586738959836473089377393074692113793598950376689695869893048894968113366576925951307722764178148644032383281768379872976260826734420099653862678931235978147472069000936811752867277665392945896146774736002332232754049511789909949222494676598250998280669587654767214766990901443971706464158751401529120630763004175289384817069542881427475094448566895071711655250808183778411460052748137874446469389588981306392137510848275642854854247765318478936412644161250831017600474517419879900639326053209455663797858207782190131409271385210862630167318878595380435468574780748037555099539129209010039373446258925835239050617995580452090601633889038502929420462167571826320029358286365814969740451402908669394310997648288519630124283770821054241099666055753198001278788806231894022991530726909384149794735150949422237938908452463385221831780694385670878006113590462425524476878850886374317099567907458527573269835187346774195499118092765452241761333761536694856691396147676018811065702485982702821112866754963740736624495049458210723329390302739072835091133703489331542075471288734790259211768595044214855513425121934728551391890061126630233510088664454952626604620963644003906140431724513600154872494736892424189057491544936215285071261908340075324876023559515741759230361737072084802811115902939560159720586805523760395283507051926086331878960628072566030021978524508678256330412297089373112244720353981822027338418554766266217447110723444053176571869259189994749948386887836644284627025062077144088074263934158386682036273086874112689952589116038307108842057239248523311646019513677209068250984595991665263172849195248723579213658860349037231593538490390134593113288369365810515451585253448670012123640606628743975901518423019367964957168348883791980865280440488783491481007736107649596086610029062939667313752203167040038106153867474711214188409029032811990432344346989835417183356170208204287836282697990729662457193587653780858427211333237323068382560453364675471672443761747565134896416765666074134662503244899539825460222107965977084075399905651087192306289439387419376857984341366592813693102992200598758998000284511518536136898126558953650059840638106343281145316064579486441402968377735814027342826259001117830152667661395671396021994923787585978993248414993310691293288483353307573158410084763506833532107747774662998146327774679120192254829364657159989393962349874777036190580925163852799427856065620884237220391856227471407402689861077447997112734665786444511331850975463129343856506451340917945140847768048690371732998560518969875810967781983054962415556497994158136586358954767004772024198176089182222842804024631369281831418815172566526705750026903433584346218665230256069523810412812784653337559220909432181138807351678256430189534763361375310484174163198707996740927717384891277047028456061020606550528825785745773989041912047152446406500328292830705989906820048822826517791417842429724861894932709707706165563563811524864651613116939551146468858793642030484047369789956773211037861965174483446149556139992431064859733165879936349193745167173492175534048101083584754670139453170306843648251240756739904657167167103116983640996877077873813438864192214831089913547527323661116869985671268323860660245941803182410050406533010834285908270539157927294354850608126089617412495101371817167915787613833416074048930766665675965430650819286343594970522563013282672518679417713287188706661676841792559802246768010808381066664569595217134228715143481360075431390762028652838767226017999436676550523716830216810936960386609052687934292803567938400036394265706007283118827602414256666470720569204103731229237270043153964941177947481947573928889407338244393623695786671003201128665181608627180664639707312637020979195069680802183448213895643047478829972454150223180131492302540578188002322042998931826985769667856666471720221876421001016418209091460913295362721057893704985935159767207858189866929584121449470168471454990516498153681969974083528429841723055388610511463363621526568885087230814571553228089214125074192900942706880885884061930291674157240128863076931059463813859935828910668118838751990660908990854415086890380587765679393317603455558575682086962784913669419497500638466640927226248081324883598053017586894759507478206922678985950680581301100060121403092633285896468631581923568861774623150624633478715923104805162521666376282649948008519056215536496664277098300495344859372435668266524513183890457291447808717000282465171945664091986628246762916140434374652984354353947257754070058287981051424161474435718968384619681067716281641473015539968605199232512270783130082624661728645925833768636833389079157161212122978283673606002739479371669542111799075234539190755036923552799787811811906462803230376892293342422366390050413292303592903823083783900329066046629100954187301365017556136350596447339845215647332680905182754137792185914013795107823571212307534553208542683549457682927812136101014943465566860956761791087766676626125596312037849019300723774230155147455533986366100517715455865177198282491895807518330868771442326040180950985007370457096232762579999461636756439880123025119594505738675830165079170143977911801531800688843242632400081931762708378551314795426619995915471778499322635332943666851531307605132620022538599895870900663538563417725288824806786968865621963981416544553187410283477744869785322196611027365154972351476179514279615907750634965805872599272274402306545177990028932645034028266279117239705101589823137726854671857667981268975122353491177482474486382564084188478121304954984772571544327710125974995933046469811208495468591639519254185755440632068422888504687601897799946311569790388400673376158239129589285237728156806113321783003628704057508502079614504272169259024172787710778066519993616504196307168131770227977669931742237213935031814366680001435910381081471746833614626698455362336349009760347264284765879137184782924844391644197978047784421795920755611577952910151304183591444613545625922547272828349819633546467152684450342222080556460677153821362858114095254538387734483261268096030485653228478449911361597159258325276756171830266349323707594281713175909349431247292836673150872909785789308119040482689093845153573036621896978238575692867885976687717705134936403189637113136301942124694255688462189858000309317750223990352615969868494547448100559855982076453601731170905358267559196272244075419152959359096186749943923059992816920727424395476151157881010970677129066924698049520498213374983390211820027909094685519573347428776912900674396185527981836005909894044364809544780086278799698492097418748030878453498943793599849242199822449640547234021521188969310923273771669959278288427159148578844130772790582818125465539442553194141844247094415092561423002751548846915289702903394428461713909509364379095053175586830401060999930365785102866255904497585761013384230474207237865487758116451998876887740811017632412182369701826467244979560650895484728889295597243756844619998197392310369250863790906535441822078075984474180976809657661168869861734415568873175800515255580250046109488669725750719063400630513342893967136719411718708646692277848513529676858012551764611052079322345203486572190541219140737239041688804085284286804533419092269748037814021924461039589551918090966584991350788963565970976080083605633005166180769226569566709777478475491711172451976804207503905308856074769803137298212957916078789846658619251711462557016060690630543484577478105546582026845768988503954873646480637371226504803274223568437764120949856077199501941563259439648451605015229335089835973858789314397378535274196368961996056968357235412775346590253442518796059518138294800226355769790823680207331522347252565999961160657676311112253980442262239155305819642770285045214381237928082858470251714209289679671885369816288238782896725590507177025006077994292619670558745401813191841308477820305284990492834314573117938603036562931159582504889912931570458442879197230073232494460246670639130354766979899487431360603210886795636283548853317931636273834137049905797574204928950980851858965421137273362978051389363701207065093283906580022265726934508779673626087084543627848663835497476613276230464217368597571749652596037227976360573346870261539328442265571600696171013810693392948478436374987365588839105444518629559137441860088843883818372494377408756243111952829355739988212521420164956760872395665954213608819468357248029327148924118889416770865214359949373541353095450399925111313584667672785337055195684384867560932461594489795680490269970654170716063961031288571272141562398950797449991862282720247574897743408372194585745836714659616552962086605484167892640984375455912447620405880471278592157512348612006489878679171856802293240686788929102670247798299264012880645978397222257441006805797134106468771676493723455462382810319407489288678207969877847099805904524514498857375331988855430411101332118384319203159615084917176969969329729039927046698356174484356732965558152028481734750114129488351213981164385526918706572977013157666193092253259779426455754012957931222510993351251502121671944582730145313233444592364754513612647643213708564938858518568234807875185330480971052142226307643771934059266697866557478789892971444605707883564470493678342634717816229689557134598577255857567933568230149309296808581991705472869035348680094322613030663905445422001500769034525810604021296823710028146510101568508121782867702812931649763936229001174114024493936408284039133564642074080274750446542396237983267379684727254495774855295991919341697300516072672462720636616360132000638901202433092237823155375263708682659543447416369043244977944305421107697412628161786034502960021457308922341275976141435971516985857711273414782380384341283583173554058054761680996800702585104674060550593846684031178360556820723054776391342537550969872888523318808822029419805471119776238018959577140238885916610884638379213058314176329390245438698574987219007523350297109980186772695345490379577304304581364206989433868201465970234992000079556091881350808785539397182088978339942772796868898111208704312304275216697387517255645761230636248209951798927349730950549071664696120899841581329203483763408968152686096923967661475032089151061711129105066086105262700150390516475140082782476220225861201993939923403058856018537269373813997314005685242849935890629336621228906874180798150731100685831561580687448955150318041100710257760039532924923650880484399205477243692564344243446644882726966282190458478947762824844413470268024640041597337071946892768414264721580705804059403722562085288872946887144614147329202584604385542050166166229056570113594240458058650248743262063624094210518357643782404033880486183872724690519961884683290018794290484474101074857232052832053493682287944098388299222657058440942693653861477006140335650455217024568037210619509602260967402301782601340191250697484940064436801159693619023196080483489810960122172418357910932306373903765794149522696847155661393517845634418156373941091595404206542443172929364626459625129431206263528655899790632180255570156898528465303035645818476892192409614520410654849443856584689437924865418211146221780471544376268477926013658811698657282521924340259715314456547052694351625794603622335174590319029455419503497912831394644224742036691303575122244332365010381607359827295476937943317871986512599150505103373479724019641927728729128373166478015251046017653620007758977723362156196076922037049454364436619912336054839240722525855760256557543311147803553131347689075734938868996988198722233657824462419792189018115049111045896965842332847661167975836871128777085447325324098398039336943000561015997811340528996282587523881614574406654818619680236288731967305501428985867266078086643094040920299216380599151967410387237504708118004538998688201825155322665722759020578382334712872208375893183694594466618536523219610073880593338429329730079459626108770597393032215241929798671701941221208436915190218217823031692535514911503320789678147054448600061333161124566955646316462339633603578123758291298667316003714191073415426960328970980056283967164562393136547158310345912407725540305901306659381427442544133072478621642861822642159806042280230929254459677247179290348434350940205957202690670128059392359787511098148364810522200887222011509706905998438505494037035264477276036131722620809470535388903977774186334706487047783348900521637739029899794297859798721873257454045289655752964248959394230714866528813528779469244284431626884281552759720293281884375487867684024831874622156037158059971744892176763978407555189212034422832189832824161314458855109477460624093374940510585150314596454208000477233662338914037987723839797828184936797059026816427367557566522548701200807946456296292726768848015699179411120968712440488308407944555891133585473752913271157424580890940833303249971127360167131915037017388013491755692117131884181166307065348602764753390929856149725028939555677143545486567745759336870222853957149803492398864305237683646526176157793538744694061926435423745451551029669100947331204033432152225232380195077654108054753445921229772088377702596628404848030978163211986476353409193169626053592459228602260658005059589621724903075235543842882594225085662272039206678772537429123982242771069081056139089762680372819231037171218495784039034759909264568139370005838301003400389342777072995243782666096375666500216748853150750841602549778649987443482900842845614795125967850552740879678050003944251518362604133749439982914536903978176766499695339269471706365473567174023037939100714959586405045473761525192252529703949846267545715256236732064253517966698607265380942588330542072989510535441973708569639917815086252940387675666570087432619789629504234871633188360673709423100097956133924463398771749022613751288899243929182020908021520182907163572515500147752806918125172699367722692459984317494838844725755151594536685748376913440068799695233509759887292316535606562462934026277289499533948533097042915306595555045736842096128092448075396034344182357331013433592469458105141489494878794851837067497822058497040701168365942191327934340289226488817362483289956778521687615142571553883030774338719407615644659481240950832424276210785951853390798505007923084544883617740287894485872314519431350452395114304345017622200677311561560186687469461975543915584783493944403045473834795360372623258232851204432850965956907470715179753225676829424977246542226528989416996053798854684560906125153076989224234773052202600539700446914910153595112174534772387291770857872443712101150457655593608140980298038611712059355983370877275803460746134002757507069490958403213530553641402594236082391128805445882244434158814877717409454167811908605118702554578302012932592418798772037786319382385353962967582779019303272277466105780268734211886962086906766941411469800680470053560801546596016850872059822021028624481970259667534419898548560336124584663010238653755661650994551155597480978007108645814784490573999856314247463217761457178018718357152940444068007528025619424622777177087722437945639224287636785966843165805449336723172989635024157772281819548629256954325006145517632024964243079377543643169104210063620365299022034160840325427992966155264665537214844352471743673003142300165250636614284747487090096502452827237896452177901733425505983819427974929419609537656866411971833558358447915543743262004836759093931219724487079947581359024216316228175754844362296780647578461469843915190431504408383368671230126233198879005499471426174072666415164192346340573497292543570360624984913717130337950287995730933287267194400282790742026857009192137935302913478879237584666291912554747748714879317065242334880699850014546593931294584980002865933403974711408299412272490427946902843828844878395644812876501049874498529966583833665770109818589787542438929817656446486254937486339740317195103032721267905001940950328856921988114054304842533432830587685626759752965512112037893188382001477328674027044587313657813090656423323385979750714707244533652349859962157549166690528505957871645521339440144769759375498485576068331848201762712272052416764773587360353653853183647495598452427883257678760176950346072881321485300584890195437979549842958847184802878589910697117429814571690751648578232519390140576251890229773041657529248721125466785370128744482144884022938546441069574486070783882689888715531268001405261040804434566902082134466678483682228552511731482491847028809544228767106146242288069774001994086506020414133097548109741425537706792461870161212848179411892208238872851636158133568147804095539173181647274580995093489432080939370059191532470588676026296115277079745697381367429263643551352685447619417746193923877170124739492350681801147769143629102539907856470260288372769075283073179463760564259711809293159017495020024387043331568096888017144493962157446200784882316600191696285128777424750690398688088775838931020960895429033532167637019687164721014867276479057550306808907809511006427857808541170366002171085429446535820363269762160987943126812063757124226014026119651492890179235108806358926310516179659529751033583115876114627203005664797153919553228816604745742217970123168820279729464878005294579694523744774737747507676699255434361514653158069217513087821135807111293305511173817947448650183578475725131505951301575912058014320377726984294887343601685725183039881239416431474910718555572748789862401086869706514573568069743933347775547975619462643896882528077548384499755823633229710430703563601720976602800326696492768665086095334434437350775361174874521866750955956399718273032021124503011643688458221104813277496013885618422810864940756374080197003786089521761002036024565707853391113343578742369642971676991873739983709429083035423530258973615318437213828323250505537366871742473024226139419844561455697864586539810732350319841885499970002476520386119169059427710899385546585627304155511595786218773261112834478644994936676027853946218530958562402229443894690542779196520901062659808557552061803914946239860283872403584530983975148847021845373557563771192681240397479764596940439202836342608894747516007755581728568340116929683591994154704025545644101460285671477308068915670314305534138201786894131467220053943144287612051719985085714416648906231076538138000380217066655598228615026400167579058622775745939990122238188122654203493426122798063510361729227249062150895757957256939412533911964264648814043713704591800479081703433810719357159975472122251109545683402317484107503102787930887593610078551405846534308127191581569067520627954796215673975333410361895889210611702186301982733758881281405782926126817930154083524911602968472452519054677772538848950541860938394579467705729445948035926663863269060552742245866096975567775138223543535771042454437248812810335534399394817256405911003806380093409836318164017766938737054625689834041126464638405193649838807678467494274183500712409799210258136048624180825657759656493282247872141134537522909694869952680480631749955078719310324948174928167031651238927999401585211343534635127728137978141201263076105853202032605860022068220305515336050129969921535642385844073506210036435446492128297421649553193361695015390257020018976967826736773677883757313211356204266882019658492980202706170665507313380474427827859166482941924679392319933701370418163791484016622933952681424083110112379473822710656174916626248706768893132487637694306064006017917671938270271316014878879045992749220455036658095791621774158829577828167577193886896804282091304795285555898644053754496451277598681562183718518630254220632625296362914998501712294391929258927958065713435678314850200516684364236311958522105092383491289189407438508588799433832684680082059741648542964660679648228359300870362887872747063901363337876754451767375555553473134524902807283961885301520517222673475431329330614084136797782164889107499713264901399042495773632161110292135853456510125690116035993514194484958519422764592403959398393518871948476942118970976529079857058270498743229788927284420497667667636392752518972117334814930878131062381456868435417006207948555665190246842471919824992748301729764565154775259297346215738357057809751460005954874465121231349393576334183668550955925720874540313275993495978535115081430479912817094772678570264050917016832906038502988781725157902739818460786149277132775698330969925904432235374087287701787709708903798908688641045152681935078921140357521552505614219672982694650919915362622805192641227413912142402258389953430912084078448232797653933854240867632289678129418176746465442621257206988418653486567568177319260001026051725055983738334304435979710998671084891266885483705899030498415537724953623061357554796843393968487668596425623774294609676900785159975230115318412646584310021217114724513423116629489630222382387462362789433713260087395616001875202377851592543727386029373814577424391043393111196366298011172402720444024990484828273027554933361389274609273834131015068780004704507931943519520544133568926639993492162042327768163702399785755831586489070467340446521470416398266638158779646817841213320986236980124221649808936556303790090875659164375135685151303751364513086076692371757090672991322018303033037795521844993126453733891291948234247386926130835583611848212795806252306008805022925826539018019142904353553565069013998140240637929119781166085692559977637465777122930962930582168058193625405587638305478378505824192110057685492207704711317860095785089657425668253097293320594015780841089455460677339762337509965640354646995397713670822678732572633448307932891033850706542776294059922589809466197160990399139559735646489167448617445211186580230185820123477467500103017950998420878236642525663782901444666825991508067593031108473623203222789959220599948779114930757209891704221755845464137940324302377254036274288883996974204090082351253940056082916949812876421061201319561597530679934123983973764267072387294336017493032633276185110722415412777687695826017084361825960268372146904382961852301562027146495487136529224861953544656010717889661337951175209466241096686367603034752351072569988640045105616652678754119024849617115036072325101200313732150512578163691251923195493340752398003605448912024866953797882617795562214356814413663853686024862755527106068881538541964266765204588429138176103348992598551789122326227930517582449356056637833391538261338877884564641821378636549984956674583596327787470538600063577782569079266126466006989105867353885012557909022130664535570187587500340764242974284577828939214574723238301344797652111703054330548780408206297053727944765543760368017237262907521179677480648656340196140612078128838877463418422582927235450254041347815462329491782126075352372014964622065302392166610288317281359563009569174688168837074078367852229224993314274943787842450701712826623787390638644856272668748457706310817962461864238694927651032359066520111408967525660511468686476830640266097549228784734565715193564243485541734245704486139259482943732250186161483301597032376726007048861978259026503838479834706291273257505349243677898425700118419316743016505864209602568104010913769312323282185691327885542685451176405148525876432833650802852147774825299565468803729462788828891613107546011157912215739002467008680804450398955720908289113377923390029663740574597073973289314165855549957395951197389882376201624620094747524833758767832454540962344603706459754769894466447467496648607665836427296999470616984569230182142878131296782940353845080911913554859583630401080255736192205060768324105507428360524128563572314026260150381103108400215036336498215749113766139105386186603574674713094791063311866273607924160614694953889218587189717762460571689662299326621404330861456608864560812176795590749353315423136590022176838636018288531148114246280131728356627095463860334625604454567283887289529134023400265944343888424910634044556023851054468140444430186836216791238788087852764133583148119003641741117655319132296547985280864154610741337685006146718628331020917702233394051847047924583000210676674025959250145954746719041426473530567909674318067172587843700741336065775905251897885845112174113321321163973393669487370650804735646585392228031830594144934488920371718022638469904571044421331247625065821767316635598620218398460212561353283606082379114344757152179488230018808058663823402579653826845424294974333807620037203226499711731055128936753257416795034514342849068296054529342031113943517500329555805780155796625124394541405196882202017592296064439193708869153240122413846187937865627914776584940707437930863271640584137270014333056317075884651191003880897328341421654049316776697212643637256700922459798855931464116475246453075636029862907830345312247694942711534317082435160086784613688744105178756992281065500456393858739187621383071088669756887229583240905631291809554116356037339122445701003166824331473748578758105492491240267699508815335497663876946295564094741778779405674109939117925991380488365999560279053926534964749666334516203847411826783939825590312738027299345886255122974458219883586667099577777256559042322663524839069541600916142540006581519097763504353542988844953782549831351756079497174201895345140916415308002382107677178350524613756015050839126303930777888603941084959663758833719053706143635888951732328571009178599109925773347485029622543919111161842910103211163918762729800193409658244308400439155735111238600705773919813819454093467298410257683737567118602275090365013428887978840173758297233418076930583573663956038096777437939022649724661817565144982612110070012662288515612039948998060402813188494312437131034178818117975008273065488621028371538758252921575471680614516638892526278480806567504099089892380441980815351648797235955911027059323583974926534436563396690167284092636349799858171347799899765328977826449468363173971157285873095886070159228930422251978833962255206815466819847965568372396299085113419312771977580834485707510221272555468075546852826250319073865157835216493319503460224618333721077629172378521619992061215905819987818993854918506990558882032093227638096955325707561988087164249521092196151152033705686192309975682036077065305621442155125580696830105622536667363984403695061364833460493325838568368660334342838662166683974860961434209199120258410365468739712216480505956716202285622007338664745841029231610483066359409687591474136024477151778281708676143649007330998038102285035880872788227594925847968153680540989831888391755863653581046703990939978884772372997215188223764351145382656723646999895765515505456024124563500529639480769087652823418805745315049172486326725799022743869926944230165059384623449260342361232011630725208630951407968734388007891698479448959811138146209543606085140526336729234721876538699758418143411675966517685965733757378155341263869255319122798733272525467530187958414469820405349392655568946941017979675269976158983336990225933514284960164737630067285376000353478812698432592829678594357935446481239910435540912353741966069897015096596484570874563065938784598871861227969110824532292927397066394741140010771402529425240219048437048304825157296030758103056820350369947225357926635763478822743817298632215019372245670087189194752964970111823248982999137188931058634650339173883174185024131083364998866226552994379787127563685498211393226382448276604891315217429476460292541760027856933320135039745264972098213617657738653428758012714211872902698960700564874420111494261426514323452114025831438960250854667632295694846967408108815266161715844787845361377070961618746073014707798383174457175316521257119961319155201902528328259829240649342826353112131862997944334748811790221553192888212896579967955890442038550312257581546586158760594556054408353753964100576093839694969513191793343101501322675518500209159892324672071669067680349694270441337768125709185265326525946973516305877271284268001564511154719507235841486781829764205096190262491493668098249847936557202729798896329549963617341842602152824068008826468111875068083827783428184008193635503660258969442324633996491901646551228180901596233842754255166658729474906109893459238520354560065031886499449504616562217053605858156736782949675909730649958492334454092991878374506801613768001554665194212330222545656799998593584966424242778895016385979059010338994591791673349132074430788172733833114763433675772787513676133378610919861947199271649496332275150121600293473551466206201716682190939657365432453107241210035776836760423643921755390513876911346508387802811254891940028377116357420446117126227351937967583045309591808202539726029281570703501413086645170274992007625475236243319839922050299071748962139523035496240672867883060485097672364812922985092236879404002801600216678188178899019029728189614575716954938409377383159463052186900867804053053370704610208683956861325914189026696086777120568900794719351975147979571047345273750103865787218047224575515535095539159643598531721636391160787729529956567108932844562175901836696039363735923181289248040296716457981113543675205320862882996048971546036551624690464525918494014170279813658639967020360431660178062791568010287141787327019666131974853813910344172980304498908944701307734641712703566634575273787281854661913743419983395605755189988987410061352282951500041886778036729719859143728423607796172500698318957603795121871109305275596035302227508094222370737371991718204298704060261444850667036250656939147510983492277325914989734429902665618960710973207266481638743857005381541949671445996098941953205040299188022348475859079918575995855826126637254758632537198097228500053292015846487215780294307721408680162800127651638213905657338517277636667761299123565349003257550723660233478532338444027367181146500964958309446597087267773561032722014656865263575976539813325398663895798272778353715131720622032864608957923200286169542725525067033893455051453015314276746146886332205287192640607341853110032214874257095870481561916371596670304604299620432801984290247300777741645279332150344489810269949145854165585946424791386459953903348407942880336798650361902929580317257097369529303545088806939941916536212692978519130148327488187505678148630220501638324612124140002354010082879292420091238112094358477907723031974490967560292654774811642140065235608161867025111100993284691505874856901147657544756770994937956812389362463944788418914869346071008914508606058872972873398623450142441219564176440553329420838451578672788890333358365854546696844156567933791663535259325467906341024873310557547657937601301058686722770008973750606472536006985974907886925416506516449875516025868771661859587109042155627620122226135377177735835982113673241372169335886115811542639853565020957216746502701983670482830564702015690747572972367570172919791879059278318038068267056279824239185359825768557107667146075126173015863871434275112603832475457326568754334914874628322198672989208215240542909993290819252956444991817196798622015642096301519158842083146543997950700955453978143311544941828000353355964705595466973029317315720979995170366508893109278867696809702520452427171865607238541889302992793591359557190745011277033924679240050264374278676541572985568451311476092940947546045924211751936176021600471930431256546931016819482729633779919129090355534239034575527626844693581877936768879729709485965797622503893757159356421575476242313576927965057069195228332521906533125861943039430577435656045462342619237315633954201528583360685172207585793584368367175497656881799683794394148888379104486428643048316588354674093990719683626634242146111813675164973051691382808197708332464601777992185931120016264956138440424403363396055958011688462604711892747092615824965052783431321459821376618368031457154949541028125547558684090056389077113377059628215182944104855408489850070325883802413425637619465027292785604066364491877572976471343129867380868202616876028023249301895065142901293033926195669568354729729995410276223245895842134894094162014396624219597981686391279483421487860872888417976286039924857831036315917817174209452832933035352309358298964407312593750543706952257698661748011904331791346395205063912210395068651625995112518139082501506623146102998908635976396786238192062500377949253561294158184036907470617821801284452649044798899605571719955617812568507000634419648063429347519613063639062353473267766166616993367315547311549193586485153074140765991420419856518835111502691490779885535797509719190363865477223490163037376953140207771022828251168011924754031147710505411819736591506129760938942559133669511128502166441525915217591353712232949299546745993281542536232435350037654922863162478854998091567104002971356437383067446122732630356030003771234133842679505293949584579515240833445850103072176813642205659958714861388644328846074980580973223604955218699817325147489750169998665435017302472448361494212023292907359636179046966552881083162851275698945373066189552813939846276869498332223800910284791405571734656241544943782589256098824228462223626781943296075879714144960903053536111841228697875682252879273251553740310715290928587276158729004732491708112161474590260903546275347415691262765321325964150158759908871630041601687223399405744778492479960535705102455622438314412561745159712466145007277147706250077567697600944110344435057559476812343502328228370731093522534209361765795561214429164733208779418793730428602214418947776686424285403501162729436849210450210648296818798762467543742487975613993733662601306411461783964956162108934087802630231979546724646008287479860828998638500635011509531038471345577339973851711422231281750128150289731817890582335762805045745015744097292792613533594194612386186372623608868287744085664026102354280053096821552530826439589363004713516013716717352246886691475817524991464511234109616868526722330060798487125645784372626689683890684257474169113589856634852486513072841767634603265043921905521474813849932815037917665608952321677030628281674994001354405663395089645642699619039648833476393166441061898503710830508545542179610210797033792612555743319767793923255339728105380059971528267319455805997852876694445170097990862759215210257939238339730227341847833477883274288355967866677248331461554313604570871463954014341930074225656324781586585962506434312913926954990186638501122254478837734901701899086079621409454341050962755651040194141103859400999799036799535541234766878009179435308280872802964663389101690823785740941322702823169969463067982183928002482598583400372491146858340877901564693103071780784006011264450449534446639161783776348784064415186976459713073861349604405863240165767618388444109868838657020537870138984878782121039944045764649692125327304473462147481314824333056142172018792192223428424564874802540989896203549728392512661851233296074497765111114985684297545659727334700166873353409831473442848377310494513182250874550086692355004101595157751487813223315054667056951951813709966791635337961258501973912960851426288717619605580612430797612915664167007881480318927360009013438903633349878088371568927649577589611286081584859472007336890890480177085354123350134872244617473975808996263653718492010306582441671367774402082976493873333682143180859077063275835302237151427281773651645195900151216691484687525599361930700805899025931811017364175567756547537046749591786330030539532404549248892776893870222768171519236934165045320031774610875121469740185635594735163627189355378817170368386492290839087872400305213709779375209638661698105216808225103656793441054012442794429510499677358550182750059613067431066587930128319428075610515397677343860832239493821803813276069141735481563450772099887915304595375162089657812255720520221989769379564539737266748775985682936627731345568489780973832993879790806190997960905455316163401600525162782482814810253301340272999410109742422201268114235789041727928132528691657053383944137489817236999820055286104306522134029870748749248734598130778711594686762031097803880792698204256493961424932494755542435743721848359271268301403320716025892326884049744145748438881634304384225263047327869296242974103738582769649020911469668527477261376482802026615429490276972939922705319645210818859142184922460545482517380941504797292993256298461553967779441074355041176111246996885551949133098656083710744410461013157646446681390482561242206368404046043597239110619200240030150586350881968236212253027850411387026855253684497263264323925341511626017240401864684941353192153522693919632749407501561416883436076053102818819586821596718465116451872745556960205517363662743508852852728866141463661624040906662523802452911841927240143227257030270567017743798325164803086255594344986245357163243980335710629199137266135225649243837504062249967679492686304669547780051871592526284968563355066859287467686771833156540803267068707848760556586641373729130505418573124573457945130488061931143550326740513721818935681965918181398290905662485855531039211987101590929648308971373781495922597683693235641515396668513814556905637778401169716080917892371814907343810716723761691190843260882324344741145784945769833267736275202422535600998389230159628528536315400392660134364438307536889121238238325068015481225411441606166069340194716689914996912422713831969311706833138042326865011947739824378116105859798265215690370968370147015656814749947116225201998915896340155324374488709911036630778112656756750884170062875719702244652651489955466553245327660485802862150185313977469676797250934660935102075820562417818664331123847972944693082689348593976382690741679300850399067403751500065862515521695972707680220044674901218846624753526309218422962202749716533174152594026428016262260215097329401445620190360533705208389510394220943924309576542079999153589444577075495143288569339218176742856038235200953445742127330200747685043826126527423752322203269800078176251652248300605578457392187424230357763325343027006714233775343278013828321505388542693241273370957206259467218953304110875619897668427491231220290197152660092364780969615912638029683399869823516448750979777102385777781286207069626804299981636015716767363033655347951087438306997031742326285949822126472474555143853616314959436213210461501383373610772090447299471941466244885889304273386718471649711338990772241694813935177134063978595453963459629965570739794104522837246951434392440468704936106647292166331666751442204151532897635415895613205657606715766910898169626391351630243058878959283176330402473332900932202899778642814684210779426811753182856800535028980616530831537524691718143330081832190732257028243170712688358062890105195122349879616404724896445208791467221253115927644666539082899299229385865855275619625868919212457203938453866994475569509804998754224311395160512359922950019529206030994511516707326663897547681636841300957088640947214784557870150610120083358756291760715506936667513823328058009456265115140282957887373599294793391147701810317497335989681073468984928015066727151951638629743935949461537876432238977612466120352117962642847356333638978601594465038980321243860950001548905616338127268377380099443866948572226042446210807561020219906389443895523045247304026249160435078873833932178010698669098843966337406140006315423142656917509933072551857733426393525152658563013922694541471704768016640871607116947235582465271432676628253856859366950006427519920447998347551213933606401569251058958376735991750359459014347185522826507423543539228178259958431958908921432422738747707636413943608332629571025753808265193925983188523845098683822017426294315673892206388631668396218180008443414663225651547889056053038932321174929579132860737497321542781754767788697088473338916616880692164165402641591736898284078350268726283196160698901905248363833901915605866415590075535718827683110013855147121767118160221425144657108046232698693900570897919558187298213691840355053445260123106567283183851727480643229722777715312488339794544601537021014229135198533775581705250199995543854468317424533440569663644163639933041335872595691160332782306160608201528870000729686062330212830680175191276105121773957332623537597570905227888291072533569148464943074991259789700544943853879792266181006434155295021016296915297560180955700909513463583412795681239717011411671589458388856061304690546866513623910192682513444137019074680396854769316704859774646865015991259167227555074386906793779941117603446116035859619146313134803222087659704543873964672135062188850819854573614984490915437355422358078624578608800251279632111623089857755012147181383227423912250792295969469643561853105056284931033840942291135477992613027458394871626477767601351838165571187980861047965867117126960686874924983914261954767677380452548539947613736790411057401138418804351647820596940973885714918058649219981723949135301031830769396229034633025931356626073006521964622922955296491361597790251529723892674040669960797405876590139103735938589815678494769928329918596489460186449910863078301297595715893292405340383764045736321480853080571400253707304710844809678028954545707934143067111551608212513575336202852571632286164679276120297634333314572888274996782597166967986093485198003017924257560858995917135110943712599647371717337436732305595150366662143031965490161274846436403031133087749034533485627646288049567992523648125105724364312911725556473801403521634356757022167150015860598754029524827412791610522952365149669383705629118846063747223982539405983129575323456601460228267920822116653199580024407332644172198153291244938593087318188058402269499267514899851845027889320538017898911206456570175631331867724099593147565993758173063734402776184245808551425452491585905289650499879642825876115370271896789896933555641597331359569444906994261237165191555183018550130701570225389185889762378886494446483775968367051953820414737318124036032835484546175113104354097768239624707986600320469937084431677737409949216919480476245602080208504762498063471433826027767805767262503823273130911296952053573219764157819550678752654450809049438619325081904966408675921049524841618813459308582539558874621213045130689776846023866448185295606897802218379841509762785267288297916884779810444218406397836809496158204476051864934568249799947444080079858898042867088805374735636109051297922734915567869515691034230046312432622695820823907953060240878299288803762245243257274504961507230405077542543699167297928810793674254195114433295803844054649060622590166099455108028306346939384844273438446244374873275463471032652928437397001051121168479359582322100782439830910007370715414212443786694354739393385449871877494331627695028789249641221236055338261280375936226411162919918589016376470114359101600830846929951247231638185571006687622193241347779165556347319391904865207554726682772492655125169863378695769779933143083366522782234756513199915553829341063856565106092622982411026884772632518182831414981651953711420582949049412938630165712827834181530000260787311206084013838926349057861063717093276629541235782506325924347963426508417208606108889805106991134442816059342369700998589886531720052110475130045238561141876463261952914231085339614694360928257717928439765493305706865998632241395367131189966764782735532755832700947892359129585025657194362642261350075734083239895908910934007907165726520950299608500742588403321031477049372471298999644155663318459038010331836117909519513170363659224516939765042062498819360355840583227646250536820383312539654302817520341698405742768443386618900884300813062279444944809904129153056373922741716373103716733051722371628730212600432112270151840340307367034097225870429290099142095010214066733926983543620799251969442172772720399523097841440411667032299723011253621867948924115630773099197461344783367163021328584353261142938613612699694594691761372638951261376384191234388072600241864214837487811679447708825836467412525080152038975799975226367389877237883463315474863476823562325869225978448488108174744459970604975425039630849289675323026410309846456416350651044219915265296071221128267050926246351293879865133284447217568278404309560389289636035067028388398319372437224971616172055667655568051146940417375692534009655188308873321026852148139510229177651800881343992674835156254719934790143524462339333671850459772028105616166496510506400378654173080096013431613419269758123605342744295589715560265876854487685994314460555472459002211714626861736458327848153289314017364399002521230271627460807859482020722575686590667759887766515756884616225794798010217783635987309697515589289249553513596371152856784660415948844882500482941496186681577169301076591073794527651338357474196246743208171541257375736910223214847298977482233035608805261792373501617265106211711898604565794995736751864518274229790772598316323585859402737468553312234005779432623098095760076681570903965025520534603387592660045405439270349147089366859994352580242846720550161559424975927842162044120208046230545426248927442032280296633577982668802007194316995502669629103541658484696715945209564320484546475888701706371991593773685726758088705186155163515856378818606448353198594139749899109245923807654136235177779749551622648431982539496399393482285665065894374828859703682278286053859023608916742177144495185082371899058634183715795324191905403782490947843922685455793736063943135125772647026795227207667249977845198421015460996148468260901288082559718191519485808108357620184906194202378579673088620290630971619023843759758412236314042160454869757259109042774682701088537981212092248859757358129298962885664594064740054454606979044468183406209292585217797736531299796590372353647102916878483572358924996081195166667473136097225652553707439312258713054425457372707876918568994847236140016851099492135901387833818085350259655374678268737493298639623577435838919051254700002390574851305828159608413390579424031935556394826670073291432832429997985240914292492404320746656481346488929977782724695615054881501942770513566047602343561973309031956700295797921058111443965918174512674638042683621756362249508454446849630374816951900405685832859575970396786387170608888435932539847483420948172211083296605523752692136558834626455341232698690692195974217822208402889435096327138928610692325140440850035394384599129285037597765426174617330300145557068824549135055622961329325472270944404864490418354687608429490001431814307586180307715088388946520014780335122058153812680124601273301723520662159348756204919945354746195322710638384730787208254858876183615574596050169844981800297148037043419767733137006110109045901580225996633119643277833190512360680281437888909197590291144578408744801216448707351975164295579555488853790556651361357009950321774246744888908474277259537345182944523012383517539349569180589312709685664399220814070435024697075997648314137441557305229219681070230512720826552287397505266829860996347182909465526954272676869604690223894841861968687573049213278521894621474863892910114962638919743973642959218971316197789489188328308839588430543329007890540966254183798878742692338099863166725105090556857722851421314111830729338506115907862999090980592211852286360994826495328245641850039886158481652554129383810872974474582692853233746484852146047288291072214411058646878619944799067311394620276637000104897134334244317618066653684004999782119242896670015610246513989033282194752241563323689266154928280810130739838322786542261576192052848761174649715906082144637220164069744395437387025051477701267763511138207978496306593508384037616330378462459447805702688151892503360137794946246368888094632731776752217578167322959754710506068499963870375855084399294258421022723601145925304596219598398395085937745720449541040321879064136192489713334239266150560737192062514218443637139593648852581557008088737703205692318168230364733610557744369711598770647993422539420812436869736481230104507148142103744426892812871930781979728991051341270733801244744690280818958748076480242104335627621675693602085800693432245476277373586002999041660650269910893340173065598661896528343667947195965051698910245123191939463319197325152977087989429852256137726859373396413169107158629335171535537331757811098404534889192285825778425121312194202484569075212628141260433590871774571993826807031103626374193466520097826817783730000070975701243267272562822683881895410724058652320171735021709511985382177244267598601869407527190314433876838348571972195336500310918838418918906271204007113844690345352931786536231239632836410553940921216563202385764017958237701501836923356661954904377991616135493619220898037957944707759010820365878551842339579792968901830071652107610733754444674149321496669337657625964354991369703532269267618808167324169015140646637475814288416493878816248075919940469800910359331000744097696296901841277138071468401856740383466029526892482693815377053741687737307655791725035587453051070575676070142105044091285075947354728824725048758750757236436633012698647287801053462827540918156287113195974404696271316537149493796892591011537395565795678005429108844877409593079097078249448474330253843716645462153978877196197438372899072154387045362262871868415760471853516870344499984602051991821600007429476462460844300625803198113133239805049133997297674894953360920451850919114748436576045521585438970819356162015510225568732683195641414355465894609792598613023646380916150561688566917421286367525916205178876850246503830872941145893748452248196733523808706129139858225541673542907741476108102018926520627441351489710834297267490755734461724691510231585616858633784204576276424941242366122182204760828422225645893845207741037887472056245045809800008768715812262770867335081679432484585276210004150875914464947986335000153352313363964184743899885070669152359195215643184519131193926214797485274066604180853283397150292396069745455971485294674244528917249623476786810883444262024665343801706534449934921123812121917390066997635459961051428999925894777700072356202362850677644912123529951943976186112212022369877601790302839105575252002352220658041799121521946792133194036380988592955217483241414034266288935268561937157161791409932697428680715679549374784983831056961761939561717245586813153793103950373723811400610950049540328495492474053411923214665275529082207710384034362354019331673423299038801029764886513037504080667072159021419041142144311691190094895683822257728891231291086055511866693152993449801274889390357180232375692398921274438105596390236714738685798222818974783130436688575297642515464736662164919043805860304538813895147949615257518114252087930806759507566196618211823546910465395252308214457213419958572285384967815402703875562821812108528515620286525605632174136460134022958910258403059538991615851699607330898942008727473868694643391884276632605243598162577207616828898889731294524601251778394590228513817035978683587438368014573425906317891579801399144980314836231784256459482269917851321880726101400374073134326381878941886082810544677268078900495927035017385902293873948236715625039229641523125785424074994879485452558277712879409962910971305267461975414530415323776691143262699920749096487574280906344942595458119309863423486870452106078355570973693630486331935761446851185100528945079598594180238562209531372471490591559070405619412009524316707721246132049784943451393245031578367752892761049165916945928646046860892712843654185482447969969029551793602272094875986733996720631795378714773468558399054870208889522714689126434021282482449211096011183770144957724974274932867594294844356855884614827799394103791358986332876972941909124359803125915801085065300689358711351466499505040035506644499158276445391521052722640471082528068500844843519031005783169650039434345575573447461857215744267759150583467959490490854965560494600431769156727665244859864255796341758719615830534534012581320982318430594353141862729643336574793144837791889610652181984384878372626989723806673097717968359985586432442771145721107407445515073908090948027628231861513196455800043099197639048551671350537736169967696401529865480090238345317219917798402770780886048267478350033509375625285121776897048836145340569447174363622476015986402633553574588051564456981361428221593096414182361349540103886237121843391075940538608169035688057142684206107996348181640941607615501680680493617306345037486699649856455439913640546418525519924770846769937827346398444253569121253963297443395941533617953383943775686066895167423916777673173995462468715704967664171435414995147409822930103754769977046975435378503661471106091417866556644456371475353002197063160522036661873415625173248477320489241648330474128841198802403390144502689706574177770836211023572487863045803021998126809856778973130788206597308979764507542183505394058239544215627376292311567430873642992434537086133256954882356423149387354258944622645588960863135764628571849951285333789268524792548886664357491063742219211393519877375322275127237502550787194470181339122287863541817073950535495444626909008956054304768582951137209896905138703475981332858666152282417569491039085904991289613437338266605303612004339137490146380843325522329647868604881572872082922967868970381629933092147470622539582655314364286684311648117333073995666830364594833032260540553091151620658585925218113592804395765037347570921034796704199568006653640461827129313662431761709664651355019676944583798502816556947346900179169131993296699940252514749876611524910151245136683437587765227181861427250661145008244421511499515830369728941597838962653868663796569139628627346932186068539348237617301364686450075486853404742731294029917490221253432816076626930409697243024539000317235471490885894725493418157382304214396894451275845805714316553913796982781446524922714866773082876622025226354780905860298479171909782683510323843047837457267182540157339672791184615403473305858621341196212512105785967607612436209391287161189784847248731171408427943920651355251271653469957002451606399660038383996086605239809148662842048856800393324994474603004450670492906664658878733574121011649114979067870437941097153239471356160922482548565171916157043061492344329804283446118178746991739647795434932200682076386173334915723160710975985653033682374442600834899238195537730300949608297197057449692890980296390488960377001961145375529686863821232098532780689249086092090232263933298286961543460520789230970969868825868678268002877800478032919639829805118347293300772469639489130445754686021101971560076577424468312847353641798017648419596177586997961239536191101427882643179097919196217647266227017771103096824162057164996690898035192919082295989083584395297631748049647188623584528910110931098795371481915069501504970685081656784474365666609821585479885213219273398385181802326451888011811505545530848686313938841199981545582618943413092717960671213072280550668250216108781152567688738780084954947894175228851160881521662343786552043399892891159291362793821254458556013583654104340956273122807341763703150570656807735146391937654969632984403823445937778053525022196057109470615468091102947119186126938052451830529593297856399040565628090807035584215190827558291214554768697555883619332170250373178922604250809102032007594023065546218915356114013467790803859679402227992195047171353982691200432640309999204839745357933938469792676868827493763798100507434180348265504111420563035737680337398928447655207167565509080511099769384677049200514809827074481396292135429375440947985844378299564075656500269956400385387213399317729085876033712606790564764519406896747493977137632885872431580972191837727641277543675218145806096927128212724972137802020422084053171717343481441392271548531451321332278331890158595116215047536585079157283012880543285833999196243399157664415437042045890922070579322796940696508312633027051570827341252019956305035023603455369981081407960960548372390091288662614029178480705002449951830744461318725813904020847576680709588781449864110804819177793567943810332862032729286849434497301227166075245800129717991305357191573786588804602339359419726879334999684605863719491044670500950235712910446033824924640012416523649140175229839045862211544261281685438552238806920746306182729636819329067362230349666834422598280947417617001755242851199229064057277901738653278533938201655306442698611939856057246787786991354154868780285104172581996844209545562367440453405064363507589542665544539764858497694723806881195193481181388584459397200835019060121012145084615817373129889008880657757339879492667350758920207745266802372314265755580411678422443578121314543535249261163377395250853668064526356780923182944921338527936201701023081411772685137268505251508497374153361288644213421989212031651745007654386782739988369568561399330487859375513552143021793269135221249289058035893827611381088597243694400700832229504945842024381251597094718579712015627109390525227219307339172171115935778104131610643543419842207609548678630739015219471031945503858422452289699830289896501397557153316546608890469415630959287845549604133177762773902087829177086828941241342923602148508359376588421767465390288682032040769184670592067875200039549887006277422427778172382996159290890848736760604156781575827237025617056993494602073603443997862180483579572240293065568761676261866975879241860949594107614469748561095525043289897081104404679175103585698890422874389208682034039590195056353582606601546054642314709258052281867687897374848339641122765146969230821238719024052168564361579440117040327584880640101722342836759422896158428728717994483202214441062558041517790004840260063797163260715986186689763039890259584934851798980880044466156619585222647344938169800729555863344410509094362218089145821372873043193689075661679441037816614364402055611154794551206789402551570310074865203199410211902385462841118244265808208437170416462901439203884981651371619434641358709892729944760978538682511003140922531423611292070129850256707036821415887461692446507681679884598859603720804512714290701684732677634269534112349966591303267281210235991033568840859137256823980210327867694728995346186129698345916390679873973375228696609316109475969689814564267802061788352204598460527657575533932295726880039490449485669118380007283855298524210559604932024841211479437491878119805122942010098037398258493113348121678220346562698538545560452201067258520113015380825766245524453637429789669912039019800033534616599468514742632921436946250254190205776650315871405612113981530215990088395908989131831480509281311072916254851212370570848210841417715454823814920076849993293793681462323538412667322895022722546330150189863561880948861560372697484616062188686145518918940957784178103109574095253364430790256079614958352205840730252352313414799591726578976857615550739610712382111940307781427366692181784404026081185364314388344577056240506768110386700341939135538662205481462970744920872360043439833472527335914810476124292956985425508646342952600937440165789863232669720172703997473498896004058257274242037510992054926118451935976410801405729268688401587025086506882930227325494395118757359875461393789327659509047244145567027994255444916228269237956097034895075105638609486893260554821737890674809563319528977182674876974400117750758152663551603694677143161819882529296117452964610726918242677922263466714385060481127761714806795512676879201178730394870198824769673450489854705870452365240449167438866279810837707232928720130158683329447486754564072823471558822124672386563831981016346430660494937748655766193503636548493945416821832732346339406205190149713027578869024554318100793520570016103793488890913254264002350723956012194906436626859542423533809417206934306399847772936919960438648355564755579297259066173358248832674250606168859815949642096036510439687823326802297737334474577223108832127965267174022335153953033944315439876235909436281399611137645983254308430158761453318956631802947044991097035402047956273672335203921398382064123384379968446785857374159372770689337987397048317895458754706792214328285455457650537846700883926837987827747491208657252432815947730142537195202660046620663379395130439237102555570685653589514558312063489286564505754119049485852758850264200513786707629343194753270490079609656947860155693027603441616107907243887146451678980676996446815107227041221011910245265605860797567295640079657323806879141408606906195146882072680455458276783491052105825896164511287158661335950056955398162553313669574871427927888439337331182522547385850979989958885542851674498603054849432748619869834376528967710678605017830267622752424270715079919763881168656043329777568319903790422621583420443015123735737385736588207733685481844193548422080738285768692115657180505461335077129610591431289452672200165673432683125688895918718815274311910089798978545856920362313405894717994944546075655628412662323925426106524624323363583139218308138580466230849712257448495912434202598947014989677328696705822596132757262156478553444662652818679542547230467746430546358257748523121461132244341107361874530257297957830821089443981998611420641097935320047588161051796031520374942900397299382951973892624781918439833812231127601451303877306111717144399082139942888035292098670146145172365861906873546436828217483875196728092040508325950152512436641331553190983936122873132888432809092464988944556655238075988159350934880942692250608537131345740002326414650452284538006007854477517273086526399444130278203235210378432495443783240473153460564349101616369509675805228754052979488501969880120603517575064419195888448067133536900653640106543664050705627589312073430683783436550902853460914473870987639289290932090214527268457302949406532485559585116519254152811455715503949488722856455657956387462479271965483784573961814159345774902986022764142329931056491749178538331450294894471825967802114263141067382701024095960281222785537707771669378525825233035500210382150616293627037419768319230711932955009221185745087073322017358678105554148318351129494562759725427849424549025564840774197604553055420091799933785853449008146489621725948742966429628664104322697354852519951863522109282268997212466825562259676221110028759117603899052551000145217566570748317692432077311224788268509929233515075232681848965788701876846439691349360630130290605028932641862125453171826669310318950467106626749981449257734672519404824654153372614855459109935654538038207461693792510834593852393007969852222497144695437074451809373068509937669152163626116070897627246661971049044699569165088153228173516908306300043601388990662757048455590931917352150586385117619800839073083495176703119602352782625292816715418076121940271090207578702283666606114298516040285400216714893250715795959697792810560878093855147350610261836200298404018768795726093453123256206320158853785249520638027126502903229794027390560197921113131930889431345603481046766236929330719372789414680414901700580334101186918689708644230955539150613202013990097514043439970085124055115411609974581496771578121512426641715119395719048867075118357593246985788438604519911712061760151417165583113667300326360882615398995507192430541881107721911429180872813970147002691668679682167225122291075722665434804201294714634196391984480325891391128728114961225856996239014736363585733294856142734975005015295046594936100052786843679995297366846014918100682124072713317887789913643571771431089151114930642613308156465047400816700209858022797439707816247255050158406315694160825427349259617551608016955534020814413837321566673028744350081706276712441914235229322142073318766797463586493222319945199291749352894674451402334350268842270672879691877250900061949585511151208001731349688858177254985361481732463487538551403270992902647989935420184791191643512292524422600943431625516652944177358834755614081477496382309855261707200139380130203765061543549907486970021068372783733579577556938116574864088662130798112651398691901006511119574105473434196672082454358111203233496295579817241832123736041089798005182935450501765876045682056145871945053778433576140322083843431270459858981511331592889201822184753541379756057796366014345132344475153880435911532302048736762436001045760420543981440905602037123565204085918539078272570987899028070573141664604003837181639216656190107065210594792575941804575929414165117382340675538882812112512645360033258637431456051805622423890859062351698848583146549340652293459798387024363179542690630990546337390823945139426506720206019585010281777930715497678404747487103976886740667717997042796728719121259933292320021060248604980240637211864095335037187137868240384263746883118391095281956995449641291412965582174711845028695326460695504227623024946085230621739609539546426770619127317210025526523013245905681804523458640527796408023058858653121452527615567485051321962723770106413548324902889343519557986076960975492027388678790026145358933987816183770090384079776130712901544096194885313276753415158506161863921931447620581229709259890482369802989703646270359430863805658599136363923797255046476112837130562406159904151592690219320704327358174683060423234579610537528703458315233877969726286399765331223643951277918093981495320488754641273558686287031125796773632420779810337345508930143571176118156797114504118194734004674795251627296658964086878396481483868973784588453678897004001585986677407055597754183091316685528011822971928632723873051956059122783913468943372402554889499439538409297884653401411421232261714636272006656453839322325544554904994733929281873115577823144243384305505316506965797423133146275631441441944378320442556859564298659160670530408456423279589568676379119961593397608075719804113132998045845794863452643419547570157474692761160895101181795706210902941210767426192903171115367351965241366624052774348161248941328942535573732822672311943411594361343437139915407005266752244268888722108081005434040901271959647972168989590788569977781945764755303716937053396414091807453224564010534900920821699661736453714202142084204842681260500266651003358407455413166127405048944067263941670888887250598960034914139815206394171950796814989079891060639260990046750439313084042866710799914257876288533966362538133066489279135144815859640897374966353582026684496817219170639268692765237648382941485590344553596929715026043291159973947921659484495363233698048469531113232642478060506653544314754127415792368198380913258463951745790830963111276970828111694926028714001125423212034339883482406599659160521164329274174637726318996771067065369766456180441733582849276485238504335463952950604108587952782074996681662667549451574143835070157592360726690361296698354878238704067331646237323855029315680604287742296496170463952364985230007101129077642324843033232904589643107212876712340894919138023980901328754171558204932392609520062220751210671312260798733063798061295430929158562946294460616444472016629943375112057792990506272756185901729029814884333016722852877806418882489663682128386438036080614481869835073357187965825494575418759894553258864428837297485585123441153477867720158362214265988845273675819088788541716421755349720476268464811143235026721323586930062270622928956463530930003947377988194601897205484314975802176297525499120188995067478823531726443402792646091172316002351499119222690780926178021677530832296486148887523250540717233393463687248670751836900111866465804190486996331628093243520168624072812600562101667979514310087193730485083880795806229686364251916519895105476540617077152172466327959864655482496546993747718705079257582653436017152430756493633617046699563582300080801962412851181629995594835973997608333832763477193404512842644031743924789243537637546418121261485309232937094134170632373842847378610068080724004227988205949638166414070323497208056301692818067177067584694451773182753036739554612108726947594468586947437136906336475781876391747623060627477680023933738805297347268359250131093362217164458478922893728433861791924874297671254430554486436046522174675574288520163632220273237744285205052167031557522586398076066757657917946281373074632042460712700547257218067745575445150829237540871519039142227572614885949241215492378690018195080011980968845182476264942864720403804897488569917019221340098396986293603940691993577997906194313862511763137585009191984481981740669263461934835641553979161057181912094827661945613343869075127689349320938105163652503278908030470768244080483914481540918656213878010667946864771648064835372260524658449866103729149418292018342405100659482802637641524258708886787737515777487856995611682751169070201345937245301816657877988414843758633910678993671994267044691244521397714548616717496239581846203557460830873325937347613044423743832243220875248436775138226056129539817514334942246508069130920195015677197129657403140649725710354155670009818040495004890417959588797254550118350353750905121753859321588593457635867398138618742360381316359097316835440926665280432607185312934396712016268189486594187885816894592674799292524870069611672787379345563937123199757723767394469496896020575026762511357497228140102122999337241026966550409784559330557795387110083674405986473968321920579688469962583673217045749537356403903888642918389727101323499353350271870064486220925026461196992753976377308619413449733712259813380016395523239765942191615400535468990496579023050606420848540631244039699984585132491914271941410453145563466574769028832945639383260790657104891196585879704123590431751824088952374264133288183978701326806159803459648721352602879771473702509211050164978433933885718294572326428565021340777973099150050364668749129696312877030165443273452036144175664165373505693796351262504076977571602435227526811917133650425774604935748742474650285995077102485537416331501950883335059323924045917760045612097825621518619231827266018214325451471943379151950687499503976297008736216797467331182126570067251669071226187017118702353365191470128280105915938945968790790094670839155374116658004008431219292350752399607415579003995640438870212376361835025714098656830615616180269255518550308619238096196343786584345110898506336571534107131334832469765904014267925672346148172384145531583626520450459595768066752775985536886828733563671037725971604375990345378686782455426745399805998138587251336580538156450735564639785803605464553113742782901582064024610443087021645408638751167902385184404964394849160114012028280136230735555398350005438598211197336669863269510500144502875417163455250439589172459655087899931856626653073857029835817264938322248780254817885679200122282263693781067395034567877864760448109644926006587404999924973694329658422441743703225482756892516563904645803449420725520285162568903815269426961904655326052984785935580916851055629952080516758623299017527242830779123408767902151375254997174959908505130469816842863701914215000161892323444293365112231215859654677901402907246109263490580296795688229919104720959699745221136249092518394667596251225657097036753785078220851519631591195615021877886051320052633877673410017546687777519993573673097731098822946326540052307281595173100799881217156924454918397800774359449674142411070077535452079792209745941029719498382900209777551329923437820624970756174935168884452055340260508668850228458583168323725150153374793527880649152886765519733865366020819244505226308710979887477474268320458366171600231511952107853233721948267754757111029737340047959627737386657815266168051600968036003484790787796781414515909544839555035545387128867892566944795495203907195460855205309011546478775975986285670918851466858910393551958949648317842530079740874854541093808244092798871628425639922461001412686064426439617126627905779978798660637364266059926371842638280947798192407032426309663292583962786318483317202945490987131049999811934167258897423025930588103759835098129591025365159023802218292083529848604053151483277896881577273108796099897996983942513749665537857291694111129790622317373770139651142995467705817586013338649503799486966444187272958528953413011795550187630964038281170257043231885592613262383358588235323941621522930408533325520207600059761066757699891536648129386744121096669628173804162996524139272093161760153929925422557002693001993547849840512151951737768145872456512197331908974146427482649769803792162883526253133273635505869537826240790654222339070442379721879645690847037430913023830287166255167885205161601583326509701366712672932513285949932988700118169862735341653786670040667225384781617546104526699878910787987585661916352418953859106826856411017029408883696263091865751829316400124176342969392706291139988170840615828121682409253615938683831787661470890278608086442148832530548473507866513949568071845145122346478191617286971222378409875889574552362672294126966199786962307923209963821180249466706024226670458273225416426569341593776412917209867125257797357706462337757116891624272787558471778466907929836643671930584579388392214601170996681900550903696463320193886066268248297993062644031526514598290363180368225283131786963242997243518080354377782308916650747761475161182567492060540361779163041966925742645171850807837165740690262866410440819394529676951122100484823527453874260678214404475304755453849849751868577522856170063302332400250832057161068575277432111570877771562365084922218032593237051523618808050913290290771974258670962394448995129632182847561157424539138567183612958504292708928111198838384917170787692131225795288560390605837595839404011369290972193583567379223171702783218039286523370826819338546040026770224080842942718748477163425053272179010322463923514740363000330036266941390629221428773843826051002710709382059969746917529822725998225682944705403953336302455984354685312405119840936299239615604651853406379037703425323010454356979054950846195166819860696097914735550004024390503508421029513745072323882666283882269596424668259895787612202168160325704949687709571973546412934734070306577575800314073780840443828670487911436564870367037869235940410885772467816897701762137853850453078306256932743914915191018212414983158741855343681069297261848669728300928807178615320231339001380528682108975112812143186911182706260040257432304012788286592754205883712461913699191991678904163217950156132492269157760857347426996053810892877758278670375679784574893869957209522824910821327268249684495303120442562649446389122603579934259989734841913557524530147391103773142880604307579338945516464158671969515107347461962721444473715625356490431765154549000638440185934919601477340210317820270911501594355552627613295043369502524262827625826157665972976678467302991976266066665003291969012482746292076108748514975557721620664903739351623521621670788990693464224315050659437930325288025009798307633691498858280907654004109359650599831107042360569485960421795144498679831459619036813355883570677152229369958861861755523428897211578548130888097682293857363835720606940519420582167689649570214665914358955667789664549573694592838384163826233842608816761742103535749383969135785060921505595901517380970906386083128368512570531464823580509196758615192193322074545048391765585588218706379078387512455450892996008283953746518178384321126679164366361230003002797457683162107783024641459496216436145597209159000916221010818991391452472775698950028853747721269253680612194553915056542619608708923523941881219446417627502258299520460132475984031054234372958802484604692121733320828901435172394847202772655171560103233527683461125928304652969082828272860718144473318011692753408551731692242627779612093236924555469218001078791423143654605263486400350227831383685913588254386415870124599313587677482756626565556066421726388143313940650548796455542703568872205711650495800232631248701046298735459075353987084272534143772280399081774486959616274777851598592889775627906378650912846780755609783007468418646942301561622771608294709652119071802327869729064347110798860569219398598245182553368513124873857399570786778072137016171024281565172314322562124327146944400111144452214830002530418664183913273171729211761609745472422857816926898659256295451895381435225758301253335466744076151092501333110300729469700836573813864187764094595727011393276718006069468751958441067024731146891865567770189038396789678210547966040604609117402874590783976310756111034625251158121638865660499614987450343336004703371752997488832558376630331339369738006620775083064535189443980291661431274906815735693199030938411670927538833759027070450202719737224554860862334446912842329599276711242927886795517834348156762040442236248476035386772450478581828589507673015731099359136746694744040056780560759623997923550908010457470606568599142460276498688074254708213564883241622284768671891093027255041916083113067863361945474434323158124892739664547402120235187455454859176858565797862693805184247307487368980156482410168051506626108922728277796999655425363441335139600102293996492472368164525339612971636317857388537115791399600650442690006365254959238937003145995957151448930545005329507212765011825049796278574503378813988513483796881495520214821791774861928535347101742747694388376043694727671857006100294590700204239790847401362937080176732477529822876858287969550942228145495978835200068399336468265672158208817951189172589762339156274732758307823304595693693474612496549617883143258146757146622961572113508328648755709238079674786604161259923872329616288021367094325589208465356766563754709683355375874925630398816180017472219610693057263274721396685047681680913773085965452915468932549212968505677396366082188094700444895556258920446076773661718534812493983884457356304321776774121051109558537102977465100392943572852240915051699158083328199387468149988711035390424554364632420045119286147605261820132667194193683647696631920298389767434843008202357821343277020098752220040085493449902012923033656194729117854066026227278979269215295640479463618263021480056103178323913918361202158079404515379422179250736226038225196338020382880627121424081370641533814321227215480259974981939376267340091546446321691484714765377541146702215956965611514682309704557777954745036073254582574436676881301430966069021931028772626339824422589347715989827456102615101490164403854943734197571074515267629239774310390821484209704565564330127100499991735666613337458107215291684513617371553131840993111490125669301978506253830314860075034868375190626488212189012202060827213665941956602023519939642393032547285628556484777591466338868022752109194573504613022506081398636698823314176855297263554367043968200975375271332320893858231422618283202589006793561838870452024958718670605083472179342716684893742780448633428551963621298955561879935302058870627761723874659827640117747849784791350531102099324413773176185382875454738116507579127267429276690662720600174733918153165205811653722474304803342371049659078487103942856295950888178967582520864866652012577331281957572846429404564385198545412595267630346148136086627797731244169276139224728359463521043666515010563130284095816713318265124137723705024851183574193318427200647376279692024699258360055568874144644084269951581684043337849476533417384637303755857294542715193175951958275991263482598638391369038232016859162782026457728950809443125268012403412543556789889944257020801690395330983806081152809948129606559050237149077623026660162336165282598031833956470409224629794331854314950895791962468462424488485540213013670441322733114112420462017746651971804341396382065545718742690890792545468923853543408718114456040240085134001186529045611000715532878035750021448533003848195627724493728744509784811576272455397165635206235860257194866743595254500427846906742711786085182389135362237005523329390483646191274110610517790613737271098809684095019708070934869026191956555653330939922270935723552308160232668350483107358245094716358382362949521752316340814677816967934346406306736295498104961274057380410732988005941228216193425928615002670224786968848802252199730566898893988549630365669638639700276521950402473897786344273148492934885001682984658086300599359261075324711613115780386535140966121274275689229254482330738082684273869314522752736625607099850797963669120891999057119108259555996603207091026404530689464843114029315719416546538751577186919493503672639726753450029337031519315420714552863893310044501833557558312086873459658284866845405854912538469412011898992653056420195067956314932449797115135107065861307711610412644121722404769497366026501788964530128738920039290353144846648021215496257722207329902681950025455948219125991015570321084344977495416654794008160008236294599130697316266015662911790346574565365470984010631890611436546705538655241032766856366157307420898677116692103212793084386017885226451084687041711666072469805512300731005226542349745366187612494794543387381770734143908346998118528004461753308028256832399339432600724966930522407284436439525427477159648022928121270092249417310401022959468532603742723402591845949902722360610231575614787210759221357897292934122989196830157978175830925413442236942002461806580658270128127919638856282582536208200861546502651737242861662158790140536437332897077330850142713927232125267424751585017834490926442898445884552403871576867861863345134183313606079153014558961162182531045561561966510338780726938991450797679912825078297478602791024246617164275564211264520191114167457153964795181488355497182123712588128913205731991110992892049323521626434878610690554646066225938480779572905370876746614053564192011469755932137369756911224722796490300126277607523606811738849656359619461145235415488095311810826885178400488614699923677946376997575829552766037104864627504565706662266548718998278487833863279034949727380241640329451868310615624659209824985556915761541020851133449020726013133345129628451675386832991003406240934126521552173025239339248362301441972920257823618948391497594941970714181706512252519996501475325028421767281196139752963361954402914157267620897427933744539026897271649824098571717148469883810025082033067954017663309259618562378092493190206219838201870181209311474926003689024897140670198400430946568661959534200924536453166152841015333183212310089310413348311308154486643324215080838650791557381574733994256473851257938411107719708882923367460233301468762952577938121916904300584508907977176176102880397572921335558099114621514605432201837185652394883156836430972406985409632281770045006289771925776906756765631535826763462775005181910154230113096828124652879979286993417471687230300511098010995673226617391314287521611146655720922056749094084395409351146858511683007637186931972514726428497855133570200098904709026402153038398317008964152187045953786760113683832896468606169883748265881547749831671729680267802470686623587064267549025875050479796757148797780674871519562654341322997232808989485601946637023767880063810622564552064019261984266984575876664817578837658932061088820205389844675106178961243913639968615642016646703256033886247816399873150069447344562206518911023847737169506634419789471111778199280033857385613752304343101342640862910749281455282606619763993165651677534141876803949359682253193463558667577157866976817966158294508085516503359932843704036709872322497963926890747957532741406218494612303302186124378495014826868666347417732980111227150448367595518127089359927761233702261639500943528510330445041892772581716992760088118629267474159569863575452878310537553240857148455311898302476774148119055802976331259945819909867886199828357881296686525298353576252957787618845309101218798844509297867820480500722907716847599214758950204840974042126121625609021174388387855201709511719122536018128263949532151312557864452453329704757182954233453391915791239665826572896373718470120254120453639282401927101161812399950580839713823845464940184445656406418038813697633006660655414163516820965740073770036796309717895766423612432506129022228112929574414841894650375478521308137867993283774502270358382472788595416690463987467294070479584397855367633775425147860583905890854107130864668558645611021193934222539267000525123784627382946819195459316850744852130466935612422483837362585286120037653732285166447115909140400057542284037924545965174349405130274303539597904048467720479234725774443567154486100148629729716135709462968347666969215782245393083859215285389049352849387588571397783837935145219235181658978541932479622423894542371731912790954984523971198472211821677275115757406663449080329834546635052760509590493108674936447808578613347136089457160732642497031687074008281106294576268693173884386718955943300807890103823060070641244867947208952627670289966701904729660096079273418736497959038065882599770599161780277400876381459839731768791370736677794986775669798559750314320616833582670371401313775170194807259124063647664628488242811766395002223882832117903255540431225196148067966836269229800077154584526696937179494134543225117483440057639271867747192796200439743569280017822723231228744564228364756138702826054583350985548989452325414792083985605202239449081488248051638281700618682089817874766665182699047663051414817579433494811585966536192504635194409864262887017302933720781386870193012857944605809877477122446468006883180348215359087599497614235929830009514067185701348003753937185867234847785433519866898409099272554261684770034740733483454139204564652877116917905273011386238117211894354330440867832345568458477120761077920228109266529583326295774614047073458307414971092301450179085865257240942743590884556524384462324110558040266304535114164754939761127132894309341845573059856550523475782091118075976548197212470658517196749257212607157951135793299516272531692677019753661957391890275039493577353726005443086207663255160618472914400690916141982422964068068716277453544748965964792388954386083099045752934070484148988855555719263320832536234612066292084271092595510952126270179394524298000587525250713826363536456065970962823996010747778030738847406725069647165728792640333616933891437077861804740543326683176131660638799616411864583846641206070515732599850856846370390780389902303438394513107864962561060156509282045718319133730941624853889975036080567750753112482955057969740917986903269220530698272527597582024248474915248935769716732856318420589562675745573341436599188101532099123102866026306578265253778742613982385838181054296739474008260254842014665775319302391484619189643338415386219137498184132991636789718485771758775772379515188450298037212782154277725900650314552555018897090572891023693252802465019556905349106942153323227604720803001375043244600611806439416681884353443215824845869113404046714001114360910624076236141943883771086737785237204907592565639484340613525788554528675555174208611314413456480233463849121689286576131936446176335818385266894522904440589095085681983895546496893956095960112568446904956691452531672075436972127397024701948674194055123137302875911538218537801239508983363786441968478081031189086719227670572342103610081829647380147714426095803900127432961202357753618393837774506424675450317246375274173920668890392015707570067566646849161830594389537501843483276947896616932023839456835295897312691509046411866884307740118436581599957678661401203423931216143683336494920662836185490857428946875037167535836456940338498250349613006973197310668662069416437270811203813925750100217840026064493180579684699460186970583805822533659807990776916199196227375315859838571556374996461468430170916171390443022309011110392682601644077847505461194535294293188384963972612974358185490074635934551827618608368068281694189811087467787690807040840203853033100770703915033902454112928663930760260413719218407974231306174761556940471836620736080521866696524008256454915139872958341013754521850898512601433240193334018773637832160703443381477931506255979616281162726872797239952403648112377317559328960810400109215777427763474440154112798028052771686126313363576234609766772793892535005717348179680850018327243721138748668320420225768652363950633029418365269279705589444148484709346562904359169506879619084635740485904524022365233318849750303375437156460983943000087100953015786258948671576712398657823132144549572525467109038375841158932706219729312980432019145106707909820893024376724544767328476272628412642917313644231337136213282193218146691389174960780260942273747762530220827183497356435578947411555127279117158334764506641311897435119821313363265118043370919581069788721254215659787932720613444122687447348269855792096792248873001360206310089809635861044013586404201789954194960122201646260995704583001829359619244001840803618114467787437748607996383413948727630253594015319673358782198807302950688120354447583622435711612725988394784192581121776951864319871420999909114375756839801938892374886927330815240153457150287836889417086616289778396564154475706379911837765585757642584426635816412284748245997525470345538077743551610965177235893030521656931315951158856285432516001560142331203709838315251156188891992021252446836805662641925526466298293830046743169472903411810705448088209323970541852066984546148485964246661521509279752302965795701514868531793671573998584691734999353956254831783277332955391790656091486994084985370146122518563521216538429825940210563017035481297171337773005452654257921704575510912460557206314398116993194544752290988977658903569767066327307448681113523500022620120529763953978776962597352480357635858240888477815851403336142991871264980882076302570650032272764914799894982303601703674732523395116511526221611028869137184823599806727255053510512529653330746858292295851580837893150116016262812212737180291627109903442045473674466913268956758714198567459724692656246417082325696654302242062487139699059895821171669720458464705762103636202169055963574860306326665409109519598056279839301266827406680601162779169139226587443402535366058121250639479997401638696899196088040152836927429632186449227678581573405500456354922035869429011799290483334952145966863170452737657906959234112743637717241482175200505672375090084422818557867680523824638174786574291117367797241870655101972401607481024325323367884930773267919988082495952904894371627277234899342203204035818513745047788015845798540286084488550671996049458538398581376537468388632550408606050662782270446082460349863555535858763967778786272702844406359087987832085424546646058899261143041752909345703204883132198292417507314260878931271977594427610323166025540863623229041965226540414067472684601715958029411667582575375416997397302789756056748175489702075707663719715947687881700279389852690106344497688659943861884830128898982873044192765393744896087423103905317804083707828520339326616759020496052602766026483971122298267014172164525355176604360422707329086840626366599311628946970505967897476755269826424814276247964230742374047486366836463416116048501854291869617208572411367771841298967923942923761769704805052798396339447505580885418959201370997156516148315936109042122984852995725985377934292692102308444869610348194130707355742214841135072102696032688660663286514387976838077066629529296863114288507213955318709242270100670344959589263667140155053950261927936245720160617268331701441040071930608829339164561338300019617713480144857277982908083108704801606214613120338833234399041542034309630790474857516987266308477626961470692543301046601024152232403924876569400903930501639902155442604790487102044537528117723651040299627700007576743097130476375035750532844646278367166053882471394413949984688942720797371411169989827851956318278862152776823268453508387469602926968486201107278909620026374496302405871775553015717553995173416654431205552337216724819678627379427938764851027388998010274763580295680189909944726139695767485443842866514176036521048613043862044644136473426995447850522517390415817989774979524472080786899832323562856129616667817738568678625721374987913303884734786743429179013113636957027973028422346171503932416176486299083983663219855398782234315334915022071229968930323197046436785463326982590060889615774048874382972560010516639717214186246343609009863290453457195411573064409517830550666690759177633330540182906982430814643952966045007835258548425911404424141979902278231588695130801458460788484323366296042375664664283302734293833795548216333083355514742346830017078480874462967493661538088901408757822027584970502052267661142920950708602211263959789595302989697115056740640284999472930672447899527876508472716960885435394650869731052857878974742682048607606703806896010067663958250668461958126047500629029191903207278310214131228562890393058093230309561501950007331429775489098605397288341005910802203250767306545372534644155953014440118873563732718333658382652010573989493510080853128349266946064515736211663980791138334860888578240595912945273903042121849932129480585627845224812062945684749518353415040737542129767537098046837246890260194590045160025634602875170267761269548519111073261999901253877093037165470970104817644340090379540409340086484910944266414239304336313921284626853189003689133007379919876341717706333241670335969066539753661393933561616187026474439641793703165032216297363227151380630127409896210060281798539769706568847681471994487896747081755004965268232619293803170204272534993687798122657267579477421357915785520946497353047913126518862688093052628627043563098409226185457853235669491504972264426868793963402954764447406844837614634990598854198971121000699505727894916173152832563378432753227542588701111479191642932990195320333631671311765016956875756207996767254337932567024160137406567485572840743086895031344014626695690050342731348477573109445277271275942437271782872029117597344942427618159309676853789016348663620910448738573328161696258521861646730749425085429603172073907898103767653601154709823324295334887134232377984018806957342718745957259156371664392939223242966069897087619423295622129677561329843483433826517862852881698265591271377700893853710733015144907757916419593280764941201643401131686023850556973505229430686136031296104985872741799277368839814098351959169325098834205480320414009497552113384257847620116036139438375704253786902857570411508623789118459784533543692515663422261672632694356946732967513390511253399262715678013296597108146362551485381596871784368644631455726853115008241331602666987649682553433569597058194690458438049970434964280256604600946656903577890252566233628872066498477201100262669750976290002527991952827456065958987756562436761900196813682844351878337938668544868261256987366825440759230573862291301994984889839899728047417406383224356307948882322550254405882349199343993689591295057774465432532241591452142161310533795409209940087203943482353023176515385850477222426064251019649839940297288784239859831629165112615699460497296875227302197721472224700177674412270535873049611520305194306609252851738455075165825677628525872089710295143708032939619463444521264807710419758784559621702158354465182094760237913234129255043153813526041269189917990530722620899405821812187467377655002694149528351136027214409508220986865516393745423455163853699362804384343400846139433364699778342323723880861304465434823623518086187760451863881380310833920044300722747487853542868108354368438544001923109192433513637937795474728789821405797449648591154633174598582568129085038017271734678318643921525013854921330177800314796627275684179929379772350269211152207262650838763060879737456517618957915261951804354935980284784952493932941205611306421201255085524575030654982284946414861598494492683848269963764141194213531572783209028868027110426758140713169329526031336224033774097457043958845701479483177158573212879295378437892477036277653350320133486798312400017669380005273640916073127412338490106343315987728925756950446862394630853588605167200748075242140395426106816864926740370469069198119944216558429004159785534354496128527033963831765105196843320425406664439536784978861087213277828428902438993291877799532629801187286337954730318295598619896766483032437019405470724218834627771750622365072285945116265910532157750768959954143018992346961636788805686774889526231591527648269496286397217977867790433010246569697742713773122351984334841104794734951676364810027237845310308679204070788309227676635213562970157537643384100526720744794888614065109945963793151599101412645471083061156533598916353635923605992310891354081446104917254132985948740141371192872114443596025166531063785274883742570705650266203006448297253705512283317577770694981077346738383680374773771753333900474925988872195409644284951489512620115281560269894456474915462279829515954602060516784472889365804371259699931380957208070303591966531803454396859219230314406711925540968862845210176063843899771068604322065879187301582673145887686884597610372176254688110664488732557718133548969070993749636226904707638650651914129456648780725907598382497602408660018618263917388333257628406717208762867449711946935674138675560125760416007614353353835919785433149106899759204581775448808538038067950604503784077808263748205219184618197597546425225140693823049199051095903048878919281328621072127819046434389829480260572049266000208681129404289639883878779656560974727365976184401419406771890676156321674337729617972049688633032200731496834421487473070643821898047517430858551080146212131766281748426155796644329298219541419123885203919796878469856042204576108067020103236579498572689857568900566381548618163808854438503675861566347239868467125599143361772264290776332680298625735861807632335561583957092087904101174759772345691253729974013366529161360521595433064241541335684341928459058992356503012241533031725719471865694853814227820186183694894674852103150401562424246171470157753393585475530779504448042294509417114162467181585590077316513220892195915597495218334156342870458868075764205285078592207253738805169979892369097531974169903141085276915014946751145266019717292688663289773872523185598668542821311369428604731737828435328276261830500565628429915513123443744360004920678539419324601735061063890079120591836432481006909635791579045151018140901613702032133237186943507896388021012538285325681349352603480742234747902535403219565483812845359631999577299488643141844127328930825865272669469173003170579727102278529099626346141631082281653955204456776901409577048547106891758106268883394305083082913697140682735259075615741447842432664390458121450821417126587664253034552230892776842208292187720700265839895977178908967787871291467047836559946578182365970808342260372859323143395718499593549265916906605014473580368786107677667631640033947068013412936450673430029860198135262401502784715910620639718239528239536661358107480433568022669263024738807930774549970033420882082976315103485692583707786604538543858684676755152341432578926526701967622700784677290476181781446804091243282037111381505048305818470026252669685619904645679950971795700175809485135385917157006630720076557298845756554966481158858089405822783879043864875328531026263068033987362986121172602291227490989104322635389235340101560638836972080085836286629121085250129369166432733035029787845270210374545983555857577424372002405631142437702551404679224666361162945693713834808928213795428582213589113745662008523790341157062941389908309892753809605227658739977214515236751752481412726053686512472005795619731297480831839429813070608274632010420099924271604500701748927181524083987205770397588351167752407891442190214688134336724835629784926513472744443359387915271647830844478256146615558721158074489944727861902402501833361789939348867301561738044199460985697716335279884759939264435012278252073322449601633249094590301542879411273909908991736147133878783410479581786087685275976492944476959558523850760608513607719320403958292232751256897546814700349119220120422812666132151877382076213774317216050439395749148087751286556399456120246094578161763872515456082150624579384106546344881444196287462916567548748631105088907950381483891162966373646301754761556569790292022811511869995745864988865621202969792971420295014954311138090380386603898102322416016481067839479332990549448544619043322712633924943188719103062248643613988067211338044455482298391258237824870706491658424382858795274981713041632837102844351871528336108637226175059629183915347963612615204453883556573522267433289578475814634809023132214329124820360714274053485689760882959788051129648520544824369578518937750407101930759807938038098073667404726758622165092950717621675253553271998537645015922745988766711541570915107462654675987628252452132348600295844541805941460135988469099116545465273545471783794769002355811202743095694059266970077953032987744605967407293683250164320187477950325487061616135999605211452681467572452989104917036183636896172727713728608252059429180641823860550210986728727017907561044991442121659657944245742789921540588397904348751552221747751122232104144271422263211202044410628165247516456588343951726465318804139971009818066486031844211990063914895579763571646492069716017974053823727302282972457632917468950841696952155284503238422713371747658559796589882217664994755685264150425518145170255245172155204968246569535059684243729943933754233676705409277957087609620115886809747047753992821694452246580305736676158097713984272295351128499067937129468626911927733396179182038313290504740084161153438635840684343078871812158256897487204654956464708474429383578146490515672134735589308437016680696084527296701780752509572068893488241418381255690437841558119460580972899189114321786365324206165673392646121076517859889307716646010049354238321395298836902137230248491548667808392092437397308357101200627306012190210655571509349041524509002409887015024447293980064584410529079123183710462557552754474906789674728176383638829788375935819376289674791597540621399031673670503214641919038804246959426992424810322396818489154987314427624864743077732705321906238428041169867834735597536563161005680495184710780303701228178223513592734974750405337547063757282181482906551901855371881611000195888674489945531498876029248869787629973536116407163480493074075438034473228718387976712112415679413100897363542255186488581443482177574299170396218978865707445952793567636680103462423625152082112301021144265305226525441696232503373301543935814256723384489554389149791861150722424159129419340440213981010597230543542482620956193809002836655649048359385613330815260843018471875045908101182446475347251138015624654181284873796368335245839619238239014728401103672653884902468569159554591152579642448326702405423904756119024260681149004914107572192542074342721828130394757393642667387614078707083021462680056627840517140869368286945199458261087927252884621921685524809339279468184062032111961126685794416835569337695751935766352161091018664026523622056681360342748019037801808903767826736585522396089726703998695054390933152900048290725482395047342701039401284961963098478500958381324491508507754800721893528784821363020908050636570768854517115132921421689162676814955417001145473552735494653542178821599576668612556486427405177806196570685871867327357484956924247991013371434475031622453430379666560494469514037334144824362501606297781226542399611377785452710203605317806977377563750148323827391944513637281191803678664111196875032802690317452256037192368631547206816591684814182743412119881017580069490465740556438177842041811159319976596581043819379570594977597739746306538661660470975746127873267308824125537257455135619297682804181672661524888973742408114991072374045751675547597247880291555252298004392886058451810458043061507232063333607545466087838220892557330131135229867437454744233667821837711176200116706398916021992827437370066552629455317601231697576625127585536791406319893818126631780569220458229082485748529870147336772348244968794071529383729965791156734749862616103023436038508997679155150088780546246863307457253079924617495430955305862492148291480787286095204216090280986610804388759953693166426027450853945720588528706917810808003893514410153444516145164598771912957284814104815988544831476450594547453535644275302214963797835171383515445495972261113188869262843811881079660719962895317564522676269159533609447070066181528873401055593360018769921671561442726792630436439195034172667296672839991145338259052003122041819425785741254550600002088588217202868822824719644809903710876979515643741295674737000938728050064152356762790673171315378730331912749185331526425589761101281956961516971969053905965968844467218477584620010288695350558063518839141860900278201039866347304560151048230849797171409250679676517303030547003479891839035824933972586943563487161830184795338478508590674191222807604334058989043275768430463791590592318883763700992803698697122533986301245376917355119000681209400345415789690480449325330121957187320878254129469408902061115199904929144898141663966049686323668953894655408447246143468813441037995902207798049084812457985276671809826699400638532950850812563325021469978298263906746043601490702379468203437573041696226416644401477192835792988973204607938130751631828030921585599046265467288359528199669833378409220088897091896794218071772304294079334542170627979792809710004446978142360735934811380380750931372690776780863706775829172366079371577670813245912469625148545789421698346357725271988018519898484237998636651689442458599210594168217651856011171898770926586466019275035138912217118008772887870898678725720619394852160676477857687171160998828786029351767557598889377993866415475983089853558993074916284348825795516549063188036148903284325811473446978771501037043738944634649948322600504849043858014574185838465135596386218949541784001033186294725780691861863308330604157773308055303921811598764679587685708806454745908549609782149131992275903676993761154933333338718052553094580859669278563867358184210708360375654358999491454487495309363341199570347686599049056966330227235654079419224937120626097443374179165570643983768913825441192183272091452604870751092814793087613852212997503496375475475451665668797009912562331797759009496047693300621105274161400422841287076997330491717405521143378956079447058548981415594682841404785124986373150776758504777591563755213477126255541028641294484528837767576142798971024788182909068839033114019816359418203323095784088659036138525552286683047089084891623440737395288420089851943883484147902744831339224064038261864882209908732028232252600375395452272287617639525803290205234388128321567098662527918995199212410253382304531973728089748330622556005458845922410640095759045127265367452432263226503287353775104586986494495899788066341986006520646057216842792736457720749323326194661486374202481395483815408165123676359831434032014082958744493907042935182871750693293386585703847334463910517071865429162961092076372732653716291134335013421191864569454974724663301223604497042491389946487048266714709616340202745237755770187241092966673130417816224158453580148562894410032449995381642300180176060783228787087789313094034173743750152895567283490855813663703626206957975970752121942572608797578893314334844272981986927878844633095493879037223608565510058554560315848316056827621880104692027153378893292690699160867954062807600631521944591779048375159050539261052809040336005005484213018617994471314066308772236970014287854974793267630543242591203309106921949714916645482269941532702663057027358997300172892801933489524030383082088817051511076991137222795118523364652604256586230851534218081057626659401652357744809256007929742711519423764469419870141009727217401442427910819541285059932838058488890607286166755383459589569581757301691635448229059343693320905291790776882111380113796608587701396671121452970863845667140740938662154766146614662359006656328616288735513801235756280522805959296157810075949828736491055421068326445284867052298476012455954624936098751227971785423932415508056352463294561505203309986209715588351301534283211777339217698137364130021202558104472206222309919852083930072883033429260941878065029729977506760006734527649735537457052801994577289686891770037097043092029045470894050421003574144954383283253816861154654807917472488323037024659281960002005648069719275430170681152079416686264001447712231719003293215682318454701989406140782161159054118279087767491987389639848323443027193486143205506628167088814937861270107307541050462052689556873269470389627868184836923172301654332165369928972099560927134781262581104174343768344369312985717622912059995247700244100439851431130889055301138718549657033450752954069550462777535545848598161587874302648463573677402068637770872674192656248480886252257218348432810384631760302088334945459604799903949912386368759654479456797516370067625567011739097809726281127148128311181188888556633743310946173437939031030425258216777742554185144385014606829160217924753849682149253125353461742102382185419255083248992116196914631840229974206363890085591994154859227998957715277551154559088291067756715484637962576088919649979217234189238235285413719137350464818472846198535286034017623775489273565517214147328235157071990106866399400823441926213694225108057170633860197262864303217289983750124434052362597382768783907352219118140854847041877473884654149935667348033514769737087916128019158016223190932829296014136041854448514886651839927705290785681695085177686950875957308882986930986093881697989153912564735017281607180028451348305163676901001778446886196639652935291890374818654110219653428941750066837510904879398437686720754872615038837045831203500910408818524339444140164932628898998717777780783547852095789007969587792951254593989823016120052890799515242098888759266480962337273477092517484112619886194910988249541901818604052113058995722373574876082540792596794583369556624803737983794197298388546812760787171555389822499117763745189174414960620869769956493916392500540024187009584080828610647655647608822761975698824307010649241591968099170183939706711542676459081436166188682869431088611637394800656378093078332691010953107413695592416567430596427151830247093683981309247007105955117706590166597229776610148917015691565674195921257699358598440398135233222268520321168780667740247227325503488686103559396057045727717536624381847774891531322092367535654263711974056651844251090203110150478795139981878474807569842478872630654816411282446146199680149450307201992967252450844688247255485869486279404505473599516508832314002491724560839817550390714633857061928192607256468781768756708653774808721163012302717459795186315954276534320944632814040607982210632402757552389749143264523585257415105843975768358878825120545544151991962830342045004878359276764058667910575139723000943583895777617037276791800537300780330913465678903248753339975290943594455575064509927622286477399448799777748746547612416980458903663312441895694928257826382235252106678114289886127057452202058204343508723633027324591811503932667708554533204792557308891015295328706191044801124901636918204734351145076807215437056800342169062129407983176533253819897083634444659647153233882514055732834707042614546082743878132526560661774130097803592546284611910471344849229674931876323779550841351595837073625109066448175191536246475302693865902111823341887167124144213561568357189992670914461196106555936013829746056285277886454177246244698614868933553894886788084639789530810018584234352681791627346897883867538181733068366005707032335621420405710038370339257804147300675105482849934719398103853586686801697034117275571640437590125946000251413318804756044682046706627862791821600920849646555779005363126961539036301078901840402462920816938849883998317788892753244870501088874066241458250485494248555944319577169346791602508019980731665134214434760617073684263346831208810961910912408465741531173332821947941522976523717431986652145808197955627417290259456373306235564166940551155124914412669736435734777568879353552097118754785506188851006916169344665806988853395679824308150130822178344185037641972503574310392070287977081179582831855045454930983637489527467718499950578557849328886319741868384020612136925862657726987853881371605420563820769985687209567418364889550030622828407336598759938622253803240177944330298786765642495566566554279923607360246429041757724403852764144153596409670466643741549588331265282044687072790525714913996211755898290370082874600735668491180211418163691752392889307363738670239682460647672315140857759775819829081064905253809911959111611261986934499949239424049319789985471992514177771877095370656773542180303294667075560744039580514092905273687483593000066918826277588452984456532304112262199386523666197840417069681848916727951750811750237497440620735302661019395877275937998125430058115714626693731528496487095388315010876425367807286825007235293407828764732221043128291980202574291038061748140584820523807631338161961588013025000868797540282797865860250982913247664908656021859234202601946811705977638141311623242640624004274451110178847956021024216741113787578138380155515515381698639569601735780792581296111590976891149105703577481897912300257508235567061121128723861967531337241596424891578543953050889490722162525422485176951627292549635624238461113522601305208998831893335408630394848293685157957778552088301326161925407814215241901940015896487193680730618492109313061708419611597901670310258784864982023808438673855424348162314133464939174076598489500828294378121798168582333877340867994722882170420963038897420041619955579384849452394852851541361055773681720203640486512073696609737073781074193547362425685789014874009239627329396883050896605953918200620953485106566911003452710185833441850945075161061539814869279073126340648475309023255930169355987616218224455789079241332148136773664949928550480633964898786998436146559415410643276819261241994657009827568622991779916014426811517003007359636000565229641748851438441151823023034974739712265525047889893990755944116787901287235675303112324908300175645311660352127012578981719019367535708966808346560414800373184087498151072511889176393557656148603065171360024855487856689456154075682590229522330483713119159087656550135200341900127535478673197022942426613962073111349817146613106210073075020585452417433752008010378138174451113450680736593487396926799918289260458009696985342469043583469023645895229719823970649613449273151575168066314917696133660348957612193382470384253530793203955913577343392489103459991103965821265670121159018218020992917242050419834006261873734476813492340753337041569166555699094100011153822000204104628314797658458582953075175895692885463155836132691801624610241158863959812337049772881372541304513006497308349496766755036008085519039413101809376286283834336444609101748462703661178922183998984746966544833156649923749244770966847827423212955319715036922973155245669266409985514327813997807591223618695572953643127557855826534797598266623741883508070287544152436988004173573334469099861050796116437672679131298925270406405793333001560168876245719134818583113942975983666758007194086988331328934313945552535535819262451118057643461824289714353471105818296460416299154284321148047083756862481780779762241882794498277490489218089627477447278759899564575596541020988528118900459872788924826667048535303403255898744957119667725937103965833511844513877167562699831071231296936862709613624188599523718408367834622510871415220541099292250770329818034030330560279485701187828206445023435588228825756491278576547369590841105474944900155853060658879824556448443257704827669284513461099761797496848886697403548032301198206887795417770016758032283065143044526782748597666963198101681117473875326046804743485200554545620308205672782625234915242071751246766668659789691153903290726466239729467637804589700580914935123379640808954683740433501502176505868287194496034746654904684149254327592550423229427243235747271796627365341865370502680659944978171238383064359416309706161250587694627092911094755951406596290408246538301137719842477908697569733688782172951772979672972289769779554149679644647326766888787650679516622448900641714026668672410537192838963243841378103866724116611310898423127289613269621273682999973777963226135610217448604708303896644513039291041959509008168296779370355670147432198732619048368867162419312699031132395979967830083472769238638644704633668276050353191449142816288558178687480279754742207375485901630180395459863311767000527163800896452678580483511743806876190242303374333649153568295070390578227357191332289501325336604191843103364825272265021140156002337513135183369392890616082405532018542111190456722661769338574412535571160090155778193636745110777488750206893364713821004382306694905057747840346173360443208228950920958909875000843568933915982988465603973879792973619373008239120787324238611465520761412067077894091399378242824460894930742520637920883254899991875422486254069684386580389401166578208146266453925176310716337710971639586674631117872319343810524150748712990005440379791589822961857909616276506972847766322135090130109382207973039749258010427593424911477063633401773238691881488235429851985211874963490114248853660662751189994558343979158313094166092361336452669884870609602525638612887320262093579364741895068312492721752875953262999867218749801974930073970106158295620597779104080073845389824762358857836358674891477313726743111812216141382646577707524575779078315956389116074404370682563075416093706884630399843938346795673163078108540101528914129800924779940129133628510342173029708003851536880176628278454577291517377465175910133428853103324957953326822779967106934265791254966550422756067865959480809913540589845203652328149060735703961524881338214507476370934615222020167594935374744375010599400468867932505648747735835350215494050795316048894110301595532197153145005781253434873004786394693561742657941721949321298946863651369323295327835149602498465893051197444552056763130954586180391807186902487936231396300664413777951070358110647252943520375293788897211558469874956951595001105546302939907747569946482886006569073215291261918756356628406440303633784426039568039857565237963358459556015460412012561248345332215113599331200540838397613655217668134762190975991525646120218255556315510269903471098205576619465274950402117764567138178087897980972100129901131833369265526282447516216046609677553348872000731811521554840237091532312531002825608929896485080588659636285689412792304797090867486784559002676760523944565407067263479361958025313682495683971468108967151086338009526951421507379881715494151174007904285303584759279879112777348008256391157232066533095826730061098700660134712894768865493075156303833638895339786431059701579893046675953195509885329337206804482040063015907397619082163999592220038576343362529346237525171372165988582762321329602218753050814318990935465480962673118653266657170589925092931164097455762916595444854506159225216063774412093170755583907715986916868498491620841385253603441637151035326295011374358134717473953806692248103072751037876101538664375910370503958991019375891147676140666561622174576325638697626369249586270597008343012523536654393769487988738183549377460501417420651824542747224916351465713710236620435016426312047446350148558118823350115402148221032136895106963174728324331205516633972388798095507082440937867891791932635309951258247882458634740869611751795552987939154175571135014262140762897039118487325049456543420545429577671152136164805054355706484228526263232988454600607377177128228916764458088480341258534781359720423244819838075482287165598982846906406430196217219906609746291104075045425785313243484156798157835100605294643175244189994140096341856220525038994067135518239058073777422454585040241291257327534967124727200146284753258232146312639319449142713197154166460068072340490127063174503771075470543122763623039702096137459877197429560135701086481287409894304197908673613855498154404213352446161654109583566445457670102122822319606619509839672315588770662321356564567875966311574994808372294288706997465300638823533776059802056759134949109278119874974264537362266966039916613888533893781584457110319811732921292762437336807878569982471754081254239955613895596805718762865731303630402671141803203528545697975964502806622905938360677806812232394809756073612036428197384295271586715130332818266715514384214341556966700806106677255848760015923400153216933403234061857351927544155446432654500914850467267852127691625163565928214475327585981643696843883809011180847135508971685020633544624414247048180147497636080588469680400927940892468923961018956326205471210969525903196669270451525383825978887673577480194217954526000518460311108580463917184178331254606822941869893712260032635406475115983736168847027301001923332752908338794502791631566875110831531804583585713283534526712651034983981421929044432188558932292209078341088798357804810088188335378050813802028643383658425666689840263653193339246948671581215723678333678822446110800663554865443995936984126395668865515271955953134583991532098198448930541389365756012908653985965750673518779232967560651162072971917076848822706447333661596312870001982217623920659462474858913243179559357127636113269040507178836523991079782000569793663777043283931406905916565708882772093753655159522642286429717136961409008218842410617444687492269514853480646893955199441010273274615258372251555670100744447093554864597312371312867484182342625787474034431594693055568001620460534345139954611435825297035155075393322037780710968999422764877251011440014756271980039812307989637360605075372158511727041642926890771576243508653398205317575687694214917989159418666781945756336536370272621731241918393390815763921560808539147506453998207314135017130964768716953950652794520264465010826423948439735021178642090041653246535862047791838374668531314168697428321077338869535432070542165195733426198959689728522546061032678695374352430127225766597994313974979773147301527483278394816255140182208705351204181464288693309809304391743079510053547717982242942112589425365585646709889848745008953073978126656304494023283820843564238900412181406462572477601051534406455849411730725869273273184477217568683685598795648057896166561311762931204908904854086043612191508055954758488837187695200617374917983589294284814052672155261618363571194999425112753631889215783659264194190992338400279060465358339048956289592474064498025231909108834353796739681566947104986618431841650136184834878909553486110925476093154572288144712765392693710371397873022420077067838497218568294197775378424336336810906433394949219410357534916804330400485196364958732537926905236323217377960061599408889598849863476263920353510172875821639179254817286613164400760823449061973344754163936887156840148547305167681707055431650034484665871080868767293155433770243136240831180709531578802506571809005171767759375958088029590745544773299030887998229150866820787040926998846211602854694510619381559481483989735932830728742134119139149769948542156217483418098182415441213006492818814024964261628416681078214668727583814528950502567842278868222968459102976217709920299731069364259680829616061020395749003194521475548800835424603536086046585680299235843397941914544848217361544194967096418415822594841647669454806514212608172950483868259237604328811743647236011921184991352691828152407126584847786289631119684560018331470748714460601678349076284715381677379166452797935287246121954377865037041026973014467521108671367886463850757545218462078027328818584049948875966096577492046068352924066463086330187157682485281026415378645794743438867884853672677203162790099408000027325280594357996859698554741190948870799256989837923276074720568675726867949096302324514988097667075270334468849471752530444272333216551361922038257720952780778960681960530637851824021591379228205789023712824842650279945274488801308269983217777755837039265505008585342326372550531452513725171296960850634619338695009038254687502367781829238985981132692055103422203984028500476862411899859109017617887934338175140131596306219237694383207029067433780383128308030599940840756330852930647742056580129286778784707206136583755767860634765470754527481219177934679698956813008893552483489896897559374960132130415570957272530402995543575321404752487537346055106277162101563732882926137097394282280107294098224739873477279055206957765734201544469275923962094359695683519821288945393445545242255813363718467445069124950405302387512689299909720463942141251920680443006676052960649579472264529882194000731556766374918192523937053174387710410215807496439369279392430484111448618500706421865154511760937525073855449373884225521467386787992270661387079711179320554758554428193367602952885425929268558855442009117697550641293592544840599900388859436007855966490853439767234401634230204234171116975261594466062740126559820827569083772982206145442014296297563150460730689403271217863782426361979353940848703160992980685181382043890674824148173221054636938845149583576944408308986949623376232509136181820897659720904829973840746027718490757887677261037778865664609612822474877678916012206527199058761103696971656231592699969506558928484608468681044739419544764646114752554940836391138388082214011146823246586871410618344843221932032932423952609044473128410009032861418092639117259760352681697810423065196302552289802805264181316347718778581649074189776167815830522329509746225829314603507408620660413895537353446995974196821517635157344064531698196542642716537298245460205120642353484546196336636230876592090847041643099455077252894290462732456904335974277625234029841747388112668629500432421123893889644459452353744180550737041905844880548551640977415829278177883328156953969362166048563456522114241522484325080950535386837633271975710295344878644285923193395550499577850737539698305839320379098324296035959959409853932477243531490335480010185823801721602286823161022171084138884000207831932461509296412296692165289875387446489495720541004399025413053941954960930596932350936805917798037449493617591771754466667775665109368527707716772336383526206851363911508577661006148402698693879690136627459785515866243054359831989179422241127780100811306481913386315004289778118864426518748681897891709176168343920836430816637489612795675468824757871778414938052492171563220829902586625292502006314656528004334326344318681706234545902234784538383549165728109236571740871164986659349651676623989711864602976708338498958233927164872987584483066603085103125995570931105559440843771892832258705849112979596235431237434668347870530242858555743832224556410594177940958322371549931227591003595111782340160584665591371807987488776438067830824814205755946766988753009382815180469733393286651292890775135485686937864798157368549596075478041583002693776166483323335174179647954641448329154187583636018748179003475569828848818928752057942772013594834130809552890417657794823678417929464355518519675467249198468642947561290839732166569602050281178644242085752477732000672327794846534805353239543091660086117709978387943392026996425820360146337193026192921735226570350455799877635164768126323471444558057517739066226843587219879449933742256460733349412910990654293782374573358609729860422704516865567732787920498645815703914546788704196121778589879266587527081600241252006834151340556318199856980529073805357430407470755499352444490188101890854881661296414558561913780500321742933194460486920535168653822201765834279792389431980028540289617753264362461920666187216757911674389444485027560573209308218564143873244319496700756011833209615906642271041392379171900975744956847453279669198776972006958318445533816477102621625786143076952535255723980924528415967388695667411303221404171499016676214025490669283074650781322720919984941139755413822499852064209605151362914207013110388461983605039586923935290007962132109567332992212089004073175047449967963104104945773946142892115855238522153497384548881693283203259907256824494848963847213496434716747639129084876762738566418767227403261892794819585322527766183507024815997360978549684013332437145507891396047266587084111762358470750209938342080952485462861907764560559543374810208894796724848135013846986618288943018832247079020588029668335753234175032416626524900703986513994941944256869823284807755254826558644183319320554883870006901327759617766640030933814981517526828954599524839381951759917806632902095866985512054989225133510999381834159655080291182209550429609072879392371102441816531248011755725612256224671804470663319578962419784131634764031318370175431210692256048767014693397590616537450474023995646202831868489814727741058991593359994184130734257756307347500659860325381722384994920509138815688966907862337811047608707753703402675086910658152171477338624107669843252784555826525586128567658207261475330759230241297434222915753345504180213252216110831015113551634023180319811066804621850717948310987289485476638587213735602597560851040641055818319216233405070801850793220854967339504043967676583317675288866742043429064675443530867378154901804881438964915676233377976044846443828378992349672849972232784375658050627215273603781941461348542076803663934783845327602220161199649386483072665572564372889443777058454525959421460949061109439355808627630311076776829475568854391048158344643734583783261706164573316535361708710278195014835803075954998596113649993858989339055378390389276142153339993061055101611116791834534769518786509505296569398965559950443036073122171794355499826932106603481309770297966886903012970298623573085822926872162492566987921416254512799611261224400991399544329742108073676492125526885462502756353481219224615407571696066949904525816986966988014370237011592557043507489314141398832013803943183059865046697868937923179678268170193555582551564946839003312548311334325429618635900588776879603995165912525638508254058379454238327067495012589259994855547257836754272280881393996434782902292216018775938224975240453304082725956200738032012961410004038307054423501731338864163748488443795223249786829048442460623429249141100735940902581809656597682442940390521803873893129696309566781132201558730433457339378109590958233374778339705207241967320627577300366065537476840137557564002944472137625189482199246123248479739096417242842041241731679993389971977407695235127881578433985946766838084159943568003826008428388604100011096229960559188374757046409393123635860883834747759204457031636970800075786565989891713825592126290956839479615821207779399274438579792637458900857740645075099185825246331973457067745007326791915397416436124073010946770841848758660678677919957891426596748393559698830312182112509591949502838488425741837873966796132267541783820241261973764870719090607922752102900666897872211758848988579261909330366335699038449375039064376196199929011012576065230778697718185012472855358456999170707916413947696025097621048973795524868391301244222105044680961921666102039213990077309348970693352772439708562494526929707749675780943862877284702491062251006212327936307635112067035481139478155009228447702141602712406528902808581810472039381467259186752496263734083490600854832116875560725310792478271863529036319223638532939187822949883020355715370241171740726156860999660236100368977880088106087478592497864484138297407605627518706435424966725700101034366323164246812924289472373822585284070187015618042510988013109969527907242222515607849578719283915243427434809301953730978045168115477718593614640002407658431719133987739997901775054075980172099015189139997588127146725629985353248044335597100848473658321294053737106540769291330773825173496061911470744341198693227380143445299930627685734409488361456043449181403662503947603427232059901095709910239383768806104512095489489359292414261639387470314665192279037738340054550767955080174220454667204416703093467134623553401294277721384981117036559796729411130574613337050422311104192179382498138730711457707680448528355442337746864434260751918219869767947545043629994149333789804910699819721934034449727233597280648973888538626667395837268653379719213334088133253884738685755556478791548041728166412238585767671890859071650240015269806260813537525198145662627048168056904010335213099032682152589474398269602286698960144537486882428470121291309761232524351573093450669517804533277406687159173302727945228045384759166545705488315838843877183466632056791054975580089969542138326823534279487191835103413935973850407413037374343171751023404738242856886292639602128433307419560766279740985839609525418403902795182329656189274562056150235338781671993010643891490988858975183430552319961418107089387932489461896906643684189732051632441699399962366263191464788679036917827335581954402082487611424264820158630872702427555911461917654121371725856815269157396634537861981749417691623285946648850229418217098223695417685688664285450587672489975437511855973540457233624486724078747358522270300510071505527398423875165187590995173749863504432825851002575069640840935494831304014995084012790923001639701559112747368286139761904765237912275465375393518938954419096076196729177554949435180043930609206126293337104378834780597582143321990606311978878892411599172783322303895767175538161230207525246533059957441164511278383350682236683268220772363259233942492986439665676406771312204916708336486920419133370066900705905164310335852615209040063690436847961503588134038074530342977552244791849381602385733882034460955564833679227208131149998427374629873857431124399481614581810557285899203485203948412147363519712238088254465543160374170654994966177560200218165602362803110924977065034881159211360451465495468855844449208622394025316476100105817387068026199684076705593871402598670539559573610035604952049820512210330981187741560087495823767604817176111692834688894386663582378143155310380919137431727518497142604796595339696044092866953768531709491976740206052730646596927444317462093020467472374983648419691091907733409848630087441478365001114163914954523748566991608251908972444637235592803917956768261468532582236353219709717017884787076561783092110586368168462838950784395023362973635764780410246384774116402624951717863381475424189217574537016755521024444752053340519473659986849131015498226425333424861607161429023972603199996990055242383157170662453850579366992048494923416008110479793149796345894502245230915531370305825886165490136703928543973285664803438914231700788775369702457529829554448604181503827883620339206224470699400816823461825373525125751251444877448172394627458915344825402118761760384580363718488076109193123329106816703628669099473382469291288246824680693581383580989697058021777187838085865172178756914284960279167317517379141587674429848402154787207071154448883657964713713281413275439334098488720976878591018841239438549783045092606507925202323586405376383287687368402912567373405233928995898807539146916089049804085216608231079799783873008222686051147317232170336339800122629770904847184524436961315466396663293721663200448043317644515051372031589741670745619680965031912229212295688446807117722896078439476638318834040446750586059718748175036420704793571048679911976983101865300713124332222218397142998386747509652169408798704284585839060098679390131747130503370608892017685887238649157000167034963365443122094484028887839683881694790762033232974390358673577734677144205639976402032818278856023100820056045305555865023868715499296127583368055646158098371611684446785336231773882846441064634173627107904105912011934932052155519019440994007690819493142670406813633129913928268259264691300716448192417799551181822844977297416452710402336130522494615016424483208385065124591502630977630450644315957017854423811114490598833001297932719527765340606961416260197518958896548780648231875136295085976081794312126635835860468310038596148648277551113152412936132396632301651159674244114928423278417776722476729862372976615126533318703984377640791467239623268458611243916832175680129035246972458448373956866550122342183808249252849668044692306967636538803690580774955689602488820673368465021499404332733481433391861587075746611831955699371780863884526336300720348561947751010160357880123135836933198876595775870661883882281314274422160663383049824187961886195355915059861570954889203718207182812820911774933031237574267481560765414086603924254378685181522828639437524656887807058299864289825945507990660008516228434236548530146087400479705441526393662732833188126791574633562001457039019253135853786533106354591109524152053894500251017289641494214334407939262476104179100837923565891606645974932497262870981292878208482354358145431307461252695053557232919988943027822807455366866163650205019236194938699968398884743057225460713091568192815481521562222584897834831512615212897999983212846530794408323039837369293081503697387263533527022714141447766647938574267279984676519246113409913226514007994802725749579679505815129523806696851089893810009948064686561620333406533365418335113730635559357653070541291849836257216447265499695908805614845039336074356876552420691727655575925911848130552164809982643230655258665176067914037111237610180689277992236923784987587429782928749252413746662710038688100207920392858411973066488323056621708730020337415813535473950173385426409556518506763590734470149344914172523250425061412407708594157341592008207022122458257078171303088434317129721581745513557766055552868285293689780047210298041377608209307593078988304449319831874967149766050033200918276762069190476448564446818008208449162062798773048302921963135860409290774174769889432182486706787438519086373673448495108834891427879167468907981933609201546212119151543727968778649932720742750987784877458379864592665904622606905799846745105514140875064871689843855405991338711868017301268803213140652142384072462423440911460020736085644914498219230987243217494019362120899791279770033902274982000977798420606858834919459958007650826304161482586245746427140891703271030845847762316973071021446068651612728307998890387175602386421205798751284045481230224276047418387348534197795837274196741478264878204439076823242883933126155033927047509793556797857676523760650080955717070507530182870397516988801042500891166079788868548433188183115401547662881629756775747078753128226929181904035658434499499081601991331681899085732633968559266702803344304012883070436843001397090715983717942189874570669652775352941842194326260344193214743409685099022284725104477715633082849792066099990944567209324628218852199187667033343849502104157402905046962087964025353327376619131222487145062898583918362971822643205819747427859343384206912641289434866122023117881721774292465705119521112324482689340458892179329591298335586307330546164648361834970637767247493715848431689256814215285239546261798092988325206137783423677882380600703401407052931831085856678638257429869663530965676279743136461480587669447435821656225647608485413236133519474908374111367562448510260410580378313189517875204918941477036460729149290675382663458981848242238704935574658373669962981167524578924796930653700849615450501724371458543041249584185668245621923399902499201900896066794548056793926883677438246446322020980435740068783318015741149976459512750802879014631503625725782600020231142213206008649947123539281766457280849004563434094847076084609372269453363639612804054650578739715399354092737364579022840186357846201246733077095547613538438067509307777826655391214825105154785942979772271308688150154102796283257564882318562240652193198603187511228720156465792761959454237133102124904639079504217399365637616692143529107911167809827442459664507537948463266634334086652388318193085614964991208227739098442314498236408537212635292167562696200642952602401153079073230498823429529950797112822498378639918200858264247327095963635492469332695075473284632230613328005042854468937345532012083684144984323204928782935071036617153875211724715672828335353643266256854538315877985823754406656680650392741261308266055534483529411467780081371737397170108863656660888300737047579996195429482224537905880042082983082274557841949924110529912109053992787220462522493048154807542191887454526438057695377348996589339607275387438785776232146950988690396661804292474728442819696476021672602422289136523413371490315574104788270002647894011199104082346129073849770492335150401674976900462462257792943026074840900544709811417575117522806981554762465277358001477398999440847676852834277419718441698103160168079470880244393709118532090483938464222101946332258150415725843486573802155296900418537625627860748927767953624747160656632862476621614286362470590957371045763494178904387957665173166251081493887564296964618698584888286598072518664227192880314534605600568261340077459992852947719796677929011018065963732753148867571170683655339127796190991220507383113088491820683052707263485271916730862161997384419319549681981085820695596489603869816491957455958450531762578363474319915131641266782887428917281981790300238709496477412016778210405481852023284743113580207347888262986881244415948735833720693843628266594782855969067988795050199078402567378363485290240666289356125764638663312851794509872239581293879619462255032103144699132086438141438626605317790930867040641581991953859022678441614892275386494107195241951598840278833234075462068236870554788885825810465712125720597391971568809697171188875800084769751642098669636168295609397397815678862650693608500427786961791738361118827802498990315607516154461582825191484419297085228252947503807955687008437866027251328097006109327180327012741342006409534689936135184713996759103731198582185079121580044187379631524061530677455782634429302379716127104020390737025962849596291742593833575171911755434315204812325852118837232799716901053933406626634015703886651526329142710081790766205295248127613893960743787487579390858345155850938989594665469685961332581407807822609118382555449028041558642176762155754420402108450011897243895933954781226555611745408561975526511769773356640916481561025597897339267145343708533358973039350676892736239028874432406675479099682236358106835691892089554757025867043271517312736917481626798150489413789977117586571922844694468184928560522973132415782946045543618422951240060384422156187379956673967409703826169612156174336044038106708128083723005452534705427309673057858524900490069318901093417352098963151929614859150548137070350708877401041087498009389078185174994153945824140163464363979035581806832900556780816786846255592918260092409102930115305721304749915460510471553700816259667240433628061638217103482753959145915214569623133879785413636068249723045116078984431261108683676010785120166797457979253554735772419125770484496646441189717634238348695633666890173362010645933494462337365897042413210565602977311847911706739633863575464522776092939112188419581555806047613414546589912479733615765834234515095279060293421244640719518539128116521108682365901585228882941828913328755848063599727249702094761829391965450703444403885856417661017630833287081558975906182098546576927828366031409817694571349405561278458175255068133428815161474877818734469091480670274803414879171672166109928852574741492563866722118141534602491087381628754193378287532008750283655509870611832178960110560643135782819274321965421063751275232247180857173820566908710660422876681384078584723605925422289669651593303134168597592608127765200646715455513687668978186436353077764803622621130978404306938109998546632857899086836655784641446470118417520885347481055451614878787587417758394078609885456358245632687232875318921354148741504855773877519698074311155537520185751676161299387971312601346389305378147180904037938233932631729273473418842848432105300989144841122365691905399121340070114338610713329061152499866491892937293204444159438209682823325750445697592899403657078068658564397274336302357489630982362395119334951821193454047442329028353749496330508503307163277493545127184032512797634659911739451568747754021002663307856762805047185012847130625937817876520264911196604069100399603189885661326126254926883679379754296081950013234409183789696145017034098350395505683617831588625399293649409588782596651332787379639099949810203971428868931955548341220058415622519980758668946924343411434810188366026006395250938379520112086883576211690232155610612948242036577715970318650695083250907948733752756782086757697439094249431245860135475410628985100072959374484123484382721158671262490613281411348592263959727938773858698917555937790953668679216908399272688375880615662144413581435442997114632293733257053726471852342789271957862297106200608826184171986285539008998002219178965992785349963181021693795303355293371408188854877832653287762210972850138181909959067905563646237399364905424613722763874656005193955054092479345709705237575774960566686551622647842587335390816553487714526849397934842200671902388531356823508914425420427142785527822149008049092956119753984872424648065303911197600545732293150955155633254960253837979252835412326578615344300882488781589450923806775773510490401488553061460898015907983675776017214006699414384055624569063322812739890261208839255329654845445700186522147380547863168439272958527598669305525659054219940706018846653188303377467879043694740843966408956855655094560014321389608490423882226960528117999238816255389900144910912990208012946742874894339467262069959079455182983812360149994017899212674993512979230969147483544127754414039636192687834897478028743726491767986463698158890384305210170088792827362744107193280611822137206560386935981602465854061630606038554081925903450930376685845693420141794756902707545676679856984351474153908966744282450328471693962632511754001773257379672078585616156493035122443349041389902987456577467259079709336049185408070736780012497950491064133979385998937545292230557105419095968582028232028712797658840670600005790919389932846902417884133084688045478899078442912637031490905788443300477029773687653783914556777762874849589328787090138814469485152443624916799645180794910748035157405163804755884882615496317775332036752435091710571032492327977194013803101222696832344881507961964945408895556556986078844682986156726850075511815465166378570367722049534860668180808108069092177744784013242197914438632392761305545208995086685853821120505742173249340700487510460462579023730504780614680762115831289116078404379711957708603903389205634205778878490552047106489926850248779473566493401179294059039756046588151274389267620174472877494172177853207611008046337401763169621606300291139815918133833194769074953428448213230126555012992672912634258421638187902263563918682310740341615454773970536482399038657583607547883327954084785630739815198279708639359875817455236505531061203888299573250117927625322094631805449653658783732465801728270669062416656591830809364607226938559805333902806006492186671676477982993332348618891449777876131492909406756261730933909678132658829678887189533998496380848994685818892216146824986615619167082861665791486060265271936058348455216219890874849640434807718887422646018039506968366545458853752158616195551109362827442367317338793840505650480183446082360580426366461602237275102871815390950247348761229350721519955298059177923078723434887907676512282276884291167942169825562803102163580734442963236841596995097216715458840063131167304697950419057013891693418095234585255768296267308630828935462736407203019732936542293650379979471055491858016659494660219869389040250410998471433317452413729887850513602206300423686725560080910271185088242194205480442897606464002163258332847891130505657031834717643209847371617017706532791509672830312207298819590479506104421756344617874344733107421660431247427465846871685178250098266295749813287274666846567465647635597577013890519712095560142404518201179925913510774857490167120566651209768573193037583886925571842223292154768689457301315091056941799023317775141494808897326544036190091718351706469413394377129578979569794069550440864214527057659574949063457931322532355640682981837563700957640030375381770821200820733066886446157069661756248997808933074049903934829811927047393368396146397915802168121040326913021225873227623416967965303056210695295507745583885633808975079891327757586099004793763701156410671811123886737292933395908023896402797640379682576640345225644301417369993834773230601681490387177376470740866568081688885937289777040248915702706166767874446693827421254099129692013976781253244131035341110308249991763299799490756183570775570891511512052614452850979584413060863333170715118505131727394738786774179088389749808962121005672827288826730835569291818278990402027004836692011548303648567512822189392874905036460458195619775116034240985327389491348944551026733229448113795592571050777943546036942620932522135464720888405423195429602647805556084641500508787917932938069715951028023414676948451458957763032185126381266472192268289828010648288862226633491393216093862952502070871728892596174776414527968086236124030670338445073706078121979703065870856047735490030880121490610237158904754685927430783432028752691660180593711177439206796959527157522054431107515688388966433700581506653306384401971961464443255367575617131673117227945151200412067914640097275906824881684201552034727977091399099952495806658040139809249163139719647083731373676535980821356529712154683122090525686291116619813554839300302280558698794438426948108112314100297699760765741047290367245816110363714747571898966277930204057574284060183345551280147876926843380071698541822348229891874284252855844595450405868296390288460597253998745799090729212710114485964519389340088680024443362737470436660532226577419885091303665286822646935910670455713085224335095738707522414207707211050297641301052596579792262570397245048494736113983607187666076020568257309433156801110848026121127140075763480281625128258035963248496620014487463961536341679430078674580669898413359281611487773985661901054028078981479099924168507431887642577281613420233061199423197387234110054307555819565116310011178495563781043738471528662162012134706309027793887622030352130332156538523508568014119191809990364414172411577338280582213002235083372993752016085971906038941930621353701060257827061741075200674207338795539514685176192605290588351151664739179223108654604115155858871599700593191058211122426503923235154230951860622505371376211121420821281236671080388542458451267638059170978117441194655391183033887528853946205389081637554748822222235423715337058852315973465485303235167580443099602008052105213777897110224735225864681232910537975116949932549564307842839191748973034557474208042802921411775485501090152363585431124305181903330088290870503039009031410062553077450465199633297550984381010139782456834093124700573186740845375058942116037209024659728563501452068734509566501324532407883630428484773281230758792752481627142715732819377780407764234596507336343955722658996114686877368964860967318558669208288476104067054272451881324576184007354704236847723424023347238432552234619576587890163218474334124762953468548970964790414138905699365918224237741952376171441977532786936828350729666908429790712442158087077600114132703560178481853993147770027019820412526763455803072039527011694800192058049603232909131768298660070966880863846161932209290686495502739966823010538734660589186583123039224786481592986165599151521752946995250022388170817074885274666410540650033078608706147449543194215756189389119397261496970525294032593429069863375783157396621442665035139527074187679571888071908265775751502724611146604518825668217903615612631407103084005610517925298142313224657499801624548720060102138732905692881216583513531848338897874433146536294322455502335578672343075836906257965621936082921916863095590480137195864715851914000472501558582374673783468633394347669862733484361830325324595696587611859280900298807792472125850580066164110710527532638863665256265215960367014378178777831234313927549765715884252760172470648335755523262868210000142859532069627490592713340180222242721184986062140160775991306858069440328090611809686094338238906581165178407950030596479845482650168460351237381328646003987260923485997995478403242810167012552856595927170242882548361347447786999996710395074400922845929997564198358052315551468103905088040641976876738401563546304771404401267861881947526713612201756144807023082749011756329858937190395276387073909750706080202190710448753899475794966341327796839909498611197561898603836998447462635501254664508401484659286373867565102662564220137523864196271101878337592375854475346135695003920231130624025106044745424678043607458888906125734863049320381752229654999815227171400777904199142239106480968274053140604589696934522393638984690473347836534501244553761368512375618539406489511001043773896927506706776767253376270736127081092872172144483902379299740540310388501401064695198451374356137508388422472774698499809532673355532357526379864191526950127058583319306522877413453495692583105919899261167209536416723896805697989720082190456735257624437752548040040419055086850736891811596316262773354534974369518001426528403355084649395661868415953407445091790408008034787747219633995822989543141161270371637688679503548651791823284468444531040876681345302781297600081644009614720241961897132821514776011294378758406230563579622055832852241349689833407155411074265065922102501080839878701216437913950366688353179587215906224048565268047513303896539725419983958095500009684039914327610113802628777718835913177320194632459961351315254520542846130026351465122429321127318245247934913676679915548319303689007886772153783004677648229802816667233599588411806227087161242891577450409032007052552472896485375210252041023619676034458895762948717302899431468169220932808700360626399181128350228807710946234203600487634992725526856245677998176414525371199818437124339951661111199155177516934708580890144571981773578024413121933288918652791368433298372172675483850465893553342679770054517041658222623561286298884883041635252640686584897103289189193944957316011861649714672841552468847726882067277063087677628423908648511834821315430442819842880270279909109713008181171948473034175332154136701025306593712653079168950589203962151951553710102881565730850068477444261502381925529677038036426461605883355966593110552691023729354749088527791996031637434345310743712113809226849197261796326250708127613723551197609229745943874651874376045057568986920873310197217600223647949380992521464343181391792974981142641038940824838718496862131230345328320187974411108589457147834525912884796229002964846152094202384184641957394044239529196205352975794600751928295286197415111656511450985162432350242981062544267973200684009507112703511965211984197049136602967494504254795835258625790702687875361289333910281029122213055606198582736622523492062411902724815445182339958486921424290063378625583539499646699666349739598834884594733766931655841823953069690846315456291582589932224831392113011740916538235017699404743597964359328913538259247636134317114261487444454875879047792161687575133599685233538931674603219666313095851612335747211640151986223673393003014432040178436052027829825835020927815997220169433452905719176109986899164995385978557538709175026347497340120917220011238118444889596726662998382846614832599455728673735962342962135269887919386764119531720904429896251478644768230534283971327266247142392278495734819266912635514902184433193537787522069203786517434214834023840530744445373345810868575509719953629082067686194766828011129407906975086969013620948112137370781274865860526327211496240105046804104338802487859552883554235887126193381503111174294014535999665680030276855927760416246184834097855080379091180028508367699259408404332827817976117343681013331907583024387048456106824693521459270298084751782878064537043118968426451890221405103622321022546867373369581363532061011800024631004542119256235608933206403441832308630305283112120286357518864366167744270091222919768682663095454653234486748989842311114779261701906427282762225675152100505190316859475304715206106920551425878378904448888382250275501115206952986427757311272821537381294502438133995484231041723767128184678395346264910131599048218497371778634130867082070833797786186498139132397764057251013848779806847904347220790195681101300138394458113804872480862602098322746555911231957376435276457086228768536340384402401304976381083472952793984947881372221319482045224485359953232311490801126121280442670520367198299330453432504035428847730093229284415102984615597694394565900798273408836339183249246423367031395852936733498451156156048190887649784900600241441874915537926829867868458849672185370016490810028887683919493587749093037169405309115498614893751171423125350876961056463715676221471453263762539064046030421002966575219772430220717452089058526217578489398791437661202561172406873206430807208290657317689102138593023199487255815311201357860438116871222644617707098646690541207392852712582320369536183867658535949931198874256533416054041246700193165106638775389931462481895543673236105643741550571841774496429743517140626396718344144410721778262767903361279662029570746081688534599612827868182620310878210499106653946845708376655609448954309853278991258383676485499876993063023094262526294563337343067833018266181018253478940213933245469581331321005273267731662442164360738619248926666372955919814438045462083840546244455768949092495151324792623035491650580826320649440650794029708060454539513924528226604423618681959943019134773900973244043664665455899993138376815878146362910921003800938867592112244502157676907055245204850349362405528666338189242373816403039750895359620924018076706924801389670329628610369826585197632122679175850788427007867420312188088534588634511938069790524334928196771077935223069326655741633706609063496506314828033745022843399607209575229515435001529047830603662342209737932163368174686684801797681516145839958401759137459756817034015897592925819963017958411106778856639869526208020118339163182127883671726368671572628643560926928733324378885320268883238087752919028527393192716351902762042786815508118851651451453976671791570687978562843608554883637463129215005482605766668021214344029301714280450218205556252059990792547150351966194198383217659862595482726603807950945645992785649845473495813174875074167832479378112316971761704705285333574825371705263918110856864606648727053254326885577901184055722459338181207840190691010307122447419929269830814081070848408514008068771747580751947159569142974589321448357293784298633501645367913212343340094231722766379666384840293441478422650200665874130851086730390290156825349374723702855858759499640150524786369920914015858349271124040356700534920967527028678820140759853052002555243001943978283363318026888124051993278609387730144677269246286258539384527575758597517016681980525168121598699661432875735183092537039415839966481595605526596839725950243260223885656266850207603947749861332083447497082051342311077696645019105418462942849687435129384720074888118462415318966624704450720766996353196098489585167812007125630685522461862826571163631901156323086439189084002125748168166384294809177142130713477753833699626650340658510689227493523054868876774576374271368398023970014332731360924129016614520866561814381102116479758284997769721748283531920826710359370903239114505422529970747177438024091551469211251836592909276415222251537549520553992405448995634830537731349375278797236428976784530743835438589671880191033274174569224224234419022984539141919462002408392215340839669996286645057351185299149959613839861261276270807691820820087760141812037950943339349375286153310222834245741915885719821604277926991225674436265475995456125522767685488999835396806501176021756648438715610549207331730643975367502598131662714089016404475808014859834213701525048982187744992568542206528490603306336012044332745447715655137325291729499410250889798885532618130471091708441636559291310159373995324200974869951053221970143326528087941437013379729718178137807279223365632750888923608738495361356677442494553489450590122840472125808708878165265907103513928806311260770339373285472342100689629532767321710594947048984906421299792440558690441664831079007000975198136310098981100507032618375132095608353603293816596376207706141987666885164089024657522834555252616070964560061928347014615888430967428979115214679479661834831386122269786886191688455687878896728342367928695647118236444702794377432411842215690146766059460279343968364407904360753404337251147149931959043108204660315132198221559900112553675490681527086691050261353644623402024853837701842776356222752945998575961618227899662913577630750652631929959682181599906441449305659653973936841627208674809607976207738121563457373007825721611591855435895779129157283141574670815230049693281515390641920724369146100877227754874994616891848110902344211306773079608516850320285307337060817323352511553334905493929852093634155982780122004647957944501713942188316507028474134350970392385404928841256127436558155876734322227083832637310392155607220667043382406171480680562357803639557428129054113223455156911884462947282117897038780431679752988722986627380428654839371245445392997832009936651351337231635050620088565490369814315833423871599703145595500540440931250723131736178250250837557445814826584063659395497413446619467787485048691086165626543052879358877219232306345361476205511634852721220761233887639486777469434478549611847908206979585618266564335944119013579088002787054556418425533827055817606709740470950702279811912734090322145929896778925128184810559114278534371495563024075132498679277269146242561845927344253203537591703499151687215970701908619482675945227361434067494467880232539489897178047540993212014188139690769938825739610303249272896629320810735054738589854009258010881597669010730831393729356692580170206012720179042616966588516382486856592808099212756444080033281484160740352881387580312337118587093266135933546899711611412885655729499567650572993157166510568661322884358346828171962177520607520866092389061140264316299815876213845251857331112284604508634274985372315215708787173515901483753135402533540561474680155071981412921395806321394640290293021534488695458582705331763469991005840046359325930381001906679775600887677932922267461554840880261711261607705457810385482417084235722695895436756990551138387165392072896668342382931625710282945411821128859939617436483113310485045606000538793731870158997570062270131995246639177207818434702996170246311889266139533042083227149556941888279136940278907771548333343429126248878948249749214461190674669764287926709283916139411464701991464396526646248096725109526971175856343059186705251428237971689627795937387888636027939283904532172183054242117367396988931133076109147122521936646906284202366153371199541665685951979608803730451753657214630362591885191064168449859463746056477385740477561444694801524035157220167323917909073419614041665323544077831399106102973051881922624252994165736329201620874732735554753181902889810501551877484971269418584046022020805236264564163148496265673447937738199492264525381275423107746691723042982125840840242052118031618277423051484194220261259840985587413387478062995725552457994528401800689848962411209240841968697921417534883675748557662833255618678075647953724909073786933479722530565310442209517551135054270058049864171481100712225971236534249420552134842135010457063853482044056176271248348479698162079848614259580276649170903408600095533927184139550469484749184101325129435035650016591179057417727462334163488682715539356146375039813003974041832000226471354642524342524092124537038765499112685210606428087123155781475833749837357303208905973725343932769648229763850928473992096926502296139558643850912510293354361992907281000701186843074958205539046621178751233922585231547285562027908560866649928256394805579613066651293565384007077244905170998489623519456566999547764641081362873569715722789354087288883855930889759611622188876576319635058719307392423041797751122421500513578053708311907406560701712426405756293380309922632127028581558059221130681013911763912320838854905710789722198418209700636462292429363447372023864945962533902474881068138717712483063196547426437254217970953833338929759507186715477896569632667269242466266609765186062754935535540757375595254792667908846665650618431807707545939376694238801647864659622684249283648218394425006094663960898816060559724966167858857299942831678650908804135629915695602594213134748372544998117699008921100338479384837913605000079132420389630336358950501146461183064656912335946059673324615288736291656975913933673244045543843369543777206928019711403613276139848278198712385007286486945979069956322373986220231437874848448073057269777427282298254242904184035199596636723550572425156960554875635635511906343805091554532389993400932147735161741961182125945990424356378016425461030985333755594802032651106080990035774909370572752659828019303077077301659939023304249904978536312559660755540951779087316301901587554980835374029561987546256900920778982955668080439339829387507523477699409993342359236278085772426029635873268112630541127648671867178126202987565943570302050346813526797989737553033616729186782646782141545793282574508861031072026843012493546083018307918750015225902994923289694092855503618670747375006262378445647646196365130216045450281650318491292217300131811417053123198045028593916773625230090491725983068291552479752855663453089776632460135546337216148225004652084999831084581337166885198274749882060831709550078856411173606943695017900899243494843866314367775675384722982247401526194371411741053247729244444560251710159091245631709904981608289773668587054744838304751243918289720400805131141372209890876055658193079807646468264220687110779272446802023554237874214606337677542887067151699125879595628174872946236978830944777782621670765998938596889749296067443226283485837476236292862524319290074527794104120208189962802655906889151811719434268476201522632046563421484931239590344464153591082062246226718833647312222857275984364997986389891921433304208088409207182003638272038158873405739059448809875947381876813654882720234531900187945540367379762638500917337559192856918910810184961145015799354820759633071993477824137168263770948312399320128601425711257977895816796660016853474349006472859666701093892484212522972620045769097466980021505982351687483709639529988512669348043572621980755175592600898087390601223917369718029638098711159451675996648758253382303956377311709228168114465314330763333368285124233754084869372174628982167074775028940858659886051009966377180374395579727810599143650405674858796579475094130168532020220875516525763771704575017410426233580852827137344693737897299753047224007507862591166679759672644003579329320862767027089136945161169402501584997104024518358071587100961822629933265436562338451023693477731202080856576608341715395080998898161455699782630297752344396573121166254565252251775062580485767237886726899492209345407135342574717510372277604462872715314870196130185634205949135905052547316065436267015612321270370252426633937544119397190908372534972731825838668403874965349599375679773619357781931578320254490951307886695361838212208991918963113028194659714793148717740570676549675651753787881114122826675752250581326177209353775080781415783965470568239821726118148490785583580521872488094645315915749503573769398907314998983510865901342567308838166707452841817044462224165433458521431416723576758169501362026363552897304332931851348678833775490283635360506274729414706389041518400413010324542197804289925904476797607677444502658731022913417611393117500149443850432034823769559441343497505438633024056633832970518626412912336140125770958021126505238769262825484760332598107716266343022213108908071345066945468855127027233755350621403976013785962935636901901603865670430163109763667547502548456011365074925101445187336697819427686967669967082977633514107443747660883379604379859500420184953489619465851863752115925316055418307980377497851533461525867846994573552412441590621650347185048575402632975416487140635888902156165411723295374488611415247735901846251227478433669257862272297114165162866343049721266276754417769957288621239507763044172203043740390056351925239061486301015514560965017386330271655592302065800910003087916175543291754565015064386000736737877191458479625342739561768291762790439156609917325196330929458886266575424559901240704536586719056012936068600217960565234853890180724163097768312228296610711209964991409627011791756678533616677717977306489299056482902093202229104189358878079821947895252398444711787761735093151252856529530771560882142281179011097668380234848933079786428436257427169248504425775185380929812872427849223262944720479392164979328320610659952841537833280972783474645388824093645862630989005032527662091642645110118541231052860703806224769449222053965576277833200804359172068118913859681981625168000896582459489083109127918673696042137387102668035761805102484372415201635836119504165006059135588955586879204720620812492661274733761910579442570458812264817686537993118551763542325891837292746480961846465654325217295443406450817067752649729665483180570952980114781373873083619756780853924038226161373729474135377183140964200145075823833943371738454805279982899821548566411788158198104398618832314314987373963671657160357422352614585004995691308711178028968463052884186429546284936799848936140201515972110414509933840351679409120695122552408837998018768690018602827427551600224744703319684971046327331154733554594660444708789932456659282208818037556084972696962212550230402168778479597660014154856421624698155505350485462229330411944291542429358501528575786611914302465417278134033581860197657724637031414122039376858333189525643194458688804436505608280540042674270003556420693911662066249656036768412833528142575200390198157315247927492563116716179111336340647862678453034914510289891260740313354551173010811694388270453004953584673403439994291983056111498035174370325956123713646376003934674661360201997361401193286359007194418648931488371391535012026294343395557763042437331621318974406966517680856597034788958908929339842236561278425408181879201963538793490783696591107927189709812281144283342747937312803937865116989844253364467563769234530547700825713045325098448500085722611460064134744683738395967746765198268758991311469077349795501933435474752652080935741413888023567473813753737432414095852210739673514630965154088451925604945910490709037436222757600086050529208651300121900607021031039176252118092126619244242990140080866242030949662211867939629352145995939575623491519632749417465859507373469832731317047220246119763320933388595837516485451131722851825274102612138486552517233983449470258655118537032001166109776356501768672363992138550900590312345807598900222272959076415671316885140460007324727922715582175822056152256071300001326740410753846930190551844629812615437781990468440450951950779980436426836475720806072568163544305328816739296556201437130743911385048690319323273800100630486349808044989763814529194029763548164786180414622965110908523160367545655441500493073042038156361513935623782505722311695416677729692438571682947596953616170785368752201280582571763538199840113136681329613740105741231519940579070979048170206114185534869660300475178304314788895935721817198463383727977976067705471404999484690984049841376721409502393103692247157923667753433221265649298717029359504309290359954960014763427155276903655067832985019357896212319902351538344196147879192081529247196898867533905698886971943949885025374569911369335058699661745083675986857739656467666790554646160852808397095529818793904572172855608464701920375651728773031436600295545159754140505177923063259852176712617223601002824221824650940257740222487250746653738137573238925997626598577680663140234717280784131218660635959419470037508143100179571531404253880169707386430595959400811451234835255141130050796251024519416080146739053858271321848976797901661907581246335098798513871627941522529734195546156761135133875511055897146956268186093403282521234751544317838483953824840775628452486306581291585400776855988343363436697681283549532093941020269742178980990179878907224587376386153732308525174308472828096885441656357027966430453983782242454517388703102911071684527045907765015308298598455381753627861450326085837472580642884613949104426033699156574831139628706485153890351589929288016718394290962544461253109184464326349295960253440510181476090194382716000478397717059191743813599087026625158932978093666627023373858129260413019734028080512486128695716726843078659764655405861306941490629002168271188879876215248216914263108486130724370748582371492833580718233812143105029373528862443017562288967137359980640816256156972079685805476960537712690960061067335349257429677633124290450466809905932093194747159076065394561079277790204242800804434143538695354725471853578461064291326485932005355548075700193596428861429518947607858691846260006523429035073190835468025325858757807457623662811922295930591754655464195581508691701582057931041440073130099749962343672686687182655381443129784782157518754578399519501407449077325280346608720995986417362711158691710605874036323417208025774681110328245091002256347140625255715969604621522142124749414207956918022391591439293092793712102122252718633147838608420558134774982000566133816008737811828206794488318244366451860079014351195711602824925092352798238167405271470682932309890619354398887663058905013227736832290196815917077156296474675118335060939971796572025904692130814902977991102050193699893127918208810470102151845122881601827634333401830920481322842175127708903951727067033166061960160299877249058277661851218393881282313009869888148770783755884718588274696993215041532912861887498234697638159833759836698187600190709236401897002124597042686348285784909597160028111245037640490762139089517350224143293984335073729135198700602619888763179784805633530745947522318634767555133062221583967338350210687409787275507648861957032015226587212568967153616798434370462841748486081327071856800429340916189872458638379270843792576664853739696355633880244736020545424399657934775441012446990953184904215290306060385028621342057737173725339779829712770057059718001363663052011716851763537826974191388731639124517844454032069039320559959698892513063215144734597178456252413651185359303892232748081370282350618119878805549114811645316314246950391493938525886636863066656576043124007810899961043899461132494195356061387291528063542421101571899044897779753856980331013913391867975519714961141230669554890660586416613341348818074906659248775742834849872569459392327310498270545857030035823897143928039159950674808975742949794715900832114847498238738727651941270000693323592776284093841671079950948277212316540965217242182672558077210169827222409556604219900969106399881367776942828998937879319100778053343081020190292537970331708575382872373163178154924510734918313499418952656862454066806878357538437966109024418942176947468276012214338754352884021266639362640227920711355253596112598695225412948693468914355314055433574767477072245013709749565422398106958372974102987978751827793067105832915191939372492607146953210122192831475174560271360569555935709309091494424415450917460731440121249960777659846633987522619207787367430813668414730302045354162664623107513795854164832407857930491359773147191452227556878177204224971984805210451447509459626767762012660555309886422740089128188295795254595056134342405282104000866652873341775111424303844369446284901927839326934152745695208874734896931370810625133653319373146151495619115661350823926498581996265330607773365597346691442870290845924381009236135501496653280450246860772608108140683753755234668894062684193395646613037482096130531009435938972852008901211636701978129051665052583638877517954395993431861519213973102899328715026013904499146645434005642154693801284629513607686107487860551937642350013839751147865972349137579345171000555797568834855942405979772313408498713455362374336991607893228612359670264666334071126718294401827699896224647412073006033783286701172848076223196849516872759829188522731562566709275712090715023710207251546703837657602475155221448530255999567672599413179487764345995068536803296806253485117633875803242912253783693906168687768689848419313816722321324439876105726813279616387566302620733527954033902016706101991426786109367786767673760766805384160615122346518688857565903769308469311873391110191634737099769266257564617281421171693151013098196872489266863131041612359675140152216945718447448643665481242793777940925860988346846074900517248959946553790257261254772525671092061142960195504499406408084900877575003055367635160953574822266955008713205515481193105840938491078807041871909496197160737605280899585861433093662529975901011957240389275547691024948072530590589963208586490956783415473216846969654925894549167429328568526541288998283878731217408920073507813766947779216095023510845415738511713803182087567969583424467026183883401717519780061656648805238635287143672613234968357148985773420732143873748960698440597925387315754469166119505847987912570263285245935949848384581150140942965389157384219229980634926787479665997291690059488132252350629241324315051474841503849053075817586307570881743903797138063521306266508243542806754561664769088278035299377078506617448625237724296259045656110544430001793943658706566621391281951435020253559450983960701000180184160695815397898546484949830374586077150565776926584823082128248353982492730934860288048808370249065869685326051176796914676779565224910182239560074555998398608000226806345403671559375105227014256691790880130955793427552156657249464260177354234821428856286081668142765038171054609269007743022922562414571640551781731309510588875847067717975472116252486445015114155643183855315436398415993953096121367725592356418381497147960054932361920254985514137850987855677922673917921434498741331394194311727404755348492625030197526388019893787264597872586432694073083717724732494555088697585606439448520235419108203535104942388067630737292960378620880573304801383095085653747467668273564736392705286888035202665670990602173047325309866065711549963344820589382072269493016172714741140158740077588465166999731332526995576037501820516980869191530231932534519437837280541230162758786295632415723385839540525818849574086786890990875851444656477862605708206763473240254671085609587271702407871939341761250495355398839522823240199404602831045510880560643834898586157663511070579234156003213909380433709892896279431314395843296486045552886229842172851790254782732719708659245893975558468984394417675209956705125001885248406618211280278084855706940346231146508477997938659430524555726684430567488056335748971963549850847311510289558579846931695819945548745785743333964447866370638586977365322292898219474184958269829531821779846439516023848265627222324783539515066474673574250649317298229418550068865101952510270549168152037684296986895799482461704667819012035788758825237860391116392729980973391520193415305087261101274892587937967846190557641110185021004544620087738973735417031207445379194587737376704247457116371175600527064728810931975278929392072295517548409292642173494727050101894788594411323439099384649867022750384729069722342687488738405535324097054015894255238057231306103751388492908704712409993497054643801874675469569992610202487247582318851633036133840869403883475365909168606312177762638600970974420123243977913815551682440083815407175771254123476178516386438242280206358183639250672443957523671190814418594532066692799699260617150007383230408388010654289854482925214451599068522222156349852568356313297445783924282633139844466992614426476701654104234470114187601573996624538236984880811327207370395234665382483068839538097202486277657358432228426708393153285030044812201990458167116717058583305775693671822560450942308501790484256654244972761210781766162246482944063832026754580112143755602129308118622900194976253330016013092556217802962463743802022252637550186177378346303487276451876409117163758647917321343826975378972908118395598717119870660300857326316227719625499612117178303245556594506094791479546370758443085898789481902697759677227787993622662456528788032221291499278829311674802154799502232875343796265305550701157021322412271225892035099405373693234354571832118292040055438068145359819408992121653906716986028315543004265362654357054341934712440120045877149740079984947386365951844923578489019445045995838438694109659780290546650428753588334491298143508102884133047443042326932253385611089980033497922643521059993011727716873619761566026287950044932200131070967688775914587749030644794326377709983413939606123574088686178042474660935444579455338564621702175833531521906186068684076167223832996803618208356643857300714371817298397543907849003821210832524724108372199461405035809899709403106338842941300677683906694204416560510974118493330016895210106607631838157944747680508965927660663285210226665941291189065126269228291460056392292253967261418518604572863933077505215561546058989379817664587595382460864599867248066681609525345334324993057777531635506657177537747764581733600604472042760620708554590044418332221185261905551462248225343008514232387521194919478252759554524624941814055350137218209088125325059469485080304126045418654426780391367796584321239772825468949847173549209117457036964665907342338031068228205608374931287645509220216544310809448063718087058140911529775815864143603742256087280735053171825270724928426968584941212770388528087969865659662336353858153685299258719297019778523108318264293219385240985812243695243102294404698751851432684936382276993297659464722998986354053545063859592262955309323970582427031535517241449733301312327719379214870971907554895511211068956587274813386798562407315259744817087997669050634799217438150649036865119044144583314790778679379916902767897605887148868736496653752935212548851744330573980538161923655173329373604341390844974578635962941958066099780228339460067793819107056908980873375307220575599583350561758830386126985919028790258202841063611652676174018166221397867605352990732097177229278223288184629749310063820671807864881328773890610205105077135708810191651965482068328542465134115275257121478507188922897429514033817170009888354832249751871707576856775122162288851579132114424111257352049839479970918619730833532941963149847222552666582363578029750463316035924267762724060854062451968225270923885817922054545063153863845874641710103819491153197722446472535174657276880533975873771079726132919770225840616355088603460079305804614576210526808776364279741579417390130377314689858001687556437494374151629623494700293320323886865084284196756116551684552389095604600922515924908716801363202006931363587322145965465589265483915206716031671513366068785661987215767457789896608801882952059572289044559558583123908609236563652987837684565072671271903116531032267937999585957021777986858924417831166037160868117278634584545066328061851083164222014282968605979653962718893319864146841204326068878110995802904020883617112963357814601328968721992135607992324822485990163788133041990629530814206179835577845850194039638369964912098944211969240471956706615523387101944850724806339876726611299058319003242869849887689426661783348722020088519302019117649585414799400868340030054206409193600896514037343415860925600497359847791864263610137786040405303569133059753407559266378927436221930995535367992172923337058896668582097035146157936469381737041933882585966174660405700019716851151981041876290901480262285114507758091431039513886957224849602190670564124818593981872266644728619837222109129084606469745061558457545583325587677867168932889218151134036464166935077909755007222961540559205373775171861648090627252397789971836680448754129537512981262276212831424062673609156493391003976378210552507129693172631452249193017710467747595985596612570548396930167460942872034098847470677488871797748146526950106157664204626787299261906768382875241298022724079218803063906590269385802327113976464383764827262804130194172601233029842244140848272907817854305569776805332658324854570736640922317828129778070807328543089444639612992938278806383588882923096997041105588042219322463843592064095446612564691759125170533162374044642894442459653867284591339463758860272193969062414219797495333689466809254860185212906483044069625140932971024312301860917523269733002626841181457511238109870947904556535646971917942327799972475364610864968620565916052325231028904303136271930757428487820506713006128408646433253662918554437190118866441540769569932623964352448787523433638324987315798795180482399537690187280068533178859295989228979110461355974367127544131692153970434046085441367917139254314782447494524093826485016013763924543346832680624739318873447832708128565016713798550338828729905109850238053238942745862292413064130644265247854441559489584904225720829405879869302978419209487127777964347178415432250421754187576895942427110622347563238238032322188382917697857383841339176835491368090940116808620564034462286935292498460401669487698659832769983757088051439973779741160258924636499438378771731033466812284889590285005397709152517512192649887675225898563971477155669308477060128786636822405756313011685824129961438602997182723372652011130937874107416677560655251486663694271945649927175416972536656111787924718334455360650235893078425701308810942944599140212569541378949277692664983277285820566087994298623122792781415492357742269753569149561729144019594661004119928975213908311057479739072166903165321582393865137257175758455953261485492309509173503316325747374932318007395388704613609644778027160906288861084710650337137593506782317768446979490638357777765145429267249772095605876061069354076887505653451703877197167726607655719115501934267207112227700971870777803045266690178250006099742170667173671107333172530119310102918022272005446465127229544936533162897088397230569692307726591550906016994730660449927396763625398418348740725804779831862706198294783553793662477958115287831222177373851689581942770449796260178024309796619917403337763328375832698253563490111659450804531348789376877032581803236488992827733888240013728323114635329539898930296612636983529214084753410016835906755125643984249729635525029268555109245406400058396863761361306520864120721112400781330884404275631815492737027327542842899519043950911015648004901789811777539100044437890590056705784903011969802909767330777570807985688114344887577978066712864830459943016297044984737160446962723970821326796845355454138268878424591550365228548196268602348048452588450859099149660678379191713021384994897704733765372418424800440492144915657156506119412670793939187805752210656089661925402253861401973134872837353241505644634781692532213164675710680329924306475593297508069906799047105561830530902927427829765893134187409505649160348609277281955431763439534342658049124472367615447064551206613334479658655735302960634818238743226003045470890159967100204302033739657526123814930908526204782226347330735026771063464084287998223117012278092514483454738623931140043654337053041626196805232412377394604916845931873423369326059685068817238619151830543783572683183127258984741390827242295150340595923990667856315657820761023035098926624504311551437654315629791352208042792436518802914735713976687322295610683173988323586023615517348715460540537776234625772555579201094095853639698071567606127697050249962824541256453563414490868250956712066808020166789616950069988223475236477828461934816736553850383602531132604068435684453141305334182739574731741541254471883293571547841761541257455606174258885241437062927344523126330392996850319866231574639042566033371132550165325711711358862227176275750499682974861787366329566835376696459377707443955472585964758836235004516138201708486970804143476942703653029659380480622443674700179815091859331856951861606950348597170833105892184349427370810327144059254101633610619488915357306968990402855508321719403399909079639127338565041143210680763406916449350969850861115824823723665274131457759050687296270854270762539793806068775297735228828198320263579719724547295562080032946782099378802593628431960136036410810111577228181663677804429365095568806652289224105911583951103704392343574744268350801380810813044699511968070818492908112268858436994547640656722096310435179501489879982739463720600891866682180707863917725946008388891554918906557074704545047373480835405550802145002708203506243907829313484203886438148193707172423783503845614444972450326299446865638267588993281485296097728305748440123460676572746991904733605977521878132495856828461300637548186932440160980632501802750063650107634859577141084814165202023312957658556538605166402828186986250855052195239202240752425066091931882564960275816768440291050674608773558764093412897372039442970537165162338975646506400321710102774535234392516691880546647430937974717176037898369705646371469005390281807703548894545998303559342814517027962979298743234756839818471219545706331905363825823092950292567984325754972896932144776903613887485708077470361871925597812138900658530880500830300281282724739994112338887060501648295167499393362657376938627925877806010731480088006664294360583711191804498320814403914058656809236723918411985166754693071790974448615528221722746779979333149867845680448791862674215916528096193120480852776198947910808880430955154522395005551320660688921077153418198539609671037975580634307878399892776976717329849811824101906811339923535543534660172035187623400999326519377345448182243058584283360132054370531444602412789882716849334820354011992504136869108513668528525344354267081085018842583188450626110547452906998813205867260597369260781693237214793366936616831991787832773742143148381590194818561128814330753197439102010130888174208503881110632624939118573251407004575961707416521484989061453864432134946734059637625857321906830718863901934729926041689424414185178148577246691082606208437829321746427842500640748623020204111655305178447766143382655227158555128864688627286017257326702640507295948480552826232863815040575658174174428001676640158540441208232583860092751885403792325341646273182910818429496465267093611118347545655443754437720123687835054227879681993879908502202735998956895080812794875216980120648403844212439151113892179166709697735190396821772302405637513150459551721859580693332153445323799194223519145675005386558687128735590909679990163397181373379448064859950691806854697417334569781244362406962446318601822885067699428350816287303070445961858882112788651973932528533997409073603763866140980313930698871620983503392705007572005777826106233494718452974036998107703601320674754491409453315076631072932693975315609766344258742124533374963354048011484436008664702622584928603147897740574324367700613126112829800225207593279476714577471028421889501966480332531600913508801969533425723888297016315374545657303073757079350306036483146278821963247024690037334049080429408370830523424156053614045050929603220234249591484061701509752794951861065889191436622593275463869009747663737472226633061580684696229266623089798608652982177605745507539911754487028768433236761393595341362762556964596708900907722081789429842470420203182864395842333086400812779973731518633349237851012938889144341629184877221392837807145445675261021913087473347295722667574177583376419914470767303597686238973668670030405822055953493745330031176143061149468114753454169987273108933722557520338139036084061547770438563252754325976285447879633434825112936750911972504859697980307275799733925128923807288931069331648044448567115893039667294119771403857984024729105348083313010236641412079384351415769669481782231167574826120469376603007540558691215405297115874658767077427524148476436092413579873256382278030872117897689756649449489517500931610938269660101885984034027437221336458004447514697639095326791004138502098218311648549122162885340786955866117775634128316199928759304514572079079925300630214893879516416937484455025605702523141146031771119802318744351162205852707041788095020078898770943833482706252240820252429860492810938115048341586911854097026513638440376725183615604967224707360261903095297306053705088791123783118857287236581572510820306818637059055405731279338008948161941394416871266123446809085493355042839548951604048952148162478644122686257136780263529970381983799943912942875796074725094408944391049413307126302636824437422871535900797556135894061715841868528954325750370618149045115826022404744426730992329344430106085926460429868978726785307750525828552630705979436191582176460427475682238147999473028348042405990569081526785283739733604043466606326166331891316336878455750742825515050877525335773707039840708100464809207805392764389607040775608957779583551835817994391392918788535544320313014997189801203248297127597147357268327769937205408959493466574254278163243961035915174610152344246261078640516184797926871267836558857650324778538873456725397959464014350389869111777480388810111034143630175327026485636387449091371868658189749202583604706416199511039901495079916688472507723856930531723240051033818089858183955010285661831810699396591491837757689442800982564151430347037596556579062605603550072322903041837112426646567598417616670908575664465176646900472659875707857107519864002396930516398745434667547004669939594649096467899812717406093437954742848644697826876331886081964019811606329518679212842635092350462915691163218239853545289972303809869518976807552880277549762916790870603861643582342884539852872788206529407625634142527412709495698786879509839255417025750582380065567716565414096782512929012989078130230827534460325518508478880047958263194933282736761253993050994773829698892250727782651721802980045068530600377648857075729366477232603184526150728757367267878825732535867733862042115717149956888038023551573273089310950384417069703520272046456220370970993165578401457157580655732572164939405640450104971525765479934866206655091881118428655861945551555704040063074756176889429425840304899411843794125650699788938562816514754757207247322469026443401718601539133374477487029184944523536982587212548859771548611287588552619995466475848718152103229270232077318448677119434732258086291735853839011278719712539843863986580677965064019694303157584875392834641528837891197135816226426936929629998779514295390446044411748814175279371479738010569401224055480518985229326760321728819814211835873518518652017454309930131238426437529443906973292892644992067830048340403144473209277928878493275320902912960477597933906475109560491588368004771069295798040352444777343612421662189492872980701617636904747137199714490600191208843013934981718025068991857860360094364593557078520711841354362863646266363594132076565802457421212909665283875816537035573306319811531717235299279379225166741089182039103790395452596980280065898058561845959159007364853591804403063064454025796319249599195469948640455935285576849389365246550728127609276255973129650298807804457534669035748843321433358713636607115758721682726223118345101112172520175281964183917230739696263010104289953514149633534970422644896574694943264778108095551125171319172935149959471589191510514788977878491880104710283792596858036785902873597811072466704425778807074350582675063376223301290059358220642668732570599989540827810986603998391607377145243857094050872736273068211684059923513499179833395896494330045920438784137340046071109657801438903422081091622798144838668238450619301228100173071951021919288547293312192429466915888748002480902162605608573130375891692437517401970493524050730389437962368414299574393084995947929283291401405649032257661938608944014929488265682217538634792991596693479270056100734565111569944786399826554458764857482269769746674738401793639431805612508454586328959019541095670290257141645882005849711023456053694470056156449204313318770496503510933848332588687246994756571624871678952187266197228994898301017900420619488848740250407864729621464864024344947619711255037966509811871325317773679396329189552429992869034506498760521975814611237308167313435404449544723821397455343967477782467401405466954630935953191979193813013192013223216358787745030072173964543824576310750548150928177665837311773239688982925408029685817335385463733721466919665938862674062033920236358438212100064829499597080001163914638462011580642171173451928873467435652871943717968103880145905443843898289843525565784894620488076754564253705814333282586545602011316721725351151357303736895490443097222354511430328203639052882690240085576831126214226808397417211602819857028952719871002232633887123082153200229616155073732057573543312571877331443335362850620834203857014669850540224695193898715195493707407054411652979527336693436554555013068153310284671079097921191782890155111128518769692385746821316322022844187859698492204950275318192717053777991316106745304787780255604171977391092871921999119735986895409525095528099669266886099924397062534110087761501650312170742183561039809450155324247293311546987987817257929934188565474142507016334495300825075729031032271840397664982724844134528457469605362134090880099489611779429560612537731608380208748483208816946893833851664139259904597094158791997732422699925588771202437331274689181141920801326689260397913799025298521989473573874508613248007286000603530824007073342161461633682805067360824598017471350087555755727500661129055934567032196140657279789626034579644781268209071496851085526519127603697382379897809844540139391397465592011338063757070993128736929760540471168495339261854479661397959774553036741241168155746712675562006802812721766675875543640553457225266920006653760318887676709755600317976508740708426222629547506454802659988844817985522143024178116286728525719885645112581723071901260184147766812639631177499914415617715182978670441608827807404100972966400284366170333047471766448159256611207939789373694132430379203238804738728193404240238206756398131796775749690869419426950894854213922870957336783876624137821226130434021065617457532926954604124916785853431758804117160927832433240330904116567162656644763218540037232968867627631319189696206980547007837640591445046770478580925643099629742263717035292643300924454104180139372517113661276791272863944758368010838658769065365155155202948682765973391735647562958923943258948737698162846692676646670910968116731647997760668713074898263947845089467853940919373288264523633299519024771687416491792060130619816100889503689679830558036942185154236912775372529318264196554577033660877382781443666962781839322321616049523450665034639652025211030388646552065365446414287043880558100664672412760375765587397643727958127635259656328965791116079055224521418367614358923728341036414852956115381423760172843940073341837954633943841879508136935768014633883651593536246167956322895404386442539907117120067033559165323572363407209593301746689530757719254602693791040915576396479727850145970691664637480301685801839431133635815697906517431131079452585530999605402087110504689041290939377240701841438576270865305217535868834780983251644170704330001249254965991256404578815842239448264273446894957254716023376155402678753943443743899387869962944948373948232038875476584632930693414412658103414344872685841255528034211136168328253799874272469842893093339634800055316983315929421712003704302805509539768712317658723045185127068052394671005177627028586687302680335072447786959950200528180615255298890181746565634321672601679238069733851643626726162913913093065860684845568850116775900565401474605661380247575985654381596810005430632529205346351481528924041450102335122803410533571975038331534033032592541909370424125834651532577937922684969029394351009101089185587816446455345828083333964756814121123361743810804922125572684085818595022299336540166412837631009191787363964640538413897250311698222329923952984054626734769888623386528472277588937833718983038058774274468086030000666010005723720782827823028507177710716047843449369827822225694311587491704282656047790395664127699329563059413327695591013327025702835113363971635725128622966816405926982762379910859857393569353715769687087564390169145561794269949664752218004933877667413467008892767302896841199346185240575049217309284216549819770826929503170791583857259443874579502840486062529583083063555817662272659958991720498244354716907571146101471796700661018032534375715988925900684149150263391392462014844386974372313558549617673793625405986027033241561587038013286317817400768427318824119041725573426230971081787189218698441337854411755434219037628158328783177846817744975855289835491973108433298566542717408710051068396451557070355585996343468501364628683804978417227166975478903070540150254013996328732168209401333333829581944411021436631300918312276983682442955467718562741983151626012479270213537697946905028891869435143503313740855453074653310724729353123968087644574733935385115544320507116535445830423011655514898721212211429926152749435401158198355463540250734312215380219393322826971564596142462874399021371943853581379918179093252846009721869979310104132215428950766587339750255302460389292109162616957943143405067695923236245753316438376226064783572535654646843508701327609747877770587358936217767690787559537238482733978294545396022068161941278787782263192494975956369020243931943807939012182613859283654729219863805148847250584320184922285973307927825722150052710934927704058513724691989753102293608858706488564213955773869173500910861039411044854955222209325276686328468178483834757290393903639523046007860245368444428157363391038363706230160779005361072276965576455548545444198727892543570724908730348571513410508869170940568172908635315920324813709532207952055999315678283230059154956909004532051926116165268517365283624844511582494046745036341026217276359322418954550029398147808352501528495826422252129068597873413440657759984975474324021223561977919871539229382449599975828769024901202046354709090127758502065451852751866676442039492890883280204217491436291216595198550000096861502600893794970194412869835067860084151705633058230281500196349946636962559813589972172878225201315188835713028727937223928888304109041985055099541281031156631221054465109486582893046209063336732148867689809857520401680932123815214110698145587225232379630882364885747447794035184118911283050893431866501029457008550466718841498061905840047520786123810248232898325054290200680538407452798257498544137129972481408647077170842603712257534600819828226470563378015653711677917684816067434934516374151791228008062412263939041331559882636229154429454430733596383839458497643506493604209578303549289107090881129753770128382808722817295955736801931274583388938878985265793942246502492917547362291369166733592226202360390039117790009357292648555988063192069556600167328259546491438359980385394162545632718727121984184654585723673368996938913852635712171020735152318360118731432953519258765893844672255980802115178231219395349887860581875940225453311180374909143148488742291514037431949026777983609649551517808903891702073800253787781842137477710269185423119192712883206529390637209332132598231692171347697720382028599407049039400275756011405280919100958200200382949776737728175372401870054217634927396969499115893153431882354015280536563073061532247071431486681844244271292861225788511360658439805506160854081234129754389387650109220836691779190749869749350832960434754556976495148663457054028797000727253384420549780070350458180176996962508146692209596575434118463571321634263548987433139911783455745524700051235016314176989473321185445489924711132411958113398467654633223579553748224468492244633944124982473219259495022167271507219493571402301041196131821228216069769849002676767293686880278374673364982068213785103929511762742560268646466427051574970422716541772956145349222006481776046962673304813077579526532967964756816343370550496777533846094447332367437573241273532688610393069384539621283985755296413838699272784810244494108279404429414652839882226448137480451042878633972721857364647036428714325450482804557635532000176244471697841983456596227235088296237540142295596631124126964342355411523341873429800906400487880671464242094463653702874206337431269811112021195142963765555081867658196826016714781575692828087404388651344229572686743054927526750902858201393473691029218117259416886524812362064076329801924106853865587245905574708082421636820578275941567193365151932669332803606696163513178430211925090627302279570395802124299470938230118304714696638644372223565105512438394221020409528702475758084506885052781387877178290097979556475291817741969079975897945486368291876483364479831008983913089056257073150367792177574923002887587859211439155217640754855189648436439446591235562333105362703959389104302438513574959869529346244498061217759110980697534575907463445444008506720036038762233937845997766660580644590482392664230118462200014916755574098929501720562824796258298010927675347042172336012529565699063803006163489876802179010336881318605603259611738648538113614266115161868515344021226228751823952369069962588309551081963312238338191902470373140749392946747940354216340986541905731376191276307085235875386060134125329271777037477136934379618014528216443133912781721249366562366864210735116401158655879450724628159493992562550934844041287620847456064419286230147628677993072119496460980151507007789335588242236031048743376376930023018824325176698811917827536823994421014508237717560243974763291839229853320279060850369514753082573891671862811461672189997299855955632185295255452051747345019188134703504672898452702387776380296933328976533957828930003191059041466324553722585716532746258854771194466183100567163960783062554600833426604134007302577006316439827011858095874594218588822811951280894914456275205782771514605109239032622709889642166529563149136136946835132173922014443978783572174298130390043111520483165594118939764263609507496320479390710170524787196366035570320290228336184347521192422745506182488325108433027731103182720354475701063313753939001124867907033223275950799139819312322116891386659007756902593863652790063641679959829169016567800269311488728905742223135705242242230335595133831857722566885835416847349791570191409315774771450036768070513788324088263480113027825067460081031115315217221836532176072568213549093872822140942656069590609487897990850581110339444123517970955479143448371230371803589396103076317946836616275335641044458532806073480668342642435779771056738193286681097899718244918508185486785685593430420793347188070693806834018335994123801093248530902416020165727625006209451986474963657363064373158479886632479056866289533811307248736981751179335410418884399682467883283919376271773118309536774303848880697775735769034030400830126707079946073007924078913737402265963103263785681743656818151631981021328581803329243711979169843401443909429314260610114937547100568438768939064878595972451274403919328337041686941069490653876398062644804147078981415586999213752656603831500747935711684772624100980592998391702742846197048945867843834228666681206851238282340551872483929274279767984346520726548694500133564805412626987560833451032300166455099412597874210431138563499886883249290506062295758324272500143984194253112702434547935606185509280009569952923392788785210125645664281852814631194261215563179906703086143350417942293255144532820267153999626041867301554927439528335418752692923079754558505029761575645485069795106836981135555325416418592622246432311011896306202098182490172808724809772061658392136470141395263732288378100198989041710936212635529595421209989722577313038936706807953932222712710452281528369174094813159506882023717115922656881930197464493881738775472220841544750707233976987370829204711439392050005904677673252912386179909478134572159255685632429099878395380114467619323302502809180100640649681110230431462106828941069143320853773832237909031327691237812350781360433931392013109556890163267260074356957078957422490733315890780021809869413406238947209838188661040380428133657559997911012227671162545521030283461142847203856075999249476386880140857612792910396687384923940589399230171555984437636906365880639408314345680773821117215145234471349461991071175525571654476699239878883068705625695858850467513571931148421383025567873921866247841754174529127231156989295064506254898170073451929851764758528666970702759312549335058315635973980264376388922180057738397011917098925900297053043383391234687289478470487466821649522925689013036463116086837145139643503663057274553417972759949981908428143889216127454899304843806882010778760837914194920553642533774965594362771213929153801900038377292005445981949910221185570007514762519103370451728405606843586725301151733533202193950186909736173013939626541607055600186997011210710650019193788953781220837937801441787431771579569196260253265832644867047957973771298692284844749263644529045474426492818280596140443815384777192055252596522085492414385506602368638395333013564832164446408348506044194505339670489081459058741171903150507393574215969566283696906406954770419572025267448119347619823123455981465582045726990893517980250561323130279823000834453727023354027163011892698441324903780272747865305482986343139388957264703282102117593564029385338502214273081307777937700693122056651935041776086367170152430567606360788560131723519569112245053141247397181128726863789120754904310630286371187353060917182730720038366684179933282886829564926736582680961335557450470216245820872591601464919545106810343063724243215930372677200475851223717401642577093745658963166270309367749591749444405559597195711791672554063683818081037922294394784026626705762974911124178334288904600092760393417630382287568611469910181500347236537130597314855321520553812773872688384196973572389352536017344499070575288364091042671216205019486219560814715086007383149488238634737886146390642638061686463271326500310405019248699583874915609555361076533397174725440876367497052765383243749102104693525785879398809673288342273283647183008390022811951190541463063600166798808490544223145466637057317100525765188794911944795484178503828069886576872028394614464826386832294744786311327943035557952171476208858272441271728088341382336196721916003105813164588509290573974402575968451311192046038221260505335973041178995236849189422526627486299891375827660626324398680828255858478052905319094692647577623650982979430539013533801054347325920454860364321833108827728132805964406919566789331057241735064322329326178434453065768365974350751322170814885035352865492505809161602978475000722115359989044526568334786259984206025257105538941409803421487143398245881738906724449720818548876423030752466165695332756020126605137633465867851394299598004669800482578191365181562065630811806291769729858742301227424645526948891779725845671288977272446747542282630479954050896851915751447453114123667030768210985449416224194216523713261341156175292665078786318961410590949297798812471926560297943145324920826195689888608637266936448610935824316334957877645785588766081309292031053688083588631954052412853567979232241064527530646316468910961845633140405431806257815013398439487083041930364211221675246482035491276876081963453057985800019330946322704459729355871187257687966989330860863991633579161680168477018346352718476655156011151574668306759246508095029197495571610262678815546885675037606172517375104392794704193146284356575622750440794100245269068718627443829182921443428732548381088715885965125371458733601906482089868100585580541717962375503528355133452399316042237347810067484570951938678657785527146388171811806210520569662805038991990696486232693259807563958915446988199461145545809205308009713833602742357773398624314122621318346335848671514310681869565040627911280219976045950442320429620538406461877539006880775846088039678989042242620378219166536063791090683721840227416570651104782958365120356604637244495313062263960661125066645478404260379936319066362759106606988710898945290893446766900305764931835198280830310221568409931135577551230657998018316614437848236326208310757540729647482879602456813017285849205932537276651618501127835195689772464353784793561542963095293500083771974840005864864233520509663744237249290200055703865398902072230762961969309975585882135359666226470152965495965319747244774775973861967816196693178046036096096690343210235685247035212044946098955228489389938233570161359442630276879096465383300175559010673898145221943161187896772801351029857959341583079435380716886559777344412558643387324715172542994549396090973557389947994690551558935340209105582563077556051815612343119225576997971612972375461173905251832456579846028901325923846209812443747802636374171900516468813273262469750776279813754951331906127600096699835029061691311408662969122895366902233125443548668467675973073626580866534366111130918379372693023907956801237087656190487281523035471274286522978197231723827763434369593506185536491859896230617373674241809157574570771626982547475611505547497356056906312209487235389928238659267132327915281252730324853896397525307892424551522820483170224433313283929918883355309304422099512113832165022690661981516428644576809998637597722379134825227778176600872629868458836435913102706617020868466737103384678039839959089971759511024876518550385460014513644055594897854869825251083311557950323586445067769131005759174300403135826304158586853495791236654582277964157642209067875795936879693660026762470185447358966060297684458275815919352261977672771634959589258140290649594173433914290522562332455275111386058871609300558720166546967381514375592912803949007497325360465127074741926729610975999817592710718871655195800331711540480985577647078581896669786746687969794353315787302800529047965309801844515490283396647316525852024420577569055036343034950378292416451209010061606271854070461632795738763976157289599675490742790917906989363080315177556060245532603479804331644093110288331483874577658178184659619217308247940551119671475388082564232044968563407220010616694391638414710900586804058223791235769176131056228859198288947166955932920521086719008569612310166659799556500685827956604421041631800444806598452161919209603360998871199312276017906421566312425817731432613366363976188814860135225839669858917229335054387105440727627657080863464225203861271279245790222896524641426067201820004898525253401704981730297812282044336723639573307839197474243167578020711313940652722830641635124654353712139413373614461416121892521220336356079671883782829852963979407398943564824720328009932800716416296009252904812838890108013049842474296191772041292724814864725417226111292768820135271526107962328328922765760650279929744516644527707016273213578100387824876021914523506254128686310401305380456241618775221519815689941853973840330170015503968283437417023363274539543582277714644344183575668216216958057206435353011968884496066163046135993005408394112179768034651574718957163807209207575679994792863109322716211014455595791405973922450654703095573110921974671791743625882379610746864050623223012731039375629816912707551073837590064902360036530520270528610792017247555504679270085901327036999618342467582750407937013571375543601640242659025789267403707904301349513197272556608958573478835511239135365368592001590092512139926852742222226660173527538574543681034443240826977416833027156977062658149554213530063208841173153998691895444753949744143876589219380511526937618464593725746853082701198901496636124360607758535813595203138405194302232759352504059560818386157164941926853551853682692585504458940389355959363813937500030039313036670241601233916717574457008532055124776870476523401151934053788097887723700277535247624918347943880404514951713588358872932293967856968990617380652054400212550146159101135660358384507298816902889300904387739306701463485833533351296932236802054377004885811414180024581586129270254073424147418273258480560635272794541995158641536594185879307164251605130567078989414591119380582435319386705869754707416728068807423993336378054848304747897840989013143424975427845983037628161064945122163560936186080944853332209173826800144957209649657031563955888873945667771230794914908396528284777366037119837041998538925770775145404676121920081417884376075737120950298667322679783802067796806145617207758892012625254869670048993679544329071113662388685510784765408479629215946224025535974829940341183114360093607686016594477770216566611125267039774243741741590281315560282882707627664792439657625582568077937871669282635438486773707999195687307349328887067669178694002189122720915929134227269333502193111669190946427363737814445373831325102321615501099580849903326688072295664434733868684076181243898872934530177125789970858872903432985060506448124880808704580911503168048268262917637490103761378543801692720132197698927690535086152290728762121161131756586259033577437134485261234076891456637010628150039667051380803290000746201141082161725505515656915482058919369731587762205628479248239757542110385083603374348814028011746745005136849611246845495495154216259341023360361121072416366333337374260274207780279693063489618894345281001133149901472448002172003068391976675193706940968058366938613123147276503869867808638480342957733795539326796060904981354636089850710095601054740690397447324307810749087554001054075559172838760550352354045329444016289573544103996173596948925222183810230755313427380664477853982428490217372476331767639890095555167866739691842026462691283022031653133569853052060439242946500320653413406861778324331590194256459402284855048475972402094069453403371957039163633959221754581190231243037891268753105469991982108733702619133779077045794865417097609948516024239694426260021375528804700266728464035429393629917617385911739394934287774537575075801881307197670808312896768206097772625714993298623461155705295032407806033558010455195822458517806727973406951438798000972252003061483451231229376658085648777694165504061504588727323308877628442179770036237800767379982374639843646238858808951562342566025557096572905061821052032193017659347879839980063547756961020934712257667597399150771121770235703468227388997823059445718456357418941435013598602197490359579155250267652773917338865472580512576011936403705396564947344399022970932325290139623668458212838711870854656824331410126545737667775030302382441677913575878052942976139137039779122688510324513577661676884675043813670971975564910420560941878197419841799075101048239114949027103318996272965436996230071979497481047800426087588735522206158512666725183939252412635690261214323923310911556045275235919680098695703378922131521929232814820449067935758376435856468916011873784778193280935146483576434601828776515372695665753187059706988664086952252181515708565275669859999317260782885253415640442177421575954728948010420809369887949679003031765017476611901051218025086129296402445781775071759301073592988925971960561285082802328811681973370081148048769219080025114836677815132122107476116586897491146656257406930388367629745688087711808850212216978017382664416520263894194341912145738901208722280991916463539206810585526918958460958192190831216584823905308895609792816288985631297036819039386180844356871811443179273886951174595339475961925792604554936803852999361994787424395982907273628397340988922995241174224662074479390564014204169515791534969335389891159379518576977352772133924077114792545010932612400046010484805296787887770355147240197241698351286427981732113039573728401450815939855722718909319975270258189005947952199247704868068452177842283939346081144206954732908885151147393571484598518412878587752591737577964183025785908721725154934792360770836286043702514875776319327565767646988626210246745414742181596208431125088070533186861774419593465631113516692323990743116175553988454973629831264937989476855159969885767757645100487049441503588246593206577265463945469914432386886942798592699851413155282322404400373046486640658018669906083534703831160837175841708458551719184944605465947855626032874442957881595664749513829385110840992069305301705270530736835509260421683289674507909957898451293473956627807292412387185866493531719272060516813416952570512380541279797219864142835097190977285229821092516650000479129032043749879727077110652152769091183998206894261244575669436946644335689780985996689555119802429786731567564099655218718131292262048459806826025946634132099053178128923722398673452900618571930237870502400975651529016960405309751771701553806448860442283328441283053972748354379998767584803318070205199024590996644389217318668179660896653885493540458050998266289881478631339090131744779216435046103417688655245772632738771277868917937648204292391085373513430785496583904555467253231637788271980884117139656318684914837855209946980852936461990667705372070915964185042291559809814150360463851967751927456308651091499798647856974269865562989596191501742049240620008558668833134575158939314335154350318413075147695459666795771232237567333816036389819099758694036981003439108250199340684916942477094833414665616204498675584533093694639317195283830216322029768522938753031888770232637092401724718928944158783278801056225231203388235020489390211598342083525575251492547647246228586079072428129397746447285796853776380438703833679769096329560721483213371976801874287553248313668325360629639290486742030665296163497640325161437679407710182212332710068806423094035299821801297520510113865059368374435104537204252231124226738429558137430224862318459818634567176710629113950061573488282692531585022258116651852926080038628761004189670764109814052181591027341316055728534462393892201642585341779703065751049907438921413056526668029940901822499739166294938084395515418414226101877583145360097257175504507295066465791623126026870796214760982359770094045989193741436499309105815112465187122504702854810056560015424712961434517748429019822630668432865812614710200254661594712554007257412762719275825152394678813374255595217343462286158746156620961399675339277332083801418727647153380760935868213875018560924500285710485044498977398900624675811507649486061886655120158831547448238648718833046546374910800156690130778734625392650768164729339468055428001994702163791473187044289409403421780698816669394387630609076673283786821980628954105564525725145032656372776391370455226276485089431971802720639065564958274002859408922069548373407721023220783465955947200296392582549761762331099902438865317279123269390757253728255576845823801003085950851645824816308891558045828133568843298500970889680749811686227099011377312155135878112916074948436916737437087480477758231824934848614281205468717643353320746217813595100826804134771082581768127096018989257705225455682432254788905708027847075383909232472035941254656288682533528704021249545989945723118783752164111852963156374681160712899100388280305970710617169076526019374921204966055999680627499076415282158475391510303227925062421499030308192383542964769073927780447431300154360071615042549134458559151683357192095724511301129405796654535481636309139631795432089627030344212856451802156480858281326825993423127038323888337664308084979235747126421822814107365860782213722877515105792109590987940340740440353124070003345714721709717694876338791216524168009791380555345040139767172767940142063886272604357324460737992021345096834410659631387183154571054895166741740488378987183839945463801441306548923688586117950946681309050649462084044996839510637552482439652996787319964306957078894152559861915380075867401583103774526291361140703940248213011825039997661502059844572317604988277369284072215283207714259075759618164101863367152256440126687082757933424812248737683313307337232515872176408970260638382969846893545627694304836715525407251074034377787111893146992412916835767149159533257870360458090486005824635688560853891758610377932180560553045018917819527813048392077254991684053556397951314214520682407676711621276489491032035221452650317800187290831032678281286879601440715040507223727592512241985164334552258316920670119452902505789101169211431828510985914030391772174924015051440829356703330865531015799956147777670923635388392493418163625044266487303011061405603192796276545534309453176770462184933373323627109131441324037646022604621421821495660700162040694530804506372813476948269241329587741323003557494154467553532703128784254005606675462248036068394334416119750053818140735001150318448030149766585795971642212769533728375396822999809909811012825578306019228183950501209460542402324069383458930903340940449710097034970453334197362456421811201697237612443379227473604278699159937328234921430079596786999744185011176876393497833190908354340331396948711404692598038064326500322132293892867689412900640881876017446041141520766375146093579414102101279538513190929622496979702298219794594063071474101031761730640977344974404015415702735783323368578419980238040744671621156696805919469441747286289403169624580197477513078315180620376422312215751877017779650245060895901358326508244632255258637302425009744997870480267195219212135014099840118488585604951599719742558378165726286699636140488212832786089668495209393969137208693651695516512158594851028893510376023798051946133406275453415716499730302560777608384075135712095277247960593499940888938363876728271525381380849853653369788853503893981034198033898491008900241134673291544463529661137557335178954277080273491809794337693047355183040047102099530453222218585848148559912141759610428702228814121732230893593788714897223781140572903248434091168624530174169301454538195713728535553853216814328720996656784794896888902887140840658700587988220274989228000697932115811698006259456616859474005877585171041597026945109869050917370783362302406706561641207085496160634448742930447652800685098943706219498313289905005169532524805673473890817981183029830095713067510973625286272806077196765042758788464362651881849220626185847793138374641259083248335616535298791131370491134930884539545991086032699026277173940244080109018086917460108784856147064104208266052134735001925404765909821164349885340917245847105541980778446518739289540785104798466870006297865736669346344116941547286649074650059169318400499898654632661577494802441414655260846276076826850303126651788147550974801196139552375178376574616252038956929864465389328684467411728771261288426361589232383123223144988761707969686527334056314612910844709170161509828549472850511699811673549503549994355824156969157133145962478690954312875566968269803047846095901360179385612659057438848739355412015760095162295871223986878827671185492093963468966466365882478194657310337514847255291543995539236066570890620926766046285011879581337794832737769110801926998300780521042538040393509476402276486285775416734136974567715820070819652697290885184960470210991355024653948986449248408152195575137114140756210126970901877655407280679223830698587028144115525879634093527728770691344181679432191342550716893014344316010149200164273833332312128209104264384379936352366252882278715046194584924354219551807733301483503221092022918376517685381283892330488367119816107721447751084629660487318247037804805206324511988517914511296434068211278632279481711684208987223126307918604104260696814527530291608923235135534596859731065541865267459332739455010149311480656388535280192733703434364249567391527383631071923359192727943222788778836006164774787159306548015654074324825317615674303868156869586044536294601463894428075220321493080331068038039835412981149145957015446016170116829827725858212907617826551540613814776623386928657750096485605714775337339562057498132568876877244499358894927928478143689279144630244453489950872652109051676960977827382595131418863902194448814437809248038440635735355960514731125926987214587085164974958141948842098159045428066416347649369295601703076282261477191932968652621590612248049220535075155585216760129828223583312360079899467316183785302965450356785594909192010244864942484834589128776918817203109872577006014346922716802527931034859907314130328859712009229186640717870153659598901910272652487182495655107659401977538382884228763514101918280634010900330102506165032082423352465338891640436628283027358472432140453776179481459527696392169061103080362097558271092545579471123835187536600939594165496647739002799459540708339281934634107851155086654197551732908433123824748708541862477753291302406221390334555604702009383479467306683277799457833358637334587170232215700644776577477906122411666899881887431054212959090139715027046004209348852467831818830014949415236528521718953346060694632022895169429347813152758508361009520234127946817898782614526725176554239833717132830713078445812565262452568179499784846271306602860305808406696037166142930276947739017371408639895057423241846602649541035018695669776309078405926002291188684435283594743891573632702633175187422529029932403706200164237166786012082173058883332958633816747952190891422803370196183797649341370278753284320197308406090746554171066865713602151009367033763306029746557528667035929410981630625724350417804373168820378333966567932034926594148737574002058519672005570828728921114310125456999873008898414346589215105484569159210977967583083534564281478774091801272317795512088206926155567774145517586538927053436977830264773689907397781311224085373484718374299485068910365426817684709013014681873737271560936971459501724426500423035530293277431476662492026715709137916074885962710808210633547688478928530993665566535350339552208164517765299727453368583127374248583111906390590563775108773186251189570440070424777703046418461984788434420453120531261931924907045418555982968006847509641433482867414463509131443088029509256810694336474983256988200958066707199311858878039631207718872548052183547406655392803154730057213221605461276058968501516133796536878111868750846013940528226231617386248686171979820530849491914286095837462132044571775175888517490424846870381927468446120977832721118856138510776212130251330831785889886711783837389890303054557752609223023785570191180799631106580443007829802237230379922752898823837336452293806399554199641831464299189557043542421219878467972521443878404111572753566676761339754410552779966966217434207508301175280099727208548271467959444945683200707203177367889172483791733317695425355483685745498329470506395488313084994262965705530412721181347546007139216093270936252601423390591044215200463149610846673721703283922698126101022156912075458918315773962378375685607400552291901844037210161312431498851279636473749934306695748653911636065417055379562622146673371644116332582209766508979832390339341639206437774034193683724613077104918465230365387935590017531266805178407986455747649056192447817699077521456475962503089596779016924436555137911262289265547163741564599361770858848929952364655813683610630587792353435499786146907258489191097300058851184563315927382466343778766557141793431356316405697949503692553840837838955710661585154953789784691300310627772314850823065247649021381895480581814946211077925389772909582163002543385756821123117826439416757179922878995660316553736422052730662277287433865960102439090620808632961546951707147640686400977537114428562751020089782853866185006710629216838887001558886510463123288888514074735883633872781444932827251890885679124914210088987901605920949351536340884069178793546993208405285585617034943894371412708725032597943943043615931403701566417214114636479386826248141078048837281319343952145063039540541563321593617043232268855229168313237833634103673987564725595048200836652083793700902814853925381904264537598118988008389582655447577012859274892785405044211089781916438411571034302933160655231300416708978161422056392032287435287149712046023198911955759252941314626677724591143056738247883463198181903200043200649186317622088018380889201391330855858080871099336621629358882144004270773022418216484209958389157832389198231668040378210026628346526584518490736310604539450085183883509525303521929521870442960393027946843945709562645703778462493984670990947147101809151921785075702809055794260695893194393391093524603575014307206704083159019996728810830789725131554005394659932826338249708671968089979737839787295413553398730029654669197899395230038007224604349517751879837612742025529841492673772873157677351032833957056264155566192615604987329159210133136042131971097467129489846691179199036063223799331626070711670894212345958539370981694278926139040920012908848505986671925384118664941759058618990995880454622962298552147693236502917617281802523428630380216502773444515799633350666231059552365897229591062504713710363991015931606950959000208960806388964060943924604915168521963642004501442444502700481414666400477976729181245859794996292095414431548977982594178640691884034200067695885305481089389462436278961405889342850064145857213602160615200590563387727502213702775820614783390421831974235958314567671346185165076431480247768451161032611677187916405911241356007556254840923783922534965310212189712714203841708183593412074463764021700050202382622863755462602379597391260380455954416384413343415742082040214174923760073094166884767995129727881837150247176222166050086214084254192793332530869929142103885278407376652062301299801459093894045028775004419671345389004820287810881493554943465775624163483010467235218969249655872520171357777408975995073735646465429193497854815373034526641397226758825411189834860876880094584923067767500337388095721292853235028878885452677831636052122501761135508603156156318421827669800151465765355229302316926749271543972823835199656490502798409057327850805002835874991149873603812117061017364190651387200352801702192337140010753130723442662944212882872551451636563310026227953141966419628743936757270261881977575566880434962324788943197709396103641118563442397333742837980020195185427942147672245207854405615173786507195318072910132884981221137272760139979740388654346696537178932212321129414029666698997336872117994727900805259475525157588616465644238718420908286675147935625652312853547418691312940115965138113398405399409001560425574243053854169436149841466811806100965430891971560967910051480004005793850922909514379868212490480510527189064960934716514158302105455051640488265533476610134045804702213892242821075410648958695254703223016289196018951476616201958613942736244336511427902530110676389750418780545935014616094530965299277039202428507198129712378997244949622456636433340821532903576212546971273185247467173609267176903704947765454157761906103621982159883662840002193988157417473977898693982804558007297690902661170054841152062868570982932998310951119423808435356484754451651158213434144112321175160631277676170429214940383126558429516010965286686251812208457114507858717984798622942904759211161600052353879831950070757232171570918322447509799285089462731315774625185193926817945767003803566345052455120932276067703716225308173951802353260260935447154893519003959955660802710810082706457351538234594233750613527301841427177885462496017854296936299098291305270356313431128038681526201784420927811839470177940678486826233043022126791932616937629392407242188514248641623863602450684608194027628241013900441668305853964020665998904760199684372297346725467524103925865283930434650273929917712089799170211944357752539277000036948838472658945011668966886054429437590171580886831736182241644132833483633595252120739469546152097782985153820418682755215533938656413920424788905153842525010814464715738125475856341316477895454613403577755402099301963450376443696929944724975349742615287937043724988635399153703115780229717420953388759410762246107260979979998037626965639029166330674572977874369472872535878658372172134143396300560844446345000017531732841609514285248263175909899800169050217659799045744943320518408778862781418405889296452815561013838923326850549236820396686636013721913013801954144174240356632683234465256090860125444092390179925945842078576824288313570696392798704365264640304982837613577559039193636257701422839771689005675956013750393146068685843954470703916605831532701827188509654969832682542957513769716257735786124804220796722842738367739472441330968110083097798885362866682450767338180026031044196191786835693523529801323332676092040650990292468322887375260027348108000435243209187460845414048683443730782136920817101528521128407187161315227309060575958074273800438160055253448170242995176553882771082103880509244998710234852389242131270295480716145746270183288581783722230761129010414936601817885353265416180088310575617455759496831141032257134389351853277898259255033200847016482923300824237174070090942777744779238526172168020856503406940915904599366929169711710915618886675950309286761599392730096481931245572607527149316143473140791045510595015570570625862707955159400740321504532396771183662554768818505262993939070507137703718887117395306487766792560973435149828601924634180469118473472389675385740647415570409683049893832002013229076216835536184120301048418323060481478341785360962347894595825954978501897353202677957176436800086741221371982457293247732975978344593431065529486245206207934239133607585275028827020564503770605951680476278686944160924781236929911319686324002669160416996880326973862186414657108514267343898080578235622583206320399666968550498969799494338717931269417089202832998013858163300222645723068891217571205270398162641680547457291222563871666240874515663806375065691238732949065542658046275744714993288295484210832780666772961444059980917071196837533293961611061827420008652929043406063676094584452542369610880515577396429073651024227756469259733164989319219715992771067856274253159342668166654369616207759343006902244520736683840508439657234613418865410751737226106705828211240189674339227181084156262213256576169531768556047182179584679814696910759751499498547419885595780907183552344412183499744415139991958966938626012466847017219386925419133415396229210946164469212019264746530462137850292539269098545008373811709834519445733102165220112618218884670571568906072723275531130424108894687453436335760752544567393991025902792591165615571102428143139730977735425916561505517085666129167680203012672855878453280259387175403890702884743638863766457577499668895870868951517621276762092846031629709493904868466873110106709083660984684283704787552976461390316143825166600923828435904270527501751480324132900207575361886398142922662514361486538957457251701759642930823865980763694114767846637405041319064370290515520281576827236750508753573256692033677025497698907969943601856468736635970324000781772916085538911044429690667251735897422438978363204932288358991340999235489863444217226635529499201422497601457824143593391417125489935170747012044209871834814207058154990299277280640873289447543477721756430248279242004310204522213625586935879485139236934518632831337273191845804817419237663067303609238422986007065856302612172280787452703674887738244428452373900179651581559505555755171397171533923221716314809770494832678380589839476815900976537456899958604254101202585758683751151054351344518703482172447335550487611933413028057796414859963386448484453373980640088835121618047259320880211383474496564263993024851491970624153152741857806800220534791484694345752745530871596282942575182368122597960423666193979960218544231357872050986204432095813232013025232731646797415184569993419695985772575892287975985019107914436590595314998446396922075113031971751537299819014787410604584056980889289632305924560536055327820579002263958215392257845056285168565050318781172246573409212074688353396732777619538803362876710777720455697611983075948789083155954782224048811667781074629255338537137877646620352060795257574746283896709305294668393596256802665089767078694260881434826192666216281983266528171960402292418026212762914516947513475333593074801905102793078782883436021668129901436125183993795716025012070961310932078195703927091904024383607763847853798222262291668211279003883140032109619142247392049502608602200869883691624900772146680159808419623205133615295444755766318171123994619549916925997599072520585196286016857320950581869378665931172237682280882394165645479383022457537955434229266020615819939575674414264354187106140355440579275648684761210328119301052824707385293231594119488958351784498318143796658429487508397651473305402074186759236061097531040092186865084232231452893690149815652760685405780304204520688335763264184120968992569138435678379389166390400263646184544787650639769992116203974604729307811906612398379611892815445749616814372125598294140959756813110425601699494393685192425125101607146012077307925504829914325972999306489268069275905983762900939749419895917969468349801584738823928965135957524327585328789554641682962793755236051834203385128154482309102728865631844220897151793976891126207555815266744749486626273633882912168127263904787560336851710666442246693665147652394426940984787515153831588665021906236638991400156137987768116020570134399313495965266989428234558283424784665241840309323150135585700319806883288273755202958503502953568645615310929818858289311661711931259726732873506531038801212978898676463169428789570543349129160956868024509008394054644053412725368806464233997114332176514468207421608155024781804698245534150662420906265484229595669515112723437960208897890003513898659309401612471500264001296236322696002044998735454507937438718719428173964626484151448265144724488721804934445262475414118071828729829661038870360351322723278953941316790180296718184408108634413604667082883881598634786757571622253411130598623122920119325293485279338944714318019970318881612740701488583354866271158729473026221076610372306821989920277982039343940278323220404219064882506930067679566795082798138148770969102452273195087839077257657570886072124830386127278072278133921994074162300124571288317021331097065262667902530709866095949130866361204877142426421493456322778606518186524801712896326101537962728254676798617712013196297675650247718135849921421527932734118012806796583501644667684659470071074946370202628316410734862501696951609421709516127259965833052758794418344145609559863703946029465037327862607042778867161199558633635618610641395939443970102194218826794906120071570430968259872723881261536906077878250818667598247487772021745246977543694913131935711194224071383754006639250835964101941046711043170543668793684377967179883562961367431095448240088073591904974450362978616897038807970726012852895249255396085773916349145950331044780200540632710662968802837032102178078923978799457906029310475956279045454480057255768167509548739873015566281393601689492955319514491727525764215429680175565093560707782953955529472457193811850717416892484521467791834662797255247185777551904817723941705884127006095486588629297526524110830079173948986431291813200156663584747552247670995649909625022018896996354862083975454517459343300143769082429474620234081553577789236785427128551616645917878781236646378934838109632298774872486314245620791112801715874587037596030526475455470152980066931890579682747977274512345683019550788748900421454172457800123887292096993890128998946687607689711902212535296768012875054806059913183741571187465375465363909472089397393685253930812373395015754390012793845411200151541713859007103602429309171569044589520601565025522641059382130440543009225294352205707381306787795371296251649293652647345538055794420306312850995699184236122782182104922195048475906163286296848572406901948332688808124436711977065775291894883003642819915300206421008376610887453138341377132225328038512568037080240039162724663976959003325784044093595806157201875616440547526424370268219172027293597241510893735000388885303765401801402251009027239327471228076760092829049044171335491834796845505291618876668311596441243316053161704827234448521933377966431970663715117614940926638120387389794662329499183767323187910494397757311621825092346160025520856673148798251426849561507999672737075583115779476092447916179210782222969365489606380308290067850690350497277897167293260413648720759507036070765983921546475294507660798813865214869384653055303119008840433506834132042905140055365363756562353313575425092481327505375834573385335988092249821950007674532640079611267072457924807592212972354056999896432008725310016028893478034721851623562389018368696355437009612982429641006119159996430978573872464195295140274417058579285034316283353628649540720437474137815647767892420350219620593806215873993007168772143198396468503994100334434282760543580686359029437306932202360256357392419111103761831514684263182596185337983789627227113919825837610861611010656184693932629124704232008771147669393376192773069239951892211925021599178355342344515746575183593063039024418476969947521548850162858017342455023848443105466145898973786852708254995116589574377645648745215143524777598863542310028425837610147213625397449918130520732603612684076075216841011459924304035179268127288923775947001492449112156653647990139006852724877240551123232735605099260789791641185088408792764199870099306468190624031899611202578626146463625106939640881788175163638614493983039423458903632745057867920327211503664526412614597885182961090660138578459203641628527551587937228376239341546634028862250436432488393564309730240684888674720220524149218096531349166432981927963846839613500255161379859794383143855801667600689316750439282545383971150601917316311436713487516916025759485219054112799369716994494016194043888228745153734481538316745633182011180200974252950371248301709431726323285286541886484759703470216272110912530713397687064459173577080688860658561007140919269128820685683806949256149758966477306544495186337791041404806206077933415110853507383690504932104866752736115614949361608395447539644129709146994981954770677162516992099665013334341232395628255214584587966777098232140909011763123672915186173876765646754732928968202530737320079327839435520828143795082876956006460331321427189628818434968286561792407576472549104424692923315499474962850695657845406515437325059668040448188770133867020949102024849178760951400707374485992781892016648560943193238116682387953037152193409530614098729488248011593884681062154891774082742061680076703120224549129736566173993223879461186060497092284617014543325207514227311580332745836117126025279837386309714311149948685475439478673465678060321417080324715784343383267715631793812194534231040392937820582208270071486231623765995274438642810114076159718692588876026360032126443852612958613246446139233166088353197067312582965811912001635945438731365449843631736218281058056102746632227251367009465317580033123187624668712439417479591744098379698267339391060212721537688054199231518289132361728913242419076302581536687514988885779332192302027713028059951817468553555751315572464274128586454217084557950503001239736016949858457818126808566783393081302224563888799425015884603979472755829012758647576253358061056027792054879294632255162702641458205822973512510929989888410482472440590852432725729847812811778628892117918036487323262950762572884735625720694400293710857887956090444783820950807970877371377017681017769001595681292835085437360741957136783098610066697663369736201500297191269180229095229303831582546856156806922256948650312631306927099269275071561189434146754143181508064766605692684407579110313898714515292256596285249668126137861092627375172620633921585711735177141412029832328273548470971168522497683368647729649527568852144377103354187591155479691445665236477947130614612542183934793486763794393600325586889018711797720382021554351841051317427897757514876568262506833866575693246487080514159230478942275411156488263818471017255094917942237524651835430334809943078611347063914240542255880987479540916399920347670023804320473327443357371284244687718396723650539889266413220521320555966837982081708471924731399365040526161902441108497606180019655965764297914949752733496297889400411595459988895412859544549578885780758570971070369071459584272729959054154177790695097373967584748115188352927618691816720970158762925806058556087830197004885570491313423968974776823438810008904878338551205151710817887757280299123346312132249794288222643885154060303132663352529880249371641628484449762779259783382329568635693696326787159595820939980230701735808980586423675255831385410998462451144279287429616793561398659156769956828208981615593442274329728274671824735668701713031444597534298650689811397754586915300771347557507399626929775510605001123201778290615871994957617302573260539852262746738151216341113675132650418267178129736144648028232556363788341800290608444017229932672080771148136108485027535706240201095484356193815205815399655575745863988173265846987378740255111698315028483759742055517817135000689522492401722108143461566043859589704535082845443390840913967621361858826769866265990897797871519257802920103759436544930987596269746185004700042438033647313917045985658001683696051190374300774759269849273178049553771262597284275632888466316130205519091966686720734632386417276836520831315329525648424879650658598210857530061979528666705422714483392063527480998900721402752126338166636572464151026117529908992913313302926593185436186270106283054849737712750318346353453789887140712407878806771253334542460408700227358801259129527023378973024213660104098284692833806283997486269864359158828397031919800088976023872826092191359430510210053049247153909639775123130013442407619511968765093164277844802218677418540961374742381026786837000956543629687119632554923561717237656517409352132376443147059776572833140286778012031522721009843358957710933795167340273883947892276558636481905517410143040217468653590128586058717339305656963421186578501197054837934184941766232958749973162527066270323258693243257386445982287555098195167432205388762969965541553879200868202184532738172226455468738159206290172793464462670697826669171347538462541750391999895650606444122138766311472330691677654205223362127380267727871737419674182167179961214550763674737191357513986883822268291428088016595749662441656001196690652308754149884486875073043942789620436122189250494572680136852371669876019564436194103068058784670211485414615967216185459225657527496896379399407770386339562069673808347852233652618241513073560124907094673269286008786150311435925866394232978638539940077154435685771119844517396905583417897728691699100972131476629587270487572432001488896535000781563697885078569856645652425767879363134183698192113611502275577177912964234198948761429035078945725825905544508943903956985319319276775558336458473104184538248968430284219008720376764463618594148637898153171982766069748847193434953815230691963206447297289024141657770341709624777059021195647494583147679208611038885868559627302873651216880472131393196403155425071201897753020988962934402408935212908028415536416656548407829476584330977568597290826344894388130089527396926021552063596397564743457894963644350372109712178252943306579274683541300764556708427660533653957398312813930858220817153220697426980305412366769998777805877808893101940345474614641467434154095186424439390446084725210851560851905093065954739308079466143090504263452538230046317008557844050803474494099184438415002615283034180255967659331164440511115281936707588331853187565219600607054979946776947024756222322692858216267171171026689814052578567632961421166307912734376038309610461248133396595958637367017197081168360215432660224867523815083702677073736981738108193348258662595940012339088657905725111067389155898752551048698681372340636372230218996600040377532567383550155946317680918215602826690983577630614702665437307127185062989569994122298501440406766321283332033780116882430258636894715276276228116115638234570085637361178853659890104994276014227971709124233165155315529211267014408486209232401042828279479469071618770564698204594286805036059442164135189993607313096041671997482278337107504002764747156267941701285340942686121841219176295636033844992440119964622713815164440067605579750949687579814761855274435784772555090279465432572534340354977738643377916534579459377666436193517800407913408763801459444289875380700352601782321148498480189142045081780763678524814763363451447812968725330076707102215465613960959519676575536761282805131068654533655198148850074067922859150892371262059330333263256216632376345880420139289552247586378849483357288193477994536283196063479532920629148525252912212261953273541052183204233479061933402095721114816759466721221425390511724181688855000451856717014952759911104673253134993470423451314530228050793925539867047162554788879758460584761555412732003457021703933422325026777938954249628882701872254579069711043067521490658556079240349164480513403519360174496998854887159458901665704319527288224391333595042285820064527056078251643125039272306408618973519569907199283382506075311583474121716466952247687894742698088180164650242212594643649333630679152809566560775218085242371199682075822019316567641328601773804350114769041180291466715337226136844407217309555512441046765421015350882779538693367217365092093256022559613967271547957949769053540769142203419816063040590821943847304779695694256849820051940732623849667137083348152205723240947055003703551588943551010312974502987595130283219050287561407246499312104692492973254381262868639326007603190665790725308199663496999371826115180314587158682830565537031125201002064314491327127324177120179891862293825962631662741858370854486542738747007037792848005712103892858154361653132268548862633339309736065347461288845262810016509164452209460186323073768513640407847227181939219046057305657350441647020282462829144230444804837995049236699750495151526792737261654349419185432488025913020375154738227743189939114387420846037853851158360340492159062042998336755339920061987862715549257444003386988895723642376132175935387002526137749735644753924308300548501401793823055483990385615745052520294281908910253392415770786876941294343517564542849236832773072565914359403758320740090863411232561364961634169235280580979621966949148406668659777633319189746276757153440732859810922796402582313300973495118690736327119858246377418967349751132999569028235639558555768100397278354644259665020512383517030777024222955805925867435351943102595858511128350017895643744730561693321707993339467826134792785408816959332096190062549270374706366340180773242924664799071194592253666384042465399557081430045700927120515273356757420715712591882196046303914658306422548573942175735302731509149469139816490388767961934683923382815670971814476880114433134529547187752126807762899435737846840708137227417293723494522192610371827275613741164367988993616459125973492852291387326740776249362079674679463122462701969287748394090600476458986511163229077665714683735075027887531847466578564302161687216271375010854307411944647153352380648947092183326535911760088993512445885234230852400582309346575083038929456854371235274726649250916549426195375402874560202768617978418965024649984297334492624753826242747062585448479920953662671663751697644729695264728701516393899729335542474527603534724563728614623215250358794802047991868556340020076438224065594538747657001861868176195406054851660025995183446522318555428980012469615445976324405448555258081126466593990004226940369259524188751442152537665816985210614773649869551332541388862587815732474826318828719537222077803572755842121280991730232447756358944559507110317384637573181488384264588850643677135802978507742054747217847514087745150468774897584781338377209788663046422739765228819991777689494975608876677260015800065684559407841536397254441285214630974725344626498614764516122431476766188766513426711049949648866693818265765655665970219651515747745960130718620266138212364021379520636262305792234100635499649531164080653977302828159996345536614135950703883317653610987113920001210185095099429983389108984274824308912446378157733273741795131299957894833483951978921776302059687257977530745915331582505539984935526418573602322296853590675304371188625784592654807501943483222178124451563586036929736854806996947770981336535488998730650461973148891567953748599694382031188500348370721062560120113737871461133671689733471032717800711144925092890872060242114510297220168509992462539437911329416633102044290554536401352945411926720887062859982309756954052652312730542029114596386504650987156653630658959026923180044396662281960169352544360051461486909670034316649691164442671487949437183085245390192327774550524878317897691329286260767657537333615423737341282350010803523127743197842628241116350281647373411567969359914406286616724490704301717577422249202903872454775055113747034397427282717674386578753891213598136647551285512935702409825590256310966713021779785338462519497660573671797050391836592082479841881103682936708993464052677893967574131247901927243126339338143571831344088275688217432321123273894115432205966799110350550369595678949164940234503873498794629351803805248765169150244822140575665235877822296492999597482371651017473399320394356578210579683724878224854753133581290415833659097783156961146561534049878660499591015432308305745344875098378821115694703599726354180837269866059342446869976271112088635846293117476364263498035215337438886840917462392141060151314634758676118550909700193987649424040593926659096529366874961640076852316101286952871983120725334557691948099546499446635498120638398339974301187441859898783107338088134365483044184951744765095082630953303228615029685894869654261957383700422685427061084971693329472957358458461372377144664902132686143030611495512077187585461175597584813187581860944451413091822895124553357103252659744682762212882645350624349318407485902890143953924230990286679353621940781189287151537664250474385421398718420369363687053927224385914299329278688480272662002036756490146236196494138486909733523255810207730754655610420948020032242379417210897710962513812601569721690315252303852461342429424456615947697510224645142081812104962925377143742417874880099711922096463642933555511270597840810573479709284131144324389620093248536131980203524656748961266694391097241247681124518812886414572876375848754467093485894047530007812019918157908921013651764732256543523883360631015182168089332590469175681856101799415293622078261934373190395871785671090349831954993764002671854066019813054675415401883524034978774647487372470842421497957845905961759601824451685188868552555285698201741909196108575661683060614026980951066269214662745521779461881433404127397550240718131478350044439365160853413956391785090442899500960553341821732947157377180107383455451084531927700079276476455194697028654848883010716024474873551714331453973899261038534319955544156375317308539263768850098170321479985001732922421670608251046266758607747534244792964941888852673147564524519407223134184064355088142909847717396479671598415708767054695092798503140002010781138225618195954597492641619584302746165262867308198033866159872315072358925299731201489095609060202052356428886987870985309739568971952326645150061151579846038274003165755841267606756235745065024302961372226722344441648289686740910414764687734724252583455263969316570147824292939410507779122817663836699966961036242560885849318116420283338951484156225621812925707534543919997301060572838302504378731237450031641869131424775921514832660132120108293437869621974504060299480650725189548253204327783186484698203975072534098977806393155549701146531096316230596353426183805697105742874718657081537173307442931380340190294903998130025523833786106809385805964586075173660276390371853953513306737457441549187180831779016434867392123409214218952823034955678736199123155202674341115772506595193597659564595322033223715154395627398765552708958800783366465214367102583383870521034991968284457182925384854268944001825071263316166829380794728877735700509131863559839499401961307800137171091396211354510219361958733319437279486991055762279152514504139267890861287775970621481934517596045927761355888178672333885692535054006595423876529697074163480910085492834949076722438410843109513644483661345456916582947123831031107192355480139892901877040388361430155469942482763985697334650207264737978698352430073383321214217714299988158382416089695823222068230495360313765908572935996536886475689144726450413969176844457971971259546242917122875796570284230557918096982632617454359980665876897635832765384587774044321684489517965736255437306659975415177541901516265042191719905258840037608107824117025582798697717898831096938873458657077499359308163015380665052107059204784129090184730860065044904610395482009252519950836940859177165653294894440946742262319364263077248865617596530582799918653586669519686773292692382200006572060257928941321828091914135507322771948592899530581789687708406039684500403730673505311211103373960277721727768478427352374770984627841190175062139080380830710032760680077991856090029149226561269471231780237057265648275186174834587081139826082347806008190506386717409162799038138587666496219425964689352610660004732582665117548783264785450029121271468428125680366782506291016473241152651258143207726522469858449896848918093648687722182200727893122580643539751522369720614381831362155307759102236480281410147782773896338900073805348554044057917275788785472863584451360580018030456717025373642490143880191108640448629085913586076530537934983887997143800944291777085912532622012300463945003749324418672872132756029466540124557464348588836300241645034928202451972783211089244946011401032360220653734653666281561074761148189493326500194690518446973458837847797857652601106632287528132582435663255055707449682459802343222847983571491767945395461185703543633456925881407581535641307283729632595308467890715383346464853978752005948136630569366380239879459280928424261014307529799180543180604437148660029330077079483000129157122199850614753621566225128570295628888092884862721039135757753692512546420877831798641334164069615339934380950075965814603289722467470162922146307032875394736573676655508893665533077709749662393170633251350601560744568086879523783616842571537551037018385928555655656369358326447878417955593202277747870861710598392674881155415560252132794637951767880610213744111236224369191770993776315556436592640452122504021806119982253020047996088902098885055996371435304801977024213094147431533638014210071267688699312403565950406197493198163375597527043484845642139747404864532560447672602377413417359892847627651798282517111951637149031325876545478251561179752735778210951691347400279009712477070050266784953430396722934487262721295117843337997450291169988052470431700145920672615252164923184500602553714061542704690807380835171244104952257917999221027924232221546057950814654570385936312160667000991812888979531438517961399129777941986060224376684188543931684002124645015667484988656734086612346455330048658195894894138988715592772107162887875280845060265132454441956219973401158766172764397605211751157704574705728004680267499346075351449938802683288489901435111757763034254934728869718729595982266320544416226584952281278552165600321010643115562422093844142449814980092846393064842425078729747467123723918261763089137435761138208511874544191382545763663767817775477422906807429436179392569808351882867890248123475412709312454429024214551325050640170980053961251420264380743101969190077464714697510959896850310314260688513891929633631529569825111733767630336281811387172799403143036163494233478734682253406623275136648950657744870741079921064900590021803360483598779059401078351853783948773219598496379339961252444578367404175813997410360462159135415298436660912524243441614358871668184627025041002474481446119574352824233075070628666672268369973169251246004357388060620868971703841422188880847702507153848967579558486765366356407832726584174359629282897152948153578460205361008174989722104653145935616496850883047000710041920305285302776857154082099839406695148127373615882019335559699713367646522639940973428686047505724876928145030593960156882614875223632689784805839963273841838381256618428255398607170413225229713501778276754663189015793004904352183885868541210800945407664834593871915095623333057333476465620749082850383766991040900819238105891153085847841800885547773417432882001624633145832934194753186319303349253164677854624499429505392683980411246353383535991346968894866891822938204904447496684992493175447156900380992092522249449838991260668316218269179202805342904568570961058428042487163444504186487219287706018027960082648682772960701480242216550903062324393312059178442451293109192162600107313024013825815958382769162479268056010583211944715982071813156881874814968663454320455178417107869873521267281613928486326688388538620080569938439200873738489252768886725535347108220040391825249685545010559934411380542463628402285413536991473752259178527795599582555640852771193157222045581539978305198057063675923836817508848836426396128049251323154805147435272595583633202276113049804962631826233419208304898129456287580221153889000302258758143811200473977021358555552266246600130590968292730125646129384043975923691554792849326940500857635534490535900747708313496120808568108191007989470279952770325076991857680380035155167751470359906195041906962709667423136207521789183021044618081628120143057760963816961081812387039946541645822554902816186287575185020315602763776692929518152656405532185185631617693112690432882832992741314887916756191463952418738415878576379296763386967792580108750313792792643851727470466333473343559837408642926974894484255121570244077285806816547566787784911164186758934427616827319597072509226335778151328237306079975518396102488955223516590029063692814630123039985675581085619796181704959703285231782086605374651799523563592085787927331639366002477183292899672103507999926313472547010918997202046555973924218087225840100172539101686883506530481453053150574263899745976045482090613754369748823016293654051963373072180521712814996206483284541352515324573306947406917328075304621181995427851377215472877510248418816089047406372573281511731118586514366365590001822021656391668628104669207716477864951152614106166742836253027104503191156882707042328669564225065237854062693043874098442466293130536898402054898184641804090155121221633667406936918922845917281688513664466499575597787058798650006834879044719475489772543177779543563532884977534113419248097504611136521866124898787118351375342002903330867781638788057882420361121371034507904556458436276502656116986962531974627917723223581174652382011358400975712746097036414977061306713022399863843140881262204964492802318374178095672619880982639215344116087375019491645796806297059914836403819526615266453493367512287027545360658637902305378215223598966108483656670967481471587633504955209798566059381566686065822939622493643731867743004438225655411880453597387666196304776627383028537789751650997660017195625897143477655755016340553272998169314643909349283697003801582442566174542068383272581166734306276697818833694110819968440089388226445870912601736309266431183244057227542803925508857478598148559080859805762726575320361549263977869122276986878724487345734830775009286889136329141103691345849347260670096467791511345468589454129799956409120956601352780303949609039244761311666831126109153402964342468369828634576480572126545380220346746954951271631619032115446574497004137457570188221047595329806163799882012545459588751828055428431765937280985528882680200945222180213699895127860019850689017049364651687241066600619619832810271790149715741821823895137153896946766886972427634941083932755726500312978725522340031405902355019444497652705294084361945488552724976754747241449546608947167405805329077326425921674336146620580389812739505146480049271992114577268188035903815625590740835207933258273540916986704173098580613355485189594246249232453604450932544642397010575779859600000199544624740770549968590029494317827853816333062454703948308368943583086743035307227735206844765355048201154188421851218052092646657386238241670458479171074912639983783121899782791820786940056655079277331871356863537024221454921599138450058480102055058145125657994633610343000651253852293092080518188298171845363873181529305532972130476001899282646424442418642183858686775896541667931956178611438011181867164396872622545966654337607366799630987975157183314084942194015449671414780139053073863366142779946767595368285745662473889915254229649346925330413354878286510999852881300424464529694411966270465961985204300986661431721613548375221518225173898939150359718007931448472235164011590118646106694579042296128430223555144331068474836325319471783451765464388670328153877419151082922339645141718026935818024092806632714491650966405863361442083534124507521911674468383262038555685953532642305417918263589067836359819202571595565994729286625208914382367169781541314757722680337810751837541968743170625201892397514192679893794101369566599888598822160308012659035820866786683572364538364547969862292815721872723724733887093747406811625413973215092963920531586775631869783300603526458763297897270055032968299243460238307016743279999716649726176648583007583084774367784049048518886975635382569322471476996750060341523217446491036054659270573682056698126986419695632442749651093089229517636165515077292657948696419216252614251425724233447051913987624198547293673813922038356128022006460153105504794519641813101574337023074894956065701545435278368166180714402710124665702650380095785696692807823666714421247062558075547153616034299038195473548755150482244276878696943637419690131099017507959110242666801345285492482118278002177692004556604596586366362480686508068509643097031627940043867416298557746793261009159706853821377431878404777178393516652457954755570340419713740799016055111449038073369512803927481736314943489428569186497930778178675556149111978122139998490609735215752239329871422383790214314627288506522889387867280149578209314997717695976739079333421836033909574795453501356760066935176323299914316313854121109845593879204459023949553700146936763425841751636635588144987265097765218851872278393438437137788355764273938965189763755892467791179670519108258481931795848325357149332139131048971609054057931285153565185998312476080665355676900697127288232057463301655301714847653938822183586228894430777876316394817461666930335551936578463327951313937962693394822156272156084790369676505427567464905018119506218023179813909087532191161475130023870877489322652483025279784198655331302600153969337201786847045741064550812669899663541681950227741398706530501952273788539798709883413405886282508121794554197007225566335773056453561708709045952842784875736469155245482557026674199367194942293525376813334116142668770487350294183418490881891930731239393513358693765571305048847061728785342057735208364858504620035799212489021701583056649902527878619375650646971902026968703090405609443095878693009412584494936894452157763340717966839153461831138548436190402718570188768350361593160653144734755662835665720821641604240687291275344809535528304212929577270618486161934811395535673444180260182180098946581396589482696808928065835707890508183925703233030444559497921351836964349261651128693421408617229753170991961201530307904961707026528532968706506554269886266334193919392745732500201844199276857356735505326615344034404714078249995110856373491756791317398059294105135238041430927848661669261883303517303126131789633979018830631642282418986779232446028573848310140407425518969519548186117190793584797743170063123983178713995316250482741627330172599435532770751374580134926292497997555890743423441060836854408336135346787342619840163178582303631509559256237590899024327463210042983658474854433395643173159270503077809822957504515822973614381706613977645689091302088358924089722280208918858621818695267529019285375995001300813164630775270550760127947428172003692030904272083462845172992785001874677262453449576749478141158631393345062653706171562720033453236983506529015681463229977825934159733252514243394125103368263645693414809326271848638343468312085998244572521423949231077018762710196938345756442735879729269375330617116298545402593746862012859953941811880151800167995298236804279148261355163164746740219424232460997452969512146843361852119493702819319821192406748917511948030696995260150342559058323649698585075944059161204781696345000427248277746411997113996469151132444499491796201904835813449527439533717284316769270043397149114105079502717489587727569069794104314457300931500952621980778308680402044348588699808006583048832566427568578498632381425784835516293362875592062319823257861167595580576574508691674466912054174108238108995622671130614937898945353439296175193998678357879766397306213235701615502013950728732704137752766068841650981027264644797983376359316733997465966710170766572651737366969283835215196690045920818724311043517538371120896627716424160332601968288372764177350795792051192291537192414583055469924146389372274536663153486099160788047811245675919850687736888258628154657096519930472757940769278473866586816174914802303754483284369500070135986206868451104522515477833122616672579286877440306076395612093909163066657521410111914004424742985332367674829174064486085349769222983791922573021510050983745059430922997060213309776092903310654413650200611258726646601439970024633292704714283073040174191811492721415376377299087015977083074356813557054463398710788630857688670651145994690033634831409600096025166089952976350483226257154674567712827258316644572229291392083749970407544997638996917642423262351206012910463888944325731313424955975831047330758143116424835458042512142511887949096705933134709954427926384490307137564765766358200651088892137011376346897501931816186391778898260801967201154836127665518848910078564357637456727006884951910802589465844822903808180173629883357632428742534631137811782589021005662241365728097289264756287464534831707856150626014224150861427929277742436184695310903783822427177345582362912298313042871005546351944269820634113389076956655996788502054096894580597403837197197595709858656686523675967973866124468954492640712138044831101596739244735084389168339442667419335890995358071034090036113397585213623911121453709484729073591120750252059384257854688871430380176595928745747891953378405276044054255106234557362137117179314665032152262364973820036150366972880765946592679211737558221761046501341989726462427949488027726286170522500861767943701559098624131711594370179964431981191834542588355481290145815739744816364309302220116483005485456531833062381245260618802340921218902734587857646707307273683157564394384955284849243373724503292781716344955085002926442629050465047473146423761302150635263608666716357733145222787636647652211569665700733130300904484423076866823747928322801178967053504105690006343107090817629667550334895635060118601133941060768543213927332963395328224799328987832877132617253920315958726613520746261831643851974480358943480370140672458134741318976048710471276961543798544392813389399937042628341465997735587932769586519223198059550753325458108318397926655717369308406643902228225513298127771370113203899205196475604145353071089293150596686742388554442484437904720334970382935088369900947327550230383092519447971292289307007939174046865087451913739610645971858352022825198089120101885603194083558190831846139253817750062156555685648805943515280168713049877964890659780251037688166829022818099849497984010415531477061766540043297752086591675589476660803655862241595980412617254136364855239939468371046217367573601732529740282705445316192245753937547703672001735195953870214987815874671728776088419149490357023776482316073557228470132187752542056078467009867028821982774636448069309157815002267425039540677901590218606300954421822887666499510612927688483901031458670322889983331333137125532823059452012373741224512894230485193350520839402374720950978233260611012524993020031964360540531747569720747318789337362126307713558975028194940524335069740688780306670082988009626714111007845747389218511498523588444096213422430606762431447658948303032172669321371972595713764843696080579621595359832484670384227608984893041876497013114733132732873225067004191300724914118043111449657405337796751186662665157635780582776429167224157723971448783060974021916668623704353310377318804752690080138479530099947854844699036088582397079142946535326226445677572228479240049618195685080936939266634938179324499553128806088484293430537166658833464808016002174246678827648868127947033630760058068529617785872302178696541493503262209698487930546554269440813495440781054522111707742925960108372302951005263932724527862691771874725692590378377491693611391329686989069242725965352974149154230797974183572870682445083378726626595534743695507553991754522429314519899433499138235571489890844400099289552952666057344728595529237286954630176715345697500658815351807369374852748266439942282661775437748169561137619922842916197806022919356201835226016839404862555500852384204982596468023886895944897835314394843952742770579180860154975945614348465247417347495687312214871438760607343245587573533487773220607783900138845162013452065113776293446000216888104506869489368324324867216916045765749593082799721573675003140178441716150940269875695671962101369697839902327977850358495665268519511728390929353933969497991167678952089239606886999375231133260211180267906950954390838148857708429097628352917040782134753853132651814956602119766922714779637695866672676758366018619112066077304137608661573911390023212394728744237984338306457307481180198272516574927908292285666330954807317315050541229594608665555239168662149944323726110920180645055864141740705787174767920847510046640915505612683828121829375641764226107785159723541952702717470242690570639180314119518830397721749790252525600234515988919056800446795015520012968034271159486675052950885508450108833166564269666553348492937946175897403970566187405218237596084720348048002904174123574573169967354936008902243436054886827397937323137542337192985698474398913367923854470965545499123965639709123569149435093174682376150126562235409663335705717123717956853650446451266456361407310010831040919172218623176746976949994091363490019062240055156676327218655617883082725968921757417204329578010402973827942953965552502383939036652114297515781814167836626283269668230926125361459753922239106879009447086556086273528706723093863362484929223332697908455943643125458406086528613356760595058944563571041121283954674781990090858777449764895790963751448118400004132635680425156669572892777353410162181969572115755373121456686663067541682638707523765667890935732241530649407121959176702081306065051464681875653683476720382990772517132509380694913410245070832248349972197878793477591907877534750225083169632670237436821169052270569382466717646024005678502220795277883618803566090940318585521545782722586365617904501439642526278598985345545130219056778719220612939793140261516818022292448338050822846401355815587121301082246239194151058735643172053838740904382356582343369191636734464722980184385859417369515265088391911857696087066061018077817105898059989048399288195758293832057762874718856793167106457750856183496720033615665314552174496575716022932847024091203032593619623193888425033984104614625603681747922579432593178514725602904317656401489125219241061697483809710246840673768252917354972481769488295597603599970647283555943820241045114323521114479523751654110076128495191259452512523469630826564244212707434062076322642985473513386393739591172521381562232765306331466765997251864989631648696110364925107904656740810346362230179547449828516703645297792275758927789928133013719480031231207440853535571913577883859825591894982039189099279637709682503702434916971213129842423315588768466535052659617298127033013045252527712143429897162992353421799803904042379590890679899083363164078932106801723623519720095489832230521875639062745101178534158487829094868704277354620045278955753181165667560496731679758018108478359574536326493837125087649730692682757662325611454956549258767852075084384102546861081481574610132235904044833823521629108704895515445982288927681414135218027425934752148887789262663058782579665105293080366766045787458425650979663354566967581624244324425629492072642793121556685306521966034907217634541275631313538546874705152670609776547620754291923224577647271868662169945057861255704632563206193945559875527226322915819116410483718269307821472847756603158948856115070163653639325003358709881985819352207961489794224923035204608341104740438237673293614902878911681843801913006712099786033697548503859662782392864930505062197620955140396580724998501094154324279481402345809393139108361981628787881060117361364302262034072648067427358880956473093853247852435498768245027971439158276054385705942541189298689771353351284199898113082501608200768600737721102751544607976676408408820599292424516410419990660829541955210774179196079529719227728400102365462472169593542515325859611292901736203416992924080527179429869154119518386359409842831412744835759425458400136595129496572553541819062408325892769074678020427574424473057172051432241257686161286899886889666084321976359146505368511950633038902703839156839195902090585843104213177971877115915085578105274045871026522702957782192694199723132011886798611086677113048380868047630774683430589640249024683446738035978136471283900727336820685269352976443242759944636323206326219210557841203674697627326080114173963158556539858812177693279721664043433959453788644854119269246549090422929404264861111815478773347599332057448810802028684704845058373010786312603907526672383763923490471747775736870804788545264929866921866851237345508711105597360823017844072886958210113492990687102696033566653711965057869971012909197707974184579151005108408516997153597688310626355236495081116628718020991222917103678552745514688708694133501118105943993344666003065436550812612978131927762772069191037606279092626568013341758146774935829047762352121868559522360391115314785351119181532653708205960493478633687807862087128145992304250502992315892258871869753153520927932255793360547068933144093828677450891183432518655661013687940336667832505671069885572688680513594463599520177394522196540486612899068242709950720850111140096285636749314876255470700322910838990063933835928220539956744871469834613202800399532521196207428176402695551927613673998497529580722058794905963609697398379567537812204155712273817621588405369458064711055996099742698721843932255630447463020911971888326777754804109706910853295747251285702840612443660287858313074295668724109401947140756501424532520449907693013360703299944668943772567056583062193521809677143281710071631170281923715003763027589472285226131458269415755063835562959238254192402129228302491019434774170128435175696634114706080779768766933769101114667866434606954718862003394203401326710016742015001458345464843889514332669059974411659252404357781346702025174549159382138485536233996374570708655152089833242718737259870151694366250960382423438704661929324144946063246583214002093995567165902571942015273461995242124012367733095945257671473096197233930898551915984191185409096298571031258435618091753659054077187926542050746625649768468908592521748342406667211388728885904045281447814705680289508464854614545854128829221398965639244081948829489985571032239635113478750512429466319969882574699410912770353122572573461334328514594663964519870891755421932768356391699767548398614628400639709767981900633686000424317526284043388650716210057167665441633528351413053528111627512182828890576573759067585833400430339710151850757011775819943070992946636607266784969458334389036857616420899100701402941251548402206904257152723379782793900869434519827810017872565472497700529044753499654011683385211211518595795206904909545048387935356672105285042737343465463351183924838262084700205716603674444868732321373222165755127835863608657734374501631160303688672040796887575269396162508491894325020263184802184655146611727060843212748306003688106220983373842884537356765323361696047347166988015894532870611902876009945644462832947514331031160228412730912712936067464749174158071264209342276151252537006073326664856254788171385271067433578839825302655895348761945249860088109411889203555793804959193671816006993742829604124257690779691129158755138127672643739230341592926362054997572641575640198783316226624888344663540382036507696506939243448087246573235633912420494603261473452750055817557901861510176386090648968345728924416516342257733931885003422705914473445946836845597587250241039853154394548060788734134502285778384915895756133702661569549403164950872117885134523012733133835683053463678166370796486191162686977858256514639561761562873942435372263652241639196674556485760559697489945186071880101870363097882491213725873351288596748095460458550152109826157302316779745055968840013857262283075892535334789940300144651627630172451130457451175089185990826165415725774866328198154731201247314580893257818220840608653949118909527397510979920210429778540428893663399543630123822709776492463670092512659138716381747359782816206392648703949266255612769578880578352641375920411972534491793940148150472080040948656424562411263080272299759244441766323251607648795019579160455653510546100633578090245558242883768292705716976490664519576681136804510782207401134553245164748576179868307646867213475920543483688990088352612350279915984409240789145647711955748934950989766285333296180902950779021074386537954329154802403728265667259201662343003282385277312669535887537985561859537719660491849092694243943134240486218828629112186678073996397164890147498465080502076400194985587535226851013547897399383845174044645357794967336441253800488595989322613646294842978926057701108362856019519425659088502092558039495732909917658970854362130412817138152746793989296889896032755876570389889025060589740465827588121960350700772850431567490694531279427784724107422770592045658558459140512368243274379572484445944857146128635939997199931771070385848330161876736782155190047266603358254569879291939665044692623958716158535390150420312342086043167477093110684326248467607366686722675223580234328198380652626377059171882570480779436564559111913400263362179599355269193327573816758687859188511480146920375782281916139986450974512494514426875795147790779876388548793790650984023030575538964711339313621819381368331615788261995645385398641070009313416945355253128814677257834204983976503198477818906468128798138090038384088834119017399765517019426659583048705084417812422362590703219499903131112482026089852862506052937044942226584156272896102744681143895226530646147237089345126244132208678760782407139160920451215304011107949565552768580081560454573625673317645668276493281050344122350912250838691177643058312690114928605459772617068548211931922206245385420894583503408321834303982609813496883312406689124470128401952856386721014861680615200938874068114932720447158645251982129294233339941371237884709455404079056499786756625274628430671765248920274145489776440496672724315530130771114695373863714208712660443209517186375823164517009778488467788622136924127712175312224982525042485125786411528528162324327510735210287893293900297017806430023336342268006696750785527582531157987494918057607638170815581924486737926305315719476975797893699800743913141103940879371845519912125339846542286001664976108881005981744642636237965809055587689570126039898788262780006957526645337006112589943528583049788918814083943154692801109219969707340125648462572273334342078060886425661952771507518195952861351972970196613360469885418356219033332163558607116004604982578197610406244528739351046914029484198416901093724627609666916809014005195011424712857053531050010593258523899931935613904537341690738936933628204769833258773348095531178746739737284868054685576104374132450301464562355200390292960275780557910506038974184799468371134476623636270885813390764553931225402991614103333655246439024126590743996601557095761259817944228803920495261103264578110644942768435334642677885541632131250845804418145781672371534171684882332742624204699834911476888854654739111706629317395087224960193025278219988685392711873205182187995537585473604608173101745722183567910784024329487901050850241573779424199971522398502371178263945077029621236241600727057820097921425136994752874849696527586361718899337116201062862470180477313591019936116671136481625280224213683580160698259397886682555820319488630599283155735570288372188981104988062705778953102196854819552537913633926918301084583502515963060660777873903295717072511288857628342665953665353991354754057182544023431716090243477977222562748038762914665481473445495097827788640280201755881113375489953181478051135682307890543856541473968102646211507719429186318416019717351741522349215054812290599297567517352294015932896395923806759724125518645881391739635936504028608016262689619606787327684527138828012806456886775524189698432788191790406701128849321970579687008860927657754879216565497153519483626494044803164624854649731958203877796702941896437105686080950575137563163845951008456723484807323048115183877866438539078753258491451937607288635521278874495547019356442500172094291837937461231484692601324383979556443705286050276064411308339974092059425062903716832109971625254491910112316308237622723356888737986392595264211797874847893664730852599697923948032838745483660547225292974057340181107766387851199602478674784980007557381549586851972143497657697103955133301529726978542830120930379808590603485008344265035252418939239463675346203931579248275152097897256760951795196083173725020524528231286299776829111961380968987547745264906713719810762871484013638081690363067579681466171590001932589476565862650784019225997856397230230543406015431597035238763468576904335204569450026048163218700723636970769423249496977285804877860960904192417114932110448270566948653026984956634597572353042437868906229385105591978322920898907395015702301771507914372360971907095912700850303774828495052147327747837846251034171799794663365451882564139210310502809877112618763482005823078908290840140880177446856453960774740582871045297949339205176863029382937276465384150091931064760592469990561146995966379070571479794671694820948794532691457013755574136610723255298375644548604447292894134045694789168569856066588907929564930777169006782889769635363629365622468440186826074980234967129152576693526759422744355860289512054866709307112651841207216032318198878304555914406097745621571402931489608241839600472668376297773106955454074505363776699676489847311960952083361115485460401761587168353277644725460571606943390534194356822680939845560799002661667323099874502117665729750535120751658896456384217196913161569421277158954419209837777214287986519213582023275866901651743282211222260360653616825607378189338149443559784262742128584540726500142267675491190845947170003525182841054903293677997356127647587194650386151688276922336484865065859013821472481576966828129662732007984888110440374155228444050007420460340666575950394108714135066792232767069613772667379675906313687753803750879760753214412198401857356005206599137350876375577772371250561904055490781835808414173217732314705357912629372355172917670913090587410466212029800383592154156439770541827067780514002667797611707600739980620546925022552602822690100693972286861251532979765315086931664404357219281781194241631606066800670199761774590657066655295916384183055972549794405270101257279018770253236364273320024902695200567702156033950534416690445108384683983071042928224426502559833119204320118610797167401624229249600446665377309843750751301457606566586153906515322099305190244097773628522006118201928888048012314711968079640809823405029955195388841323800399935860993673356122207079106084012549063402700614031105855367366362045821356585507096076831945909051510187189819958712628384812112632883362836452491120718892893488317930281705844263626338774452964658032479141700185765500526305604359083388276556676676753600262046994927425913567382542973368636832386680252908801611117109264913687660716365783153077115040245429069453143526143477006661296713355933707846625526334243770784452525489303483359466166048893558903644794656379212934629590509251578227650549748545766252422537094124677053450005043488533146590987080814108618495312973353162802434017331109014056039307876722205708070191233451692503688109738688288146056652260297045755347626287816130927591594181277404319601417285453212988895129840040260970948486611731697349025797817029402290034345056909115307674172436565875397380880959883334709138167159995282184580638954283784476227451778904185088065708160902259495973075573878949757122285958490643889880734785204198288299549359217222075278918908457400971194321815920612372192769332262836389541577583709847462683443348774434270526480508758954941423785455837903973482150528462696189890116288933314495551721435720228286759016766224787949873333927314007756535584199301971267892923129956161361295578100649801216331998448437843372526683704776155463081536878981057991094649768691515386315285006070413037759982537831249199369757085629446717748275608338353393418946772444910111285618617506451435784499259059759506560925368432513516661328626796993836259370451187301154341839855650906903857776197206176133282101852977169160223137680156514402023417206293313580833971986993923685351467587034641881063765117034296709788176995259205114590168698821371187678395546022619832384336553295146389768999323138498245041609700796534924592675940323463851579655797012187697109568972059722567758729543466624360468679104341856479916322307408307417397015417434630198412945507621450493979151475883663187063523964616328952937368183912859543426432728385016116523157650480518913211118691279858220209988252319299933271772993518601677578488798041122925458136849674466128972356944313784899663064955346046937004598073156900147410798139499723571706999086749635368963457743023126225932140985164877301195610707682987676737175856687544053202566237967720392092656749900893600724622497291277907721730614292899328253113173316152762849208178116108746276956918504895404915441425981791451624523464945820965100765337229472992276298813667425100281454288010121650827561640107805884268583015101882341860496048109144402366818262587372832215225284332468463921817997363628648666738754379501373609028443320601803032762231010131640528170300404302170145492194807599272760342962599629241044472333410765302735016546887194720193931874829163175516253947776259475495704435578305054224501768885963991737104133084003236717658931220548848950293773949315598653601232975714908933184018154113031287650078803553203511787857913825745164429723592732982895136698910110610293173552373160869263140256568364763442949700024642029787385174698662415291394767664750140694516995737138181647708704440258142741346902165562070468081686518403648762004163551605526634785870280375792708616276601734572066862032254746963759549648155522675921960623401026112870065372183323587907062251936643434962169770458505464628992891843329712886396015378851236498594230670087492785997318662360238562975784326669211261180327929159028031377453127917182348189631007543909953513180013236005543312420134689851964229417242442569119330392577357693784304095265097709389572512906031621688732439717525994332405627072267803451273485255345466054231542274176627725175446255776109454160021033573779535601252127050197504953695435553384588919393498097217494864077647487437733745274874723578515980862014493554069225942190032195656180091640761431284334426937822585540137037133786039448412707877829725975701682255026145973277401976766553145894431766172342891275453679400983531080963130411167982939391231822250625663654995658814040727805748589641211963490459284121276823613593535874392140666074399248839880336406358697216800308393030339918591354471048631828924200169960578257926351904360163321723983515027365150961783182098997141784883047094995777541655641210351982124106289614385418274497824900066779407296424561423796768758548250098976604630669204154410005610334942684250801809425843820883870050603257199101865842309931290561161838356025953464885282266505468113612424849455447681516380382756755625864777465120207813579129056943255111254158259214672422336548641669339532019014577292445684683573547168742399325605864764086317161320634026052064045958901774227684764443741276169949554062809800714996167264100621094142598122549362264157922174492115686682270631845177793967202617865515353957378527334601058977002371042996041930147348435948780197936191789981020818691243077712336703158532541210054068780813120308553195578424813451530047981393218478153453767841084284241338943253479114240062605041530625626539888994801273674270800193980399280591534654293038427795508987092882258788192103071609683223206951716149369247069799187176926518062546939311929046539899294858758337826366558380086834738767764520330782993682823163502212461130957713078150501892498172234239558774757500065975516878957483464809424784808435198799254601410185415435669940306479008984661126930632841488839922496554420020028970449408523592271669282737526505900979532925068972801129615586502515848385534654650786121131433427542442637097342604095654206785180094064226981089643459971249449226454485989874596313566077939257946877344939391364548457822325336187170673032350296228443679428405130627901636923232992275388633095961909872867817262505880982804532293854706974344542241750309294181558954351880657415432306030273258077856891541199439114105941048165379143466043291123772401195077817645996326753443443038536551036411232172884689085463405279518285398235588373585724062003363799943430305619068949066715260201583862865435027021667853636256765302673937885441509350288008791519916801357117020033281316905298816902417826229542462764832524353031288725435972165295291188725861790831330036793489309788355635714153224130836289672136376170357843489196393024546415855303063852630692102463158955694596123118617338289295780182310832489008459345295807043449388817964841905747356421219629789536912907759886253898119613802841396384964034981730908999903614766692535981414057983315990512094032280976595376946074244051463188126099705427136851155614342423518600377002671203070263147488934413279595802675695384674915167612823170736755383209704688183106861629850705311456152079663950591011963438602286389964228865357979911776421775846090056457181771051571870465760180085793353868993186196098581437462781702808720702137775851002358866855163492922922342942658659855587431255361074788850561794323780426425923713202837498471194227078686950922372624417198517189811348211128531589579858090665892258967744985386338716722004403448126849305594010087148586923577030884991375786258422528559937569429409638409652256066517973132356907880912365607952380483744371923360297199424171086892205297541030979382072484553568069827101239799332323492699005580668179529019371397751428914740356775401754956929246767780676064053995768477202754127283936598872618281610061027435582300476604106690086780831135642720445499312909630308669165934382090387149078843414993035979531414029533038012830840166843278298250592767646398553651148917050520545404978852036087467926251477020229823656224714086139659552375339370557231230478064299647256232080927109709529693223731896814460128070375338864691548393462919191092041027824612760103581983558823423526212239087016040742974735342736594339472551435004343269444805606244817080785725769144972454593140177152442944711678984238903503090597655729005047783696648751111497788716821808708764983902750808728838707407601367466841980423617035575021129399801540959357100881193567386442143701102578364080565968430353402538439109907808456086725076218430253203526281193058563053972721144575592530232199186579412340100594823894153552648862248601225179932774247607203618652206451988028822990563416995253187168439254276532093783286424376612707528883842958230306202037300572225140702750884627532282429552535446637447904432327529435790368997183451040459670764367730249537623388480586133852146322544432934983046461866837321539519623075654726883284391597230471852230529500458451714340382051473699803262274104832257463589559986713119713057379459079464529555891650041681992611488364577548703253169266056375253820988072584464553105327692484816880499365377853251674623358627489286071596638242610288038657703922085579966398117436486726660213646523628727192258987409276830484491964088784297310446830647802693063108154279101729130352303526718932421184525990743308877852534305433223462470161250786491507231431395436239094769827843572272832994244904980694630388957022900336817562559567287874590678001904177915192060173970134543920475564116608516557540248452039811949134105864729328127255712199072112882028273120266334396096455915716077254283217156395391989275939819736845546253338416675049950872370942511960066401765095625840565799601523065924139492925135867503491879722036857132904849738522311186054198946415170902253520415669437114637509236542299836156957062370992950481406254638040742915955763713388764093179411449426215007268505070527442738647376703157231800550823633251252845380067732518637329478016012815659642367518415840695936807800256981087850809855169406075608880088932372324912338130544409269805678133088186048537099247231221322158544655620864481094348715186428716492081677563894929187968924713599509112214301862296824239889464386205402416103828379386317094975327143188036516914453965202263004549824937565342162334622377422951797589227103841006382389929868044692082868634062971048861905386453067122248519496310498128661266616216686845205457253597185971266066045112429145682912559889116580091118178469115212741387794755917793103125643636717207174507020409460444953493745517482252453992859415174638173741249192007038450222410071161395324563159931857972448529658965474478858571193284939589747952319244811619124928819786740987395342124399446928739348358212376237681765429666118392937097498392748040496118200327390586606757674557135656510813588133495068321796272684188854731021814556433227895225893767664334332770744436577731501717566381163998688180526325242491902174349336105956765784475850112278808401824872256422812574228396235200898117220973377799348273268435845606879670462902976259715414044596643122453834563015607257924603985595474005466704436938591715636776178125782166378354842010237284787995016123979529440592528346632331794824341686390026332043751792824207539075453707381364164197237672623949313552077372689906735776081976240451077821169451077912625159505122000270849967698251274457565559215629723207009150519421653964132459068930854130564955979436483643640702324111790532654776631363035866496019374844830144671685984824387789611985146429461318246904631143506102508104748115412995087768214648052371148878651756651706438414000044020154555598497171354437560435269973428152995012916711152223950224019589679367201726697322000387698545007722048202925549781597330535821385347685365228404864930767646950075595937415216521632300450598501743985436431355512002351835185935571267294557635503833091104595365611059035234627604108758834606343442233847368693780657029325696752084909794118462663766456454226162410026939062494484501202396384985983388808282733751409522555082724707501053465051008148574230699849768808041118200739081044974992857784901747000584212387830485164303822311424843310569011667005137709796553106563753116476557559553815885173421616707539910777659319934314751855341671755473692579341095925158219888231345210320456443377529975918028646401984430367022098498608135206436572319252863025912663725967673631619824625703811321854565574180357914879210037130168647134563064149005936000746549220777064169618285183627337801530164341555829131046298732777839620448731126325232154287161074858477300463158905076105218860313305334677167986117720299787355094829787065395106871838430609773550207953538634851637030636828055659292350940892326101067235080647777948311497640145929231028038636147720352428443440760496054497220154539384372186664907713511414241054235513420540736516550849448728354554171139515069723381456097612215478499489072965320031703837552166011086408839885587838063261947582246770969340451653246115899030611322629394423983301414040910333460506231653392222578783261441233627191687444009309469492618028981828888566138680365873217997775211114467463164849406308900289192256086745491107460844317138565582078974271532383715885230700069245643872894221439417135130127034651337023505373745410244059039743213063463293718381827262554891507452403116991470395876253768660890023197521376100743919876433944934499557103295494282428324347621381528896738205786226523220712874393987808946050349036468389559309824981846332884864852873626292766254876025180941332389867398996619839628019753476730186165185568544154621008775966666152322776233531064412540048517159470368683875594762489060348892391696473170204475900730816525596619108115762175386679842317661825792854481858331093631861346741887691842339388659399388120007445082493816811143082798721635541907196645662754103688406805969827404151176944572655280893963002470856449275210918449424787532646084606004912049481167695812978049261825838596014762327952658030496355367964292804704710485369548504979913314208469820673310547048352662361460545400811907013529290539662848952727194592138141839516095598395536183555205064855384574176082784186570138433091806790840163988798406366183281846369070139613701351416630691781025248998768413941963371955622318864566565205400195546809629825100021025102397847707446994975654255788449907524312527857189108735117240399763383033828304869268867843892878600066785712598507017135709095166799017793320384033429676440924733552423694470193876973750815319300724245382091203989503819117300404057066266944162013881464484115083263192617375170399636028439980900899144334469262916144970607998308257613709712802326394509930157393728794634487449760041865749260784057812014427660580118245731367571478330000088957138168184184581074043446677611291017250194426988290753840968475853753366379479817984447104894543309218621993655774424986194902637798045177297881650835388710797777611594603055756776951884977511231518807376662302530314173104406078128554183254654794934430244580619004781127346972896141771796811047628383625313514702853032096139441098404524054878159067954201049842481636926460415852361422483628783856266839912526326723787360808539445064883078167091370479243179190397147746737541066852402826977033393405682628082033023404842926970433630439246399526613506370075071009669401344478541713986663995429185232977402114570486774740973361439592974484409191163862169734164384092991342835071530006426226938504315424344653530775311614180837390460388479526941060551684976045264710094457913250096321734251025257109456894996296094637569053498942802036016938413784939659657982855142956659207629741770401074056506150106976508664217087862520853078233600687774297382326125406553239562143488699033618173755618816914995823958545769777731055245117990262297791675455405067643116271856142295568755541206597179425471363683690674369216351111754188168421120516048959902756433214778385714002526943633101634284488110625570649781421118568439802270730853193030339268071315349030835766859560041629151464192564678581062222609325729047268224203516614683523017253428981883941755169145080790124573993416581816561809623156017324028361366546777072936407822521162728222329298921941360432806589980528268512719203169845179505070330742280686915979451339743769673451500006691454001857160097740747942472484553016576845009070673832343312898509601714106722643718744160212707772830182956077246833271248407354993724092944618632039167792501946477453523405989421488528711079531079196489862238729432083091307208672973225943094977202247182957063223705520202767052663414812479234350460453636530736515124942948019445279932336764065768911770344793375306512761952043103514116386782013945995951441594063132008072375873456690658784190381792353691977607827942386562685966409736887347980416179810297591882200243870549086845463579711797929517770149803789399380634893818454217389607593430910277115191279936172048245299363367710016670978731727503565448099383886613981850529785881654356451606586851284901205449748404260973253979708214547258845619265030024122542830793597048135415335603008796974092928873465800289848073150209549459993015985277557199406845516350202711387167627691581645923858552995597092868163880506191194858598596147843246650901945987008599323685067811152347504447141336764767634409454398292949165595878358435789877693673756766345126218091487867156730152112332779047089841614956711037402523162171828294102740158766723913344199750745943483889670073767864117708352166490496208934289526755687567913706086981661893352885725087529043758663476782443179433156062001547366981886027174316681140381604848145054650863772119794376072636255636305973608454878108329050852094332627723803820707381196553938272205427092641977542726630150499664495787483849064526108797322656831033598461739395611898683106749617148676933490228572495463095127088123006620585227883009432849848686618170441226330048816737734684073237853469694066002476657686676095239262430863334938220659793368606982220011908530846022750928957600558851546677791253057591083048329842906018220540966275047646524883941896879281060196853643864340808721823599361569610507432909129329694348004376430423395164444627021461596150631416019176987041482088691396892796692240831895348055819779615340191396718890397334439805843107881119716343729043319464964913905671694362176976148349795015044168776283291153051743519267162682689741905260258936288310517752748780732427826213805524997697075612359364085579718623534701308913061269054821257306271509691264861366668012579400104206451193096782639355096441892493794087017407988512214416856034698337368972808116959355480614759211820217939986096052032489514867049040896206476164174759593756527559522229525655723896766751573273207369338346266106599407740499187673428607769562117430702095617468514930349132634513065975386532097393390678332181047706427567510796817287383351412196575743959304820106367369355187483011273776363049744053002642683962685567052069284383326162022147807694057330967787741556706523997481644063994130668044153818163761545724525346086939869333927124489126242686849052889273735951518483348748874066267113315767414920017734702815915152025843030461601309351295345825738564625183753969487650996307874663753768908979170874008471432643936813235133438049972388480913093338978511311850649433091287330500366880115892654807890765800515680699612660242772981986497575397291835873968620740573399602520247360752018761225503671593039489480975363048644936776772156250911037612641407239610775339139388481886098481507177281848531123872004255583491782444552449245156359551720733616614189353316411854692269675106904881577787450304848784229114160732972464787399585734013277418116670063114742466773531208639459043156713256418268977814362071562997425906601821462730208056975334211417510982773968145401546281440481870920519607807748047997339328026173377500707450327605519290009286266806754406185687752464739284896195374657114150939139335011317500358977519674567904285654496385941505513735555292988739237489640271121596718083785212738405452965307234718911437668717260637946921138478665284753709087214973194158119022507155237434479437413897459836499526984867562647397225423921476488365545858926407929034654691092274063845988712705973484397828656839375239051399690470042674469194803487829840887658595955404878718416740810261607628841371685018017952451246893711533778223426951916558676098654097294567766381739396146862015713768901107911139791005696586335587592385579265620445855030354231142167946135798173197605675351954772056623720270271928170656333882669171343578600437559881957888090388161035849614019195172732034559818750061382531831441709681239988206771122715521085709392696048618560377137284431640948675963479271490286592585242129410304559561428045028031439099457618703469547854606465092985716274956234228253269019349987407893717420757668402761820701824841894176468111121564434644638778252140922689307133009150132922863073955189046638402624698295344899354514216151339590941101663641799872839382912391328486717715303989605101529392669471965867741307800616886287441141621098825671997094719481559780261351537121165697276611272570453026534129687793110647329024199213388497606282019657739322526260113847383177051275762588019900890798904545787805076546337962486949094267076919815113443207684677157012391081099677050617250637603844927094543776017718982754469115479596012047500575225362263713801033977654681471091002110990796875302657296633579291999194528461486165365449612744899212358005002024532387444082091667397324779010254838610970534804852606665010508887465458099479950085857430457735524533903117480719506297604160349540773508106495137669901227453791650995094348596607657134622684003283152396885609142427788630346041011372712368977634619364248485057036653496700025308659767991339008312120937662937338291770431714807373493692371333578614265148963324286640258257602659963115857766933926302718543551807620597123861290690312650850288235958390106251699532253854753557271464349330085165634081646128391612164921199650847599004467318704356696755642772284936858551506224485207887251281875672319934718394547207897671071073064741810861296468127875440458001479011031767157519557852815136077688850386220437449865667091756371246750420502031540717973292699245303536483219413637821966427800923052511879309884555617222161697775307398213429543148483798215598041479550031835403936062963162683459919112363143124599282532094913207957695350387941781308084013358423276697826398830258915145515931708313863187934860032732534511154486204953740427222146662920162952188839263871855571796338530751937496913395125166260485937324163352920153611320887058172136010166890425298926028850792862991328509050965687472261360442400065313415704668742278064158790280395470035106795708310443641360238953177223887772280002408938453528568552440240793086085210919264702309431073137423348930399267324461578862420177878648081647437433905583319608976765577684153396781516574226729846972602801847225563444295123387415856398622424198798198809767652791551071799870933893941217110766927485128969165053790153537876855450462442231547163010734634062297954767121322873985604172430669100305792581747397513349642865650115037617186237354805852372582051481478997501753210064118946634265680893641821794259128014123561589550537677306455353700592772758826940777497494105908882067550309911614764390304680341446667519050845144857671493860105216651921724382222842259475336601260576293041684946569236401336785012926194651506832103691395525965893620987605256227522372433248548028352661113788256187818514545132890988930321252441561224482004474214314914158794589491044627843549761227913187285080479144043314727688237594501763426004061295039708326110591956303660795613432759629117268762598489910204130188050543478151928264238888979325786408733615898532843100603224023003865331323213963688250659091988042006384721277621966702946492628507961706335294436301149463014991635477135238812943798544544903132640485463844532184290807895995268222405552030784645478750897064866830873952197187634965877252738767001868251910398067945794812976390385997789742892863443179093176595230649552866135636546232352020174370947371955156881183023149366247003425130838407731040784987878067022040500406652824942312592150045072931488906051637980492052640717892746335980705043774333263998549080090621488825144335308479431056253778121809043083227842226315087297403398796972598582307201403913322628627055955054541441137943614352773412643979161637060074114961663531098242129330396124396252771790033313461580848737209625530825597430496417814822032732549602709987198032195434670541573359184251909335944502734499204433286183997249376201627761384293879917878117434625419968486517577223489043553247049397629480870744675207303598014399944824210727130202115162511930216407512906322273263685537923445309687579662647938419388051950457455918115183573064271307440807747224971886494474353214587020828645807725101044399052204832422166767020496347971340407736341810716795046621084200894289901506608262821999062516218098991717932290930707731300413377994552192807524098064476798494240289647969626287431832075683711031820155370774168036138868475907825895481490976057800267213562004456371101615281439470348389937943096347113273897526648243358424180535417651120472726742674467440570870857012097776457463609802274446772305702763754833003602734086729728611292852125288843665897565326236995430045142246986218688758970912542280102672187804255050145518450162982220755534152855778351667598905755095720483181237098483219018077031374429705354213231295425070654089631345466231097325699859601573112275340730271928140706265712020904448884019646352726634579055526211470796526230654625566822424416406794393126156254598764868056230495228478436514601845182891414377715331306105998874961000852737365192460997228193022025071339155385204195416246770014269814750932662024893043733640500882582157079991294404906500949605567682331932215253658319415133801491566987388697043667267855690928379147532157767768642972060012032599933803130305998761340300215778452533823485006568032072620005441713527581774168075245795226398352977558136469066307542612539333630289797544334845411331746873707838733569568700307883244072859237217368973688320025622499949530292493389196611498032120102100541396499523504520639050904794087566725876344864093878388485949752599533597129566376566788865516781265953044874179143715489564108194982189334394324026639880816820527318910632560856262963487842882269108522801465373672996438608169742997152293737874488474998685350490826175622893339802761120607899677921518156937603108939604190901676138227420589215215830636841746056950461871740153491913679101420002648989019930858558472593130762428352619192465966463512671458186984003036365299516133128774198400830461145982803433781109621433707459426710927508811539027117226103300004348398890742508432718786935080208635870112455928064285850487075279063756921259460371548369938909665714071539146715811052885318121691495987644859908582843684682462028201493480763352751905318093800350297648496271561020558083488861623765712949438586319689088110008200892329719992116179144192867569891082840503771278359115769219198067547580878851469973267917052525803505373801080469306443497512598783447813990063972210525053045173697162723279224099760911133312280848017581590705096044842428542834494102220154234349275198906190305626178483554554931756602939679719605355978446551481321554220133951586223637503887787185476672599803291971751507188756388656337932794041270639065252506257371010625292866805668120971352375765778641826745151141505122796835112594195195898183951633023276583274075655417915836577809086111765383575492652678424234873536690914284268457256758794409992878929984944584956957384640158983214582582051002951121847929909211836926066623358261103915198738941357819106176530442795951101022366567976425081298433646517397895229388272923277292509321238785023645729146556275101508128800309257379520292730893290873114736320083779741295316963230271789112774298101178453062076569749898188360124125304782872864834667454504209052620150661209804289917795148712574661066375613362509795719760311503847014675209985297276156777099019886580437823895603183113627943906485649692580971919098168250900296006826141919149068739579732644436657616687784811353208905645956111705995419975294415735637009640656189074201171311354806242381103677751034453096309619934401422149257645224737402036718710998336711572274959108082503643174155957827207974534676603088730689109802897909276302211021775405915808508920822678136033708097267087387648195975681842321318149380315484937112387839884436054948968595330264797924987038864977184245062716219919264155540274729386029820332525817370682646500917239741265426519089957162317986343621142181207756803600149680888733496639586745590846348412664267018990700061938593406234348918905108415549673578606064761223264669678264492904641320643220586872148142925847058204031917944705425876896473083717985681560256069705091043268387901343464751189298942147395075570461667724893700966453899650521913636255933301952611184466831391959779874539723483517140899073351039323618726777907557142187678600457270815502029851636828168120384924927817019115955506622532038175332859238060970438313483254891162236767899188259696796678706532800636435553036808661351464040571173994531535503889632025060731285803359402539095845105261047037265463995659986690384942001771734521178021099918682561536350346753601162092563032670433937061799876253700846076251303343190064680408224310378445766493328117785329221793205397459517955262153859152565130081493895413867620235726831835228165513933261744149669604735054288530175669665520702327282422354175808750589553420421486591274500142911129201268909207744985101099487186058251126040206151259685779103945627872467860981028436230014223284751541301599565108471083612353145475922494386431430507013947923138782936927115922322222209235838875608014080473057080829320391704822434216598925237427583885489040164857673404677116706588108806578901089252737910801663642034297658753728150275326826335003050555779017954829554011945134365022436824173571134790417694946386299610810892765348242408784904511696865997291471701873770077929217577858586413754082724018226817148512564134185158599859723254601972454079092776997668280831511835801742889534440816417831633471436393243975783729151704312913403329788841460175659900305460228590739883019101820448890939423551206947647497184854157566523089749865607426291985910552038959338708830129971574775973344568604117170939139558524804954252076971847864442079871649371297133976082495455587222671380675929541724885745128674446652227335574477555995829685184395430637791797278008971457427271352979685782069495980254888952833750319764102600727885617873755378450890193496711975688816644604821477595738450745275156135417847262095626235947749954889091098055056511838208667639491859332624954365597527532756660740071765404006509012626506292490076049534957844163992531536720572338962533643980176885418884326848734720553481215885497201615106792143067410301743971077797254684331532350923468565738506497098207810778376476435117219061158539664930367904947466656811440660526727788273379608749043856289974009680627194595053783550175952571382011816211142910863513050665725871252287648334526759575347628382492170586888428631098970675006047972137237671242319225187374394100108834019115899143958212007003769516625021921540039333908854218541943952883866577966202241235940749712783962583031191971193720630581519976236908193603417570602373828044810488863040272046716920596269980663765071414466761914955436723796970183729088662216098317992904983864657785503792867379138589869018597889432627345172778242697002209643532798565268008476254771631638595981334006588192799074362770160632273841725832156969967409695653963622530041000011479279785910775481546938159921793327632818415062501288089034253002929733384423974946089710644060875411806936857140171048467443806138696079823740338309698418296916521993205211358146627890306018155810565605729760731015620220718007123301889997445560962507942901132710907134667762247535659705825967734974256443650863561498613063068171019402020196703957587439432933172002368082286561210395915710495748147090633562112380462570670748833309635704922043104378830136344189461701954769552699165647141518606110329014866969099906339428757468264751673754963091928548827982985097998411337569641804282723130116575066143572184738566681151064497605901967399448974236649404365861826103210966997209799724406124869306934972815984030929251657145861501112363631966087248958393455740906989472677192262925337643754083739554348198978064309802908472818401860180794872205494786538038088501776309096539027022785482377580147578846547179726453980935074884387416709779222035557528329939102948697857495346705658262086144516234694062293200118330302149546706026036176976942346491698085859634510628764760913110449328433582367760385306595325180025899182004490095768410921437300820800755932221233406897635066342155296563670349600754013571293122460703068462940666946653919744658558400307857025403107316178957772587960623060267542825994993452693192293391944932529492807091608393633526341151814102817964027152610541967676397843246210597466230594422406527910457066243221080863752309887463980832621743367447071704508756364068024178220332096285884033836691543573471638252842704417942377461633066719855812817604304781938691152984180236006234023395082906798450549448472236601498121272326486608665127240881426769280358256835374500033774408128663868543639321902686253507590421126827388274666876949801904551586239769648458459237573841420939325485057792644092377772425879500699776501185888237245578119709635935651761654233202608022341798057193070706794597964235677832978153558019746038391330282538043251656782335091836992403594964102698269045067424421235447815699943593248726741758763027973972147858089086821387374461970940363337142557427320455649512185964355099524204685980555909027823161779465636949707729411446579287756024542231118120743377015678840944653532878724065262409017519547034403613239977287482316684320131910356111289116274491285458088712620259557835301762550352674278042859411258390315192841783952627179678226074920497061489358852652091997827357517211298333334220051558743287771735340168882632464983385077914827283482632178405724742666835174248575857079425105279388006718101453095900184034933644728397149824163190057361692634634445241534878603086505845948130370511963195109263078933177119131445431448501215907422401472853329741493606272037025730202789300674638845349724621203577524755865541381323308317582714314609803234946559160569513427727448400046870433367084840253380700547450326303431573608853126054097196547265652224952488611318969362633174914055176896848502049703174405589285149795502652637502641519659880905194477597860003924461289271182460707846677091093738444708279137573187092410248429047678853439391087091999219011951929570196752866428037722594705096717164948679268757654994170146849868127551772650539123523762151892899034726524282667917504981953506484373080233656996876390384815805242347165027235544880991192969031619062163230750361666544089827636234534565778169512489239837892791058532583880815845766617825210388150008546564624695086025222038939982714895355532744689927073109129217442405662526898053372353334390034651743085902090669171562652175644759862848346343269679576738779940509167547456814657079610893853236872735594529513097017998263677149048531943270920264384930406830020410417026281522431155558248002390755468949036139591112885974954946249753843672854091640276898552077295705179910250356964281187958754900749787420071593782129588411215388352995121597906823506654519215088542227401987637824499977513972234267101569155912985226621149501368607639119018690283314460250249208537631367284653051403794141128280859521149533737544755514852552664656489155337694418416655243400689081702244112729452726002467506227421401620487106802773062122145520922826349204443020790554208074797314601037185780786274404297551275774647357455284019035974290871819747081443996852516175118572485503073057629310387480686295410462737713540563074476197200025289552832344960645352920247197581357675847886154792246166792826971220592072019295689143662619371626247175847895128218508575942685994830554250609802938966876987566878345967146522808124482690417345688996852576104837249248369423748733413647423041226050685394788674063142521389148743370505025919665658012892718282251212020078574097945985899354191577229217523786784326503336164031846830743171317711406552349498760090340169423325782877970762009664074484046575012351076542659584931883050938981901358765906248135783684305693831244773202869421366051421316797445244038956015434853135881221431531559951289505588493650011043568108139408887817193426167721602931254280460283698240921310172182629244935632671469795754765091906162520291225992361579734521842848895855992588174499947292386442798156958175132079553877026129999083333336667232518596078289497151473121276991765565305332383973253136023417266492465348586249744550549940444771342706148923936134866849746012299874260956786845139909166761333048338549103549709253589144842722705859924293734857344572680594702054556306947380051286707198319196413325182219128815025117970275170239907371108739173770358347565405383346043608773705166245510332869508340457285981808319125404739828678426717573843025230291680569606554984631082336390837772473093456192842398325728771644479096622214147824950200840983274792240998619665504815992637252340060403128716722160150334841790385657790838805007085086654493778855645275301439446043846584902612292766376100743785919730197418399326998812745861093590175129771107759167069754131331209245062735862877518286831717827525357426437287066365935137615975714700741723626618847997314656384726971707512370345918313429930032112775359133134647874865756566366535995774587472572725726447403935833551007255826694516566604396396721370570491395085825369763331636717437037066733287746822527042376890267159796132952903011441578602597171151037652747687622336909652120033043030203053024159469849476920461598026476736223734207416834858539175210779095840352315019728666298553519246920109438323953047185992664950092722414125544654003433113320115049710630066080325085384970941249664325193529927579175925295050716410824696869612434491298740742691817601749718719763117705644009780675053273608589021407722739961126950916210635984523282306181527848310291085162770036930222248914542476108557119555939445998791258538800377962760186232218083463158674863109414693427291731185700854917169053569392207366956894384670651249832713262592526090449529957736457991237863790959853799690482885672595819290482071808169817222295776351160969053452154621447155129518857903511077711946438302485391212791915179649783427473103384867065975249237631833553052793316048348780351347095262471558905485120924523161654428853654921855375166881770878022070152963594500958691191597946214846552163912229141533033802307632681186569090881758020632280761908204827322681949027093416633729876374808023040012076203497577173743885374681891641202813953090562603442352499942419846843292962817939064808775222280724039414517739597392558953304583845458689857445646959747047731685908572741479947517204582048166182731404533977433295228881792810304288819139849269196798150103072436389257917355354488552149324440845666846420478904959058215470922481429032081832240462241537478974044097441885026927729905677029368082770355493368071506774814865948798983056062397407572132870591167215055923125852912975149817449783619663997416692975297427196548527114609473651797790693581385388963128118262220648143089286302018825714125025137383937204357601932804922402206925493089195682970558108865519233713100146929730732289629525721117524804840104544505525052776586000391532558780189462127037819424712822737994549896374344028035440813527901353678926501740692302062189506556462560679266454081157905195059332474875180726279875390754165130085122443079816303074540319114442939694439491438812259222632603385195203718432559761996940059139152546771792054923221820035674230476907490790623094483715491730662982474686135413762214360251719212638918506438387270904947688186567413883819759389150076132287849847932329461953809255145272634700272270763776368407384828027805213522060732046492453106181644756028091889027716722381985412851443861283259240351461951541363542506340886555064551457514394474758288456482621827766121480035923315978803582777798182771775792446724548309091869496177763667012252976429252083859086657665984174229429413825296441729138188804329929592299799803309263189138362297453731865867302742316308974859069119681671523049152642217873153790878267032503555607623655964316277867886990160315228657779641434070180498028739602877391188737969713758504847496069917234373174933743082290490344982536564290824675102804625751823456150177365461616841692652628419161934286457144914261152408833500296552446148503886757796224866713497208745369160703538466208192277612435155662223016163246000110807462802661052185448698260680205819204085128562634010011621064794722144140237922303818707838881590679357808443044579576554605041492126978155235760930713888555562185734466125602281159066253455913268439980077532943990951832260206240978227224737606912435317731105866188538716427695767179266329125738303200608422812008345507345646983110810578257851793276572024103334198136721190109096125963125174351468183376628356532739332401243289408421803878963531152228254311449529539829942385646565842785954634898941731574206351873062371303796601543994571137215348763523820886792917961758397338138027263675232720218438524341931284496296446431620402239665187892452737253893788888596855804583430613802684347446634289448897927398274078157526801756108961181848056090831429961746685490160517405019959773988406723323431432331616201069473496779220021747179288563935950100805585265762806826029639548283953178120883956718848985211692350047756617417824439001789294344377799252353172062122489007756105080971924488936985942598403955314329612569880250171065701781690432128802151239100873998352366545115382072624968917528317974587856972442207682946807707770637868176534990619489247153063053748394417139449933848781771347981057924647337604261986820524257037221005247429616857082577680415441918800776072243457503965086124138524821140518123988253212369208135668602084108607822859983351969572534943770977972682296327227864164234233774871776108526200626262542314837433137072034448327404282240875212523879564840038527366804844699777674477350281406799345482678523973638494551476095659106604488660405518177434518212822305503714529402082898102291891968316718593441134313198302229402068278373875699282211494325992230791616541089700678229834634533735608074880310803822204302466378020299960706554081989013324062689634730435866010018016767339129234939492263715832620540727644227489047820410865615783766380179468998555653651651148987187040912338106109800226743502745478236288481191661047957882261554092308084025311716179993601865639618388081504772430244298919975926470663879579924309964183868146223761747027124432911854110222031410128331039626545237979602019358509629387753174331383986177490653587219019123403299413765666845630917258408671705731824663103172183669378715815664548663966327728750661297513055448729142149684244639227157458816765733964528952507621263230514449749802098005851093064639110847831302715484966713361966021062707852949521334140568041689992861110267506203767416046648005200644257201242387656188289531563506656196904009737533898070855340602147989768664037406900469304796944663077993716978449601555156861791762269639722942873346142549009541883875223072377743139726742723078059672414504886140987001676111162238433426814693849598908002844193982164784969052831882329904705202253825524454848237463043542040166585256223709614192170959245532017848230839283698073770947760408369191011459826712714602176164357869041871682503401619002889151483778310380908833456338382694780729769951330640214570632417739937624375144138084578718878005761626968100528513503231519680614259352626949912001298542220503757331206108141251703694651203581789938073015682826481734513689673634044361706229914297190904400601558516667565418301797713913845842247157211163566626289279809348499067118220845691894063522193542894429950484518348814780115856116705995693356643281354878272433321191494262866441944399803452376141639405344439990125762988736937990111088099189354842127119736863870710580663976625819494840322689406287733497142471531659488481087813300976273665131356755753243396752002008551015918636946454438480760727011406372283535654366647320512979468724992631796026520627112051771717945699216845894563598792162674760436161875601055668162613205496833995711729565957817809957987842652324368487359909486246493867230431244265210658082424189898402353408429854036095569799057760881538025558007231638162917470875511883899218426424398290845584880707612878921286756137773437135020704063923706150249938082426172687427616608091259359929095190172621386776653979731043692987427774412828528959665548087644510337797332282220358611167597101586303422780744385884562882166027507885747268516413535003325930425107957544677100243466178536376818589334641828078367930834664714549139243290715794875836044103441453045481916475372335541291680846176934614530882167366194864274812995473757343352026817135760150554636145002035538913900747314249661997632145830395580027030801369353208114232746437308330794891383149753718938903759092467148764420014201029087049343426872973571337116974424452476899174863126072935750618957284203317707264186029545443680025482914807446761117011723308179038479036853844275767868228544083920122907186341502465959174158474434671173625925801149970438768032208207657307508281175492530347798403397426656615072359378602254755372128070734217682385786895249048854384522111920562014345148588866349722795596569755231543357607122376704162484845341048750711339959717022935310956758193019863016601063992996379405332444592634586551607421101370076745025061673795234131528522303427307115302005448515553183561758951124433871270995275308270212939632265924138839176864456575260499411299993357870519620506340434142188606922416657253305780716880183887230718336924785072765632497991168758380444216339780470862194130030667286086683790919085206019731745479501689144882028778017259266288136298700944057168223655627132868739495174753873583407709495914596747219823754672855419064663345443026169142704310112547326737867339338175435810512202064120838899069390776872358552867892484540064149624537327334354479328972900386579155924267006393313189630146584768359091714532401273948134071921912077925825353778627774788932613226122917002982730154067057303711850294363733235368407411714723549856381954859969928469966551993032956976678799382890568673043810691801349410531213386710399682253854698895347556646606293759416054046904287818398512583379752785200199722292699887714262923292025779699383674780175053598991288443621828108701827212732491961218164291039320603987025597503113374106535970117086392276813708015543406099770834878450252265189848799307986710718723102131352177911711535461916585628540719093509808404473549383785998824264701645192675374415612718678724283000865297663553730195918899772755647696383187359537204582525140164042115460995120337918470603204266286865964427476696888236005066049675166294471771480235099030125798411340375529628335390266610916392148055375986931662435385563605187318720899383630344318278478737410606140437120192322431878162323642107776314309266830698885876523254471794116852540923747072203922129491275219561255572879354568191554589430048567997405743878000754789755132366943780334338581661103684212994918925940489242334045627991983997274703029958809135786842188458795401242148056864557690876155351464387238255234149357730953095919255157584993553457404733010257483297260953012256462918262951384763746705097108445934455264817589719548587260177628721273220083646733400435492977118593146840662425014315918430254439915272310044893417922232856978049389804617961359463642599669188664533030188772795166286968872175799871028287616527238917030675031677016743286125510789212637895491577743525816145964897869133928817194966482294096681848736675737933666616306584786844267808438328846077119967311396965151398618127414772776290083864199450539308071159895087702870417523739822259068050270890200177207572919004475204455807181717108537389859690265739147985376184595069666466335271301440984268450777453551037014454462430982593718175670084876175196223172049669246786749189375345846383254076322074203276347030745426087262100445983007561494742872616914624202104248320917701735770085045369246067733783208447557838233197155031789244123956907602297091292532383704063840053967518600011999620334431575506290431728946837367855146671557325861827078335624611316450884790174396061980371663253066689065291597242532515619339093606628633457740045524084579554604117741786628380527127183751457000554208171591939744617501429957685589757287449628150477383445489362736376828335049196505832687668871960133254665541951766272673136608727570669018052641370948963191437024329883340271045528400272056879572072866653330240511409321401999690149390888531041724506792734686916114345800648312076230953017420177834278537653568684980668877302562734398016912437843365446270501885199212729968051151532095645293187546936634293545768963579521750735153269621861642251717356270730534726348988525265631959462514879535477922835646096493259523806282935869824037549153795784748451996049541587086087556106143420888772586341744493869023567705807076330380063392796584471415951521772737844430463499572790496628587021570642461146259721644937517728144065405575199806438622793307664911549478216762010605128180496915647152067876661545543825016206967216764730006609424150952390656544958911280351107514315779964704336398028176698284405245108449494570780942004225061373634993304209593280689405773570553057329001037013026535823481470447034065743986259869890419408179607032287058563588868635640458865937325060105672297103557043167653837696224627692148159682552090140610410182071007605637588847351256298109940030068876216325119342674544060542202992589702830628968190700022496199634378233382728980345333474989572455845276762502318632411428307358214441117798519081481253103385526801015600080768121267483375752348750367297344849994755395620457035392704639554658784645091639826047108776762069989422807865166515293153278069311251233787336352285662580688055464487476385979710996694247436824631736265987576609269668865057983578635382179370017266384142268082347528355796678133854332775140909980037699823006871660616586992348765782342823938822942535821232353519707319964364054646692829522306637430966434122188764245181758238872789446002687966404726080823257836450069594471996514977364471903236556989446225798480306248437106868458487998007700575587624148245768169868248308843141498216500530103349208487440294251584619781651951622265009782369349660836021391714725655916038104651141313891425665305868407174230939088329337705832648248312310895718006999924693268355952075344122602732573615056697330059569448031772311362061822490782754930987420556706728174358756213602897001812016569586034121121749548456411346203173318233118913128508488279393596105685653390408347736900235380997424397925749141909578940742439638802228647290454759806934627312388565933878665792488846457381223360621743777022705239432716311760273904222905995771050669427909319699534941578341834660400130093447163014875924421779120257149514067779633774405977151329550228216256012961308524022688681750296390075890903135280919251975903709132204869845036378531753155346174144304221257508541074791849054249308842195123647799434419847961596671708137249172769533264248793415854175508581213576106860707405763015743334185438074705885636178440658651712389342599577622274413674780675467926473911042951359958453650340318478577841843731353658697874656257659615067336779102412442994269332330137403889102707279337092917475759606152728469754246531898372374638341461754607194003869733764700101067151118562604409881316499403651535553826987972366726067551478324140999313893336665669735581532074126899803111139927417399728490809149038954588648568136144091055748496597485885621985060008550542220373211343104167726270769383354031368852960114567045539843245943971100470894596764938277680786581882609157320308466934612254044460824024768147877555036645717146620589999115205953530566120365501682626007583891532270258661603838054807467122558229767181389442279950619157602667924480134343172831102838418642918554047090448968151627885949944391842984058814622292084334694662042562577026395171323354201906321835240925937170673991497500066424742345334526763918305871595247347024863067286115317320267785719577028776598307117413803460271168019225015038214084040786964624487644713855962890372079208792428594333487908041718322790924259925169417245209106410058131890829154546069034016898502153035030796047275848621214137961586178326635828137176528266416214663825732428738944218328886977905228377974217869126081086190547607284341853234311076570867391945988577079671604265318335851680895800690358377391036104899022280326361463993756142662271636240005577851981293955400485772336014890284336715706016252201541275408953859242270330864356243519950530562917357655433140033820595610115510140558211402155862219016390326648326518693904487088016135533913711325254103915791140025891932778495905142254086350821002308386520973921795844669214455680074638621883397214464471149253014270059155444174253327710932468942740302438972459917967070716449644188821113280086031016182208817151691607935706227744043981837593880198846342985493262816524153677910006312612774870875807721617467856799546635884618703992973951763273946065385797455016452293384284576868318739825665687535578290353735550239910167468148988327835615262367239562161510281700865880039636100311624664067226690863740254461984667155975411055488620251542072501296475161341890334226391421702759731870786715198408072168746759972144926200889617077105235389230243619942472703534640702492992251586147342253300273937033111625850018273953538626035739026000914878755096824886033321691611901128057949524375253729311959028988500754918948700991947904566617371510883355766175657597522982883374033292974941407094210426491686461316806771399302757246296517073200849760688883652885572580383666616111630802062874273895890236026311130976484394266523024022123763314781952549620050359185777131092407014506594454141487276900142874880953113275414159633873593819867624135497415953820787714185587454974410166768681667431732774256708564806225933929253989522366329816135358552154931978429669848572361363364019451014589535964142385136506387081292796612987051104974142109977689718041055073815905469813052951844779560584378092095989823608458212963961468298773253512630162678692074966438328474796715264823786904201192418600082641967264451385946212262726328223848088567599269560882676158284454667322041519835405228538636964069475388623209929590536986927411072369517295035775918723704485797759874531035314132668896191676486126000937024088419668574352950330836079492584709078132228938256772340963496219381563811717219044746493838626206950560320032049996638273357280766935695642638710319569490418202684731015970987262169583147166076573974187216003172232225777611572799180745117699094740228042568390690320739689227981505911901808966234542370060234910898746458190923976557941625959732259479079535602956178295455697455618624196210974882234074719575903564601828883641274004499302901086647555555186075093446719498913082722620927597610729848442048596634657945344257115408789656040754546480073390330290631728367561675066205345089981339821566997422905996845813670067997842461698761044407566691882617996852966831200291769146378855801981925901416629008821384237748724033360001585554292592624355289749512306701987400498253870698850222360370985579437423203989967746776827395291843868507359761221536133861931781737762875362173684708805787104427013743827658287734443393991514220640162091416299246277042549653047283858049984594429539108685313849770595144964428533991113826520306726797968212588571258945952674235721588734738930531555368080802798409385922253423990011213657703299722904913602862958699906709881493212301236355368489236401814672643324115118849658459463053936679337339980711919851634378220220121650879949667795610232083963472405960482561623262675061635349938478992454813081940141948124914381234367857102177182162668988324432977827247363520271924995009114438917178772451777550400783914223536768223074503870775336148094837676543144587222094534689330175447492378450372119915305865910635828699459522357839379079420080644322217213472054881506876028436195608645820910382520925912226716121123263356003316358560470315322916796235278068324146648877603378130600380163250373057369902446634280222434928207870760269427803548327911478799872362629662699227751991754347943286923605883660250359914236945343374157031388445109704260769204039476509796793432151406413442749488427081615822813483661169079685042117524199777751200051438768346134957650058671586125403635480813073680988459147586025271335085699044152194603600983882308066994959371514817312172091279462529724041800336186159365306052875179259564336457018937388427523576215784244504130803705936194592513348568643508583201637034980386661785463087938480095555696961201704859096147285933974477186718881995557239335302637218063465253442101005795952076714641718421263954582696457591979217365672015603990056077904289380064058098058779152897319529416118913915713256635569641174386330407257533363650284893102355206167264781577022319680683469883297901791842017939888683511855517350950642554586201507108053624132288394683368219214321622709581724214875058491461888553469482867765032672866294980682730274268296789745631252655841929697327829914006350830065554522715202661661254270606826905808681470953040702025190420564437174175157865224651229590360066324077590854839316423638770548206737294684607691242416651472686615471201589085947757819911883508878390781612697819663107227793392129393534927410124060220034922699393910085112455813482363650695816280407729583721332048820948267135068208292481697498439607181888398688809099948602339277615550962654041123367398903755950012280371523107579682505360334368285020669884643824377421084157233595823382928670261180131393678728425087336403171668821393188735835005191866297750889290629701591123672081497184894884696732877584725779894164709561038660198792120449786611819736201691756526180168798451654225232103081941092090159743513362968405108001242277892192270524140969111270253040765076675554803466501971886496371780986787463563137293925817210207209616883577746411167733620892888478798232764115602874832231907609281837637175431887400934911840285391808730319911851950035920184401925713035150364230710200094871131189372370912708857127371235134684183614836796394630798544111750488240330091093142800769118847055330638084939380585981213502315889208534742369020339453036696376949051500495726321192182488342046415502228999622299921315875322789140754057732095748130040694739458718551457201771373760186316686739217837505218860530471011181029539581455059049060352954080668674968201919551451823688271253475913495386321237608889704443850513464493037115774607236901143929989696518471423335804546608670004775670966163098925445300688740150623574287072729922342934375189944163167272029352812452285040801445612804841248900102313260787340708681284759998790163330261662359353280273168660387353018474161849589502227426886273679449050405679583393913023114504097657598323123082151247191122690571569331170502772961159987608799691503634001298850154449622664183365334377870078047790152768894096265707107030089520377132089716880281248587264068242974202558509358794380169216185820877361731669441312358982727140401739555743663617317434192579255241446343886200925508407333940990540284100494439723326402653801278939303849015594043471839084468489724896055361072396280198870345877067223129161167033725588518433946981716907001381792537675403786721449698942597620501752142644688035861300931788935754369588672076805049362607582457775601392563885743643510104509543735906357970570294711193137513990026871887164509787423190736740607878558851916391376646730659514877558832719248319283850768170755686600142195733512878517629340413023108999038377645252012087709302934338156080073882500779638453402248864406965137761122097167539478217557788467612115813271423859818270056979032750584585847675897269340092029879491731061386303359843228095451161769867560900458559555872403224752542348032157899051335573761395747929643593055648969917975695021257340654729809962321723565013127798841447670061661495038505149718128994451928488757427328000726155976482582630975178618762110718412292233525948375044182753358140235433038120663273267776484358112529682991388774612453331376748860139578313528440577300015667636767885432191359067622288972224099009808613667360356132111280797415767838710645573334584728801040355642350396012719175180552900830538591241188470222036314719322106060212188715930783910227192481554430017107767031098763471614342412092029820523219552864792629487577900832147834393562649870660140696771618129264702936386993406216969005196451955052655522287470909599365640185848008409610089167285813840229412030215903862853252936638219561245432275231712552691855983803110097178339434126374159182215181311614906284372654936945828621156805625671564737990680499279772269346791218668993402324757016605789029018651902370455291197894639319016243037311150069592119965276130359797896667623231084594563410805213865801763718732648386624349044217991315810773196922398266761395450067941459146796978917738291678095598692322772641232741798780643899447051855424108044075140430663094126512669152918823745943636856019908090848895707849120060825207583851121053604915512710150082636780927436889937596259998709076482468969292710610597073198349423832640754789943164685862161334733450696743470087199919780545803586469436961065406645651656815839622756406056401487213527293363082499016122481244952419929908057552998377576302825756891560941465944324272004395917708268146299119465233633494101646955125852256238820205291335394110311198238676889828834633688530014521444498876303037181610365586111126282985584288937413441566585455503321803620891057854028782224054923086190705079235432983941110913288177171086583976331680219051502997750957708884277138800637484502250657056507153619031839983923800963755774857926245144870667800099694999452552363204521341723821888061215969776390816764991078323199318896394110154305593165363197713204560380003183617046015810541916178953891622981797170905844981693979777660955870030875477898046434810045039327821202497587854304411995010596529272153292678226625404848219145277733355512292933582371073948639072563192398397562240934957936931495053945650999061467520681749797357559468747638146376437619488329932361127397544931118009695607363206759004734778393445834054199894912584091601306485502727267210687884092040875072399095304013351025615122523033909583225732248406735810771957428221790717919731247814723412317021367614287646590213924752127327166930565866058940149545794436928492230896888178221815271865348852794307175048207205971755566215289217296863812988490934459544995618857033517860595050645008258883019865673860309324247530630495367688244455448341576887614808588221778491933165110565090105185852852091652416243109220891821878012450011295302464058814885845055112278552073893734087742150402760034897483552325377958863918671058155845975673200310880373745589546021787218478869835871382540681879346404179822113271619651868546103030716481557381941315549190593306034567603616000379629021916264996636888832945915448164468087142456202975244868069807540226336983337164445180823014428432445155591137250079019212832141706009598058724843469572786227528617235499443992368697398018658499701711254815875546081119518620400577557586340612863693373217548781168199929175241898894902829484383859909795311495186753516214163099991407891052922855258914562582990308068164640703088529580409820189866187657162140029459058597558500251002913512575821289202268892179901358452359457184764523461256291371266744523878611276284046199483078215662687559929595642313424407391494517575279027633133806351695932917541058893583852011611021080854787718635715346010204465003403301551394209330849606143400147034175591398268221823295637516940274802569250451729912494950137055801551529530877705326730508345671957918861437167329642709453632838665474684628215654074617629726037351766999147527471335237527358906465611284898857495354317311527153065723962843510215914103347593405869204959610213418001499546058370051236350106634777876323201630189370357424251938811218257002779435080945259265107987904948010871608423577018242510720925448625808662917209031273020939655436659353266243984543533508191439500627718405112580937852826615166265171111056643165046126804193510005834157914098596082207325024200330004507178589751352273416470365197244580146876006817635573612071788702545109847964629491240362606777149336380037672445237422806363688480208047999965331687809514426869151257762661863191805065299841664913585824368781069106015914887548857661619170501808909414886114227515986924857353164684795373196721842896242876330834518529937725247009751763841300691086706645140426425806366874351088268047515694831173671355863154102940031123417158789997005087423866717574167059362629860094638462680661270686644816963050384599512007618529371108505893095043256752252178790145369438549316597123996631921328317017345451833791488432414099508119493280383778323246210403846290942299925506443586322804461656334263641137168893701286116282146313452795652153773207751403951317823099227689815196292025531700864915745810155188876519135569301821165113959099811296373826379608717474264547213611520377646600520236564863757588606169313757017461371472032613982526196119564383382607259298251736045806145404422679355422615697140850329947464661646550516298169934883572000852209511044473342126342149315443772308579981238381273104733862021778774935300205112069003975910426221536123012430530924575901305884805165569699469973941004942064705262390546466393328423489823330569537593533538801863818215810671034064687349216333745612086719889646062015983103846546589880608091087275336091484648471782438268366738776126648725215243860837872372370687698041891643415549817390699375260640222375365343401073965844937625584054364552030638671864494194300266017918860161367988663219992677274040848332849240366450437923700563277802385581559510338618968328558466211729128484006898130688322417547615332231811255307311844128215144484883342952414514588937165021168365851256178445131543674768200781860243525643885812821344241962956265621688934830364117546393209094105549361100200425872464805834577766632485844109996496166005957701297304248283501478632007277765100506990853968670812295027493561431926848383416850377830468935061315535799585833753465746473239366443565781870665186961408813090986871552297285963633809365590463388193444627188243694444988668751952937112630143239665565975807647276226000447947084076493275669370155593090451308906339029988606036720330590495254528326960746604136558897350447499404590391144896199012376372383957155298692123761049480437776915104821493512096420328310396571207672710407810841894199449354648031873157285311428433962198798430544283915131923268949804987768383162066983301192028844084483739854551127115495211724092156630881735184215661310526509583776610071596839422482186605789330866713212773932749751531407583345177507671260303794723467226270154257990253133197059782094329652404972490264613971798476157561944626266463752370636960467111369390413532145647376180872970438740081186953571277397187906268419709192005025101730842661446409222183584798936324501326932675742508810076399367680351795013416798179854754378867399058971392877863373474611944788739433662642429230314574005534321897527768938384381839714319052416343486898557697502086547486852339242784937623116939367607754183462160796089188668186138522508664953964824606533255112756767728844640649419688877952757593245007754771904691991485213293522543626933766667338240525290327766367257068081951328766417396465348441356675261491646819765478019081953542353546801893547047559889541887313125732280413601449764131730951191029154300194449672914895452433227661036744959407385531570559876987448675111179957803741059694955955810503857504119350966388256970903435717876888119007128082361431466848530006988313695982766326520798678800647378688870838393305771587261203534515314412790016992470821281941798624310069690701475218056303676820975149823568489625474432688483304416204111673107345744477444860617376088509134807801053015505993142555761148021155903341465452462306951675161616272258592301871656647005954130839959465172572691269484091720374640397077783890551625701986901050620838322663271600651039374069567039811058043440505908691609866010438856483092931504040918477612591989246308759027381137741040244887172252026790379217652019748406530235854851512002162592635292974459941000000730824485600287947730483608955174942174535922455161955185312291988578485937259186173678275657887313355563249208921477107482965901109573124304903021631118964847570167170546085742226501658881764436174437526480923972782567116095548946005971995083212743096052332880112773605616986046088205712267099796889273552450509116383148309691038990029339559119264944933847304484040333203142472434744225044799790064693384429292456428565603997952527306540467183294757221051497874535296359907430969993773270271054857601813147351627223343770778259981983385033709241241151597976226606103783523196673317593655468702177749407748232428319944613223171600819796085768126173684994353246831239732958281882477634131970511551279169291740045242764150395624484511447138075992402223193505476114581923112797118630894960095481917508310820700102881391060768448162337736527517583954417615887846331330526277133396682591796283417883853907278878221252194409400917151246764098210142082374361219949300973704273834975875009456122870652599203684717461733605214762887679854902758223278217774828876664072719708915628728666989234193049855294095946942056473674465208206971726846305928328899225107796145884720909692600481098783941926144353958699071664403016424353093910478380552783725158904778891560996141694755383437570152905495665154169005468108338124941400072470476444833320415497010205650688696056496135138502506188971994257353779039417774647834542024565654792548592610414376032907401175860797238155177933148061476983807768866991949530737238586764751700856539638716012937593460219288640590209983646126581935984195283834555368920472736119070326272518055901285951636753276952208149839156759119833823546096510073695205961380773233777306782259587995252425891924290131878217840666256574374750316282371346237342555756508262248300318036181196045862695070797459619492470703085228098449157058506218906253742170040002097482842789487322127173739180281115903463799512358583761568869303521317299294282352497101438724173891966186964822828751821781456555891889412713034376478538932952202351422905824083687376280874088221279162532149529697462924422387440303772591927686229291438336591747536950684193418475302335198124479071066283102347262689740680203728159865359504811604890142298326728928285830730225805350017118956751040521548589357338074076160272187243857907628523951004260147095282295462274116077521551420331641106346924920599746448851296812528572854251071092199523717238249180659135238858156889181150747405514500046269898996727451299276955215974766360972712423135205040886646881005010470927482384601303546669773427906698170558615036856728862038518698493018135420587355120465662691029745861276841930590607384140216770189603211042527047620313675751542945165164460076629621266849750254108002236955697868541210073368239106024184368472514675866398025265763904730236115281966354645391218317179132266815525098035521576488377689147193551604684563083240822683929763847021059699175161057742967131988210531231750169674626478856170969172546829570751115680769842289740206506819707797854210915462292311941442894195121002029667160264416332804284239725613600341979914320155747291035542896802266471603616046496923698618783709333926697467696875937570182839290079905872999923943819420969166705810448187302683706661043115512254235524036754245945390017658999389781368363852433563828237680357330215880734878436388678869616336798605369655838893713235002164342445443779393007348556132736174158148480244321327626469077572656441854649477283422816898544635539131521266698083408528396267298271921167876893489943247023176686935823748392312562784975916779399436809134418232695806193492914864480393835167749782126615812842776597195630778290909452649908498538695993676574899289566523433051404360655029870826720689998679174615219557930652294376743769075856909346962771558645530122748987643665509794313985532424228817725179478491312237527291879574974893578641640983040729786387435132477690610249307196920060658129094999438364356437375683427069738129899218043241472285187964010264455329416918472825792899853009489244006786698192502050213822272566455607669817720302723485593316833898940072400166842429291290292845719033588091766244795130423928380112606389851444188845698846611609547988827513105908260776183765439269846181603590878385575773313421146064126190325319557910950484328507983307625896481738279580809894228100192806601447683744370838527944112432925459512069850753176584475930065640431575813330181232381648468528257828745412225758652936391032198803215740095989364199221881131293673415298085182159669456248102673783300433075704924368776780839762583689500544515381768486031509365484417738345098753360672702917024881432382281508920879230925066188225015713443818530534509205167731805612881138601358978479262654522280580376097337125562088523045040544054543091111760326841614458522122383086665401957852475057671454436822892206255497685090115792124543194033532328316531981799464735695728281899353962566850531015497727499029861215611824189890119812669208773782825236675459501543931486168575311522874142329719731172910236878559680992693002088369850068190792012852550166491892945137706245049223225503443958973428537920565596677682580755775248966230465959662912866232871449738026983561722683159496576020378521261451436861912301494532846353392100632224528213958247927353875347342025422321730993319481022002017688105521214526484689618930960835865650328870412281282219214174203411469423731843143174557148685534179641267522268195589910060749488953527344926121614410972129005909219791884919849546218229918074265978923416194146947339441609195141176199626737338259965862753973238257100534021657059497867580680951349511909625697883073935906268565704484608637747712308934376635465280098070294858247953785085513517621115812146054897018184782005630707969060662918896583955701449079901915318787330947217954565302173573668003610676496514416393394352712374285857508089941757629539586647913477562152709998076937778897749339736631957438619659441490651389832717043513569906364547288576847003540235240314633050561099354701074706692304017678128710558604651249349625586215695196524651671051601910831597225781692762106524559813101806385015811040595255117263806721961132580732489839648966872867145632977776659850064348190309696041851635268903669473569778214593719364948494626578368100603439906681740352184853295660819955639943226204052206648539115995514431364361580897420269284353291815693768608112543869189343606586224552827779988216160872883244653995598036554783101665699670326907870443256807932904062773333169827576357852480907333149693400060524639928407819479966128591068723243929028916326943855363692954092274651149983332725215328486034702869485771069710211275980452612873117131428832629573540366524691653486979231388861185960888930183789942938299654509842944741753903169074578961864222543113635010620896012836766657479053158145599162489176603764690209838171126717706141146219911448877963240439645521996776610944903812608050317222988515854960743317458422157876457932902817903029529552232430352765291141025936115964856012670796417619880603431781380619340590906233276900466110665058550905157353600206742799906623358032427219039277209444515345044640120708993544281308562216969813563205834392862056349634975030088451349871864537659111131218732208047079964640178613908693455199895853079061852988320486997135431611900894219776671910093411449659524813902196192335003335941946737645352739594188173223810731544763310352046388462724315355250691238886838191097577052845457570282222739254278751055868405174790770996311403499570850796530180803838932699072902182948312806765715637833835927412917771804599908341045394877564874228288061835131601339941344476240253698472545434224606816043720767985370679866448003863937912870151894003217726545043795620333428567863224492408142677792942850653593385078809378846378130758613976159524485539878697103959005636995349383411009713866267189079297962929346704912553308415783634592378453481640719590052975104016615025576997706270300365091386681548718979887036842456199232382772893510055353650987870291503267954370310026071377305774205044042382519579547903808695434784215357308785760344790917140264614795064000956354242304321093703644002213801691323312599847240635555281067269254809527896201612098584764015609098264554705740963281415656899860589861531021369081625494905090674936391402455064312750551677651452418783210379860493253294530243277290854442749822346487939731830167399224112555514726415338778468369820387039525017790254196133374157934606130016900557081409449302403531453027593699456273240624481160656365714894644262019454812779554635273987602318010267110299767172261007285674024359032661029032790960084429433270614862932568317857473619634710378153597718361251844747210222124135143161961951643001032678923246897248579973925441820361202475207148536556931290834238145652550205932055634131183159333981689711719182179934237859058316613879475717581797017297678130231258646155416658763445576894293710766239516590713485312625219816124139064996320644621705567418615292469729121343788585695503721426009042621599629575986019181483230373471054938672874515062499360367439611372561721177109171629623528931321185910406387654777736386403962498103475376083058345125264568218029742016724679868316429473544134995760721115892854214826268592796775091878796414378732924751245758240996147444401007234118018173144474108961328261455539402187811748705841298097089859336147872131388297667133278018288926375946583968648357069238288677882131761497327247604973156004521352923742601148603257665526127293395894934695062317852736450669598398098988559351110568690366911232036933031388267083883989918599311530569528483847545823472635471346154317348789604574936081473368085133522110101281845924406344450243129240021341516356514529381486958522092284158688618192152935142082782729226275527036046765370627895750016280254821308389135036211403682824920598471140293936325990924293488921131410148317065423408721079844151785354676899404683197250002790342717719137244539969923071231285368089286756089346520922901171162056815210744100657936187083545852597617658508876468096203939230274055149266808784173693920827267640223245027979072422332477628171593631020819312963351948363703330092830642217859866299144433512012669376631362189734841147034883154257975478843654063236006584730773020350965058914977296980086705380519045158288291043087056509274520305128272747905407163133317528070002378651388465782688036422701471551012687995550552328298931829574307779210462053107335746083144858759158642291022204698196412495838142124314986440717729944420667167526351203980410932324568645143280838508344152440891373635342733801247631302259865692526750190162314106002726369308084218635545074449820014556898822372003713718277161334427572215643615098279015336609766302263818244179143927103420205336564445227098034505049350136300254441289952950802707422260693064648161223548078927980477537707355143113714075767736716280298178778476709043979885545499558396447383707748882595527154161145731698913685512044378789777535238676401277789691385448997024675777583588318295913004460417481668897721616330941655495243967799925654597307498849858510948050157793091159165532430129324297173187866666392982118338853909779007014766716544057387842069919245566127982795516411958154584910536705412223632096786575809709900583389208529366717078095490475928548983744950314508671216647478398546157027821721355118305381010574530003095524225396930320055871715137837923921623037043870700431901322523816793338298868757430842366571997279407212919086137612590884241738484289309190765263910316208369894926948676932494768840865316463340746647085155450845946273366841436262859555091259896698420264981950662508517850283688412763072665296705091904209210712763723014103614503048921896940426143651337775870404860753320635661091262910982977009359357649481752236977411700693855858896820253407919943853307631295892340206774596807694037543570606382680766127803143078618045187544443527072608047678726506137251598745504748588772692888990027220668299888295552739413498811246142835437199214831672940389697281075895674594863539531092133661412674020687357301369955610041806266973385174891630186339715121008698285982740641282511070053813484398505249904225897836209658060089515051315513261883426996066537436671001695796353006959035274116559665335432096801648168416357791261655992629173228165671958072240130671613575933891462452904562199274038866198695697942541612138250370749599337994496760962662143651972787336594348920235958511215163853892214621592274275253767574521055147307995845467889207363865869601428029296067741463747418825683774831335229242939190396024341475221654441217948985265933897633935127292956826393506617120171925847889246512800896229301742717554180525021431896361992130857093498684402244273267240224926956664511505726841283723369152875394870915959829850282104660201590404364172946189199202113292948092122408218271496553818958959316444853009563267407788939741697678742197848758860615201764304346843045451712802932603183976539173515277426095424276700590138968766355957361121404197089608345398257665701058213652361616277741691298897016836216750031738334711931711627259104872670343498079231690689129358114937724358163226316026614701775426085545150927510708805268351771264728135080366369977225764881305687226975340084072715014180733874194050349915194720725230152158852111690957265220178072189529230659762284595505453029713992897526448307752753687670205519100747115077249033059437668898402848681879573339947440544608350699428488097055897685079034656423911897945463268583288769705366419611878361146559901982401262577562680670851337161182158687760160710285061923168543712919561315097144941031234054371617600218254793495671536613002098812738640236459191139685520576921227129919563945574693337777631894136125361502645255787491376013957759541889882637625956664225324087439295169845454852137270969825701205334719917390835580142951417804113371729695017049842496455079583930856492334895883928352812933698820138568654146240124964663977466124025476135319580103265021461229505533055379057110017531796827433751010493338390471304903624754289467485521380605836891353235265290948807486111278566516927268442206020082336526513839690397868128780502957405064966585166467775985997841574818592371806400125852100727520969238006055131753988359526793918852126071750361500893982067959672276448878359507187681611665843019317970427664483973558214167438714541066533517107667388424461932372872077109508593924785054286629418822139000411793006537815465233336149047678712126654432035438140947600156075566463220442686731610551698600101645807455553086147348104006113610891300542759685214999492709186337169412886516847325259538480958208975034821328024001820693055687154818055812644231887270329052260514554918062576806712682457361519058980658857249378465655918427395142466075743297327215987177304530973110207087499438417696384372396486024672013526945175151668125868023868704998650128014090931708376635770479868453321967682331659992767505450106703660085653414932409790167129753366173436615123980279375207105155333431642641385533723463912205599916280667880255097485029078995815563389146827294465974675358859656555118333228912888837842714795358767539068970155093053094781704271028894500719777303317865289762024820532101387414461166101772531871918741809475443509710575682721900025842088077030594714574819732258779912796707781740993528755539554074757662394732651566665390041779287114124575078564013897307026727694530150769078906024769408924390062777198315720054826657931848614512363025627124356173667164930621953615142923179186128468161729159150740510025067628868235902574999778461100836410990408655914133989913666635049963201326535936007571349909703009053046886137207794803006994454944954696976796981082779439933755265058444708699933243716716348552966018786233279780599800075233011750725713408451687065917038053168928495549001301899346719616024877621924539803104031958489017265117388605899728778932508940388605716340051772051265100397916947028710716240235037478698923695888973948064601112684550938256469486403566863346006195886560755084150345362762470812047079410076373682220919799246857649227108942627931637221262283127231485889650262085787777142148172979737638608477683581545260368338815012554254373392529366779542614179019288185974838512595449729793600035582938548047900908577406549104207143401197521272755629191380242418306840976881059461750756806853796878972438318061415342892217125895551901812701457241924210730017454726411463493342693799172063504622650147541679420582419856040749168106725411098767601315561168164669438465925068940081354195944040970195059660774370874749296336638131455827972939967058108633575646642936885527586231175275278103664369611480917004284831943304753942197219934960709969207018923277677147837380175491462772781706565784916350525775633244434188359080826131866613087700376163835618803846970152301046819192884355486978380095322280584189886379455050565258608461610823337505076965333093633960422567069279936449019742967930110004324115770658980949600230364262659737712239159353443456607484789220974319477856771962104779221418773419992917213207296224861487642729169388649472088827159158747172696388229221723989761296642438790973599543075219999009232463987119405854615154499332133655234436714018142872154769411815220725794186292344924615901190517515636620834360375543057626628189846516692281900928342557873127279053593752350867407363852968870730780932906276636604873535901654903923651066087444931948756971651608087871235964358316620139863967781649213693951085025653626786515261721451885334307873326777838276168969036039157348665732610353794496420165440582436934607748399067862203029357267367217386265040667733608634867337157708694249782963831153601447304393558585333321875323060541010099482166751860369215795415164532875824552521300232462140751487777730697108448813473490363373527085927675540158609549958395541355567992707523255765453524773731651720031071464877931007876325109110095401216947432530123238818450545804910931499286430678719209975565009312355354405977492593011494754058230675524675202305120305313150694738766072467234239719513053439798118144121183668293097617409958669399726811660216318069934406860300821484637652455330783537781369884108229023711009803075744401375071596665298460795136752420728714211311384217449187952427384191147013313902117732601574015345011106068358148700960474179955054019435990718010385723355925286592763528592791960056267811894584237591965499280879560602190033405548992491924861172581213588788926940173024796570920309283546411189188238718176857628383768454586311389758484181286803370217978406685704099744037802188065140860537958484416907403793530766858383040619313346982462493893127183770162933907793156728195279533448481572228559483067501488218612516078110511832357905977881170154538983683022285723498919843971042676772764160047643557749422644092974155578496651379925333507597534658894898420539854537493960369794335849483929348459482413267373173013308617699857858405146638388938805518144744387882787236805232546039047868445400189823606350816879526650115675742246894647212814407930785331208763770659233437753127302188592807870940459955164412925386796779605293026371576299371742799318097472467588673192621226009314021554730064394423825284433859402411818003140778660840810806867331227694995400416462961008479747757971935732601237010954860429939405959155561409362412429669516237405090158552409082234656323107988130686750172891052710332616095737434069282822380073774519142619935216620647399357255491100131764876596867791621153396490048186934100606086741107486071991551662411113787351743175044054071276194429724890999555102344445417850696237321534859649173214453219057850665223423598251611315309598802822529832477633932847524720163732687511105305541953689957725139161485929854804372023752865734101781362311698153827788761653503830703144421938982199012386772147060504209170905767420134362795319641955444735147245604618720186702297449081054456057118323440744567523078619346350107520402804873024445603016474774896797327490886562397937013808315940824094936192878616794893904329503363462301542290961122050012711403382188695121020027843230402829438442142461612373933274713489470578369822010573920278804434740644437573598992769811703061308070957854741169429392398673814568608265938429495913588692194135650019834809884397638124306172417961906946024785003051755144824272880390594511463235459831931214129128893086688088836042510198820799572989170997128365433650274380511866344023753925331019217655051590222969995448264074532948567092042125059777257439970132086134148311410745086730580714241234545378178749095792733940309330100114134927476331616443327975568869742535682017532455209385239995950493997322971291969499071288886730588739303125623017301381819830779997742989320662829653289853234082894639780782176459636818785158146804396585804902927092165257497612032767901279911006011822648359943939081811175595959225054363517108967961621194336842256550952163667543484349671252677238729375128066620628677135672244045625899595431553237522743406801173553313351547741037602193541302942885293717741646092676929041161295016570311460381739750895337736947418816284085258717511286954184434012040271316329247346713108083426859550744062369727432517941085123306188067294168624129942024989362011559125503342056526536488245505909504550944341085156681009639962929020763358408811110165027386392461261343947298241490837457810987426594826804572065393954749120398667110023126133938749564012765006854305991066579178372049710946899443405159517726425339983621763904256377681154480162534418478121934914686184171208816912688872575728793891169635876949109120223149840410829161001908946846629709628278681726823895124576318952678411377529947418969986952811896018356787344490220988920704567740826928458092555710565064638684027951192851355415172102411404004717315454826982612029577234124755059475090734422030899873736056662980425544562632280685520307122046594422889101017170700393490567403937784431211012254295811710066513375720377374397696259094216441090800984007170585331473098293867207366952616757819414635377123226960944682435333921989498780799980791057343002735202242916880499336499362173468646022120325814358908625101145399543922473950011370854996822070841110358532496581104869483521840795698018638717737982325081685329434472983183936008513385946752185754341671861476661436862254845934444897369911160333845268883581105591272845352515628195139138495361019090100961354868615945479491490883992028238818954569943669946915252710182598446898816044811616736767587201474073191029225678339524099580587938163634339024939508403241496295650500998701641297121742813130602541347986011987873533497248170852928609176940804191215940280724255203978822194538735961109244235403348451636357980403841274025418898457458015068165133531108053498267935249692811873649840617937935709739975178383619935812598593402398492784763064683752721084583966607935690196220688514477202325763360703313135844619826204819964050081029828455759415439126827520110885539809770601073279356863296149586473747167931917726320251175798688346095971682422241703127821605270372164659254337202640063521753273276376039654759751590318956161137305509164004996231193062751284564115776255955926379026644099516732120348684944951008117209734369027225517043754252200666771557753443400493360630163548101526054775464536606019582790446855031494764949026665120746747795882987929506749756768846857226758616064262479425301151324342883840602257548983676453683958765567121044611498145922908289897896331451527387951331531481654911696177061311817283483961516778676628415476210912200589851874601448311157311813942266922025152533308770256242128915305784328820088951062910767454516996786907268440934862064168762102192215486517780301706840370728876062344212110648019872468936482288789413707329636252677900007671272067405514626074113753136959664358211132834544996079998084820597413855101358708280805320417671056273207995922459486456853418528189655928370898413640542353153020732122528704939200510348104391328455482812099202701144748726618000227260297994490173134253392689716119959925784292803904936404983543265710010090594881077137425262321125683366752027302433386167180649988658905180589802642547609144571516577356534515374901760559750211813091819154495184349004362721405936631470928310226286721153037829318861995403168014383258736156399861873111360976828451352559009138368956076271115079365277087917960906000254501694023668900656810450873110111157989278957213241361078072777134026362648357008823515080607001319250855959439845044149801219873653458524731966643568615605087853450364779818970583377682890837021360631961390462936524371089863557390012871762876081439292522731477748362248024537537604630299603633296561151872211461394276574885626978387883091609509165017601991400295548515128504364312410969372884952026399952889963561442838461516136865399097153512242427127540060770429700568212487236591163866101786475211901522729604188735932893047213406431412363503669405614373043650181988318512618500167569761148829361328067275419249776179591152225806662066636411716519069050179152884732102348472815236362389807438787873915635053073761519123460406560733243077409335785913192634520780064148244454060998372353472525579507928069124202241951526535788689554254599790191500235978380622546411254515743608403088693393642555816496769351999260999030361658638124001694832322333447150105249375869744839026382061518862198547767112034916133632764413324028854269141657401472662682261306245190620871304946252611303024772266364556886347414693493853151729559467621276379908561385829141981895283069997100073461164946202007160752251993498992918446595233426112913919156447940560667888811640641742466615092330148465883707085040612081025677538577292455468899748491396094794424524831400743046397096949421195926388068585126602092300826508028847649083608645045265461123757810277046176938715604199737833229171307573316215253941835800041666801573708289626838824197704133051952508825659799540955959569126570394499774513755787206896357826375160063843314639002351979777735846555802293517721081423120524912237708740432517096288678768664737700202676340974162740970233303461307628301138011648318973586328259145946773208691235821351683373217574348414941919463641720447078989211459964480071695238669271637697155542885993822834964998119001995720726064964798574589804366361745058233811181132979103248101777815339884747419088350156584964249027791722460788768541636170767847865145515363442815752665559301876575035128529802959414987332193399491206398927317317672050408575670587656096815698694138222322081289475439219502755135274236741948788364205108434344259267398267154044613781553683582031103111767152038581658169291504185672566341783666718446035586666024073935750687536136388840431841103259202057171275710566271278826161750372634174271731363842024080224772604217712782636394883623152980471956539211965404393644583269214478423305252192828597563055902486902339355209437452019573707314086887146559112816722065262592989302330443882489975506338162888332894268932812799764251912133222888549834149188968296920983133360282632235153322952691712303886138846787022166899226653656451606856179806409493528122105046977179130286024587966656442582806748009934140511953290024937792119926278020165836676445894620227315728599210150645949562554303468728532333641878059102710655464474035409227930257605041430278189342687503334089368198325877970016764323213721642989928284153103930768000025511503228185557432962467293549458875697646295441639207032460513279691731351674740541276256237779619839541979025635720431457075787249573133154679347497288947827380137460474759503974339851913486462071715468492278541658639830600933240510262795231479163816764494782264229147523344494139740374008888689265566195822084713588188725170349452734464506447379619706053660425155295191013331327879491882399209019630534364050160297574912857094350558425257599391222085036924677410067481407170790565754636276332885254490175151553111680533550408941124330389672969229809704003264491416774421778644282643956700573644121434300855664191239407936697267760651388750256629838239259676037078895036814692962154274144244273776442290458001552827983364808083869029052281227319947527183300800516687462861096962710323210051107435862964962840727062438859337790006977758387036906776542960305828541466489125669793014790972568992406932154255060167349438959561110389518649629690122886704698949635930466543923763966487450488086600727449518135156521748532823391804055987154307043727987959753978389323809529559527264436684809444521832802357320074349977450393980993734551691461443574093289166134619178222719335403245764046281671756634392784028402481754555933331694222879257518913539707883527310097228368480850399903364239346568165640353602822890644673019025272491422912827003280305972564785385435210204496089111867315227261262774783066136742130109362864494338559222416724363202662279992522115774408539410210653661219938978309401197710039615354340492454896175911372127940827705016071641639687636356470788561419053100770703947062852198345437357305422607050804708908667871447692928473426568813413657336622984340100933349285958280989435003433492180069129685987399244902748424310668457006569999550928250194242067898556863124426666983740605380667614049265812265656524826542808955901765512275940076183833096437643973359386444717112794868753383956182301809963426715879284688495926209687112308760836885876143753839311359308563044730399967737234725114234119293322879970382927727299861461652804570623403240319753944937358085205064397259197400164394184255134406475250738288789179381077306596237865163881826665186553990211068254443477144502664155467805204229564848409425921858877411898270449462887122247951295571747427313118989025925534303836004727117119934615292780140583971585077016438316775685326704452037006916786473204963759471461088483900003763127404500174101996789057318366976583017762219646940104897466273148567787173964452136509700406452884017758349718683250051232702504852293252846196967935149809465794900569659853643061146902488634229011071880365477460870044107366589388938187865128802985352726469032559200329273551822892852971375713803139691879921293905534755483877984703310706368338352845537191629408468853136808312498112503278448400865934833160653661430241613248857973026581603594356746566520091917769515384360969173259331202327461786228074880510344156993307696796475261134295949272718755500649590112345529752869627672281203171451277157285317106321621965733381344724801986478754542800722140233630954237592697726353477525399113627814967251138108818771853775611248475819254233533329401276100744312831423537763491364052963978007109652270106054259668640716636967841062545611966905395966453172853997526052745032350122372865604972887365509653428716591401220718222345103123588540787249644266767006572353666531460904965664239404884754518972108437919934760792602371729297758175702637366974370137447027570145002547720909976073936551622248039507005723632620104387549632992664285404320417567558224621672525392661689850033684090053941546290809907193298690216108259300004798552948654460528004671958747228199687845448006490018381396649004899039458025742465696713650467871942702226031180193793536300154062311423570386980336042476872531656126631140208140592753066452467831375763798340158538367033668242931055221246073452633058588405663851683577191732453339377605670433205976554445344820430958529339782902881088684557387467299384377349907676373692581377968562074189261086583752616879763583220968013330142492935734384328542575045600549810736498592617374538855285086943558512581247136463738480827778021837161698669065162772218854540301428697615019798107917118286990148130449862457322395321287627933105649884061690223764498340591423832843595547741711188342129271142344507926910977378831752967608284727640375450361761473346061352919158284008840195197968217643917165227882135061807084511826584710383498215751784758846554106717216816197904337682309697512193715640436623409200926642202287674447914783304606361069141502660339499717850901086006067386835148200950879920837657710103599841263357978071549622404290015377678360068223706238621926907814579362748371192183320631384097555746750191967513261035602025340132075466000877967923902225595604818330359678576620374543613225259995347416076301760934556876493574932645796275787033565354098373407492169911477491471685265273510252896777423922863829472848242285503356405916519319329021480148490900428495488421366956859393773566932616286263797031680728214402874745830811439710284367492596912273662959506236798272645841056814853247820134611091201445963580602279625185554811330814309363459010427479745511639521684205548810462334753006746662428230190612008680738258350875406689888222336887948837708822688706311514567804649670777031410419853414533397280592278757878525679147491258392088197802450209077626138139208255207826786902243497515125903531429514905437250456072495524342467307608132023824467096178140492956629635606529866777318495036573903883498130323668271573350535018377310948760656898053305202157087420280168741831216813040868212505483166667057422662134584798027100232722747258509734970777038848157789189903901412523053502447689190737433652000881216224182975276557141429195262950731694828466218830677942398686749605939488142576968452819592051037211718089231215241719398224481544442644282704365469281924152394713397279722996642978066214414422910266131812537895180805386752427301432804052148276404415708439169689897844576466000501809446368664233438643645268709577741945556367997908275329937976810360598079247774425024973590095643958654257798358089626751746772695771318971721805014664834692763037439454337852677902975789360984441951090877738477162067596466482604580775038767643617784014893607504337021301507308305931052014753792999718838900510667971036460898924686514315792325656685523140791885678813518652052741015172683993008112651855794067313488793515834073455819884861726794302376404840295296630118957252367259619399046531577977881422894457341424748974291948191612300293111970759187873728698915085211192741338018583140749785332694012415717060179133937858039584841174274386065403032752746393562043353283224783697633366099646766860599193147925103313766528904217387236069819576174408527734405650431432695399313394047189598587480781661794080562444356227429542127049892967188522786115780093221902647833389065609457222479242773917992052912684872191844199594994575681374704658967346109945583200814460953168356381617891571455679585511446387156099094849780445033768238598608188785974123333923616148904239631744139172310935677570814857981349907608350457971009471359744690080899611964051062591727348766902317416801687006949594579058668250320558098264366884637158815151708236624745211807915230240471835960918265973805302896099317515007904334010864705415606697512989125350393676188114785717610582799929699746062787701527406111338099666809747337068933742511995957915622128687212870307050727472408014989840790855058506919437113999794783686039237631698651772683148225033063393703044786300576654604143590368661445230781029307636506292519021379649093942088015859513110485812804063997979999720425477796375310408136917295619560536075169179464119638511844256448690537783820615217111573096412275405230161676738159464857934208412188835236348640618083025778058134273853272097419287269906292815388282717987692385736510153118135422427438077850222174865493282615539537978255947130415588480461205538852227908125930260662806239251982024224937084047429219605680343389071549596671596239118077808005319771426287263388271211008800839812504467886119044418229552402229821526837724636124593659285170749318405527977171058620739485330439964962288648619438472500106288081284601622407253241518075700907581639854795805106532193253198021138260512553787605486730632486275045997667874208726646159760776917775474066134867860389500354449058186052998037721830800864008468077646041135117381082723994122107723328038652221168271701801974492159152497947210935250827572339994303607019354618817295323735159130373827861322002749003562815408117195375120783214927915089189152486732363332202313077449139304529377080475043833427629523593145767492881914303135917414377066941146446455307318221716739615965855175427600564633327008095526784141092306982863876334436038684802830207727325475228600926981415540605711038050016902303219044654381300402293540036454187269134172874736791634109203112292758383530202039905299472316132707400530926552800124761450699593636898183426253961776632091997655410668758796057323855967020000655959147416388166284956415435005365955793037667931922541767064911499748162032310566921376262168427878596767441102751360215483198642005889622652433804999946669557694717584465149066314852991993060261309727782887180954220895954249672660087698570353512603778903272165715128193598121596736668389696395817142712998668069022223079951188246046766828849343739646236212251909218510867233590187794908689803387097116206509504990443876455462253581286645856231857642292304587177029458726106320819972552284317656851601176029916513615480138966064361279159978188221518975053108463407686580996079050607193439182493557075601419917306509318640990814429306662008154713519761856259322694276004101364410554227829404491031305058383245395754100376686763027330241330328818214564185392035403048726310138602523569269921431113491131916662989511155067409516053634621846181671315485238088392232062063154961349607364053318178953748892474414124103567045361296237058168510649562054135278217780247645996138521615020706628285070399594302980811385548787550617788380217981578477673939371429639543068190651563026017997109179471358489845606739439552565853379941445541480170150713829143855475439518027111002224243138103324870895756758566186473213026615882038390952117071875843227109450446241999421545685705093697223777744362337685087252343467044015216114686279880580895300175153841496063068639870204550968191409637838756975379620389978648499449773428897485180077052787565227238620746658572298766185464282859203296136820237636922257834212834630613595681045480572036723695271627686307050109570817342628013605353006556565419316672151897436128058487967126575732256116755252359501011423946709654761198059577524223270753877103059408312146514130943574023398805388752095760627627284800154959870576394578300562325387816618927586007989159578159284878213844365080229821796895361805059704701546610342211883643147886765936638304005239998552239778756862021007756569563166668954542102194271803494253071459163576695847704788417518057936950879350583047304256138421069438658296407188758371391947765367027491094300434223777688958825173097819241926192903863201253594111205932962254005982002195464343829747910576827721190902874052245665946228528589650377140281970198803218947054906553494638117349169276467431065456832629131977229479665528678479366650947890416737116230345194024356928836976772059834695743017978281096804868561987358149142386911832652944451052510852902199456441043947117424681124948378288064654179935281765380525285193737125633462566778997426680180448179017786917168493126285750596076345793303396506334029766453090520457495339971101693291924582943854500555264265829745991674191278916110295326353864537904613390642578849808010677087985609274256009451852720602550182753376831311559584236971671179927716624743202072638589864556958087595352310498716216825664515420017623560683814326476818805913784744836400597867751571426223957532362639998467171637188480136063490470293659267012877675354357578272059175914006050763892328875939579414147513637141135694448100646604722931748094591117217827964743673012922375727645534649129125523174813770767007834839932029654661403474503206208723985947353292750760071503606696742891515480255427191120749846260815675178764672044849319431373949677219537863820892446090118241949660211228022169348601144975842633664964017349768041189130975250695955488822271033946543930349810890999631517296659345199928431154654998943169340388424191469824509249986577745013380273126639777130179543597365451894625005824715397189696139100998598390604089050504199791973398544042692932755702132392398692638348592613711977341135236664461998453140500100420085068196574991903483050406644935170521700733997941554384651766265919779389181696948366591665682988608226778226602538404344247818783437635486312767501401358743156640732765108551291934904863262115735526966652749939592550643661919507942315102269745830511202183290423393953528470847583914214714034719710327829178674204140195844712333582342472297922787266330112444185331813741812491655611297994369795835975216143932356689449340650982985900152915395660002434473764702895512208966544385928850749933486231939826418666249123200037902566359519155119390788811496184313644158086256691577476247449681449726645453749518442872033257572175936163495939245423474311433586673208032520308299907891554658039170037660625831690758532150221528089071762669379350439480214550727813693724536561851783018725385376145960285907205565017035934262206469856099080009236493664744628614409109573386541499967040856105883262336762691205119660871520877331045679543692163872504759611940278815714120438164647071967193571539323633882494602774015369436356226345844122965092002226136457804678265733635531701193574506836763369675419006357811355412888402821187779394051723817660182399076993571948197509661857782994850407905006674229084759911834880240465812270658521212410792703827324274142131963195437070414578084315180640317196166995833086238032469111955488350771528034263710869562210683637246898016595113625561892918567412639948683465506024110752947279185013175304626493554591116552919980342559325719225566807020091919745222111349631507996042997210485738625894722175312015741209410981825662325918977857670198834679630331727134844567970433817157420257476625369343739702237834208096520854414016358246630316754361342816918923212916430430063688832781303941320243935966972180536327009727158218228337219847449128876090671861548733989126569031934434626241721187395658708229007358430872095447448288524827180077129084266635929354723650535986419377867898037693123417052378012460400132489307127204032811315479322620663946049203043232752462746003512881799212023842504349840374105249270481080843696582830609448928391088796399622889751743287266464591642358609803998722992883983184056688066144704329458073576817054502386561190412058170965998401625793035317860869269224438528035282520833143963656063331189445536573406383799093579535111656472173305987253752512454253227929356022729198336040406501747627585154424673833734780824896045047719529986302425554372667899987244084764392611866415255081866778663843122304072415690769336232776720953498748996382368018671655136710979589088636857040145907728332765941817985699554041328957886421660004670348081582743875890447471553611687251166684677487599367017812206581195419928011032501944036259356854228958600006567593290929091269851911999814553692964557900123351447512304711257741529261114296197376370512119433165305755128100860525565061242627755118070945768349337758987550349864321744511420471568824192474888073340775218717048624231387477129550776408157939877918742742818986264912207427564197525307524997872558006943016237686687627806716590168454666474665710338003871579540236129908931385473511922512300408046227102101110008696064206551159118006885363225426422610314806573603030445990089259775304329847911455479023845447198301181300901762672685283184860351500231499810871923241676205753357643461608718180709771341910854775882795059914859291324617214544562417125971614017496745462053285814131764999880060278066460213037054543243062595620030759327908200473762075542722730799033651252003498843837794228850103521315651040959738880765683839965316533337602656521929107104022428874212769356316178491208927116558220448139309431124385657636281339891606219812772574881230094971976603796191140725683252889435104176365102143137354165956453685140771858335828382727340868841600416141553124706620766347973145814267830484920384048641213303789525077051131476624759320797051075959843173724900590891970730461506107890310253084453536166676403650023040033382562853741299061285174885586102812025977636648061982508027884756325765908508192889998919109591052504029169192157050858463569917875606998385322928504161499032352835483299325823796725638036024672804944602992199103709108383576504961988112887868269781540018690553574161727815781088569003207105749569369343878385005980820201550573091338124772567804318652599953462152423996847077234593547463522279131943159542267272504182261007361730636391322652045922080615202104956613645378776726122425812526188583465642058735631371317647515826672774684948202483676807555438395318093230531585091961580357788133747731837693180086208025424611177085337497740088758912516540719683732604591555058424895609517917563570500767824156859230489502055590201659395116172735067602680859107623329743682418386098691181582792330963529896100004444275079053210978742565774106743309261128654444385116656231688258599627531475386104368256077509303998907731936410358217409556405371311990823400645107410628791986429888362189753826388818441230703328947430854290340398072334624689205726845292075281345052680183056000964376170309764349977545790408120934363232921715589985141548557700327573344794249077703514988157203184541152145695735613576813751339046034377037254480090042287931637677896546561061785451624093442071826132211871403255526931435427171751285095670502541696318365497053971240865694339723238427507641972281351332265509356513597606121523983342953279551326929994669987617496398571760527695456815943639270735895527872867362192270059776588822596942886254291103519889712919869910194676315925680654551018531629630034316229390994481666297842950860720420427305280957404845025956860744834832170251905138094263913363733144183733058451338689052678276877270576353659863137334666336730826716820552508027446530475884398452216759237602173169885353395967466157641172449974557743823171151695533978730165774220195199701409961030513781216374259178767882321965515122418230276181975472884574413821582418570618751120853064013432037430558065658348664885295163349223992369143757400359265579422193227404356647318761087134698347623456349333640967792211700065173497464354730947275937730731517338340176968701977011790101041656412455960827751159426106368002516621485837421593498481638475830313347976830303421315421884549015142168973430527106291251299562670492304603368890526842165871444944187034484817373211277129484239347150552489565133415370007851574254316082515922325697248040436197351496406663166270327719003950321987666865215164518251198046028658312863134750551206391825570510422715829476081680931700374044451115367843517162701394267738992259292000954124586521487501745058992630822421857235526153119335706947937932044468455687736670338002538367480982173567461856571430771063159623926969684809135260949258570231490246205535331012039313091457118043222902267679296180306512821380982401984555176310434749955295615747057165528462034583838920554637052758655880088035770363752568620744329693305794287416985632467087855970624131710276305894146850576914243004409424963041176998939583365700456423793235732839284637534554851975266203884906659561140854312860796386105787851851300654017247042757424100741522156316814519900791970082824610620828903659069926908443429852755642988188599945540939130985964932051192038478303383823704187009618458898897832872483681547716162371123692372877999229362904621461082077069208680512445878708968446415432803329288486634475706920926230846189351341750958511027600992737732962363249936568765772931829896853022505449114496373866369460758649311835986330972188095448175222674939980924904155231286794308618882952745857395306134064937858336017453429045812744205276629410013461560597272604234476436311259910216033933977373117441331129572725879732090079661310673510405408099480368676832869002040835512983383544461856612788312462825983552980241963667764453649608375048525805825364171652589366184086990797463457990155418875029701228177107138348779122667241264550510765345169529682711432066457858736534915670710605502626508541873824770854008336266913939371855734133001239349943822688747799151556354388123237755130503039016526644018847687019384598395574351315880589914251734874423483787198681891246301492636504408312868828840870987179878736075265192858612807268477795054657818522297780554732504896133198757906505476709579755224058689217714281818588954548544096714377062610848282027231761897405168620997272723614167653996591528258747648284588051705436801561162598668889733820921653037452266999262260485286487679605202381885127433304316579374859217721050642960169129951024807128464832892258885037158759740893835565546537980766328257987343758646210881498534494066616346461116773611090869429882432919883714005548725515961307464102816602555932264625458987379230834857108911930596502568554922991511892506054999051261639840632271600667424797201631219616225440745955374769354829399610371030255659235032018965933030888456664687387224002194837899903169488572263886195523144485739217272673201450800481790454963101599635150071655020069334627022100654861283504898285717883626917007805198130385986768451310513537957233772667906157047517101407173649007441665564642581347074862771882965994926149188695105320112811751631490004642916890765213343689471887572180359011364354383165396225260298955815344180556114990166042675171367574418929319157653131065164238554626189126837457793181717904471238317745983119400593074931048822400071780551165419595966460288778086050193807910620082680540233121539851663939319575858765690400862424034996355872877065794390975059991473843057672859757679429445002728544540837900463071369237309019819913056615096171660650921661729603937790852284565382085424401858205014523461460062406766908522891589647264036714957176027218829931603505033421094917025743349496899176217467090496350149396560439335153571851270342440972606084839795857225874133841708051749686529656370962243076477409532508050387774177915544407554099666184134498302567732393626612642496697979261295624223755471902503981642209417013414140899297362516907572446747973494804933020707918849407764973391164851040629324585169612423481679106496644633943703299386115833302225662272297432775435113186852338197705928623110625605806197458260516743895421661980841816192839951263649409645403608877525796217723599483031113006978263353204052121323637816537353878845667148359849607406100444375783684692313342704210946448399229935820884997850266324639984548855728799365497114482153887364209723957516515879816526412904503225703465838892517746962590085536872765156267346069708943250878762905493538563172202338172234566624545994449404136032473019543544132730363928687424870154648236040130586322828282736130496524435523030077961962630672901124570405562373495680410001751093425234182350923757841062704564826791798841074754967275008864039375725439661435516441701089735043683017964286551362380822404541942766468153268168264651318250579119611418020942756802833495429183726974471656934814969665372554823751373317746473283610564525649906410264670396845240623200710734361997558091623085231205423703192507002813004022724064774851471901079923468984140704144091292582600859709322818304405313843733863176847203960288529745833661813460279408428624961613784443689978107636868694225348271233908562906906332440824648835750275932627743812685758233617839331288528811001803990887056992907874899167420958841870242881392283351186468764912520926613601012797154148228395120993825850284974724252806670620539465615128329327017497765839897417785692103245472851182487586283758708462566360367190497539317783934573513976173777327111812181564980190319124697299572215241297587727178816326758978232584244365866948964526074037789493782664653119667961784867438747314125374725045561914096473351443019947016010521312253653753460260826179503826606613900781803953865790802639146289642786448709447294166937778138107212467635300753401794250880336980279675881789765946930402896648426223905366019071079281583021575763221370589650132646722167194005146343741721984734527561036473139271155360185671944247905257960474882605189964825474416186436402603667083483600808608850968688663042477897394888380106747581074748593731025286530937104324594067425621198179333220097899405139490330563169806085724724634656934052360398460851840896535114470321914372112375769765322872393857487325051069238079150544208443473013610340601389002924100351036152791815701395847373246907942657328404243907674151263007039447515564641549659067922655716672459807514886094786708369219142215790965923000683162084331800223477432123402335627408562019270882521751739892913698188513156093367913911668525084875686696778549856698308980395890395332093094904814687949233164185249028133174284038889016746185869731846184356554392334656255586117347448927473852571147728105828205344071262778772664313648200138888442786807113544523108604551255830221422666171064417037521438867393837208287971905661424212628875122940732286972002083816591174919946047724985384885790170281930514328365669697354186682740284729849847557003407803814659994907459920984603577597577224390906954929315909052734519310187080271381835365323760104479081873896302177166346523607419439237858523177094130397222141858363782353924653348597348652206932376615534351636612969747560285916213853124727926968098320187032852744222682889483355497889664303414447171866477943948549670787652806189816624907165572095727298431955982633383692687591685888263549878661359138341804342023059673247967780651272216957684516213354705563623553124511902712323055208245300937850273819762274360347893810036890562645162503726085655431903121927829789208096918857611549197749110313011035883092210757168314647383703744539287529982789811354787270885335444213908870554413026220709940336073184403737282302616595612522677751961096621487445887898090483585908924495840834814420697635930599892505536557838512198180689124411446770906949318558546023504420583397847358354300818990415032457428438939941225665489850340870524674471358481492716120920683521659353028220366493471423234293900973198293226719382278987419983775467790695784918100654911880441844281694671624613052389169483748050861223790356314087863451557953640229291798548867800320324998868502044054157245165052847611237114875244682322388607686826220269829631997777023169664474193831233181331529039793851750173440382572624005241442107470957307161774767906896465953671631610945543349364421285668396279134335036898041764089689389034373221558895550315036357334355653171500774988182578560047865055606243013316659958185925356594297005831738854851588878409981472759229794266638437495736506405167620722161602837774415940484652535247022095205085696606646188405615492181024278915332472888439853888737034834338714098794193018167501889058386852497828473694606606588180515382429954940076235531413424270621300669861895409239625923975865901536326562525156834867893058564164821574759926704460369791374557064797222790389507398544978373341900860046692713148451293834868698527711352082604889735840496389470939633205505691698397114450243029317160265454347868466395390258998615728951590667016491859036583913779627500336874666611306449878976042382319745081195059871172219112134700529829816378052788656148115486217067505256671915006908918056138782386814077883037202983326148073165769551565628436639401861843832309017480546128895699621933138494266676866673629009909115576929677097513942384048232465966999112656414208782743287070273883109027999283353256356692243843961830748872856382921055672598207702916365859542836376469265800714248017510731865565967701761792670134102451296642789568378229999434521823547026905768050180454190940555407768104880834933302329664978995905501651290712043641822127027593541363105486587553768756199478664505934362935532236470359494710371110104168338434231569729602875952355832241058577559351739517960846142702387725746988210189331401429979626103993503066727015369231680063544800106676811564031927248481531800677768801172599892516988165177203729204884687336300467506828673953530509422076668433847047151503336937695175349329800665401378859693310979049306156322407596730780454903955280669442994308182436438017398253952479441929631202008798068159278312296370412246481974026908958421714421663153948424417954419171330517780945914237215600085936996891596454947941207214057394199994584936571957924998852640612027216925046873073805325626446317565215448451973063210051315839178371440261786938905812099463818855874029614078527064370279951234036508782543168976630348340259580570387917267099326975905142488507906561163762555606612547379998273957142326373628062560501892131979915187475983133009636527746441847969620262729762890764796307877320835959834564102556868524554701644818808072128063950905429448658449039029079185978040970728569492616700189235653536182080121165074696917565669310952557275099502333512451393641781010227561688806832833026177946112990071866957008431720947492755501591022769890396674768969555208040211682780129452599204674311011374623652523931723101146408461616374389111797374211610798039755114474393523224471827662207679875044422780961256794170454534206269269840518992003104572653559952131765998702462197839518983723150801224806110659193449952312845621250535119510721293895651767913532101046237234899180431594595141626854549572293182013034603827448386195000166217591002533807798782032764092810261752096918816239294021909433589349091856853629414949433928689746289512951629220828742146895403941828491490068494090117766688287002274969011477036184947878522633144307237965356292173775999592625740308982275604107132090371411781081418300868776675177198819433340728858619363262364632064907145682327796645208809810430201971591300697984784672653471558337359338699617880624270901845146602455544121713553539013579737504071035422654343401562811835029035757950012088031031465499126770400588571786437114905325805886860532006045511845314857366100807060928389049943156635779991460125017494277655347598549072260357570541088841722313528580160951840003837219483398642094419022917361644978194720716808868846399909387809362948838743330397087352628240379200324326425052030153306436291423296113574117641632370719846263292414495337424537903429427870986965167496254401558255936402843254162152623833583456493626857892444204588457449836844967164736357600462167918069975375551445763382758019355327842101023591072075246380880061945777817716740747642271009262343597071971911873824653161662151894354790977838672455374903699534663184500690258888727764812458160481924610349511532268640865452376727942835183994998585620472000937595253905097640885037199902582481578043464365060713907213669487997771936925385218301961874916030960459398610962761422593824168942928022130690445615098917788717875671578015126874684042909166832727360942243469843436698844133652292684828214738773609194641784385573694838751103894229102912284509552984178927142478895401207948577273251409932726991738690214562319782961857480006269979137476811673927606987466974478826507503248543178702858558464763283131277850329303950075128536538905382066718279088030085893868856082427584448774085938893192344046095242476267981568191553297525633534845347173088647326228243040523588376760549374583907023004770977456078663815742530239459926298216302117615327409385549440704520783939229555643354172023390233928913791739081288039082052038659884138984220114306583896037677311815025340503396337462304225332116462264352180383173252342963245068723685075977701710075522954847762851418798521702896845251175617063813737688482535665958893930399674403638011194988934542006848211647346549372880991430425938822914709619877940906565530384540079736029771873094818452237317963800838033938170173105196967499243030951951130347995574075040010955332060426004505239555181848887283207888061463884462702704181044550083026769981778282261414096524550914472649209404396218883548824841818840415516243013586265659743285884228070786746487002377585960485326939602495840008563156691598807296753244187367273437461377635342688723045603520174750479134360820449566428892197603396174490022086269869573484376024198465541452096838227041939115366786544448850888093635659014589286835197059538652430902017544756724461568973055426366616574209513171889020212654727478725757839770984025464167171515605814134319775228422666812648648902096686186883955090474502085206018148207056455005765980233992009884821019530117219793202150649118578636385487825369881504481285195654377757502899231216023197870983149686056450262571710618561769894699177880204246781751369769459266210834226535158000076987787592087730085494979339774843786477444084255096067875499224810709796391475297887702482340639980654671581743430853358113528959171059112297972429394780071314439603922241203272606155010623698216430667587575973293655089549018841634664342929965994750034359476985460190856141271966095102467101895120918802067797851401751162294196164454710673892394285456026749034917368459561563800497082104084783334042661370807681339710910467606102159908429142983385763262802661417153237296143498334740041507951836394394003649389583562177984558205041817938928225069911521831440978537086809618465819430503843474943184747256170797301933803812229778313616569684333555762593128899834665345194985967427261013819466039707402897524987531916767551431547481637126483848462030026289805386977183473426640986991787088509279854649473038044797978079664322638078640082248837120870672240016230515931169501943331376167469917726174075233700116749835201265317698535130969683611438224246886415001784373478356162402366274931249611063844579761988703663568641562018668815558720471500082318887838037623307351889103506547986921394378965087287701195351121930870761616457405041264625207156953269216660943051758938342319472054109691964912859983435886064067946578457028559600581618707993286789198001469440115145649945449260802200133372122590112644639970984226878793275994669417948696789524183131339867272450993547301887339357860671937830866398217603691640141766779602665589668831277515647603702100398024266424162631120529993527103708702092883882062925365409783772992042119129247474035802639978351018386760953274011496160619671328539121688161806120148021156724987502125234770978631301368212227779483715609197880869108154164864132872444631690942617639391184547085848586670687675436749485539349868793487126253480183166991254415088489348331440270699273740444715031487379165766454062759378489118106415263614377629196505713684732281093790730363814964285900098140167821152665663194986446914149176985388359569775424004904003442437571209896151641289906059537222982636383416095655765133771345941355064147682038584528590644324553883469572483436172232498315465775638247324467766176322018368398558198082914491747361139793794549640657110455790534360006220972854412934312312914763491636433022776018921214228052463573933678382179293343712114540081836796831460892058843970561842098317053623686010221867460702952274635057832239064966141186998630901709041253542455896216190246284691413268537464674725458720433149007015983063729574704260307557187229608645288778719382680387699670479326278893500834119484146033613167400369027764155021586078453166516273947878855270401796452055194634383191498906997472337909391037930017050647796950439055589717108240834432725322833640204733833187468840141586213861220087962145022836015728417057772434886628051586985808505811172574287287058966652800575280183039956741790819913220411889436617982691439510350502426806812147949639472403294520576616407442811028737557277031044471619098997426747346021070206084527681002786762560156433640246430757683991880090390258656421390895645639990840890383738852897980442859259602848038077228521365551198984631338655998427985045541332996275875056679266445396485010546203176209238935521976811869622773051991884131517683226832232285640626273070677399210709480970450217557350896873596405572527641684857933680112209482832526395939905301348928053056787483993926757886204416571424419781182003736865325095891543470750795929604758373921906113757327635998641336974479382478297343889462735857258850469805447064611542205745996378771517806977943076468294537822898678136657410062576421599574595065760896159845050191828935392292407144522567913032240875225534209989544301433184529199344447030057555489229454903908638586550433885778653700713075019835651476933701005420166290576495355578835215498780405009211397628323836074090891014321268274864700967936261398178937403818728200757051197999343428160476096385264434922223871221547366466890110301321516137004816634830146293578526467363654315153137548816090898518465543605157621318076260366609132230661291430397457970884331723792039297725980910597195835411297520164311024753605137277035956068902691024112375744656005506686574958935063724474686409061686574384907727919469856409718438201675424574021302923148653898655320138024119423086754229697710599818976730251964620276050242294587811463813572574777206743247824599425108223281973582035383124848227268016449204330490626709647129660774970896031448861569844625000258266005744443243823483111688835772915626295361554732237374924317501608956858567760208097074556468665171367842145495106195142388389980900481906525236327270050892755788355689416026973485972239562851933801221141870895416300357197110578778170925146320256466968881717324206517598814303058002873621957916653614127574226868634595344174818901373170043376935527552565489982073684090087623979221053949651755300433435736954762606827554823767595253208304714428182667858697625781641783725339489394459491252552188245839580504993604233620160527105114702025368666125265020411147302390260677299145802361946819029696001042756661962092950837183568548581659357764445510533639492763752593316788282896609862902675486409874547443121085283804222906824398319160514585061145849101415750627420995429934618943242658952978415487452589968873355222832439266164625442142179959552598034032312441293076035731561918120195912749712903213423521322198893683681667142882434702922653002957668005490584957954376164008879577418554108734428739776141449377270454649723360762549959112068444775369196670002381400211430151790143033917108915352469152248209451597702000721690941454132859245475695481341898097974090992404778312072308836373899703747486251715390775922640852925049856464898477601982881610737531541087040353988155439079693999455247221022072552444528646338843442435103234916727996571099440201659675938228377599550702126403473874735734535687896133099903425137993834961548641433121528906031345401169931814541517950626786859686186858317519730118399367715714831247708335464267711086498538467157960225403407926011039252190890077342093962511073193173797605761804012021182186070716819442111665922589983209058141889423234898490415361192585545218887581808150584441835880952472803350848688985738572515260228013497233714011762232671016345782440676323253427280849667181609595977035617164017951903616544525853811523592785481040272666426107128363849273225111735511053915789889760240762185731936194549690828544425106533553813296067258257824966388553132943686108855662760656251914017534521154762169535932679621571265677901800845552033154490275776633255470936511503377841981776524443750584940442115563927685793648242022152069635118461252677665966859522509777217259619338948199217666536269390159506379124634261856131987407822656007723321662825707795320642860108097553167000720754660196664827345153614011702383929346154253728900968882221392217298086869492762822900173321736650498735397564853537347674315815826551556325556757306597305773966866809104936501554355273684132253669922017685969436567322501095187465052278483634457881463827806193567379175720640366855752010599777644432292019125566597385389066954483666272298204574010406019764506065583805389145199890531460241049998447969119299826839089598070094277913273532465434598279650089326550316281077685332003739820964784993960356394598250270293078033328519532938417008712600140905505440885096556699551532851530788591291121773371322186399581475121822584625711923462480950955216091993656601974261048675830403940206129694264228730334946605410411692351429867954308068320827289205449176603037531991189151196461457706999749934310799922597956626988590001675463391946172799785886295906241834051244301675334510098894068496806907454185965501126652140266893667042519529489602128347508698920588874542988859158947192461753124667720479707536875757322668319114348605196764644388693512107868530351607653782697517940514371508995247764239133672173119606697464878114037048825844302397287180176878620599741745294142212851207493427600995236141261984307737306303967452967971260217096420323951827396374741019003197487784652611219680376249593546249960474920946630614146208912226585973794909464294982684612413345997962763734162766151436001192151750905068038206516567122183986068801023759292878153028119320211375759493749397199975223770215790692202601517357875810693297688479857493947748493895735617181148603341426898106868737602263356177447135929207442804561739840764858593470141966984563430794450343289000382948691219417277586989647148139999479653755521132229022175874836626491942415601003615824309350335954921632326997776685645882414157582908733130702183466821717869370031225390331419471481445697436949932825894472449132006827703716880210197627041343230020588037035352603244406105281272802387005002829206186777708234583016586929160029701089712388215896919989870394772613319504176163108536952108052343998470774445444779329188434254173057976763569029789701433882123979160234614545205289239691021559134481926209865380207550734924142501523068063249603510100933024294094028457317100464181470606365984038465529492545996214175504798882146389138917542469467751040630858325488325783690611527778444713487363130278357740426737780330919943156685329676242714807698211432953696051607198774807501256859208357280986640584542181794399847122705268732586984839621147402592964098126766720912230572864095716131637561566000387079393588175608908954688996523369513903371243446773881427239231211928786518192889490934022055729656967939358936283072795581736381588718306267521843852768929181529946859839398360219044787709524724261420349703533832778297339266776417033885198130079884049073961721567837438976573121280296311335346555705259896965338882603623231172453445484084310734221832337081988918561211526529403136306420437387419990441112122260761719918792547221856247744094495510922155691804689234065333178682277308702993379392574056725663170102299811013393501818442361021556384471130379984952389819730587479321504658882303601849417119247214075076338671709420522662876863595282650028173460421402826704913667103806478948893636441211073483065870047511342557596060481217414716986005097991665303873113553195589288242059780560369032444648661515473592356710912467035594146904866626739633630003472247358474909922556424598429059030813520149790278202643872497678078729854861719631167940652844464080476824351629472869083192160183082036969380591912763799851859061603116604023789381571921484114616486258056290496482617518325078195044314236963861800386195039521954432056797242485556564599906585883027279359159387649954994552420254526817760394648459427811508389648879642437448800141196942148478636004549697630595499925655861268313020300816270142666970607379725389178218605398706016503867732281708563083482651860810495970297553391702266240787546773592291263759887869684652850945321490788838457917308193669271622402885715339152742165888017172355876404519973621511101626880438619662250936245181166960161505842061965302597439564535835020039205464091939403988506606778639876872794611077050187455461575535997890232441983307904840384665327963686858616164301675357689105941737819528790519808596562045132883762867450196908883696770862836782794943262063870584586846352373085261391017659265750277302689865745549626277225334264929091101655842100257597877833932291089051425415087897662239125079492900184984908638007984035022910607101106279542878024315458865856897445780332507543485296153269635103195890292579303647575820567748428008231607374693354727271599662507925726565414500335098481721492821158910830996506623578193877725931051983460389854287004303578239937385545880385396284987710651824483433896042612874760143348048994470913477518139661912202092713635278723746226764173581838743729907048738144123773839741579193216717994770410224141669881600574780803645685143709530666312341601841331662189504539148845013811147935967315111078751964076677432526965343835767691820400362966046736804462940788082345157350601703064208251612397300429755084793605526795190439319012758295054115151773745853231596573367350833178680791176219823937159413987033601102791525476156033067803413965974491873381196441040917668269661871098891952384362279605642222950866746682477226658735815510840595486837663408633105930255328673145067150478166267235600374615665074206757152800169115417600642914771028755064749374284584748011704500863378042569050461486489498032728224310701876881138608030661583473919966689318231489175415541637599356908541512738877401697158130376810238777819055524441431400866615844395623810526466697684333743871057684787139324534464783439283719930264976387571948645901755489840800832137639073011390136926521396078112462258978182058985732143324694507898038831865460101900149136828668972859844586985147673974026787812287014236652261240341936532817890678902501346931970714880344497833918522401623749734229898721599555994712854045793279542590981613689932678248713703541064942013637156217823164424600700553520420053025736252368865483716980796912576294926692677085281446213199005082181962397020907947954079510124597929201699112257536802717394892562687750132076122183437641725451858275619946114646836419882454381837495577583029057938931970675287193438929276416488441685465840453172970122573671640089774366062161646625762519115028723608883082200480886162897553014336479934606495408861418783590106256598011225895647105196698404157518347242397153047648456876874584068825431853376654420253206131762782321113991321827819203680134722832873157373376114705941310760407104677930652675644073972113558453779551266872808263808241359162601339946528318041632191949767224498127873148258946728759875080884290710652628905474977415425963287027208452732529698107814019533220325857205283478840979015349685455380283821711488759888138333275187621790838091939558372652134878147025807697335876297840016173550061858727389395833760206127989760578530675847804076496544073859360401027680100590312049318748524431149422535421525725031447485797690504347601390810666608835510975743542409932084339944104941318718807140706122041130347869353645289629457771592585045633540393390593479137696293203988591496842059924544298610085798716185067363534935126648423599982352580943014390805978025934017286292840287471573039100700092232323546305023423589612270757423386609697567649643613448386697427368207853100429524807583384071026803289983706580223684132283096089550217711513604111399337882879272752793026958858529772817567966403885628743231318132713794375177524097895393157919348461125728325520776233754909369037284587967185925139898614686645267035679561417051477852600542891394962293800141558091259037428703648943417651414461449225758419837314242977270085816948364494784462660767855614174510606003165005074786595071055100361881372395609790675733405206040882798438941782026387319865861342190244982400368291212167340585300749933406798466253374888365279528128472245885486569244463679612647941938632227298299967734773978192037357873056929177649740238450520773748700610233043245068484740127043114699813602992351105848426980490335654224307708267158651171626452544283937269859908874658049218451129245865325888516245160594859289638363625088539229501687588950375867259574348353879637772656637731009645666151785679803666251754694731712569884120086679225316502119835907455214008602545175542083429731053395724970361586476022282572231420688252239918959390116329207377501138252100204667212767776250330783548701684779457716102349009226438894057447232699123274730746211061478948812780556904068128573541349303204090907508415316533354838980399039154930154360742100302648354705484099699334178524962213201039983141113624303159350589590695713850575437268040478412759481713466514695977400020124960841879101790127717069927924141715609806207412974175915361016205832127542814223046604592403874168782091839467372718066958226312767764790876687270527236304137369054763081771535717181215399425812448215988126934095849797846337841595111124214452460543335916225710680880030222180188014888511658778395876503434053408323146810707701084624072909033836671111060677640514555653316307945363779185851358537671337225004287575805013824292632920866305021808994894778174159130409339400300423351143488261765960328267732002270157185893395600332618646768648962745356173739610303642187359033726902098055379019192530954290945653202978914903175605460937325543385093787690516901856667329028869859639178265934534723660928598897600515174425108933925802741868599602641667195028975677842700070144611141225123131793219552770048702369002608180544609104276166627673889982657917734953911715315138597183426973136204523355318814867042737042605942991995678249776690280306087268118913080382623300863451918810188027103445965147298950816606161917400497944583436097261725593721731985918910202575103748710680475343136299768192267016115902372780411725181583198798835243270539889237490851860265239822667067124350153941981277926869501364987854226912002273696739787954464159162678375291170519187292989632531828433893693765663658132173266411579360286578114761463493805091069626275649298084334845022619499794968762154648447733666190407451481540866045974907388670056402597055764705638530127088310704072061471835834556565761405706477883477239864624058756406127851062705922921878273726559799201321524304198454461445434432448099569389607875821088322904323763406099753131968181156172979034448042944215015302883839734605869551414520130002832073319189814465607895586999659869898319078637311109160081473271191113030662080138357568818572447584939613742709656419099830877253881614732321069607779721196774787470756504271471780733374220969210779220179945513536694527763472461544758182977448292279297368481011331478043197291522450119031610620025569007094391151059277081303966730710423783925015599316934693991454443250047451267755121982377722176734950756116400988805769487389455420594298949848004083596207521065328266460658730460691675488291309812058280989161060070959399041631638148118807646878364158042533931452643181918130137794300854227456350463853494701201274470715598558398417552765758823104407064528633093527580869418930554845539572553720468458810222745112613674382429159824334823977818052589885123133693207180604412870026012852745791852355090134509832897012178941214878233077147519175116545384141820829813364692509083430493456992123355754367618691470276455784638876422385733674360029308215086250207200028898590376225224992345313513623469693565738012445369748257569505158422388746607643987203305721748227370401146544787120415072076615672721003952342637233575175955503650304857137668909579090044575880468592551130760833543611342166040191437843209865025287231153486063967386745868894906178193622997640692378510601931705717282627044537790350452158170470345983184367081394795606662171744603035571045220491372976698533835947364313946016250388205077902332835184353597627579268481442375857337766027027826282565064643199885250587303386889940451084942878491556955920504862992386464837939045665569113415395180823364241885009037159850407799095905456140208069522803686527010276146709420360087776505876086658283105154871504186295579462370285261296360306418671061009755471834043330681137284820401876297598266461785994777847328024045159303406193135582211305030795785727110849853153142578994692035480583417176356005933966377208467028519276890644874813217553413316344396117521432485664160817288720371830056820784353341261974480757522507651850425399330058665796727018189853105769467844188349099788494651879690181344236240472970652405619329606615222207343669534392192146196765399369349341056861568225711559661949908044551611509862912548324447767167308014878236549550626735217851228378538463496136420072028565501114725713321986522847379560688913776672884152215557299363282423448060577471142954093540014775861421170950901156005853647183662283652503099472347536073329650262918307274463253088958413234611547842722286575967591886031205981003793529885210010796594346037188064659578551083544270532758840189244695473324764782658994089759226682259071193953793319668172605112329602409644197642095760137283178428600169621749941018340859851891961201328210716336557578108187800153482289531012587970574284919879517442711744480958765854844686986241216753016593455855241320904502185401141899112820235372884362739197349001587263699096232133450269805661291170871719676472071129589536060003390756762831127772165288883474232028561143392225971089246731321413347627427710760400836685361320273928280752859517089955988448209514767932101995397551384804344461281773720681910444384349852396765649370420287568178487280769878148858491658092362155233300259822340018705798420344844796552841548749166345628622447545424386573870057464355872412403629044990046481664934387669913653394519233380115561978473744736969462157706787507296048583775245384590188717034253975372372513651703034676845111661493376157542705720115153349053876942540207873180476871282685503867321343434838038363109974404025765774814612261448596893877928676897793398303792690157242508995906479460346557168868997876625521240248256123151336096822566652388396388242804019548421498822352586919735475535297458515962334584384282987725507892899240067265729293618353005576297887672501279798512177130093964885139731108976860032740751031220117793027420870536759412004267470038167746216368519304603164456191859072414687607786613681262135919499650756586081933368410387336594320236180803035588572991544552853476910684326941878963488329650417219180129696195686002467249239101887063655714721720880813466592291501944013695029285135219331629727017738204611807401680891147171045034617504448107025925721270827976419800910419212868711832165682089035406390814869372622235670511995838465449833700123350299829830678324330963165941651549688266091279761233670382112459259353499292754730646514399787998160243431454451446564012665436612641968649901745242333865490979760157273704918512554551069941619081974190752838216229324946035653487307241158129387735142184937083507907159996097686947092323280207377554066376327441504954262980078351759277038891770037345926894115381253434568247111189854408299428601139137647075993768770621370618720793194010137993665121772502645684790531053884234255050179294468284740744932033698663064542688829284701372978012166140052058585274185918532980663034877787780611497709956804745152476786471401164835527735716522713208064924260928204548885712862839791166781294144705257680638836189666012740270889250203676775636753945166438303781632378307604521264215740874106636918805823707300836695038026984952548059066254372161193807833874659294295278771246921754415822327130240470856374160587628208088343413809231900692818930965648797773478544897880218881736931413871922035191054698848778539756795169682586792886377110500781503284031599507000369337727866557908365987834028763478218747102540131922027917557760372764132958204428140851543323673265779499608834775666307909304986827650169548016308061054380289983546673532279005289514847175531397951956941068018111745364003552097941215304894278241056239228839846941183345189355725784554198356378846263231566275916084585819407926255342360946375376989111784941145863221110999517981190560991054593073128012635900205344169112924800454840013664750304765471200551575588759681140427175642640537561270779478041316472506178814805972362908572262046299463493734547328919958807157866907309128856196667144071165319270422986723244781478877900716618933962764079190303082607525189715879416353370193728061569675522966179747400043349722856894651390642054688560363562337435867800145381553089956236106488703865640627053259433048240284882712702424605370470302958668511025397214454413115225358106811095522629241852826486551419479711524437300709842323831650279346712640241755596655296915790164737009287804897766100023149287523617497366427135511358198983815568058553640548517864801349934469417909433370861214344557362656042598455232823979096417200435754574976599730737189264449395192481892070776713144926727042492590338578706665979800353066787274459858517834197872532103293159453625610435271291628523881253574136230438324534134857613499649713257320461468885888913733283759156498367709651557111548536044399196959791964637607990520443144796624131462195599344231793675100361325760143305916123171736132516044233864896395991889101397322366163488323608241925623613065162810440514674333491510663243242036919381381399661175646113152148772065622978258176736288727500022485671860929560741212124275608123060018125069050873625646495419202910722053975148236549256178728015822778688368809351588734802152627370038646978665522390504040815593220655047514635325204049045649341978689245783791268660356499940842803505477064338643970527720137789524993340371396028546219315677520242669498517592409926741151212983545207651583292590465638520050660420090711636271042684936350119260649103696308593388075338720430662579049431960311007006309666284806103482501843431651939183808754893477687144787304634154377976888434915037149213754195832628654759850257741221582142533840198696375182718166883384588687196873348229706045597296536631054084843722361351279614785220006619023174077099728534000582081020877469405910077640063027077728708670291847578411811549774973971627833667643621505130623331515045271984640701560411744479430475102048596413679632244113872414969450306120168534766230713810417498567239716314079509983987045784785798017984847819122523639723880928868128182724228864776675563945883993124046513626924729867213718457981583864259956552438967409240975222733281427917479213415734435482725742515955117472664632168922075985023944921803978948452630021139738796557942670353824437183801123522430297185569850047609849038367802936152770230476515457041212229993025888136781719248387002367693835343848382589788937736014602247985077352928552921003605853264338572257066974326215017314869649494066314332215257088636599504453782584029976493250432999478917883747129149586013479733071440505690556046013311174419780164835085384475187574847349345759361144104879928697952023840499345523666903742116088784165211383169832620806389158799202161567801656538850771103804120400142154936126166419655268609691635525503302662576053271512292297790857849931937941495251163373944050123674797438278060004137156550877141329191443913126450771901415362861121694250455431455059770347514765148065026950969455008893287969321111887676412987965350908045614681118338996912429410860372761701983886665482177783290268977957483142457632361310546559465450971805415800518031497516802959176153728765823181696796957464742769804812016578767831851975399016375940257057566372295822777649980689431441322211902273191871771724008131541061807382536144123994722910295832350361618766808078751616240088124786712046067279230672643470061347165042655758730174872485677663713411713101379367604618253753204743859198922356039531999767364088329438417535757320238368962334892613618760375600275695886677614804018781693462298990733603792171956993022729271131593442783813156259726516371504795012710253688718248379580809269432555260669583793043377865403163039029861274315137504013647651476858157455117853905588832064364208872851458621440504139405934093052580403200647551811419220959137314880887681024973827360647137681873372540255628752644284340167408180420083654243526278567902157952337520410647654760875289524673674846002239887376354002814071398721893380003882804261166082374570148612865111644111251906698233035245012687734334240205211407660453468467286716898483447678396917038911172763238058165836093582856346498886405619409109754963707034170752327789213558346678266289638845522839476008349351573196017087171074300315935495450033832292838149240212162931261303107412461666900070833240429378690922387952610767434273988619252649038950513572972313729072552185612858092060280525196901347957132067674621118164972779277517084469065115383011446644996012651161687744863092964892695879757729239691388454446010463044627442175620865399126901885670513811697787496945778983454657310348315026463385209261977902051905219816927505705754019149630254293966727461448879281024493403685826532899263489870951777977492311065539646468040731178954402501396647867692406605932592224353553865617887338809542788247233451830889917433990938028760483652430732312722524030354197229168703625694455136143164609831157905014725080845890031799258730546560220037355972748686922715572263828010659863277903605466657085690036735499768757525455461030035595441299772146614738056475881099151156953330863486674480026590619383291954910996293539945810457794878430555842582418151587880106017678078471695067733101799407158434165915182387946028080819353683185925834689665761398899798498811314812102455819044682556374990389553924822287843983926418307543551220899227203636201054489116253959088886141041044104126202632364550696349000991143617059952552853826900401983503817028275293960312809777231679805818881495785631797543361347543643997899237317711636023853820430332490448583374472537808392991401988262069809901688900897845038901905797303744897762488734480360493912676973557953184899914145445677753886755468331100667467992441657238328598604427420538708724583588940373746659922601483870125364302683508194959237629938325822714356560549329108504780162842553078937807164203133440884361186952286757764177374428412503473729329497338958187313223398025487694937151645363950467962913375315009245931861850851905215846043010121570361292730851428002874609588852980533430904109592442708513877480402118066179706079191803519375293813221762058985191604984654763923433019429663556093220414768944652260498426170883966986331037215415933777076722962573050677996827367483908647526566842469419994372520229114089428912167427105436500145085929172973216706832019059285412647113805317623031380235289270630314840308626371158354571527519862073191741716330668871651077054018330325233152014282829702297346196221275127931423863857350405151605238015235529878464271071441125900202314835511572004708065184419964964140281975653474491560947841881709062162197331379184219984460599217437064124511699437915952924114185992280379716177503088836081945518600385858812890943618104750091945787882467335217328829234141521056015065963552710115389935904680976530019878101111098292179941790238792996136618853378866760249312069132761438348027736432991693844172950066742450175638149610248188501130335214631701927968226792126963791063092085216500172223897584744567260951859702567273886985679277496064317941194762632587111470490541090546702351099624948057651046514651393945032766169375370807674200708520640589955687337152134131489039182628203140609524264968294643680527399407557005920136020770106302092710990789569355982206151924988404863612661863846418903942226062293518173302929328268870451613998125679758265428295911689822789509568600927366624065787629616941616201734182038643795608986433924698995431183494735003660479558967991332443447018793811264181343711691995165849287000237099905880269232438730567651775922418618077879943040310149354245360346756781736988255195670624901585720766783322313391907076540205645471434196629089900466292191185852890963238599789168755125200443439666282741119075389094531985700258678092088504178635188838935014583714925478761450422845251912288561761429480276761982300701240866224633282039090530620851963331420541307640049299224347235362275748091131928307683734660250759912443565899692896147035068426380128390525242167224610125003845027005292810577836503747469223753926186732794272443671198899747579584992554127837931390551882615106157805310869196362261020233921875835447787232266996367477749652843399564311642368792280160061742429043200486761931966620141380771629637518471040718187816961885249857952462250860575560970170058211753492358212081298008075732005901080953110968699431692666027778949570287650779836156106149750975803789003010873951663890496161056464398950106087523315555377437542868240699526982696769705358555331606589281171446502611773664996452214493556304230945031587972841758680414764018499699022926084438945783276912757979817228053682492010768893643931757815326921815372848829224214774259305706971630301886327430220834653315167910245345953846357172202151148836801252820342899873798901280692755255756926392387514502654220454437707450636282674028774195293380929734433413552937301299962692361201106081804732852683025573722896143944487257371589732431051758140632882543115282706634911605761171183674469099447158120970554753304741353248298166868405619601910395767606389845200601678218482295848171299348907182406727286775227867754350910861648989883851692813799259540002877045527854280114227047720567383230562220570504410855910966845212183725712796808402209697215437055761060127909356718797543883015471100287326082227684551741040679523402916040032180824705761270311778525423329089166145629753646180355541134216804426660161499140698300891422247691501260536916756115231562422390407906913367692494363272652745432996026576187427437589784369184748407874937917052737041062604905871690176053830310313115204035020993803760628512033095545641874331326074943399815788495028640580604799043845975645469794766784405607295700502296308014381460995564035414958179125389226623231303580068000814031606517010560737852623277582722695494686739237796299759964251714804873100052498831667547351533133750180503302818951106354699214579900823312292227161923838969089152170227967120766621335873875814917208387118594454431258989349688028354636783835355591492115341256501647537509051280639890877130510378908927047585203140421496075297361617700265082952122596310056924751153186917980573627866370007966864659579921030943281734004191227999639773531627134057964233096888555568390188694954220119625318976503793230506310170040374747639577306677493785976399646648512566354235310235474720329039573499736817225147731335916355275397114214468524317652238075746388516637681043825997072692442244431064328035501911169320580994259696699019970920761930662558193350965625071647679720994899885279657551102119504675751578221853908790623092402564014336630982372710579189317867561848210621030353535715450761063704492384528938927862697207941156317854679659165953506151605891507742955361066909343003420165692977784589467825892968760223832036181597514455019458895259377486069431647938961784045661969917083279693195635219754607287928596233876701251770126714039166949132958166322764718854348656278003177417176476609609823626972846293778205576940675083488112005025820995686255021706192793983500530659142087849520608522323871096157422175102398422054044376732256631854736779016771857831833152996999886052125811214595445801935471887904209909874374691157997280457488903216584801897458348391955223219891536939621516338706835680408914416452571137133211596027628049333840068551751897947814462773458371733007826794090545610385639914721296361558370610576570131761907418238183147864475387754326366081021618707874392123790719540715171018731543702384698512099886420972562436334121028704106844292255361282767125677271185423886906320701913235550485627723551610088326386446025030134154780160174508304666406471828478690299791906424621510680252155209891044500011762165963296425761162320690832043190584276733007522299881879506403710831327818523516131660214252427598885343586546074521888245167640274783809756598651675431299637125186371590656455819134110780400763618362703501113992480359888804446727087598169781004676268062868318160056600303329658311419585236846039074197722812826933251255736224177804233388479742197389177908349940465786030957435758117793518156130235922072870569932317633573482340798399956912735434065076605578355163323968443312390354342881099854182432154272837354543749561613649362783654530960032715785806932978812491411964710895917159514333758067926383450423445517366089332162613976083271059748610262937387724250388746803307183323696773264907222248722845779868639846424986565866605950376592322953081548371986555755844568356557857718346876191591450291737491611325322366524679279434228737084870606169869900927758042794804088933378757481830485481144013989228467736192826416012236471387953922900714834277718878711145460484865223231963512338960302813353254935378225585465397774182684117897707853310115225968612494034921439679555130553716792097045692954555970461580613795893121563213528672170684858090258657129057411849591209400755279953870844697258905358009976351592487296652390810085187524865590526607770178790411384887564632179429988661012284357492223649179165389564551980784328526377701902421071061059203901549154591256228460171202858939022855630408597649065984550572822327592063190180807777295853247477808898628858566482543977651099387205182736367859947408940715387579101866586883268296491216179217226986604368204723947862588474339568636958486683130919157556755752170153035263441770483692829262678994707845548734129526954178738489866048406789174753088067834776528796167863662553807617892148052089381135713915436349404228676895105892246990966184946823601174456956885732775881430885180054304012087783430024454938245117216274225200660119389473455509485043387929552292223462225724471946804026348049944670994116513184727370005711158612884887193003333213334519056841203402169195401341780996256322816029308054342685772665526687223755554601634819542956462982343569563284170745650728020423976023319909100068851160973406742713422038128454550580637465428972379024515782579252747144710440190673385059989754469893985973095063544679614959370307290891649943678727806531327928615048443505494469153368044395785374199438895780134664350712791662794357471962958055809994710729890917796240659371185071175634523704230870693847748650795053784751111943691275140122966560905152834435738392854148449231262186783271582144397543744985121337460975632722516357688080837248711582758581903042093299262696181720276121768426945982104867002765159585916445941687741636724310451679086855331199214824680660374664240705572344862362414561338949025295437847525439316584278705051310802780370436621861681919591543307598134236797013778033993539651467750878086285881972872913315504951989062933511239219851305811148036875251390260884270865137622059398560072673793937829357746641702434280156941733405768665053247711581924626047507214644757633073636427523864123188321405443619132670515434496317041214488638630038459640449660002888476645681444160947579215128637157002134580074850413079784940502882492234110420291794195005267793652347337059474144820014124256424677503273145537787663726475747079151812713342198420313964302618110963811716098492793661391722419902081093671862095928483759839993505825981286098407399135045172513882705773127640793368775308464547746662907526076852822161657695250253019969112829075859355305613768191116924264137432000926892494906212432346663331944860308858006482941607456038192413605657045940760211704366515394556924800170683366738087057872312581348677581211475091433141160962558088720967870013948788368275178867692640547563266860214397734626746202280879990711562586688007047322215822925028927935534023973345986923828510747820689051955682684003681981716225592529640282385352923501741266548252649636938152056128387882219107479328668326975995225969133956146397022348064142623766445921278842289381366495955947082160800854785867654410623148353240349652215242178024950205651793520746405581503162028643342984314201053094621197303865488714843366286495053900315173893114648647589200376518473319993963198021894835263913835091870299341821673888283050654876360315908499145168514928968738293997358032893421117137528648200626957679705384775780785703132181323720620291847074536910475567390886850867594399335516338727500592994427258540415283255868356992285689460363437983969662501909567220054815704423337569528480805504105280598011663375860356333347377813101983570745748707102063598043777338306700943044323248047984637360665212117882227278802161942798379349185719002143700705332054191651399705813196837048203859600058363447763209732928400476907363329363695751760652132871244767576284880660952700506656212285050018642287289184475257093732559706958705001365653703506804817611660253340868660475543924824603623941594754254232286840678443266431075746945826187887512092726629496637678886111939258073286726405335159664667403421190740152340805103764939341190434283007542873378533537752794119135874246212695929824376851851128918454544034228247241780753368303209831797048971871162169802080461965936872307718361225709296571259320954430593085580655019735190275815728620164823393621037337369985017860356741268031925953741241083302955862286029601615332133341765655445938720611562206473694000890139148602043902761963099569295728119735343519661852245051364640039329144793157273458465557580329133467785830932773045530599826956619652615982411591423304187307949382995119786797808828372059022955759350832642736689674777450298287158612979122053027822323271073689711624343211329568649604925811721959321618656067113354688100227543415829873830662663945823141584950227447356246720667619117028095674816701123219739291552381592319935589709032036829542733915678635461384296970756454281311962339924350266518653718029298521730421939061841711221081254126589369448832461165527988689833807016480408379047625130758952731663298608730884246791221142304342820701788951799006498294643537219052837080581826331298662582356344471097530156751773842273806643520383534698417527436123912465622873011703542585735214937415345382063545063758655847341010362022439808227795122848246282494308513278653070669585285325123201299295176970478173758632151190442282415768036735311979522452517574032863568089520258468141409357616471126444274696552391978340030522416765144604562719832703719775734369152376037570159170549687541325780008011565242931662349179447255352512830130845759999130739026919656949583272800234957660169979629419307829822503236057982097909701442010642463875820536889980540495294247921080595393947648990811733302759725434352752163637729689335707114389384678906090799936814882091184563064174294449751076497021919889794978799762692276048836355813459367791728896504116422681084565751880986239532545232121770086930875780760663040632300936830426839714409966437794197291308844501855095638062241249492543973133671292717400195982500481708051806454010677882405834738851263484802463939040552818308239581875799117625242766665949528063443227283950747778727203616556359947494000808674794233722792049119043441978891562885017082149731599825535488423700639366399791665569270375349656499765184798426701071559315142333118581039504905046810648609436798184872987597567694061545207155489289882412302585393761644000481589866322585003805204438968869054529713607264532156007040312741686500651822305989939206473584039558853789270004082822202687594196208182915829766019674740366024048571885428179815615294609102348223693641840819219778863796830334202345236023502903427290371065395289771229371086651813473736608378175260821707985620589161217231973629674733215736067195106728339588028916345656722638467209751214703482625057212850589458853381871222639858219362603629697763026121373024227802198238516795463505691857008465065287700599353318836990576037248622075618729839002052615199269092139518974842586976738772886901548144134855663505319478770512975461462525862894030013675467035623781219588502761173519211295801921755848035127160047588193783277489509255769210436852568844804953236993381120708890720044521897657437039370190698791121763187791743585712941591823809907248732129849893607133437936283052490795076664787030072049317073471444209887712990221161017104616300616235877240377935177989259910762837249605902850675877731738748359412811568141378939786903198215368638690473036786159422955915788520767927196298678459371044282081597697297613338664166556979408342901985690786134651170869762914878854823436597325593336011066051655342766930425879959338253030841284465544236251131503404342986315501875142763989677758201812825433340485289727206297519102534458167255842372677110470317405676467798234999775033500220780142126129199924564642318734364283444093839579901022495144131341149029046479669176114288246743614629691585008459981991373768379344357493031605622013967064459378558652148465726507444625572585829260783713711339802526150791450951060500979794690404780129843900030884323799326102094260365992842930477819364586176155063676905884282518587361070495422096759742490079269496633396124141993416656432681587058925822888900710269192457475272052814139859891673899740420285396691024152957867441741182640248660037067823568894664699311963631640233535541459611527301131076727353549409945969435335443977640807448673632624486404700976365902644352808739196706700202306594588684413266333090327559973161200528593334379597275189617597396735020791008474301852714186310644761781337161669048667534979622400735462332815727657224017979527175044924419801787778708897443503618533053197350802583776398449156111760961908621764232884800852322254581393190512385923215929342909796100184286023640570529936135005873412838342678343260677777401574140665309806095875519711416254573316350703286184556855294161417068158955878283890012151155028368778037587384505874616409101368057551728396596952426886958007723069328136789108200510507539132060010831826862877828999550169916192326003288267492008046838155903110612892071313434479381024642029857723376601280708589604426084241574674323113855620213702463476633042890809224189926443619248834519649158269855432932533332627788053803149402299754716078137737658352210316619957831230220567500231155226140001827427281047609970757471758482685197344842926098995446700418051229577176598435047620274826778786356185279262890686868818861479187450822433638159675815867127941656681562757379938185733891904672148285313085114611603631080460704122300343642846909656085705870283994004100648003013643069722360395679965631269061611809522712047433876624203673055660614764604307815907516800614043875425939308978883100677433252265446401034934599608842980661025958827651240088312798925446961743881004098738678014227395961980580132867825135973737319159114893068930540858740840042745280812836314354610088397548698783964012236007914814889309084452322625326379017031163881173549917951294761985527860574786973801043225391196952457236949461364163088063113804298834314806430605445899847959506917227291206468742269511930835027384428016081325971598949237484919088113174407704628420124989986254896714134274281786973538837574700485339162876067748549110920722245064017777911916016210762085457830924183940375865671693761273530925613351856173088211383839365344434171670959649452819775013719469270218326906465223664265070119554446809377616324238745591272679274769385831478201881488847729313981567267525987706595183647573016488820942037781929418744489428454467808924997481200041765190439451194066560099066254765710151452691339241583716157004912969849321373044225308520871880423026850475782616261492175257521970461652369353222881532983816439566186759485179272959501504522928576863727941973853513050248686509329419929929405599984002077502171611532252608881239236316176900219036562650703374183112245475623716445209066428125052839103227483290978949019507860662286314222669625970259149666251582034427790865047581060362547655320957138395484967910021725710977194158322924486143641864639206866504421638386511852858521351495068772711831490022463793936805459871631665136076701830326122328899187222551288840838263531913308641063522147558435687362491742058084933823350145994652667474908751546079066872527429650428472743498989609433801397966275221386969658676774197322474840379346947290175799281037796006001875876104436983285326750714967512593418622891348662910906273436586740015136713641616907502802358951082465486293491266857501118603765282969286461276985140824578226071569637214456776869103608698856925205102786036287920222041104682476477973622829531598844968492227569865022668364692218091967296958060136435838722867976388619958318340051399772941942618356007992771704867325408593394796293619351719938844144902377400944729855537909498769891501508402374232428090735448697464823021831802541906789196432116063276338967051586997739375656169005967542625773396064120130615785155603806003021774457648449212071056085531535932388937672056385802823930657380230849660612345379320360739964703234838072957219807850532170914643875201576456981886988111414044784554030029737672525141989987990282315317150941661818547188512706422861114459266539405757226276909960520990624306865704032585153578346266007089755772342497917061927465139055159663399006069905837287408613297437332102237593333325224883167141207072894840952054576803021228702885706889972532356391105617017002885277427827727869755312044117028243564149295953012704583248031603140124272061092280288862064731575779238198824680903428415895725451418728303108894651410997213746478778536753239308604537421810218625215581099816599777191890066987589044029761779989119213526773153630347156191713905799810538290544304177155414385495899490746564769695107548715068553363339852731582738540434507245359273632690408519909864886785988562530286751525724801684179303683989734166681648396351272286715684410700014186413382669038312685244225337463643915696905524952388445543573915642014904860773488567083347792155956519768769666609386796825892069720305012720292403811508531164164860078906518133008225469419964721896392442832834847343805641505915365750420616011905820424304574937599657027627820058704812024158551334408308960146668612697395579359674561866165172006740990913479902762592173631524864154231070965857164108556049323970944713477608586759994290184937483667395900707532651635331802206207443208212225871697771146407866401996872290238468074858471461484547301790060395260577651511177839526440272951336715827868829281599773139767160416978352479626949510838147760265477190428958925913627555343397207575125278575545807523275397982314764171021497617254152022501265359848773097948550331996320646655330933242934409683356176584425089980366448937044756111129952945771645233848099827000173456201639074793291480520251546617274157974501394149172038451123432270781757211219024120598715523252684917262501228513919830973464393272590096120052770825721643280993809538821474739067013220533050265156403840129758594477632427518969092476080534184325661770765965713159554367317149038969171933172456061024523808935014131012555228175856657882507842412035528701579559635589102111698930142370780850412039496727045614892139798634941586482828982609998468403372470770598207533308945114037135031778194637472327109506985186809959170446634424505792818023973575005081826884345279552087133588834265577407756617157373042554893995135320241320093996729790416384753822747564914794913467804462651082504575758909049294968891657411358430831748430613547437202947301159452112970526259051578777461377701319332407871715785557570156071971599529249700646393204676782248464684275607166741087158356397058130186173476581107169162048483616568572356498417546152603693591213684589367614158111623965054650238529892273053697896430873119033764754497320391493369062591426771027032174794851400001187081514051713250632450211483529079085217651959461184649495389328239966128535677301820256109180083854268487789721203395578336625092083569916969194938517965963982483155087005943255644365221551391902924510817737556000609298297345957296409990200000020609306614218458253206883119928869890450975761050061227147811053569395371982593380394997905597288914265713366748940261384681591393567915909255366194879081545233942318092707561721204685250712367421507895017040389302969484669504484695142001409424480766871311349955527892874019681089314189137884368142695514465414027850916613385554811407210705194987931464074028941764015691545378999944242422979736865211895323904864267230563649416405956555256523096916418849009606299601862554849018320012565396193187523950781209403747710535571691682856756926853848987693808358641716043171882984713756612003717461188789877876811888955415705234416283376820345774383173245718343137467150387605438113869476237221370347918560047621906746366282276149995158412966416070079322788641837746924978376996025689067955142959313159176352639420886157154691198032392940756187011775983958068709034549034487563739846200977553618040340656262044538765866823822454452698510440144777744884540374376160990068252638695964014670806492670408583234500802589507832361546082210160950303621277392420953369947234698688775796726850860504857279227479903939899185154534258798337404288024394134833788472391502798082995567048995922564300495819073144067669939805700725293388830729201035299352704555725860912442351627151235440303953216623209614655162679350757655943193243933511228138732322039490237247091422444270912780845582422696443286687726781737004023087071677229681967632408312511357957462701389223115943828574295553561341461080303755259928325844983225601367129150098784597765787297567230867451626742154525190172781953122563907875925170437265284140592958594037038142209919026018314612552937042842647045036975603561619182600008444031366764016682141127357251733966198598697669610806870946045303300697658884440472514566592479031972583550325650024011268413235593741606342095506724776357392179046028736909951674186373771741713409260154846812257386295346307305569368157114906106625222539393870105808369618306662547959852076792678423228183044502656658887585543985403193678079347327232181016042417260650445086793792832736267797784227166850640253759488143400711687900579595630140302510070615764290728815628031209474104227879979010145970105868376757269809688097409272470845609367608477943586357436708734345476255649954648670296209104737245114422552636755984193682829901561808646589478353729462527135589200759485499431250759379576816731994879690016084596437198159309707025093572891044824090818603588565204518308918176596839312543266748226920444776352881353011490208900507313368521378584931222057663438469740189858540398161905637858872323335047728598958738866176815075118480975135107986703503423011372811913424393008495878313178915241414736926279802990503880137878941044843501839309301429941324328074102270159800984286687610653695179726347332992598156715797060032934714125206983847141890745872703972702381899568994080932918174171932055159079534720032584503575398635978603531519159737187311513737710994172088154757264909434263176956668524229792725851329878039311046559855692170246369241527336438028360525184809447505642615536002742490699449354108899808765141308939445788600111167796353055150880494538360618067633054759500244411321956572204311249821395384011036789513086527219219651182544971085381734133848261187132963670470326749359268445655243021742703223685359999972111466187155013169671070389991087459164459240776472359615071847441810704710589291426807310053223782150370803476623976884620180079518862041269641244273223157736546026523224846522038553175016956641438775655892694288731648444640993585791992563287315858790389505846044785566010341216073949918022644506776036755063020408971153862369370395329434408646125442313642789694967190322535141813016219495732521931384958382690439831051927739381632954510794191840521537292240730269750621186450283637761701767486608061954480850954633507253596916875553596781660888632456788853576708162128810358235278776442681204087818921007329050757557411240789941347840758706967317650173835697989334228927041080654404538778732453053328954034483533182011728999221740389003368315211568500537561292149125585969903075832110743948770022761581008603695266265628078412326565346875372567508356744795395323480457599701621901722804246528931074663732792335416571661229580237909820429735792660931457538135351359397735002697140591250005478582792208190234355643359329734735944598064267266447069774949396438010734744180896035105892907034206039889545160334965683272377358583305203476665128876628998175646487644732473629897164668657820388155288250572431048788382259067032009292070831800295797682878462183788160143475950974178160619325805282583356694345970341153511796617346619943556776440243299848550788963678857988701056289276506270635458656743000857172859259360392009703430716194853597245762824165446014110411367180605692027581734567294043245788930603471231799703314413980509699829461625199870338854873786506547980753358309345397511716087881829830589075431214195823226236341330013555878980836310648871629372637411779869755653541857457550429819245008487886222433002309980961337255941641059757533779642519484211315262367541227185858783660067414958408898697677891240974756458210132061162920194660898264624523773273863557239963396301544567860810296705290595163992250210725914983554895829006571380409102444729727543274611235691644201489137365138885846452715943414307202763516502360842448035972323155880895226223909136501452680807112369632059584536989842011644487922949479273386188508843663250143105861712835211920459691525851322150187541311647513621060243769900765222402379175762984328002131678212972256902425943085189837632710073957169952598092802484047917316255144312642915734924538220296950576326663756679050701534292473785841808097322108515529355637728277801695006807469447375771626150460976932609850817898264791407808765942894812722429256363938084797303233686350659994123168704391051111455596954390713421774430608693676736115557890783556069864786414082597278488083621164855296546362149990801348572374563271456438971707594187550637153336815897110168734999528714258974575961725694869298221463836714667633160626936023171367212057426232584740251966055962127695407320796446598798851160771576621343767254353022691132085915246859395648202442669470527138916951031395799482964166438372320391399753076315912092832904416292630252191092914729957792174554912871799326400613281215886411650356884337596874307498357421544906564459802321293921188573044149612599367496127059279874741164766396348926525576581451458643391054705743027904578347729577351531660927518482023973381493763437001504048715637098969010663554900615588003594161748192889726226622510862320482039241343748151689591506522251551558913058227804279531054572788779294984559541799865850664482101675940514785449255136253107084877308061880581298652461150705312929942985985593621101514448385703337307806603130622105293944717777707464817701036304552435662942203827753844912879525324386703520523974530169469977194040023006394536067795220424907137657598661586020694520709942513701167557941044401080616985030370277201110824875820993847300946913797728042707546205444207059365782104240378226616966042561751494266009051187881751998175294920396494515321997820843529613917121350891971781529189314254613910765119391032583332673855565982341920761136251048065651289430746216100172216548876022876542076770818560775670113909645258066639787619651169428789047533440766968191082457034640438904637892370424311149032953510202212584711289531143895569269072854512727467081826242245001764071742653133858412648002089858636839521056756609483312908510158025226190652917582781384789009731585293926971912173049858576504689994882370467504178839180557504194601999348966256585294888243033936353272058467742663014942746329738527806681159376416873269550613440558964741273431883234598200651562740473197112467044130314094032202898719485895455740147208947605974417646153129188412763540709100836446585942214878227397900099556542952308164723977858774028957535207292586779097380898396106733181535957522206440602717182956680726948288626080135610316845451202472753868982815017366106968610609688160505130662247407529318123678624603846520170564867712137573535439359474206602541079056102487113933120822887156795647124803531103158868716161173649855846244006223645144595260814316790731938313496131091934224365557203936821201703114016986906313957248606526579191326709114850188912576285976051496018914285093276358507646902729444172862867178983358590797968568575886200947738284630968670767653047749250880056535922170646744071742022469458471354538631559559703737758923105858972043634842804763685940294564244868574392055892498411151310814940313572123894070072109506778835403086341979573967670737037905112875690979943494639827276871073564280382534775444615491213095111169630876477294248961536171172215238944699409710725230891674870939810661865048999739606140445178793725903912949688779836485040170327152763608852254991691654185428798319258096117441832112892148797416336910096622927686940926821243693467812499812766717198755591721949097809830550465571321212239045821265470660231331549360238275939557047486636169054724323176323995801048632270250798591925631426959881752801009154764976673314931320881641550715717488567612815397972415882213886736085226263328408831104524442550080588197671024045887198379236681118529884964923821106521344067328354538074682902879473928860399625381262139506095477625906892100625361269266807996446751320542636008739248168781783494891279624962935252791682277116843477187216460532313292172783109434287954730595491957008075422517833509142675222939647281096422909835425241265219769211633375084974270704341232334437008689658086758014564784265917635988469492225363431218549426460883234921183733097227170156127423752521331827110496662265156093908497235296412822451492556075426490004605595288303547207395773537723601765555879126853302386745687675487651857833580904090839537275211943721416109405775003061163335363200186124959914693239979823245144781807208788031046121757204638822488594069000858698066262017991302857519662735272872347777007799009133721238534539661759291279550594113190172729534833858514442161283806200841874184770324498414362249260035110809352426587061113978389542200128348601552909588561614783991293736513662190775923360849937638287123379801616551011080668391961006682986310985177254282658055936612838941640810175108010447052218219817213681482201120309643807598526713605649405730514335833262076440463402944872666201135593025069768457458783996374150065789995889416456797472502447134427986319657165871662679220671148506993632459310576914597162533224346204851965006131830693575446153650446618145913502151594811940221903023726617513793557130494631270926612222387254213517777921686929646037380311157965957518616978619558792527890232719873847783550817405270189093300537889635475899695941982422353285726477253876873343483862891900268679040768729125424023644609226423006175162817137388144894794420173712922228009860404782398580824298298438027125364111430689963670525733554296615647930648554279252670844673866826462121571654201294421376357074548802795540267012691492107429637971737599911276572406831512725551466526894440125341301165201445715567420683718350590820093494700127670154134199678269410204819120799620485879023760445082440712557541204127292832331017992017541257211091282546906534039631727399672231289253453965823345942649934331804659804438392426913811385141769891932716839217382656616693217104307295606478448598721827324256455749220905792188509285262442734984814231204994821567651795553773567689898653401532297507591743039323890821991241412920371966965119422295872070908064786801767904219708551242268524308164472058756144049489202544468284449890201516350891951444348791289041932803032460257509765068382685607080473596500361945756971161093512673219763955121603767076281992706171900378132571801779512917983892204401537840397370219210319947734927149323502933115184256975464751710036254387744587860364245471356255663240653926568147994031713251211244775902288252815633143912900874951421827070045108301558771427434821560990945163020260810346064272223826958193791884319814100495254073403307097761374284388266528187149956541430251220148895385288940863479283975493405696000207694636998535246710618020903191312388573631150579022402247853463514459287479366641272049668176973753087745371014399677999515588860728357119635255083784369886270026335129221070944646515267242949409131923324517333599989569318775581572083843027965341206251488403463182890700518074581400823826223598727573897639908386274325346073333268451372712507296555604711001318364015834703371896649556459650252888967926443725689638313034648001022963122245974475418390768073695287033451544751628510216719599546181034586586445876666860549848398635157556622976472955220078543995753066501995826940286118017891628017850809976096424798212716754507579231791658258406617197072058173833656164065211385248938643824332843335829718406992776834307644096668195923495868697586901490709759924354303799409478545178854878164456264793803857357746225963826300288150063277284688059860317229698149595362530278638540547040696652818401142748582549842337270496750773517380455195123120588662480569049177467751222585966909892091101605834766377659970405054612657452318363519362331601407047903748989057888498731025381566782930607842267546937895120325770610333938875027342813181382572514791454357669303493139119203114284070245387907655767459333894532953192170326917232469842669120808951774055175519605868652376660319214571586717359099975800579514545990658887220840619880818685531311913071229231863509420988313349700273399080972072608796075120348770663661826249467660187173149852922767510692728199148921819281841910520811738953443960804552610634880925698950133032436242415856180369536049235419882217770112104680341932641333360473084317345274016710908670672742158511590321014706991362600916729880411655453621526240290586017902807922507669176111964348118074802250007128285188408966925486180373199697076626710853054089164871880901999392821715991487082503797873570480635371803715263300917204680518409901879038514684354442095076077739449176769441657909247439371229205993923973231170215628635253235592768210312840847115092558274564911527756670968992717338533618324198598478610378425213739769214716657751491382422308061974596803864223006533166360798919888640098196266944066005745589384372380910795611166608027248384467259152252193569259933603697502743004909505040564906684721002905734146632977037977470788136440892365303405146081067667413391471617603311803936868603812601526791400998199498489166025571219382304504980413059197649744520224428798612345868016532761359628703412518145840685226004812972660578091022162238890521759156568009299364803721181170085503653113408133983596684100371424119923951669892985314071545405581674433661247404097970047256022107703076868837646270398110942996569770729105160639358531600690325418523438743471262534211034551360950596069099996845284859845849439549776437470835159987505627577146028015599899826565255518718942262535770963085910663923477979967696300886731671761796718682092345779105708155355439047473967828021766904519716669837198632992830890012345217411433760276649362923825295044572768947556430589154047078153022954901828968191922785056077907157967020346443772369024741322959672843745530313049107385014164758884937412235327725300935251666055487939514164315785221197541316255819484837192649714850253887044206016583909451094730077607268847045601110580259686597069036791663527072976412347624957077628405849338385614448383580924315693775510758910510206820019848677199444021474184102760373096637497254280264168618971110113719205736873577308023068470927562483948875300719984568274471334802842175230679402345300387962562323390715875657809970426965344379885503023884886051507249859231577678659868177400006177852792075760965872435115477596900803921064962363080507083828825720704511443692058146315744945244957206599847667150074137625646429949019949417617463938487740698090942596758941002257483061712719013767730599532604437403092411720902183764030083451948849623891925873158290530892588733098015667325657834949640590485304881805448473167464962664789529707592213370365743524381212542949013893747994101148937793245457136475828816431321537715525176331927845361140478342962781840704868774078753729934327115963319112949848710570531538750046308481894784456682230152199307112828873787770305972664019040284091327198537860823707180951110513382948110297852444598128845316471728175190781222323307430153493514537160772651369200906030611136782189477412485806902622906761125124883071102108542393693126402031073100064462043027745902639328029374230268076497916809295700179700280046157010260901374911002169596147877992190605151955840068215488969947089415110646286204231552600343227365719306019126532599665461129218237155395364046848974468641819072614188836184801194775662017090109104991531422657140982643141120419923559926329585001988091835229902794078469755931980913623329906909721173593455889371051588046190448590081867199550928602348102070878735964898310754046255935201975766903482207287932072836341086016010542549224289832877239083574928554784410498361158006097146268969938718315657798937541045134766637764427135088305407970671091185385116720301222161272711226324557583328047677320744777031363745863215781983522437347361147376344451416152234110728881170874616112185015859439522619928883482467563622637622586214670330539924665901433000246029128843056367760855024611658476311668983330017418602132738142429536134075392327558996322482747286106087363633706243356262514352026048071790885294108787679676282580475826630986071914067548935243213352316531626110011669362632076550608183020422613249012536079582581838108777071228109205689130794072202106478961314945051988633561394112046347849514478143974951807549557519859895244788009801517367997683133525772613137428437373119757511729041362394966156364158692137533966500345739920762280889043636635695542779917919434042539509788804147245917254112576680117591996583214621373202668254062033882919747486408648557582065662173337805442933024699017481561070702433111760474253915150167522519645906043169748156007414081838518784016406120719481502834158468344062906527469413014532266356722292882934173186515222375993221176369800555702599228923409771603107618757213632177873235596236043226833811972319614295605705310768451764551023563313553070673481727801663098292709629824537627184384924339318507383075986672097125592508063842906278622073993016415011263798504191134721437466873142006483217601967373960458700644499078739379044948441526842020096151459086536798102361438163368895807711068259899702771637338989507089790115623343036004942412127536900065218235212811241493464711648826853400669012035202848499642490438519442109775060623693300031388286913098870246825438861891990258808913906741479787627584516341130179877214871709602698556494424494474808590369305483857639570961136805638959171773416554762466994576737586520843067488341968530926675432106790356903464001983589806350103911996762511026403240190369791878836803935206582558018965998199508283791632734878472870474186779490172332645805841692933615908750644785060084322445525763450017584484447566515117658645774628807932201719961626235094405519782592217960882242600968322646273478861152285267691728428874340983461207221750656190715536453403690758728288705216488213409992783203580484590000172085840619079127297011507177978520271171735496118114150734313756006582978735800386963523870136534749284556715980758283149380657751068626057688793988884283851011489383352294401524765367191075696850375274686637193620181360683925154972980357896566137645627167475021477581174450032391786562134849424465723988080619325952171987993880358852059331023230735909826140697352992316098277669184249278302500388212483040809959962849946439433188025420980155586542300844993314478696551086465467199856801422902933386957949200525878359308527941443296182831088647622938511096445342179722304502498209879934184156819195042754998966003257551932176047204275869486904000354160737654258723982301641778284171042121830872118348348727765743451412483654629642526549939055168920160998100238363534312189930550215612144310763462576665950635152350933109902018016602218503880020073532051667913746943819479334155408705591793571768488305433724948113535897313908597343559554601447011557802572734913537307719945975163838054045149032231247701165703167173132127292025160376695690421163500639105221008397705350527374833917618025913281496039037169757075345204660767348733333264997304924380875709544277310504448288175390504915278401554066701020564531285679444079949375068090361813834809650200915045026735036933440881086123249309820018546530601183186388860449629679912811670272190166264126096536602281805235398305103649600744185230142202393228852380131276354718017734827086252615065617879028637800343237529803020825745581025688632331555729826298082133220024169187667105981280478953654286956799110413155692692700894608780204009898005683447444691977443706883486867003578617328682383041616802673105682978026008930494005514783221883217203219296793236615730079175250485093066799093153012420677508151563294680819241387883537927036556088472270962534857071891347977087025267638895383687886664236083031456774976538586563977279042172570733782462695030810735377768917990614495803910336303447768689246679997510071291775696820652502283422748158965019934170009520715804141235945024656993616804824037724707914701966374453847133025645331887070407316007263698041081698968213799171375544643466037268763400158898775126265985833522482774814591382154671396258632678786510414909884467541356276478696223328740383152981640079420875501132294109674756106859760421267626776775455966742620635067367804983001774954083427840591415647869013910925309885597591918564837088030204352371310326656251497991093175891515348760011973502311762772990717398447330660810170140247240818004984219481112711272553768329272539687386859865306894453865362473275538601489878225625049036495947587026864489297525910982255083345204797323489085839817840866014650269644226555414531941120922670043239202383954575056655099677895422564967967572490752466995111169380157237701996849160719988673391690078860115580713140250217373795048814872696917432178035362996433750966895330116252795831982438581798573534908929308322112564126922187149141652572208310601834496841062405546842350708325174556979859982871632170986171878739456871590393955795468787814687435808891844555803027804498643478905730866280224386323066000976055775325868070113305246838947154343503432573713384949091369886928650987033342519993089649907547002507381035557330368839742342409151874016996093188640100549536561130829178160696600549600165422197341612749383020962294290423633107887478053339715681947689612626406701642505306830949182410692768457982094909393714778253913305825211518190565242964855136653653048418582619841100038529982536916799042555799209535204664567474883025732806410878368538124432674195441911437785210214632206207461551324702457405151019489396527702761095606025697994607217161397718389877261368691811912359078818558386271634486011436394141277646644451867961703474044293840696506591262546646731519452653734591373368111451463112075441712109021139417066069244051654566127656563714353799166735031805518699841849093947434240080954854194853432187265100424121183151104422995194459300382687330645935067467964451457098422807357396090380203337442670685270278282517044632249462817754239789913880131413011881660408883590408814123848612736252561103505297532669894185530249401620315877986230046787903379519536735760895692052422841577696747564222503814424228561401453134297696771910838835906986484528568195841185678636872200761179949782985523464975664082135337067280131594450140605384805317911518726410523838590025868555347816614061067174486515125258359901990954728805731996994608062461376968733663312034632602557718335169899623018615950305759938591178272840728273044888532255320441941710519129553741042850190062600207431452083696658828485208760271512249318012603558009313365885928936212702471487267195169667819574396981079784744864474820544979621383453336858154913993216368604063232856364421057018499654917843656235478948480162632425104646254914554009578316610043491606269575702958838367794600610691101136488541071977480371435793011151048568885795708468470029330421748543652499196536035796414285641038596007761976108358628171304614424793210093074845139403361143427710675649645200956503617923180842696273557199067674791716282736607021377667730125641600110418648399194865475613294584599129863529847365729180724591706226260258791091747703025949209896334193430652316364637092060355318815033680374817706866013117428648317003539342238810207258320434314044348638638778854418286332712037470624510587662488765301316063903264028044124088024261657713097788041925394256463314813603076416982977622508090650824127501912617753514177852556654578203506033083731195280774926564006173194935169295378663394897581891886822352477640099660112692303617368682917292523990806315912713512566441950004954283405833201346230635537289497506046301337302352350757223602123473035505269365457993649871887413997891429455465067054221989856332433171499159112407951767375736033646476774471660616704542734446347747372466495028077540400164321775510971994350804958311126257521207353470306737792463041453737020267673036634665810512039258200117537671664928706461162532033123254681748354996579083228818382781383346040715098548159387577777068662272176200384976815448663238745696590273176328960341776350982050764094854170871313342650775725020955416528571664547272844923263745369186918117167943845413847035310180082670891211352792465804283200023381092747057072669583723176024171481201195153456352333575178539751548175511413231413828506675703872355531424538908604317418616188495457274056008082532925069394912876242693058152472046021663476574350145874393393721539253211897127945463726130852513329413005680942003263469628775858324913366954329571417008994771881724645887822187517750147120017239483824448635790547349598148181826876936460296433915141328197699342917125654725921255128765612822808490930169480833937997080974021625811033843005042939645380603002387333895141452025847496149505610935438812607894533961939891549049636013047025656015358292618268835254663404508633700362435082607703249651137036973198506528391856563049738813293704211413194742377972395811805215296435086206878944843012723170542010305141427397367188023753394537409953653755170948004222102730513760440499863517641365242109504887602179474392249235582197587888988768319966685494109627916347509726774019521891770238598236338025358134100940423484553001972008319118186728501861223569734897598399676308345059724443450683532030373973650179913254918488407343346573840824289585185279560762512094710714311988512043688415581645649146505117136301067048607602540176096275545075832136427365871208337631288067411515315267646002677257391820109879226010761924462319300875841299289379453701340507543450670253939671857450019944146162190139664659488431101727431708095737681704512052386923778551815423139283558446166333870736581256780141308060699970217410609387129371682098297885549544105656636134598348254848608367084727861779284143351596042956000141716853234639775523965400126943490656270461246804577588379997523490735225519423395717108332464954598768555638473617462747783105212169090947856831494932573089023847611378843611646881354361829370368523308726769141187837737543671196489478275862864073024043203720425034518464581307558078534307686486885019635782776553962156367593039590103333399822685477338152776585686859805952789914379089951757892837660080445664097900298812770103607498712007418151815686018636520527540141467497825216748582886063261986604156498404196162068283062286857949006439407658373308311660756635825900822239825764981474714283166938918027643601843774532677267948628216639808353933950382223362941510222262402602105999880834494609778433791410463482354703249903969600873620352902494208264306352407353815933410511811553600774368950377803307480436643328545501218044344349468460482932691351245940539799627066556964549866540246870064361436314041514546688496668564392832009796618333567552147069359137179858226718870663192332453244864264562786177841861331210732014271250567921821655626541209280835040050758870776726169083281736318278547831855420086646877095729730771572674676610359504000886690131863962856004521016405291362555313569654980627272388740438742222413226707644375788285682485829057200514177892256869609990949269581555664945318270840008151323334482112579561937628055589923993090700366057581848788574352020567547627968442457722758390169020178288119135888673488796526876151372534635957120886434128135952294152646164285058081223291851712443619832507682185914832825383294225748159152162129517448644013808592028912786266375017707000337844116235765738063823027420877968038433274743277377844020703354688023285413567926038458477409291638736550385834742006293885112703901094955734231321854886496032923209625541756840264832761393272176002016670442738692649461674020440113798521009445806432632483024856555095887092477048341872016149899797475883148224441247773271313145501067707682356947227652439491807518482063086705426993227939135409494157071101805261499993347557226868722198761910811598438535436803613130006582040670246229074591662590831363614378104547682276117885648163961982753644191482679698506595455920126424241357853605953739547110182394316277406651301302880110960486102507079108888932091893637777655639895267400079976445943985332670370616166928218824428818241485147236805596194546554734124904862619448461447038941476996384070065596767922884146485674202781158882316008216158683680033361218284087275199987244049342741993312250417520864384082761076618560306632769758385334538140269404657070962341792340640518602315527902493543410716624269399345794436430013270086198981262505496153936961816222753918550285891962644715745438203054024387685825901898159751790852565562682370770496036407438807123271225751999317382876507982922147442325870632901448822552419010205975775280575941999854329857387068556397100873264605150132861416788167064063709109596109204635483697588335088478280035699435440899046126438411268904651413660788765156557975473795590284764584841685490136451238211138459763987012112633574084877481668138545809261958512174771442521005170576377988984509537959772115102491273856451314871797942284245113309349961905665865310175948334561520388990974099853448507561628573024350419949580595194724239962710007477254028285677071671055513156976161807469594835877806731428329276875539793296595012617941495120207073913952086656914333600496380086260985706147376461620372241449585735344778325724420350304400347637955539848975631197043740112265803087959531106509189687297141406544365397630257823877491571440575678055093756562680917273790482949779723973470546866601545960169150342526040178941722189808312947549694810421478475328027962769024334334415077787299835522067865014070961260197007120195179400201736352493634827371401814128928896232668905384077136575963703071419898174586402894671291616237514960619832286443125861180780281726306401685948174041215746014901233564977384726946472323429253263820241280741745765159704078210707005903544664091571282126259548235978084104965173488239000254015545319994564634660112040468644356205052960209575363250205768654614151224942005201976083907806934218069410342576932238361807030601393706468042986527908708533894555318109056498370689495076942281884749147566502649715702997918897964403835712077949156259353306936534813676241937789734480493004912724743214900169343469864445073584484379154516169366630188087711307810170657928241506107949868127906988314776010087251785878796530844484074607644334540869322976709823753387059632308385115393200987105581808390959249112716101374556182090111412124504293895330170794259082832280813573120328255529860219187346521183414552679869840774002250453421895963354853718460343990664803564993235100290314663564495334534968487774662984724924784917275629811965614820302265098026382932753189289367410679033551838342926427430741446349615948666903378806757696680379327460447381468734340212347468615373613274446212880812096614189665477083146959359747033969039351670241894831082968304015453080502709844895407889290764939813176627345257895654225107871163980630964903354276699578493302981111556753483650677526418063841358906486960245666733811232693651956986960827255453802839076015260200198081053910834302935807559628942583351451857922437117896002181182977102660199711078200657237562869512361424978224207060120646825986365251721229725594506505455180453413589553607573479487860298894448159879774322548583048890668114320874916149624424882375700381934693686626766705155551574794343230821877273743520624976087270363984603856013073486851510513486806541920135186548608352417375843654374292334124654260282943555898157782518468927996294826023130110655149694159793024563188022741096046487615654460700842967537366720899500337025808880770526092073764583293080189170060964822059517899783028030574092533608734325937465708512995368120045191944338208665497172369203930199925357278667829452487066977429067805717212714374098263572752777596039453173633242379069890519119668607994533163890807456052166129886422652757977395026291377731905436644033474518794224124522061521999376342694161479991914425793882971159905855135797372177136675450007110573923493005414731413677851541819329133116922087016316444322130411401799376874631973498696047453798163717100172655035936663752765288641283952044741430896820757175434570741109529229793578564328287546507321113372095420099696407414959243896712477259643863498510890986891795094802839643891748856438900667714576974406297232732179576048209238518634104466903030017622104662673866908628218007789728931995486052335521777166187336787777573024788284434628551917494297725532762854531129375579064185573735289231080380934368538837174940724110650193689865096049079677707382389104061763353143643067629826881817788023758021377128057963589311426986071701943640757310665035532206351438950790938887915311164134530250933380225503502063801537626481314299639972613739900747457947793053187090997563092314863122945160623580554836000161955414604466413762454005836882948469642589986781822839847159208153067739712288876039757608874879965305394100598225997080576529212308902732002358687044474198615744387043735955547806642229876862129131578107847101415853947083152072488991120638226096869892028871712985945440867753099690159235725953599351819216651383632909339475613391784467981976060823613648936724026794577452830105562475820493286536861256023703135887383350714420022500121248662012856129269039857624541667672480767219458509836329077062885378505948427556229971514189662603062122259349672065029096119836959402963884136319195761848016314274900494319907736772180152206871755359004518922804344259237205387912761026482395893579441957930743335513848197034237229735759549728959359616688974300348543899949470145963347315109026487546287812656949647716092622968756824323877965241925547750820655116143778781486313696183787603847250333162430708641862950390930812970782897370808585398809654544353554929827973576320029109005773287094659480544934162059142698295104895946884800105462541163519610811384005104715817516641305756994593895870357224517817429116251336003902300022383297005226053606806096870383210969058556002162541190180749956865475088171183521466306172873653965500764972619978927003781534131340486661012516547616964152934066549774171012595045121643860509198392577578548264042280479727421718307406435168518760964233698894652364125929614578275236840386343607500581028781426579537330980450972740931039247731989761230381788566297976829084107135620597274808143392074468962043250874977936621831607734924931117628836166420274961900051483236271607754407501433051209783202887518330374535275450986353783439787408430370666929158377654537861583271323510322215657449241477055001404216583672118110649247588794997929119343101142655154107390097652202096200079942035031050029635712997484699762658424390809133212678128086341899379752082854889914619720774527982268501586294392580367525201294616070583618053938498243297675980331894519009772122281523604399612694989689569307793329064956674511031349657875966158855640624099863697928912650732356268270491225104815128134954469764743971239667554161691481138550375141469341040861300813906326428853832530910115551246064634282249769840659650076141195376590753129017573603156269545935110723067399550144807407649569279433651160002296911711695736242207273917134738501486134507244908766302954753762214798993972107171110478290826218915680432053210737662809641593567457502269301801185856129490371404731872512981528480364656670826821795440950761055632409728285382919772984981224510758148698712334471994186720123624340909693368294720043524663876628492747792248168512549026766726431686501365217547901803867019159554030380747630219489775454629759508135276517551323334484722974905338867643778635375371016513901715262729681558828896997670259138497263679418779304972627078107189786109925376843644711496580222962439147719578830506400171097096127255285085030912073109438214463348469332060902138254074783745428600568983342231116675792530710295983961190271576383648693638695032385886302455490251668614410028088292414645421342528038887647527572890263435095025022087084264336769458744414328356957470037156186791183008099369062259863741420978296467033801960015568765234096315047750283702406047599132249999193865411742358662708669705396138440007825663277059276573515430912613436969283490564818276352505128946701865788706050166242643641294843957065052304695724801689124051808288640921823663147207167380751261443952779391919665842232262026063815462051165095516153196611640878747366545778524201210371939165474338298281810273790797852842753403485942787728432692474121953083888251336881834712014647585803869829179603448038838341015081168874267005265728748389229571226408664834676327296978162619640264541132641910101213941688376258118879476889321714026125132798575113181786807805751311555699692994286547758128326435632172654085835926499421958140936558321366278195979162142287283899327327765421714872774308132970640564043479586090886209138986986938628645689284036218248090319642113138778604500732013030886258673630753666412514136598345604827192940227116101920830547342966772250758719127008757742761472626672982216553041348566383587824282100526196719316154077617522591421893708326149238707552920656042693029898605625038873424163412059130956838391498629819711293574315836530042338996670489943582853195606180612235904349043436419313183993817648066892915521460140792760018142654955169911894615584780315968251908805446148390272026400570415990371830686143388455964124596439354499095802144796555709167349609779166364579487768786431917721588622893383781805990868886028651338895745723848864199533205928458074997417358385022061445931632052676191750395795372871377632888061820691761284665861244636961886954737910074729744163449434382700649271533154801892817273787611621855626169496386114315406303129246004459411001305292845515420931976660171582337211210244427189564021262966078887258833612332422630190479048468211453276392715694591735900985936419493442025408058206820590191292043443630796776074881882666852458632670107953378724913659672027505901867154295746865336693909612017732272086599785276171463687321946243154194033238351929534871050850764216511304365151099090581032620291130184788652542307475328382892113411555508340454406550696424339393684001813998404625461536260523070089779343137638545531599580663296664298207827230387078077997140859251905413304659985093825754436749763344599298645023725002095728700444037539808913283822615226634560984761913721986863983039790634106600896125189651373795633894052998897058591765352639765053437124375246165890094939105528346839035951239272338542448811887365678679959672475336717155491959333652000873444989448755610197066869276958655443418843622298804237150612817980330345508171554558261347191595077730945695054232990848706504431848472782151033146897316285471686313192888248312585594427959116461626758553255629658226852962869511352803090092489184779116055487388964413907083603659905193210667262144109268620283467116009556435824031173673742554038478292289570028889580916891687214375554861995584470684864857371889779459485753851163573927115194388914824643329971003358320172338685686785350656744276879070101519358544566359013450621154775151063138406350843867986547669555013875316446384274390528598576452612926379160211670389983582266000176878474944594271983375010479842672443875687284026982917994648976350363102701599651750153003640295549939804474659052205294014188862978370417735337769322710147380766126093491058283566551341425358724610352367737569047631798956170802996516975037890062923735552997022068564345456275311946705305114700293996901296702253525099740490836471758976485203087532392438570510406508706074180862209865464083458441199650522436368678337795552622295767819676842988220378488503028919036733211603262623576347252307649531068115841006356186267582957142449027394905217238714876564765191412363822061922957373295123581735970542193520291759235435083233657897295091870846482490974196962780278731626929696087826062070068288334758499396094963526992115047555720925344251029814955297137593689693805986248138619831061238428401490443550211010382296051203616026648259046450519548102501540666075450484977375297709464622459457578753239961277435570539040342110859998679244580764983717878139418297949320013438968714187321766416144532716357634495642568260972066566954759846419523851316966941004219902874710969369725500593959946143549556199939591874501545708976797897189893549249380139326370030855427312446393639531996941537667899229143588284356109003070578923384465691945487475778667222253174419865570395815747958042455174325187190724431894451558519532358344388790567606838166508486412314638607554920282695831416575107485612625679347998240468660504796628500626384179857121379567720191488671417491887836066188424126416379308387457794770400087908442809235515694637143375777105480786202746354304993836513518348798724524533646383873502560839339108816171565501448068318029456074730464054415674315519012547404246422534350885591021914966545377812433259853590832585989947557798325332268256696549607978301160383439692051001880429548374075002365327214450699877561412196335934566926258937720694742863682708036173197588263140633168785063438221857617066947038744396582413723457061799022477577476981412336809773512851894397406120228818322725163196078977121136714546225404676426281979145808775713937034369039620603167081257909749223109557886705247487245481313680800617066630792542876224403472036149851771294427591771659694662889093382808857318366910300732982572704746290189816087994516583902428530458239182650166495796202943160395941413335925948123084832830838524144925353132428403837144744238501037375013410884225899403321857807622412599079612792541506805980342784740679695646772714574924260225146914287750166295334256743035315280443189637203703404253242368058087135573648781924287761190408505644972223003961547090366410965317323197804905083956883722037782839161056423925990693695599816145378589605389004262061273170969560465266145305384054496730140382259833807226415795176756349783585208843916355660103583463783571328941906557928883025699267666953067556485591705593658934010661370914381317797872757741917518123811541332834462304463142156163661224964081350580788528566840378804984180185234845614742127625699461695596026467481251319363574431692595608434410066007915705928336695837187520006058145860628801378001692264216393448106113943907016407308993682199411757156104607274488200185325268266128085625294726203556838669688308357689498864590621084262718939706608026427978560837215245107310428603864858960173920566019917784321498170260719420446817614148178865690034611309728085056695695544299134544125886117807118038003224868445608688736806902812776223931419950956956426807186005444130075985720935188114219237230689068777081886101029066103381417905389215870435405080546431488412835268999619926863313624889466008811896948636532308315747727073609773926120886884798164855715684681131661919741052956151734070974248655010182834296274839359996213525842092005291846716773697751043948659803885905143817901219336202289221537748925679443729847712826673438312234823922467965696733734746999762904323384498225388603078375501352165567350819163932325042380042075381187806675425032862631790850970944932539146683278198573472106050492461892388896434327792525512334026268781534799579894550526793121230431935691451758021542518588866811972628173689593537574117209826258952066712588502750002161774615137001262417736063940756793265396635399899959940809220388994753637821320142491579582253110713564372557072496917699167334839132737436819519391415046670546476257494525719169465076973746124067851811595215623711736015999810016069994579707724520075844847367664896352344633004132116606296236235677974669931762661222859341182285476376749507975640500673559125708333508039875982089977719349975901346725140739529469722648537469302013434382113663965478864930930862977395077965298102357117586714290994092375905153059020551262405035149624643832926485852525168222034364344017788738531184661795825507114275057039684378987232019636602730417856056773319618239368280334363774608698519735272748778328718704979723196817145216744027653531512385861225411477050955559680378490953263197314007489093026437748960779138794854859600835004999689342797534979861898035070872891559358991558609742049107199850201107203731634718487935345817247051475931531896434928319213441084291794281631326648817993165719264118358380685729249485071601235121999805805816440650754047635590105007771639363817974168335351681766100227652896190769094260468642422119981802485899466545760982996790237487712032450679616222431346757308596944360294092783432726514954011389329083693201135666280748905620619917250142364245474870481234527300888613483134740104183368550740950668252108385875119759271161810766302355051182115472198153822099917578325428632610342234469511019205471674692412846101455720624572418140245389075431556389542372015712775393090807808215860510957233063497307888387484785838323115087942988907735758776129257343802399972254809196312014165675942141890442204231934799587948683499499742516232452637640645928206022604481514049067584885885667845746228597294868866765264345265943082719992544144620762200860246146509963611680700309946339357670814453512771522760337474972631348786714073316128453030388151142216936393062862703647810531155306691761629733891252552504809049496435761233810925884311364097244369807244675916019631397921116995172753653788455855062670598766129309464175238088206165766383354598498567090595907782135589683035862789944432603264662431460249832663179343882984874827657209768098445034103891739914696231114590916937268907264171520249524772131351767094153731942447331788802085552743303425581581000389752488909955344558818784727151739221077349275134435254695919665109305347725935510145868726798851839279738978487926766391658506958415112999976455167284347240671169397764238659809887713945795739056729417218657374741508755165747542779435654261452406108815068209364921216769288935128500249877430569948397797388638921451943066207189196876454800061839585564934737894456682568678904742827502625636382185568014757346611234575770471281741890242263090012707861967216342195148941037430273194873538112395372271593814204517357572675027153474735335001628630282248114205624180759764712406082034439705826671652505745184680696466394248412018339361020803934515444942356857178926203815447587841909646218947329199723623009882843557927290392035930993380015163455774871322702116879083388276149972777337799483377778689667900677323455043334129675109243944957968477068027417312732681342709094286565205904059070343457483500663448606285454977026136796637462897129443992570357712778428524563647451951653443637490710560204469889262168492595448929279438970654789981610911658046734408776033365828376079355010068906813379107315488432971242461440319765406578697531819248850121310151279871942297089549271141504425143772955131406172374319323136084808940736398062492085270772175548869963916245101938825824151487591615773978523839986102408290249660360761129441342305470969531933909011941117554393489710041012300980503218859019311231896714328755465309085961388379895594199216319640327674942584726399413031892334981501107525425121661062428684951362699207724095803379747553019859399938877872260276246371560495265112981495652179015969738811367803738107384886021947950804512141402364267280493465733740323965056515601106331350133452240405698693960546276463384989801282555086626737679440989893532079799763311487974498602375169917388347915659118573945550676092584395812651004239411383794443805129048482266705986076374935005204227102543826204536552147069838279751981155360374129647994604614738696705517865565721374834245038809008888021586419264907657629641310846892916349070965840143276562400344803854468220300470459793322069807574172701548813346389623573782677837149594915142681880946744301858672119760203499767014497933838853473718747083293141339048276009234528053497750744752965160733865814851873991815486436817148772609801154134914551960708614983233420290141200631297912450889590101990740392476381446531788054147096148822488948871159418304865137248001099203165352602947742378314890840952506661258796329644601823854742543796340537455085966190857037004586344261810487449152526866393568987954862213192641988756673434112220521906403836445656246764693661764559281841752926417901393207526347184601190623516115182690423292801285164386772024905348673217252180780811804572913702407258075418077310599022357042781960570731238806018298661013334562844898809505824764542944586464063812114536036568740384172949621390277235250237410749447531086121221744371118277618732820955574168452130401590474025005269155234116349126752202477523852436797926073599312404501122036556290927656713947270151246765051408175399230020905396704912931402123526004089164499861589127844815739065887587060660140160968860631214967331039565123310614593152171424069508540449990432643158962799661653744539567703920155470252516045743474224142815092124522508764337667951265271322457083415425183736227673883247925157426642213699608926979280929865794907984124866192741282116428128056525319698861421006735286775351885683560674655521460218563471762364855241162935243563729530085474586715490341106329769602271127137286910136470310996370481487503189612841015570342747285252919562116242684016655416699679788004572088005303332170834487189473353207603983975629263960191752226617658245519697657313446961531242101327478622484692477557287785887164723039951898285268604944309452151211822778981536056393135719818552461360000351692718835777813195549793162247733747426285592861235163026034129515621311039709800994249297413213700622217782357542165021046941140407882640879868106816502744950829136681476529604231627884531626913433655858232637813501785071782634063811296561404171797555576576194192825248959022239173355291685704972663613201335757716525345699542697169585363705520673441559046689241134612590204759017055712568844160567493197178443718118112059215920603480207637133775459366571235901996198288057123108283272398105696331504110058214851082846317490851325891759793834822390809500558374262662725043742420032365739921452710052253317394923668281248255884212769799947033894827661469748820466122069914649826464962476314548251096089103837830620368929982516792335838917192636682694353996270523434781091250725391781015192352289638476113206106897304088060537990465009713490022819284351338493831855690030174249385104235040884556528866484681052861193604542447869934312609848230000399210322147869124250521304990480438491692726894891973498422657057497375290658004194104235484375099474504583884064672973800383793276840210108417986313381154500776533978318924688380073346571558732591414480250814899560381341229966611149167127583275767089417183935504408912136405353549205920795480423223520724035102477212936839189684014394987987024271952441146254484191737163631442736107757905739696383563154051211893569997394334191281630980834021727902849051674384434134707541570323032749645621216069042407903095201096667266108482450249426020547112182055270170207310176188673657650148878254464740021776157266362235592845670089665133885066291234754532140541309003358783588303185678135002913462520795723176911344940576758034191268228929897735619628737576045921263250600529041775520645966664140156778924742226715956087667501662200363724208466013036852632058130665105990570190184350179736489409052052166886811693080643358751654453893341857047466954938235522790076760349658000389866006613680864676858172778247734381612470369509552790772918285212321513843005031215095176430045137613573571644819194922538014271884819411738531891582285742520242467483612653923493454477432655834338109813875144946973040734196854722911526560153779339465365859902925248905128458892286011076638272434003637856767591229545787377414959652635543430639045856784377673169888657490486729045184541591898483273185182032827151909189562681012522877314306551244473174688488787470790243408654891000633158491658837484331573356953290605940981319123873376029791218572150448183209412713751973894692945237223554035557642232607712234333907355135153988817271002902547210860447865029187542942361571575412907670224808198382675127662500856878034570169941931111851793461567946823632099214273597675057208192020381327747335717197091084582193536150822902998890331243036123131264825601785020840233993578960425037199528436611000235295181221119200635795788128249080304164263036570305943206385803256989315072146819166898444987414665777491309945789356498578679196174672283204499184761705886280195358261883138893593440901642464650769236000988913636280830482399779528881804218483191273799386906032937959053216252438496914989487661161761593863676835212811895824174264505701189599251260404208833504294451596564917213053263958890916372700611266149441257997600747457275863290197311102318972411732917353487431881171761157941551993025317033896245439149841226611990733042018710353005818028699044650073072323078541736351378762821175790369899650773588530909173740561013093746967699664063412909654258046825833603393505253769902051770309468381296087302523432719582094854338885520948959678838873128255897695585763127738878888616863618476214115048472561633970145854927640601281284475040022799860211616320447623304535453583955115636140965839658957536315496137999437329108866708568283336824176974829233764504563827355950872878756954071844140046597183657127741769988546992345731992854263675820265713163966707728744132231750943132637301100564923696750689711193193351048990737326081805983084513115111380669230311883052429353413101538009637461751472512188846640463063118054075775378045881203212120956169485285598831127198192390497276479280273139486539982664871331272235120745425656454309823430331442499772045002380396211320515606719193624546827278145662518336664529496012734037857890846007411238553886199877825264930533051841515436064799718705135453672170931601243940017761661054956968403194583120843601385533204455330486074545343841152705914424711444844773976661050703109066193568764606952683346786036396864870403370592059915894051081539000791565416787907365327102190281759443447277880134029377379216207428076499942999791874645502059118188523477608984621936129532579925756514860613971644908539042852524347860003166032120881344727844627149513310704600233326226572550801437577895120465758521548764083299271725422197014147977838811526357058328471101321386882270099132160128977288456105011309401318395760797098088795734047102489783171307546561194174968862062741486084568314953671544713268601398144733329070926981878487480818502016037091160472442813097529618799906458383833676526105751197994274430126695600528092559103100769957162281157734194411898251656097405539510712268273246459513340967179960540832635198691549587492745659091652873510957328003901566251501888594999639856272549944750187503893101716128559952775856805458355605975120833380099862724561783758191826301260069278748004358098852612119545931396264912525492296173532155552671998459363113862693040063574606390312827985050325301548839543688166457176616824853841524524005409136733980933030188869224985348472058958066924074734220324712266610509478552824922254937755818831302157111465636584399689029919847526927447452781253802837134909712254375449779037864807235955098350094575573887583290184752785381806685220002714518228574002095122821815996205971130006946599165559581361584381865144948882535233023015934663135089787377499073850521490300980685237907503428590041006185084612464321428995784415872720820070901985715052083576611321043839374307037433637206935087132896248652231504020799895070140225854540499257949544661073426583820399214325200905991938274372129724716391305559646058717302586986808612476238390157245231209168955122995362103276359141717050988089775256170282801615388711855347683764692131028944902197238221000644620535620489325380699676926708258688884116450308968119823724266337470642783596179017723451738030460648518239053312380595406861430277698005625265944217095437142285412880733086402922082879212434835140762499310328294384524288319731166061231263081788049033826639495288043129833518914561501648729161641241161848755509057641785345443191235242814196264664917867587827829905534238370474094667246916978396049489778446442702699719298303733588389031434558197311831690101190751530968933340503670666059584123266257786218608656251019696524721977186605957688183574733127258689747164058644501466226110607015668622081079622470160481768849277231357101821375160113961004499723829523190876137058384405612502511155215724717962744681935512453973773902457075045783484107057338256001076738764564314100951771886408765210629980476060350317523008670783388815611725954018233321267589630358565301914743561134961918406598122565881569187315128550788206898299334588605106724175777848545377138180251037163012255043666489216115777935065261478425010132794126535058904382989752437361745269288361204212661212360834422574626056755072694408315837546056823811398211865948559610556607850042816353189511266899235794695701208677921524924335121347805084451999548493186198820916644760991354500969918732227056007506901940606140920473023454224900230842563348182561868533059856490898653391288199971288243813679179670318796376818599653019624202096643109120237991291320922551774934697505400445086919539532753623448580015755763968602109576553895538963385077671638272076774498756527805701691163115558186721104796541103077767839795177629147915292600865126308413348950067884302561285877259960325427431964218681699171299849877597451690366083100632565196838176326745924033991976251773641889460872750791152413072062017887667660738897237682829629169500244849687672510049217043116348944790776484266605539517583091055307583211363975794053561403985564795942413692928870803052451633301572614329009164275811294308342677218230103654164934298806293458087100587380511078127695356286050646139228983961651153430741362472125625685788337076216953921300719211238452056356303616538319043731016302755488771600428695297570799265646298602911717335007619728090198112750086593852537362413347931120875464631501935979852850268989554860099668255760357052582379247205084458939001288124470651439689460431866209358163902544996774007466391046674658850208825359025528684483301366434307486650269929026024773164092233542376980750571132186879638435694598980496849331695411456145630593155788741912958568304540442935978541655732008669740531299280901788328169245924630542201508103604335406505784085357938929156705117077133376059843972082039465177181923015026294464077906220219786541647403184397917834172866544381224110689039374751042877276060926736862009131260531762087702057000248398712042298573700442299596137878159121829492080806991845964116711759185204158459820419892249550931619944345490575319421105867347958988411869672460738556586601295490230010468805804666320479376797497237731269001734566724640628908871952199245643113780162083076262799377617788501554174014909338810673813691818830709238426473790195078240408463342953959357072838612900043506275703651650165205027264886506803011303723604417926352001206160713986012203823782566826893286080362417593818775195746714387253136438965807255058875424380295574811910463446830978827094028710746232234874883407367551320945482645576537032367056325267084212728485077953722127807346821271977078328406258916432018704267676319488491590630680849359954473995427655698740822882470203392915920346710418204580799587521918528318315923645363971465055896218568413445179855743386652811468460087650808526061955380051105594289072688926343712257758317850332664144522861392365729813275671606834972998558391527226562874237174021481940872128866970525694390944780786544707334159981000518677519107100326677025818741220066274930984886462910521874998570573377958057997539117208563796187451011559458287810809711575573838563695843406209732039040928831769990652805146589692483904018784000563841269023414962789640957905933696025771408341857536938740784979379352485832236727575728688245616955306548407988988343063278029271345573802243622496001636079909204639631208377378623948015214344524343991846956171875268297445195535955213520145298964647033470763375232819074746479940125235050094130936458010038912176924128068882483842715172618202585750554481480403545386847303728833460134707655355427498177569015530240505319556581130712939490909871765429217726458951734743791037400086520215501012205692193776624960111744480678744201534434718490045226637061861616387045804882485764025451771830130390824331513947213005823598945386598991524326590101689629667872094168733450340449688458319804924055310860699048561367542890237506775231823020337223028662246709029738804356187866601886740888201269590763472031563961495016493525422561355875946540892528372723819033095225875700914119402662361997484140355756692315163267845916402981123569802526203432040735097556237957692585068363687717770962580636097695195338223388872957244094075091042468946587020925685271407052413358376515806455023291558457568027076769032391052972131993743999138493672671343705668850211305384885683873394179769028904388236774638402719374477901634703141036730078308841201811762139190963246784766362187555691169096861104649729139564072342450144569738901037963159643627578271273943617415779974973161639571910735365717731417519712063710155737203804544415474040942583416212071086236105582223926542463783217555649094892770884245325363327623306246594342120263753623032236795406132608596140786449258324617643692068844989957504393629991803272016690081518882384524198526143676049868031681343885381815943774683066672954214991737578957578503530552238984049724333731527712045956528213761320593867005609815225042355069783901507540157883680922976458453526341443940001704332438344875806086249385564174661410281968550306511976203822239592702941597911508096910582636446732097751334037631920716029737022018344737754004888208558594247203752737527578216617279963885660983443131929973742786292987545212545302308588971687450959629206726063677776252826689989534229329909793461579699059814068930777426945546418977952294833238896598641665086153428950057723925719242342461478981158853864588406562953263717332832801105183306331453161237558231186427919121819997813912765991322277884163010336408056936434994869332930461133418899960382168124618838999764098325916467519410926065962823763456485945337512516427746169314566379651807822258138059611917861355639444077507445335380172799596940558656001007413412448645184138963490671465349135351074209240808050960592303748257496955195416341306069637154898295494301712240579152627424711803130703587082391071975921248924470677831910965999525246977224765451203307375630587205019745559475849789840456797406250302425692776023986500299917358519521337085409589143900140887954406102728220746200557422983868526446152923081331609196670278383450783773756880027816377584696287021745878291051805890767236432688082733491232617943733671091652182666100595598739164542656289289597965896834945461802499237838224005172263934136353112080981390217919394590768601303095305280525936562176100967416655458019693290100118578872189612447494656885857437484202262349584126785727678040062668583736687644753959485653459286306314776162842204836539224015500500445554262529018875031179747680869714187312290830024852689372782471046240362171940431228780620771135442882717526122158189704046858177053102933685974837231855494931573176189662866381417976246016733483802542016663781557485000450727805147415445401374584147598508296987669345438695658607183627802118399959078078805087039299489775149144847629157923059085890907553815376584928350609440018079259475625589901585692992698563914276749597520203595090849662860980693954736359759943128593855417244710031435664830211847102633827827529263581323107218633470723705093473166694339535687075885420682284757923054792072050396972015228556112713006163068161096382570901183498900892301893701580234114479376182023596991311938170920028422851344148149752913686364686973708236296916254976380652503022265410956321342927884027150193889171152206265889993994582707158756797102944059093009517733911747300370101899931936217687968083519282824797905569337448726307472803402473740559670369542482769670408305383569459974070321802185340699493633505673631065129730344185190567984153038404906847832986667001479847697445268741511987665707258383379361257125048570605395298260482153890230327847286970901311069712792043370920209480157378287868636844915583610251740111225425485375619279615475026310910774888159856753859114601325989705998911318053078393477086370019169389058417386381947773182491214582405032071212993543247853402402128684943658044563760194316456055667796832127946648093924583765241859294197217943502885326918344540425077481426665273056536126973338598478753222243118861340038058963206490116337695659139070349735504677653148573065325090696857168090887504093316624870635755667777884751199263724386138143224692405942070732786694563088724382339263292477557713188374642804233046588007904721894916127478396031929367675146006838829473552324357576994972133998814655572025865378498891956575647406021596021906658171103682782257604626050734919182657477475273392371497033510175745721744745852669133083549799730168986708233733236403038154182990170015942664404541826676661937937561873393795048319653473785551263721652140345052351322635007897125490535202138253485788524579079910381303480604248316966129877031030446463280969498609194734299673341894795446566570457832625116744089211117303568468142414498127347246208683667706700156099703828312782688580725254276671610155838225753403434615910999429735667743816276534995515557396504880044664335525658120265088293814129406156063195794056902064439504892907198954626737096175079920988443852825284891533889012393904263444458958634156099239833217010646135609786008255798640768413206618817915929151658402220848489264628845334463902087510952237228131717532987985228063559257629841492569362457750505823868714570207298539254386850449494475276096967852830528121907150254650421953664981439929943290946824696597787709339790077051296074536491400189153455695206567249091471424808115560949117779362506655115339237372421346610003060590299703550562433251505199851921585060573298383400593953522422761812117418062087350228208066295976794799958604409252437490805980544892198372307461979507414079097089010827872523178238415999945272438514938508992015035216459910623612281300622102471480324409544823505710937262017255134235468582239711046381363702886974261259949540632801642101545262548656896273973022699631208086323082350836025406065568548505141839622795338487163727570973389713820683905798170053020384528528962007610478850478880533617433963182904457448341173450377725248258798384307703423751110678132538665481966814742599459650212018813555813650643333002378536104414262623811465920954610202749045228928340283773944901005451846010068067930121555000366231898020761781390300078435457887164228192718031127099699692128835154977880139955557783708667835783146918694995818710216954673635256964044713991044930577356121708714124631234666177057301824871943199511981134502269716471251064855635398208580811141718213300464841247402500893579957232499656293862476726126798643637644395050783704310844225753526672554726897574281921710166262832576412262113689258863244548441325806968621499111577211778661001343827927762358707614438523318164634895777363401522650240550688958018599526131588235864407566372336389225710716501843519948877237469865770287937021500279377598222424142377810233640205160815379573720955471964845994163773078776392800952777273427809468561354900344390077817929576520514473617062772842869543663589329387097562519477356249268090128653402045048710540106775054713328927530610384396709490652807826287478940961357716935541097688395979019059475307364888386143179187313300759263256831703350535359493892250404392829170106398423664503188143438231115098837915603502617088546709345024245643810962595185268782975337479597228813071780685658705828592489490771797927390018631103282635863382538683029912927269984352398837181625912576121941697179868016558312708438229693718547449556389771453238059249741370762771895607650378295951033191904077266004329651351601282133186854894550012605254627826544290637053824422866219782577633426005675350476552424398226519090868831476322169721130617028863971199796863924546723502020616241388730646378984102316749643529951354567154805271384770638046981658292720692909730625976718233163424539300738797116635703371198119695128136537753101986838339933765306653520895580943763767001311635449675410811673733995717402675309274603338766366318571913363388192608339650941245267342123750851491197801787274378106428256791548726345097036591388750239132253506739283504348369298903073201168495796432657169285027695406193837178670314110726398785287907195430590977685350091537802806066389583282929468785368502370151735120752050353789489906721588739709663233368858496385754325844183747233505444361320360645470049004841191502217830030048079229228028164258252870330149268555554516279250150877528087713366538603334265202755238225965935778285112611245661305883421715714559166074515545593260081636234843967287846258826962014534859077188164123344210607497882321759498914444289771598980652180812291777245370295221460470874341900411552334052765767780397123675090173174372506568936323189791876880505524574578222465563303296583177604120133241927732786074578460239550013181201766509227414957758360127955692510620851421271233706368578355654816675713529196957560151510152881161798112867935021753302986230892918368556907926369328188233546086547876570367149331083134781312081377341104345657445618574746895108786883251056175301534347382289982456608199590764609771918946248652755809217800074292544289132578987801271195275572577508048101971191314099188616658756276011384677960025317950256294585848839970186812353426325570121279513152062382626908080751492409683570214173103215076776244582851270330717069824654717336643751433366889289498252916539349839421549286222294003622061693420871053318390872695294618399442241480402890472452545134233812709365969294646585559272086359752950277771944747331287171798346598064203499147644272542839545201027048646084807775910524864328329751936045372202744939096197623937911781210762351796036418925669119120384981687532861859663767477600252016357668069728339975316716268422403994294987629260051983960704277491880837408046300571744103638489535199380875229572618353523667292418850325235580584345595904898082922861934969105150986603437643306255488185719340758889088098757718353773126909334369299918854378717254728012267403539242942558539265961029920157966136345200995673880012905334859297480981557265522964363814393104270308201311045318216695325939271110513034050317603990389750691014925640081035887167829507544074471172773682834929707210643767132747616400063723394176091668636040890622421551673369217326079926799351161490415862275138120757745091908829659508196587661347927483251527145262745762610901748621049651636534703606485952401005791830788053017526786398029021356939927715498220459872196436246068172164635142823493857776365841235109924180015357932470292854396844282593752590598954019596855852670330474016948693109838971119242106881432968518442582892002130180000638108294355557943665095601703262340757066057797541069318296985252349342272222214914997509961166144173957961259561897917518322833739612955036569913215074455954661705026596290821635904985920503860191590962255998253117676757574646188010982077952116197675403357032513241658846017400082169467042004185842710061290798103131232978589426872361437682153655285763125429115534217888097581925378636305851240644153887113740600759671325515784825974367611963615285547494243040748589280811703353760940176380674633100341859485675648462006220208993176943474581338227793070835993980357886061512739315282913534755453541394132911771991567956690196896771685454243289863822050357047129276865876289668403534878620555385297388403613613703089281977565323812682450823908590766815064013931088359345239304864968493104826455177151968115059648718073593302274135616444906806761682609448015467790214362161941482900015449877892788392199846897696439558278740972936033000300861047776052806602192383621997052995292445875872409268897571337583200229540330223936646569339372194861662965127091514976354411212471947704202219361250600372229959709543733177246582142793777393657575758927612449871510971924730891583287915179327553880400999750604150713705291896389040792390981000708020592002360931814080155683705315377291505411712627154797477272465415128594736541697689690621773662066024153903469438884641205815673823539775861990072326367777685849056577692046845493563520873936809402694700986570746085758148768163979018400863049142479386007005771654380643326385092683827184313796544113613122797577352282796902892874602834594211472410374018587103969033003198334072934683355915836425524880882444831457085689618798179407564698647403868156813100670181751537157240440832055281113506665465289867334307373330544084474313203598058602937444878071417626356221515962924436083524135979553939489124393245200747272207672256759126813435534292702085384338867610605363409563032668586913652550382618314923953286103981769944954908808552434897179422255256541916857137585226665267277450921853811307916471101414178948345405263726290463491904355042311856112262161915136305987202813715366586009400170089956653905755566524620858421709117912305522245289167311960869129801775127382502248558268327963518245327359075611842157536685252401256284866907513159742324199634469681938125527826789059289743121533957307692107435010064601364532223929980970279598104844296809309009546817342575318417748968209944635633768810955229972577842641331674805527893007954878445136457088089732824430422647117803878077243724954051503206901325305982335224623372285289184083702280149962926192757151449025324402280452976802692773992240966696151174507856078015618673419394572620462609825823304922960615946819986369886466876834038604836316632327948004029112311333336081079177929628010840807993961298623957839842638973658296060101230569053451322595516542784313587462240444599339387532746479992727443210125880769780947357084245426509103098218397190445913605571627701154386930560003038843155778717692378085076401538604335537146024131518762726712223001007471209370570151042359276911618588450597107973134001423248274615274208627414176458632962932373287898078960243537742945527147870370998131273110998507114018024388680102465470101054185290303817758842018784272298290774710947928539715676491676234846454496109731384074509413487714979025676553560291129170265762713429456569536769552796705936598211998861455916731801086810896114598544613094982075348617297789837639126258615727750506175277352043238792153160965325689388917729680249851382747410977766756441253350977349711038662921199779828701218753610311322811804168220216214481415201098835285067899538568455693954852480174069530666074066313269255490659988220763462336762125831962441109083208384561669088656191806410288740637834034666131717929191233316891054986770911569980260681197553336061205109342341280915277066424113246394368650449311614963639391081683088468494501979018430592086557126526523083703581606891314048258895659607783859789456167892156252846708437321189094088568323362143898798392971194041810563678471863085770857394079201856693822395189330386657886838809632112382401077931878367044579088793448216942934730837411213550196874488485304470297047489856324633941017427113969882173901496724197687886967782852827229536757784539114619555447633502185211478781760007274725384936738119635622065098583461308336879198910952667628955332602404589613243107361413341682147626799822093109421939230310764592973695701438936185139080119529490732336713241029553843541512954377125855437837674956273688011517061493211515272586940997912322146376249309177248411056145929142832934903656640871685923975987878078651359623728647502259934554694734889837204785448224364332072824006530750345425074871697648959218543797269005536728976181275193763128741611137275774929884198852945136424566162783893996599577400759480731210624993513920023960003215985099090510715356312963132166982488834235831522467924489346799945250548640917978211429678598929271258988832867657855039495177357946866447948336820470091233606138808493639164313211860850999194013064701899892227239729730942093474645304514307286964623712545153657301152949941846112830729891905547388351703867624578962186010094088212965770358409032095068703119851364517522258753829398553226895300732885503107220938463886714691704868703615459603959303201026075168008118313736784409729822597798002613049531695449144304815559208035370952640360709765583593106351099312202970821268786496949429095770661798967594055270055004663565160460696315180752291270820361959771438135611677677173072597936203738766955974824629341636461733486560051624620645506732375103007263759921614581551866003147949064325489358549880338721405903625101541079460579537775610627538374252027722428453410681606642599093286752498118057342011206735068358936364862430979768331647969948332000610334164175489836897596305181561308210698762581637814471851820329470911874930424777255935816861670291459790796279773098264055228750629688734151371084663160380377482871240422139864082563069256888271497855667810613966136014246447425912285637841608745762336628439003068273502515245922035103564266050563465213628417456296287935834988770646508639179840729421487008691656698955836628689565032653167139475063056455488716124717970013094928796144099495252355582708487177426237074037319295207999439741885238616554725699452542505867304461674065414516789350521340692971869302269532221369403977744866681259064579914221459023659571760073177376628709582877808924615239313893182702579598483222372864526179594327646221112355028696687072589789587477702481749673264261245696764697076098831126606596431300344833028638307706560518328884655974916278880274093637682722441052465525952020342659317097359106215479552943739791915179484622356671117624285760181026713518375626849514681471352639246241693617628525420879311903849352842536928197982833834844842791682635708088703936333179601625970726930111819740595891337721127770964402657638921740499516521048854049568494550004674206615729173518597815820961785317327736001399861609622615422836773479121391371149773947805082903259950600980654581727706944022321504701119374505321212201819175936265865428561599624223209096332697855170347659677801606288005330648790417497134581407268983541548416041750829838518663094593422180120294211837634820743773643601696673079391957406773499307988972060923311328530207946917467063247004655843220523767666874733609380009326746739979362325199156497489841936741612120467197705767666343277730173963990698607774540382939491630895891203803743272327109165347901452392624365336884010850104232357448641196081390924840082477662419826885130768366346868391039873368510819008221585542340860503274745837116341290503595344613700754749375687506379762664111613771749770310917139483095279985687967286923795790427610451324002723446715424645229739792160556027375988864633047639865833473060681915302913193418839765688442479256856713262921577570295559247962604920251629526602065841262453321062123889091179718213184707778791894721533680176315526932965937237545877851349072689266065336958134529760173417489672881493677062418890025719975758627694578316581359945447536303882646972209863236257795775398316761749612973895016256375144855277774026519368054283881325617711940741652248713512113786395774702435571469327228500628772595112449211159507274009428609417089514301940550623485641632507381880238730590817671087469786140323330722750712965805395405286620135930776810055413041696337814501611259911859342228012373187735921593509686482349404402428761808318635775230267694915189136438636593415271333223520352053926523977559371059778010443068637451220183193037449901432085306234891525879960667879943942203719739220563497076199200307839215728905413947979430778590653041785481028812460349944712098094812610112278148819996157643252332594336652176788493399283091556290308564363431501488311826816957461403980716830261822212265396290390917429721109863302323422621682455082434630230757352885597108293993713558537068290663319792936903158665734620962368820600439545015147394680522196476213393745337846740008518615802706870319666312116896128946463344317642436178300309654044103725989545450302876999565281465023956080065420534718894547880987578515930279472626954884752118515695492894368091832369731941302120765963685614472465531422729424084585898840760076926450088366754796013142852962403578842908639610604005955737448235697542626471720205071195995232105144319463766118159404570536511474523854052690191905799604451028816831969094960056681683587995500471136529982754982490392520839835767042619650533394689496247187131166560942452907512526660713275745313781144500316801925526297352667080956880148415376146540608881955266263561052596608731371255781941401724487002784403973399628604064561826131968209209025605510959540776848758188105770892541296745540205520725481368202962829621983742176237045484710442169041354446619973793819155188371792765248371790967824574805283409906292641835781899896633905578708909251083081282961002337770184595723754703415415224078084625743935238653632414163421907693591307041842723669775852395621354453400046634760300013261922447743067744524826181449709544020301108963787784014943242804257470624139722690207358056432830216746529235331319083431141622408387197815420979801286439589933837753795023354316522002168389738043935442382900961358486460032270115553129396190466600878395643616142088921967456393640679251354987644567025084855072745548931146868353335225920267396869416051814368523947327405454777698865910524169576795118699282734301733914350106363725841821405699598176492603459943905596170161514391176132990995217443624808539271280712797561058783903115925133978393817746334069019807620287582938703951057629047048003659182139596650202349030907971167785462573793781422774210900752645324831336772727198234363854626756477901408775686758463474118260652104133742014965342518499136356329512651113623212257407040369766634177912907522785674232422253757276776959768285185452194985491222792185028161604400004986541124812656615895244400230761548190672093004387192762220709838274750655761227835219956805028912527101754880453519137044326769850616415453550100462701308729249189470759113334126869751397665407941889427959115641731014956587116565297609926977763662780452024340366708232678434507786625776346987516943785174569781848953748590240043021963995789049734715546412972653913684720514451560435554049885591413469179132854304094072641905294392498802438854046922976413718353308539300075842086115012074385771535694211329120682891030299192705731323497975290122632747238753131536944310042346958523511918415169254450280027133902333924138365364419078647763078225002250623830182461894650717506290841549573990675315407825188855759932341401601902836674263520435694792685997857425652653497751903545992828012575640139975346847023394101295147134239121965810254606414179716372353410311218288365352208266338116229888408718191687417540232570295960311514362990001281828585483772021555845594439361268597958047342125845143953059152770747343435729930748120418654635671254990261894630215840129289596076602149432926516292918476841083582056750561729824018644991193480549181375130978874960853405126273956788378911466323979904763283729078812433990442370608465313566719635712829173716903114480798284814270401954280642208876453444830391980489959346930880997406925809984196058224669184345140924762389600492903918740007448373869495215905239939161422362733711977823805800910617697244749167536911190143832749581610521930276685675011258563855229555045635331483613351983617755127206206447440254472046753560325105807377151372139179538634465213253624628414474194501281111999190646579101819463989988582415171801063027563923560169396126434880379931549850801685266950395379893882669693532779830729106285346548329321689921714414735746438372230445782361146573429931888264111020426537482494746605529558892579141068420118689239168844861836761808874819926710820177911655123326825827186338380060361747939775520871553921364582353955797761423314334020633202267412699727410454165587165732193911506262389745531798390912560139501402438303101587434356182933097756720948343803026307111165295838459204680304019889928292318739166098647060594266068745715672877967473675971711747916380040946387165305742751577529906989047568973280153022212146090883768617322520885429579033652916794270433992559326188005169268890868713933487062981332869606206100368033415944498515956844392512145060893574130812222291632732678179946997775791413199605603703521431124819358466352071444772476574305571809968345824627003255216255515850993264903447546563612311086354275302375600782409661221946208454956296234946713249813623903174596618307859440146175217873700010822596160200094845526528664753735769413405008929015714273097234949843319817643181499865863248679275143893853642998100296414867109364790382418846808917530817007905468133631835756180130297484833468384639137679517565491380961878981993717339198568501800882983894468575331371108641001246057062532023684761712114581645273417848403132176719557891031754236394280694451497551138258654917634123386340899807600938859544264569885841046735823285050528916247425553815520250976620632976049736377024229632798604958370139433721526388909635780287373933044025985679021788489483545618416387441465507063424722114652925423745110148450568778044856615246446064837589140662286670708914724550731641439062572695128460495780157313826232112381158133268340993166164721703193091040986118030419840154167912793271590429477705771491177057229934188997662489291754381244242989801341195078223936143768128864145270536923228490926411970932531707242457749044211619384824198968836688273377107363157021677598106140520928119106351102419907562229331007729936503635859283775058741677437942205551173523083753706605509277446118288853205035935286589320876374574471880072506445204244059712179061176980933596190726482558819779343901920879559015856604813530933283482266868661539625135963027828532616286292867087921516486023901064126935368677814224915906236253763890455019135235836553544535957036264262228296027934237074870302281748351542259498494772401117839562907738792390952431583052987341339846148362239747387176156437551499179315627347556057508338736511420129709389159998432986045279319476850102952011283911666774910864674861296943312257086468201364380988671489305491895801558730266948809874447140626223844749587954088425057335924810437276133903829983838490346776464704743053321209577224008870042465164587999302542867180659507334212488900422728056040104788450386657344651844369266449101328111798883156485402755427127601174448475502686867998065331580645951952231069613931447649931392021101921592158821857208209996958757530333824728795006324286308806847743883467039088758089303212254847719866097747691296467108219756122066791464203803152681205869316920750443578130712686592404773330219477008612521161804399850130062186727122622167253123820550862477709239581148969999409411237398843028044289037371638145384638605785407401102700991842955283453726358588875571530958787130235783489667475483003661680304614312564288675207550162846413009842985810374835828885488238941197444489350429705811267672909847522296125959635513447518863828551263169616517192879553244811032385006596604791398224955279653011301200639106445566598993566276684723417944199906140182580910920514640683038823248820439029379901034176843536042147929617146557986112040606148222539381581266585330052703353190942585984162750931549734046015014955908797865782034315713662929757712236003815895388562384714423744185655923408790032029663157522038967162876476020296299860221353400883136194930813035907167163037538978206963220122422963077815762403528727200748993370407250347147840639850782879305944397134731178864824830413395715056604204862715923113265865757759962495338900545433532287784031133016672246648505519048915182268313719474735265865402660418671826152270008056192155009769796274001424017075157083099504215813711854346190400077525505538512348327267233191611467694341864525508032988926270705463192518886650078476166235581577599405188526125039030792509519256524802895553478259937721190552193695389784529453436946226085917050873755884511142402626721757621033501356906352665407020690318002090702203443118274466902104228029649330949176631265179431612677223043061074955531457522967698749277812334012625049587377151180610278126275227243522329094737637861096545365708495739145500648007466927782048987458382525647780508897774499765346625963168534005505445668540545606063905647734558350657882280550518453182759212279946719120397718485048914286050454158331236567774833291659737437540387290844137181258906433307423019471640496758115936247141875138814174963226360622513708913025208057095758211538930201704555063940866724266341615341324629169156151348323808184769162021990765659803742338123224330869492933830306991463537040643669532418821294817183723094152724838638344842253242072715700723580132635777796168934478078836305125588511457812905073576401289323779726811054316475189239904003155000357092769018485241761252931199180141000127105191987770612818562686428193671124997287452143612597665017093587350278362307326775993674558651261756553856021999082987296403686324656898981097783076499093864077518966701892599073064310968882085764845651501555306076450638922339400166556078951519911529995417693947943069445971051985837366275902663081602802936014807870536347267437984325717924700202339265112583701910025530249300456040002863247054677641716570923711255123233730175625755713634991222199261103296473853702012151729335475158295469252424932909419599388679373727533697206160636010650913395334297825619285385934507413907318731333909479970836320099059359839902703669397657012200506570016030303541550518801065976257937523780058038061629429878143653639461610341784915716891076796494131600244345633653745062619859786870448275558093879807224492396124678487767269978004038240073745812480421828258599797315130636932608042732281446927119593755390157615528129445997585269984117398573448370160633746724208764977590449592894671998399244336717908090539217517719371607588966738287086828615670005184819669862751702319325205813296036996055815470772277498726159928305109818007393531059257168923366234532702375484144858408503941918288985344670168029010840603243650304495611366224581465477925653666407328962543816404476595349399024847568346878193439124407586069640470392239023601825628954186951872328827774510868913034883904623950829207703093979030810828170778740285690924893205735249074337509334900019650828150890917490320143384540339320334959934247716476379169698892341735275820740878923069458012407033142996652621389444247680753292989596164722757083774783301749022462580411070570746344310894565027113362370600271966269821342634750214604820558210233781315807146802497511553123750839124730487616332017672056782260877759554896011879289936342706419862911213093229545323616802089953949023902010551777445575063197438108148537873738785989086258257650936399993645532010908080436963715330165086068427056005099836784723138791640813092338037602550024276067952991764296295506756888750158205178103091806388668886490559374954597703636603806355043042797465666939679545299775849326469490560482953244581178053091970135558683172264745359725090465806900996678090073139475912082944502308409237594199043569273465836078988177829703188314445833536960875735398521862321851577476541573481468313234363620505899698872799524012936331463323721443921440638657466947433941915184854830040132392779966721030987614523065186817472822358814230933119125618729899917547084434898763651095067868309990115146339518277306902447387658984827055085400208093430739692219815142247885351756940153858876596554763622396444628936970576145334458766496480214983155554924799264478989901188052454779357930046552369183872354147756585020541327647468106761684360710447356612208206481369554294678691100739020062392049695633803561115792708862672526532975227850428916062142053018577959746009466348011122238642520895719033439840337081697608420365097455806952652797853855989157352451635611147540772127073098743453665588730507002425829388022482677588894889780955727349070513159855715488114111330377796862036722665781202016073137368196228449638487633585123025994457805427800484006446337524601105773970803043508587050328177585559596899744232268493171509044183029701348261952450051793409659688988597632114935990766673275947316522898394302418874204493680945203157191810745094140262066905544908597475159689525770220479853601030107441015180875512741306082281257841316504161227363365758370028510131771354823351243351026572239305909631390939461578515043231687088222054723537798058480308604804668786477309903608521349874002527104910222213473623369382864472452402061150102164553578088141405343450573249577120828737720073757731043594857656029855900502972452332876289700507021544721592393987098740407677591721321989236151003344873540716555269991015164555414924867905896365646562603382380612588046133850230553743309535545170495300985708948545143938417375696345508213542254510619135334297531207953339359152641843175227443908520472874859809921360246735499904767060439929051652538620562802233308885522696488531355841747137041697812713886980385015012548621925170326715950851849649859920082589548840811860043932383429872726202418761810961933962605789928438104831337828736086908371018536253831917996554009371723171901996859824316844180380907788663463207070183316669793952642732133476509476674957090517346204220166798241806114211674650504930126586090962588133374499520913346552672491355741775156983385205957849376333058896763652184307312622786946556285759969044117841822369521721535408184304809264231404737254970909368591901717200937254894428368511758318239709681996080894557634369923747867270625907260324738330316905843428950738207805542854499171639666380477343175304461742693420183652888277821159134739327577302594361900445898990476749952817048503529061907008575572700808260825761540386098440367062964975519418482952837563851955360522015207398019162176666933235159145880605166169537801012848633216521246422616987131493736443609155264165432246732792174576264550843565839276433260540097785949917301733081044459434353176890991622909833492806263845532394347537687784304882796492019367362906054079765659346362342831029139913170509251238893385452848770158549268276339592891677789141592112480220544779705317988886099471846348529298253987085692577465057098524320390541527835908259152493608996498662819125361107736720919314255561452133274353081155690346544644352188080361268693226267092430148160572002547402632472174519117623476197780667734284719952389645102863347666177161538247621944086523017101589163945858156956692378194783669365394668511446754759261385104527755411136055638513262475248228268584277782771162702592316026722370770994012421478795060992828969762427474905781197426975554363242518982595404270310713305307956376343090789283551845476105169009161888290036343502620153826044306718321680679252320739199709247848927958387834177158862584638568371869914509649338616468370660381000652637070907947054951365857548090977690280008241059070188727023332241077493084639629819850351911392218759355533910531091528037809594050911223785036358226674771768389854715254335391246055364946451327145009883467685187229423417138021982241486352879242218078847537392352184585728172974068302190724252014207166562114586721029107380530674250199562921135582480248529224737255305915513246378450768815150375523978973953343883904993086048924952842055041511880941561767223957438893189313502722689925825335479193942209105853739686170815524792879616987970691561155761366466986431634938184400011999137250084269581422599054113129805079648856855244695614427578025583408541731547803452032537786718904778337111200094250248228181907906810267311918587910884896722878896732950496998298572418548391788245806858069415101062387335231612457548176568284581666421247686015941311970579106045384637547710263980711474208204686212792041783995134654000172192803552210088625251450182791698624785011376627420569115298389073433188308211681278416674302176587584594880279060658387220667198058996529163786551757509017157148548040078717114130463847776633359921705731531691859860367150080681215890087651082425806311695279510709787465709961968431177811617769659595128166421392303451259340062082841886360616652477130915058429750853350208584062734125231399099878837032848819131992857699307903211629672695018515944679713650379517470361004677563580672465094762570781128194667202201161438407590496618088451316451329577056133211223189891657805790643893595048312276001161658583279013101877156624391750815041591473841005092048837436473952559199271804099719426701532836309257880772719460383882946162385859364383484429211147334363240535329323787459271225258244296891971366622813234963749574605515140416172361284206010177116731037616329701634697429548112466433646629817862646309000165314345452580648081619312095005892606155957802629016243131064406771396856720097426711994848660143232259650733855822696832850091389308446389241507929644519099366393582128610321045207177336019933240933990602978257415689805110501932564777074857668400471691758231736851434229799309821295475294220231462931505596463980249584543372180050672394473266445967817289995356986860278650282845055625944899197977655650608399392126556209189720124062043455374523706380922534396661394884619504941534301931991204735223091920129332797860096240843228757227725935425978028382703713269284638595937075340221178855428218340870322463175641506506077662885429499644058371644527682704990715711278363807556622798034813350375094708838848641667662001614726611419049873093172053231222560685346233275284390700369054799875033533632071030365932226787659841102516894125583807161204259131323922171005193544953576392266520649140654202156462391645702534219732497236214515688600061819603317814791526942870250899753680030510305193050027488218738190014363764992754997634820857138232085562845908479488842947879631045197942317184550976043834849324997205039319828194002630677143039866725195202312869141949038281778550737607450566125052265122414577244900238845821516206421572207496973220082232304472257934835208816239258882873919573503638032096663311202303118278442273057501092645068871910626385549272204087421534595911112442000735936809829077914827529243417430120760643119535381090529093999750171489140230733491515739357944746422270404066319197139642374116722810262436181568838217430636174759604038818807911066760196248799152985574335740181246925063481086751558517267276068186010848846853027936156829265968756019593833327865851240348557292578743288166719237703097836786196110853207394894796665691181070173669510101048241087762293084200223686740314732354763837799013066647988150664472453322365211591962701273440545271224103238841628067311582729610300356348360444677805647090395348740133360163147335460706026568324988410485338347806366713414194245466454841548759599797933608382876197769732648364901251391744317209006161106124890355251983080878437098599264471518932178331150458111751351019990488820812882998136070117179129430618939918665211870587513395429566317357004286385629255764543662598933218724868228681628197088643097338485074920669157482828076596276701886369145306798105646414555570852676539271684034504470150322300209424763615542692560047847550792319983145322637028939786328439354097779531734058990225276102825074061463575859622646577162389894570939627858408961211073210454119627498211004318358047768809265409712504266859952219691780871684494126649122542763298162074236613672690271155292995129454359489906989236275155430256475530909583123373192493294985403955459274175498347049282011339563686466245045847081100179606277916689741773871243073868897890553587462093168862849642089072019247912724760084359813598101344467238702027838804594637430213660613616108054278546272826930701545187329953753592574295783869695153999237850861663497560305918682378543483498346584370954632843441913718720066537410344873289672559246582794597904116898772188744966538969925587601515432239833727171616017444290021493181004794840449009706354893239367169125546447082250327012335520033718347345761658638299965997732594399262478423799451088689081309515092842228617500159121083103353334646397616102611222150757308238877164642299109693413646654708892086149900779135585504601042582679996117485152825823512648436233933117732673544045153377294343108990198957248859620996818623715065477370242371886569299440778518226947618792115975516112904516459853690890198106402544061404241729714181843130831727442800900521641333358534417754028450009950955493183149123527046548477769505738395122493132227450566892325410106457329786134508652608924239645678818462954903677653979602123177164964291629687535955139764998232524761921171462500616980182881732419755950182965388883977271683684794894362338385922407976974155664396195260974778600277548213691804153644763092279324005486489323428109560734407574268696756027888215473237409065188773051070159755574719325356379216982915324976621892376942484094836550219579552056190431267636519130217235809091668491153251461391406263469767798787582453617761081242187544504646004610277740811449506260356910116586021502354019828282178423465934294026824953189644901608453349349447659852093037979580730737836984273641325927891816078662504749007122187593584633040227150328378066390203378497218601615169693846978915197849403008057964034959643498181915598837206282938152893928319838739538973822687531019443798860698875203936599884956598761985039692719134677828035051321762693119952587719011111119298480258088229602767398912227699528071583174412897600057659183822222920486292644377275902631799327802229000625717233444138221005699147124436225455157046812935953801899489827550285849805229012744010091268736953126157035756023343862049431391509166871735735661735242749107583545339955501515764377811127722165678598474026224772283151215701937195610564033596208110168361148767029009557174969822274983168147405078253172684692575244407821358088607093833912098271408614518183884548139622756407856344941258357914934881477124812826241256069712403832617879025293675944673121577348147148594178323771222991815901571895018544557745551802527908080052378719549574366938689847225874211291296055536623748940777023451979905116367571058810028356658086591638778415302154797425351253599911014128251148712339211917936205455958106274923765548759481082360331265679700738611196834849047060957556028971023100646219043435038408051604350352240187598897261296368616336540245217022673761050811702449472063981435906810160101571439773523602469748375481918577626342990975495836074913692212037580205732993985046450532915260135385238617624650049216212567506604066251157687997118206183328032976864042225712277593581604697584732042685324707156434619475104006643200753131237091608895553585172391682084291597412158407645302091414661861856456955176655797044136706886519185927399754147431209391000458292572499071250107996894719491248277491253253233305668171040487325120245479141353742861035903838075085984640488814506449917004748171117263895193489629540736441593392675035334115209184141575269187276955785367953397437649582340695967502091408290830118570718719120781997871534624625705040879996981017335301268065440811179311652325148457573978431964493746215977768430886420849134453428519954585496959214407411451370029266488426612446664450599871746337095394399252186798132260494138964751435829309750723113913968823195530895339762844848349357477773445396310241919293865248962579178998633168013672922593424367867565840082972734532619527803240598556592729178204398813260555216284916426516472832013989533826325948863069632369718630923447723179404048400143406314414106061625905522599288860384972178631623390568022930383156404423071627187113803122104123652365382972480562055422745634917861496728377512667836350846713758451533774038214819869160626844481379556898841955915834889467596459372826091509466134682111733977739946067627612009617696577903986975630698621127361428780842827088117145284498113084585790727636588674368592709727913746564869350547059786882086121209336632784679137165262669302381205323045476749076477290218380749571024015396061391078350322912460940002614010283924479528401907282143383288114384887754053878908668362039237511728472544406920748423747001747911356156330049876534473155793230109538936081082291454033652743060318174971804960337018451647474762377371637493510879085023558683444973985872539191159608510616275921237287469151275600034871299442833903095566512395107524003453529723456648165072232373272774648935878448891988353447042388025191490079872939325954198112331930892727055350763831012060757914765993989043870720505855275922853561662519393614291635655754704408087126793127801119853615813251729228339824250334412425180216362674824155468559434508818572631078287586300717995086005681786523909649767151087219465881186281268144105279566771229974653242547839172229978820713556474877354781707475335472001056590383077980188819925458492925140165377586832022115400311159395114028278888331303476506337742178996634412437874690337803783363336646953166996614172314289040744004251402976439805924439061196510691665507068912726731829562184002154255761277978947508225240379062154450342192994808508527243701753931565149467704201923887321103697832208515814195270428996567711903301008088894612662615706682054208281900540117823289250815786929355818254573292948933302841317600396965289112451492832213889478215505983213866810329455534465794400202779657444740574643755549962877648302115456439815521481010213635925085472810607590090814185782546085977877330792803918511933492116364458882762743210899480420691134589933645751634396572906778122028252443721980030404955326043411774372258857863134262206796154395840834460344938315318593457137962907358359667353520257927951976033494199293966505629896818031393809599912662096372617776326503599850970411186499430983233880526169314138313063654612376711703176495259250282045557721891032036595097631746182502214604696961629164192978501728553896123834923959314518619646745686871797938140543061484123765170604123824838420512626900243539092404436773365407892036824386886672451496176700121846876142931095414512822240221533348179356048531267742171638089826871534942512657997453758987674968624617774308670170656811751680284071332551605807902349845590476839102891154275640258418711771569929970318342195689291822850476221938583532073272732067908592669060156060225196944195432455679781166623715234629726140588479249541100835630973136808930165353604301456654628134930668512237685039079770304666151617060071215325847294552362865350653732240163715305455718824479254038761747343030063483724898763074014430262530239943826936111898845699332806318775152461939825376493902419902481028552611386496384630319814679415709626584831118433244962110227178464852601212289042711503099246376835562458324222639151430507015364892550831728911650801850799882394691661329157345805443768744835526424861984287476348180264603809848169871685297701536951474791738956944263531471733627368592099806306624576698223030448607574363680415855362179305953141497746608934596899174883392313349758917073883526315560979620977853307536087902553172142319905015068242553790703502671537975255169278203607214003942451730722592332070723791590997311115177832494957260902298328785636975737841104727555594717701215780042284783872930188062535591809844433963411490124366256338858189819810053056161563189530141649649780105827466746980400268566125032190698318986331714621692235331976290572218060283820320702564265731340849250235417821306880331104575238865607651097077907409395850354348935665507906574802637059848816621096031416156804091277948680255499979342030371257972376691732216368267254384297377672713157920878271004713026198744130559889822557728060919909085641824095579852514412723393486231041021433967858414788189595103947513483187067286684916850736565525954435384606260194874372600863822971164276623656948280672053149682476218004443263716450261659415989305668673404482371228211899885574367807810193007392205206354841678340700405564069067018820243523554208641222995512177875597199371335672749764694404900537599203487560781868933013995921904027355140245595334080290845978199077154145794946159181025012562039953983834420009117908002092390342986711009090961124992831471161317300509338452465240754652561542300679071403970284077678084329367604636262526510966520300879674059573029211149147033062793426949315646176535916343084097747275377042911457289053867604368130913029653532323531086573431743100225874820708089086861908824564316720336717756671660463659786618607277493294554981447587532898791735562423525401211933119912028135722551177383606235419595399481319336605734167846247572452066020756230652051960871443734295139405590840012270586898319377580828310477671889542125654829808863267161287966839663581819285462455990922791896243323424645208097411943710303101539703481277975992185997501254503477967657753791168898076642849597968469040964798513486047600529018208503343383327849657349047105551920231634925129209415073236001762635070875736719722977388884135204165827646392937979621629969936487835539142136967775637383273080564819995165562659545114224599408044480867679566035417622299183756549977650032218773744744163149782810373231303035363743062795056580270971385966344291359486174070767290254184551782814892983917075694756343029366904452803757130934066631170773438155727856033900865104047947138401793772992830594972139119282469237553605944940845490098051529845334314779015889484201081296904811441171796794228876125737983264535236493549856561955603354860215174790710240448196845773305311691156976298808422167751971001549335331545911285242133219551824707807877192790386619964988968657749443470155949517253180683270026617565623964059548329238395026244184438987277915106086638956862951637767802827195817565926395323887454071047864838794864034813711048581975523065015945524642818830777697544802313760316040909094718325175961786246114695473398244600633606085893452672019944737487216582796459466380209080611226771927373536490999594841970153892932381708633225398825347845626918609755537159029923754052939481850681035296222751929361102762589168075968489438032267136586979359252907740521811334312443479278241640054451050860621570446948425815813987475707683397182926732179556368965602060661211917523515317827138285445073090645786838088386458018596195249644598081058068125418415788738325732709470889059959355927252747078636451519009035672322744187147855368319058293008854127420186158432496117159678699130998784297349842630539344804496586480372076273368461321029411142698207579661587337425712049392233868411440164466925659263935657053361066423162741166071043329193597800589082573504180403662149424573750103859679289900686760995456764200394225182004562675129339372416721298538025033286890186565854062283594453363208448592542192861581382412532999583219955889823703384019953906502595234550662791865070312149662621404375713875707377373744697066909948595740393546394847176899693681252365527390654814572114948191864070014363788432129491735693425490642984156220765595160769020462449387256966531971682046128208708743291971772701787539863173599438572316510416479485274685061902642252904007317799384036073151895309812041771797152962884469818923080601094558053534749997060655358080029871830443963730404772717542293942438310918776903165436018346121320078784180010092835324494795465347107921032588148021172309826883976891719962379290337954317368715208469091592493662684122566123281634937489836885789307469592084744956655558160627145630542023242044971766079621680507147364220619389469429793611576535871504241879266833374476719605333960804466328154478522431635226770347456667965739907695366664603196080984647065255787874018416386506144573602788503062915704309593110020617818080711107007873437344103869758524583930367340184990404469998773499907229814175353968431908159665390254379519012224416607645284513166467640150700069588792449823816594557904043406905774053645332920191713688378590535349830267602467173610298854823735546103629718460891086742967676284870249443069259920534581213441750035912851515475004812803787008107816861923749021695668130886325686863248488646145555642824306467413961990498853454685134915572437038698070194976835923507352118617045312054732323953713875989966142631255637224547429040079122144381286354344942052038923142609128942150244322555967516452752527457553096077665006372176816997261469606909697151874139853357574190113092809086455391459857069144352242124756418812660581113575819293608701176189735700253988763404854701284472680294525062236672101617226187780431804771564626977505617034665349172836018865946228474237623862332603462920824054889565643126975458052930201632482167600012179309959507682738818874992039085800823090514973161506848951784481139490483614633133479180999847627140755795932551638868477109829031899060931329797617471218020051497518258366430138104475831846114134308865959100712086168175811859796728007686288619539552952127778881893552440266651952304474748262756004433882683223688873186088121012367787250262969792288947113626491998673500800406946798108234161590680546756102162682156924497250015014676637707250156674814676178207201139039595384484134767664560077066372934885811947023998711628174189848587946210132187550019015769110171581368879615088624117414910514238837226934086452668208128342335060335491469278402015744522017411574491516953916461171307906357763883751406911339979370794969985325510596207679580991623775902357966519157480226764487772582658528803268085617270858186969795114294776944315837402303966187209842748776653670366729267912459816738334853129161064000162904568411843978353119268217243424650292387852509987594950327234709637635396831547003893203807077080286103168740419050942228159561078836397367366739694412270656790869835762119791986926000193797788370346393693172311041124563257918528097359543963585788561544309607045441163527910304999751298872848109373938100399614877276255678003518173125175461879827785734365283503184353139821275815803857458235291377592739308025709110490448612128958447683768662957852346617057294516322087044748762764080480486932567599039322027287622075262960897082360619179406444104415524213903687783737275980172026954595756645463177385891264928844945234884604022355082439446471355774302366663138008837454068412143379128398174765816389366716983808242189345713409072843735157367355124301929775849017731496693259294649056792829893954216740701745364800206974907744452287331290649938231388944944672485269022774650632309375967259924087784971696369724859978439653939053197563543024243686074922509808770170660159387787764696130504038633077038274450542176163430896746180117856098081862965132790444988446147289447308486703762203506642589156786891304726652692469475099302896696550187965430618670851622791797892129789960801917191819909398508094154434819875940416181234173577871454503418305936907629168021260934412692470266578135003446017580898863921771367107400255791056922031350722550487250027428317015995211236557529215765638154829681617434734191183189557819117019124328686661000648719927097359275640473750637286649413251371883769713451533419045747740220730245529999752446733412080814373163682920671619422693209816506287969026684558876708693757481106215894106454555056786089191512923027791328721204631782011138817691781788310287637955756195153205670852649237949198056507984765245916236243674635907070338378482979932996853012578655024508316954977285728489809647591150878806138653962475694929752946527041512984670324764098950498155604924179147570822074399094999572840946974412367695123967242712828046988398500333564064541324078406064237932410669508955207628474936437622691932636704777787557109769657667073254527941924749841380916319355529097342138851448980799874346673940587284759809187704953955744105188641357135224005288445960318554545569286172086315550584767382302513811846577565229750481402154651761247040582050331906642497100919818432472515415211566329425857186923170929060170375322445575186337072873533483052350771923994594540906337640211956649658255397515719122001189114647215675904773985642970693021366043434368595293373519790851863955410301441352952566705351459807629580874429882096659758468314418690961817937753344017339501721606297537395460773030535649033954674193839972501393217535755080394463015304042511047125436631959402403816846125480688975329552558725603100561850283515458685594744838518745062911165062833904235615690870184203003316381011328402593561164206470158469205081312587505520670320811308848831024588303452818406436828557991297485672743984550723838422334460905056664097162299290558890866417239410112504877959363836253219028713031362789457151122338792635737923762412335245426602045353214214516048379222317007240657363783515395936351840010700746598010682210508745637126800508360586908722141046995139994643527287183152725384601559052991618129205122244710967355865994531563879659922468724064905748860913413053767230802468130435499487026270969563754357229112828719639735391304966278215108666644485781186486540112204196439146312450365452057400010111005936166351224110911243779583240801703180216592575104198374053390651052846087059461321907067554123741218732560183979245331744377807349628842346139557499177060414965797648871156505595160078820414376603390525377836414749231113805040277440666993101119912168328119245966082908695665002951500654841822354240076161278427269785002911458037332995462812371276072811532947388557892036781134143871539571153781631693116517596958289540959868973044999781279344172852894207373366793733921576707617929306136816594200350804301801702168773606780571392647339621153558897566949401483445561082523452915326103422632149130512328487672374610822657172927723845960250539260970281487254785873213095073647380248346377503129779792050230539466558568096084601779748795929305407455417815683856048529649151901855226749547528903756425909068291202361229065621209935430092134774906415057585626694512831998119846689605039264280174442623031426957225942906321667284917550868255176585233168488313665336504463756131761130608407629223019687673363873152369880583353555280584643049238406044609121030388190386979729049700783190230034601113015895210926954183412934879755134860919298603503349720924221291114221418674204487478050208463266943334024390216363966068443956584204859985987486806042828398205885622916475094395677372382967619678005044748354097526821700211115880780741985727432192948585138846236446261104134963467211238388549949530144098858903614459210837673153995404878969713760395449532582136112190771604021443582534014931503488885330398914223593266566035940124550727977082827424867269136427431579883309966338492823198704784481257986199889887074226811805423159893701264559957521749775501445205047429731872857107251538159470800128537775798576364162587683896422882415156924587474895016773405410119208456465309993639462024331547006017507622634567247483597946833821482190834649958119464528161890432863146894615953057039970473998275845117978785767423764998563364958263713186696268559635446191339012508631696478459962982866610198377682359748637104357343570562804102365417622498935706928285891110069275253246215278720105265740351718030916192097041940749609694654892947914709050837958835895587628703838185012912613908772728049009410909864766293823611361143029788794227905779415742081200698127807993943939091341430272624192702387343914845958849190916884466330803141627537474100709119585648966866813111046937525331924855018985579229282301931483788592217341159413683701639174011443014628915793216578519599304251933024398735894802566283325581515950150552578419644641197173004580476647820265925321331296607830384223063106165153650210700169391915511059371957559379253401349467100040874500734131451018551533537287227126947238860546680905536471836532368611653680882889128508210333137374620562577178476182635414579676909348324363961671401331437685024361931981839440119840402850227344385569465997266362109423538205207557996032738403625366318718548132350879878332906105959592067289157522231824018338711634462791062316421107876055498305104988782413403203417616317142146062467931546334616492067163719247560894210788780731529590216032742602444796367997917909755982965982512789486462221813541311137274964833871472353987290797623975868310424877275099282616149596715710917089700476106327567554537700674917258275010716166675002946459036167572244171237205983661068132438924529466018091519135844862133791140739689333370837755277256350468866375633990657602828052433788665813565699292137898606681313637100104502030589690289553757420741345032646094421486441909727272525478982562828050143980735798212182341222631487277722079981016158712590372922304892975428910055964228803045939388280630151499798392595955885161364994577482557419457126882876382636731210333833145745800649315155837764608741785673187995336030527794983813518781260034690152486684979558107312939084394059112900512217381742240870472235212306209308221841125516241331446234354685071472906082417252420775335989991369759226347348907723219176607622321338957175825056422230147352017049052024456391998017751846703748940531237938794269957882293429431279181856398529861101431631124578575571868896241168722698485693925963900749176267936130197577931646723768511627276164020185418524923510505445841762080340912423485415440336299361335492475446161660212831831643585401627447982093182712926330406124197739858716007550678587889656239987138109609029786604711275824355042675968306300381956888609824035786870931594412143993724373476113795304541506302529511460937593179358781169163553658689475105664675681246492184557723349933660046565138897994307234551351558015318949007369011053513985617739005370802247991576906187157613541681932939543177710204895153232111134120852287995351977698310394102650472949038947501995066577601890156090333149809460618934347154330976291999314751057559285687616630826700820335478179857015057962106653653597785480459001917017815231428177397898331201535119717352249708114464054226815460175351059526519109538651797242222268370619117866633956920952355712137871629208590486429084338572640586971073438373835410593671133249563359403207451134087629764964188557604099522693343815416984631419737347301561619077842047153781921554925218566748829388397718366961028789380098334221905082820713650491720301631907943987989210863090643628711096212483574457649558050564431651009562127129899514804423309896684211922645767577527061690088291475476909509703500806462271778436358946708219473534325116085532826834425987040388340089418171986638533055082307291533536231105130556627749287005133616427036056442061145307674097867110331695758208750461960366183087620611617309428526656445492043178495649668996068699111538438726010978849955752431085312769164816117941724670150651693661423263346694183756116536302108329315530200698251925570443563618959371333639447997220953207646186163146687113812946720908760342451911821691566882228357115843397760944807451656250409216926823034701631034551220062972304055842911746857571216117183516813281841346824770934217298682409626822016087845408137222876932317496115879305327068255593745031765794792423198440659055742139355716062969090720020372409921439695257193793331112638098162331352939229940411376766960017212279989224275931090274760418528185480814521578742939293214248873817733310858719522936928842368469480235762232752063346297000911433810508373323557265768108458837347803355897133455656115608179414881060174434236354074371483602361890571718896830525313648007563169914585937864069055235041173101220894066870910752625319692002604862724972724296385622587920411743475231918661332935113405252610679231071254379036477869845980857647218850527654276782675079487254461886157356783664912311834983994439993278332303441980622275156188197153178324992125893850659353346542363044564214973321467587509985652045007884035407179379401935169371883483871009020945188891987419053995438128138703223622935590817451910018132647414544304054691430131289978190351335374530864410984513968567647854523834755600120994434847824543275387816274409296302371985659141058235758577331426555215606617357718018472129157918071319128770071792038891511650741864411906702231606575020039805236142555879064107469462266250653379238920676272975834585284875570595165826524230023751139400419556312262825451415378404171720621788561452882678137890975773970798437191177558338267378624789643599134140999259035069727167321509618012353387360513078810231374369365750671415143628461581549651027310909243722157168762347857778959546118711705157187014133617841123816309733498733316737684446121285337356441647019806846076188306536079120979478195834706698253596507878135831410435009078427720042308174464218685877775198924768146754881320628730783175963561848032011781263486212672965092736409883719337714721670997671321167343622873985039443738750001115247586447013189483201244255799625906067259818895926533648468910969452113185577021918508265465623414905486397877893005993078413704550295269703513253808057410530563180740458217086198885164571958080397184074180477124877709146738997281038121738589700771860248083314868739075155350814939089742225521883702198273780258462317992506084219815018169782799123208383717521505150113603685786457194804644309819137133312585469476017628856592909072940598020378956888110128253566177844819298389349768704635547324381505341507696635370681471657306052837181785198634172515760736808661883132017745989468291687962165177886933970719547818374071107218568960574249333290238205651919075293488703119170918156125429688707063107912547848654330268616969104509921567659560434446063227448901431001802944983520285706841623312218973463232972858927351568402622751603139878101643169780820399730062337814116704260069036063864473360924577904054599213272823137666914240772981201398756160746561651046377342781272704137771585933354514614754313712473491930194278109509915263400155781583468568480473451523974559660562672587174764760488926442180365086338423251937064275974212149823700370429741585864176322299218163801074296315860680547556980915112710755504181451057052904888754661510827094160207674745997132855003997558374711799115854292210852550577242236408226361415695172858932850813644957664510647516494375740802343443452444026566640591374116680498559278575023804726542657666131836233345933957608985290417823194066249596616761684516737283062613092701218058118007327871939408948722806459401397210639515022066908233825774174872791381545084463003880533830666728685577611006879309979001183297198239255099685736286479695830213812351285205461977658747325641633571988683815008805090501408252992740832307905606516576928443123038732678428467517794622752745909115552129335106214635650888755639165791634138299077460597223802147556019566495841611049936742315027377730434374111401289223714977253444896958117413367851754463447727483741011644485150856120559963390404014440465616293311393493949224560854006150099735577227895473560769520690788622352263190067192497639967890804722389583069345943342603843897771077860125966282941673665277437924356969337000569818952834138972498309795945262001456418372697339109963251189454209040607829275539125971480317470262994424913296377216235286269488559991707621125376345016294481458216992013360299035896749858802294951958887419471246080199541603107816360098004242832920064222674028655544317880937900556327067771044114150449505861174616215163092440466830159142535680248825530577516595144898461191669935603005776422620936770102698109875321900696895007625296096014268164172979145886637928768298008004608636953128189046220472630938841724217510678356460008408035461822980288994375184785242048496430437239263741762105362919560389177645427241567698502888617175144754012468602453438491278269807589794852814733164702197786010352684112005639153541206625806452207329166528109644396619198514561482140545870719574111656955909538481377511330206741456646349138222095320894096105950113995872001249438614864642375435976922309254144151989750914447851459551630494049917476390677309955647558307419304517008414721922380963440566018860210279942619805515795723957742496530679580827692365066186667378261731158867576616303926275863870308132956587121114405302793833202321565702631146939045811309341884593583787160055122562433958573461050937103117231699155161893419884116726848785895152231165830467119340314563523346231957554032820226092333391609861745242590776887729934781567765742962441708870444136984866938267158136602100945027295621560080568557651778831801682931381121536266145318347346178723659319140998324365441464454670922781488323889496391116156226704972490073730488617020175053729848830438609341736219074017188723703904447027413820542202449284817545494194756400473482275819203749756017626099776792699562145474131512422446563048740769078299741223559348277760155710692031616879572007810757871071102078467875422983780091592437427549964991477729416710516703001173030864356532649061027446673612008479068079227374442057223370662189141614732914444108425038689948106911214667198378135359076584980488404690932077422123193868128315099881360428055812548694345895152275587550664820222524967920648833590780298025909872957483127241962375532886480571975764654218028963590355299296747907814460773991887077651019023469449273260087353726631852821866161279124331316594272444280217474568681672802031365849137596776207069567965668432359971873507643297282648150897049636210057109713722192965692393359635658074891263641706133085780859489260409963880248325390750216494209257251503846180572541073438785172957595650420955491981664288016992706129654013807668268195635048189310408980231890889907616026327137171988856945767064917277459411346216785017588770835834999041134773318517572360637805475909393162523551651234125526097183194164793753998795552871579341240286593579463864803920599595346609696349677348049484652358882281088993342410980499773238165665341329571826741597832777592671478093056724875679787143995565412000220599599215747867267077894618521423568205892242684015515985968201050408917785816218955732847110999349014556845166258461687383429237573019147543823524825021251336488817630570716136517532938433666600783303325507870603884332730189601521849421115349598561207435707127517924735499702334014833428314839053655435650616280586645948221242315288238117952075956717168976757188340226116608737179608077862145214372202873380534689449483552819764061638562986407395753960042250803108864114994445449791320613230868506083782411029288667679496942388859431843481862184784242495464200283302163603063053435061593267240444678860518930020936295593840693735852314096285394022525124038336170314161512300565128125527433435708582603330567878181692796203954673563288843035005265103278585233815608283708066778494957239144838171691437568649731911367062033939959303584920421752596685094073378118439222675406522522491128126898194156115123314032856710341542115412220305314207589565455058308365029422661641228370288638366412436343755599421740084701610616783158369467769239545566201607703941920255744386101343396855513104085228218971024719936630935660125939075560582293256000985929093627859760030867628821305051815677080525960325657958160273868089420748619391172298448301040600249896142274885852278711666189926918055133909704868907819564829269213985534845370486571007160685149658972850385953305208547270737535997647935870068922247808875331863529248139313988883986140203707863970742039338069841328387646873112999849163905168126270802702676840789993231444948854812765007478951666580662433591030639756974375752556179589372090226964675436511073572312726614238789711872513494549997425949473300026054791544015030956590327876906885892656994385921339804454946777636677164576311993923845913496694187277201424934825386976763067804097459364536422889242834565094368801562302263897216647745048519331028723541721717913951948458891659892870804231130057588372313448225527627848650585051742791872484658255316039936025496439897603972535977800953931121319589490492495029613409484225953455902464353944293115457237223808513705910878926237444473852746614824782971957492654968445968413241965382304683682690538460128866001049472304223991045663608612758626562489534890516274559140085518106493050344297819749337763822538083232831223960608091245196287916941821518443533939810736592873866859044311899326704152960118750164318896236621372859367507567368560708488341137998661728515578029618858541669730336079446060372284746680266485487603385891215613563857913252169964125790229465398708471177625506459584576045294470495697832753911186419199442436301511513612244326657520908262981827785483277845341612784914201046903599365003339483779270100759001675801845430037758892615358889137041523582600254747935820857954448207383622163935006496263718951849741438126019106518248740688074756227897062795623195701999413383390655276572165853656333825656404882351483038428959680417170363288791065453647462250909495180293501282661133823789103601523288229362214381557187191233577439093609278559030766409372040148644492803122571158903732366049025364161674126751999677502013242572230145638094774012533163813600836299649281478242561681550419176174251381406221694239908442079676243478083006811972846630677973329432827955025780381377019764196553325554941592777460347957354546011905888858379328310649732110221830248566562538866719178571683894894439368404026831924327515068879900565062157635941964179738940591182054067302440733742534405754795023958494160012256308418776776734246490915061918973399378979119171967298867208920188838912842051591764867605259734142210915748223925683342503634498323453302313047710799135455970364936645329732219879932731393743432361403920012701461291060537484996881740204915895980169403987267148577912940657000860107360700402850619157815335095603148195968481754782303360056512702592760222752673959221810750528428230623424871756932245071920021775189627387455689409243593069522841230257820759530617437904210892025478461004561423312257988648732641186687342098607678235191406062458895508119297333603444382801797175898372984490225686794342825880374505489821687793782046612143177645843310368360905452554987899732930812659014617293628417256266869300923059898211123342559299649329273288072412124827421391502037690068732186562547725802346690470057536097010605678872426321499040566482547944962329539706495694134195351978774286705084126717545941068408185366370814253257192598296375552066920550839901855198037875316686559030306795034422891179809889538797521406996378382561814364197874200263167438453399236797430094188093573862142919529770271101009498188371664074247696590970394752631489123586492415541560000252019556483016488351268515721995159329302707063935241636474970719829444256187945831851629159839678709376010481293621891621946111297125129722485844665206477936708186382368801751225125095115475246607710405231948091415021752635023958427666520300972568449229739005616409094918543934917715669255126773871016057451867264451135990299744330359456825708566380460790288208297028092068454484065744137346846262091271426787574855959834280423663675104895462740741576056671793546300391596999966828939061908403170610315204336701803386931455577915475312072275090634808926760071950569450400783779063294925727340400995463851597235366385247668260993213784037370862616238244665597770415919043394209260952797670352038827782741864780210575653151790431867578517452358452616332355102919651093669808554876202484542507603233053673570774028983087592708487453749772276748307961014371031780558567388753863673486619448426124580520649264601791241726238049180041291061078806208938486697784162766089329325219889136056078659965836392312731080355964745760185728164997383777258575347113414953152247610249926213478223634253188878258489570136879048293132445115475265624765757129610272803904343461377346737156519569374918849616794067204241369237152240261803591265831622169496923718677618408395499262911755079293319306709419393130628594633512249304912725881354382406065953662840463038105323107791641632447633963706365077142426800587083777169639096559555168863775520155518008294858190187586499009381348225850398184206119615391893800637190369156024341691393437838840292790073781047435495488868319851469163226236432942994221006533867893310625149951678945856327780487532052546700290333840253947303468011389752604456236375326700254692649040939320044305528799205262522474729789487722068041447024402996222058880603412354992915218397073281504933750343798542065817271709473902231067331018944285926193489208529391333535924388550375579824357335826104653166899213902309476695822417346961688981218603493888661967379662655420404344217789471476802973047703749718676340777515693313108251110648959300755811459675686233151967310808387442308867433670336722751385810451616954354903624573129997969847731559313684283676737341439950591883339913055309723386650333493548240690687540818403019242206378743330933894360297184220255440691159254249806542602613507917208502577188547704137275870976790199998833920267444653583349779996577450301801136911727530237905448178739338512774555123934309988499207020192777917226716165101931307604301313465153375733653404389159193190615376716642976118074639231340076710247083939141854702804080386264567577462820681860572809124606388895509649454464503372643905265895908316950322346611196093706058118483629438930458303246087250530781816549507582364250459509365417345014091075806573751044054626802303966149598594695868352752899651145533524430341126318015338610046261259091216041084003148099060336007802827446778773155026096060811254861125610827155533203395749630032885955111820293446542569380191668676894484280702943482034626841897067939466728529413131132546703437125164290358363875805729297566796544189200368369185981334212654318881834846549251143674382708934956126125671339722441625227465812658063782596111213836222675447525228507049618132938891945307177622975291598890440712111798623827854302950718881809923025275718088375225644879918621796424109334772770098792074147179844881345703753978661813272423805943873077660849750964931426889080639964958815694600343222651959188887838135764890817302601836356514397158511483969281729454775762845333227547686237427078152509758690821587145777372432601715382019360419103652597554596613186178912889673691297599820820147553837883321137332848365563542132075230217936192620619638338453456292739434752220776612442065221879970932781380315808314068778090927571385644404419896142605078389375302509385020100353113407029008466808821982773807557344536243189539504480362684034861754804403281168336733338301343270730491553570368103227924260446034187271688203660995746691254134444898206460309556830066701019356510973342158204782166117243027946304085017803784763982747987047211154065684189199019873223184164125673417295294088013336760873049364934841071139197366026314386614738993339209653008749769151743817813446306087881287977105804661807665108763175657225457925111739211122859257952493366489100698338145679391403964404365606700629298707723378578421288124178188664691998159068648702030914555756083702530192295072758191200926920768796476095972334847968854435017317913577127934445622540858500691303442192036878836272495403422053338779326541757977379114400917698773783885883185535631029920801726392663572193210296219066093513846699159366210887225168554381780522572902288252738536637368398466399219848859439593417172750616369882983032363532536252908133338067958384354616165572333316236369863492995232450868807745875651625754625826273290446169034030600654781555790200836835847746393979994287103242792157830368215609047207873042967402101928215073441963221671927706340530487133018749773616487860936617057734572286270640125036987397320542657427685375708087744232081040324370768085843586381208250003261250535958232324686782575280176998174135861880958372274539569022273470483390742102418025707706590944771492464929097219316216468245468839414953685580373281499140839482541759123774723026186788610624302072425286276979212306448111927300106878531112403674679227097993105348383125484135024287658850700677552440843639958482179855670850733579807496832677483636848133187578735068288808139545508790850886150984774525847699904873957767483311556520112165964880704849277891841321697664025607907504282100616041990713805948246565332486427495042142853142803311840173915799611943252869303850563774266368142640118957833516037265175563168230720053043513088825861406643399952802050724745794899954006940191709767844000540207680654642551793028693485130103990119193104949403898043960350234949316624974808062587783204253184361006494254948303613587429970028624910499291524138223281785520740800751612754918150921141274534262398413063723908029072529885067276698322467750457069575400641618579862716614804744420256964958667179553319644144133959914891466425080651631418418433968241785420665445217729227411176663565550807853655876013333366885665767522502396658352404840654360481782484020964649450176229733874315403819748768566082800532018790022069944160370313824682730415472716526305963448279785461793699043974744856079228119274835052730032532006433198581437767411589796735612181503690742470963844698052836706705770669083146679215027711896000759368676720951585998037515647792943451838567038666343653974979839047784441625205707197464195429074914252890687673015909436748943219670406557435938262896743211777295613305925496314484506194340027323932517724105581119849773432783996072293393515837505155931559261394744169629290925646471676122717028182779666481388032184152503588708276589204559524903302041715846844669563406889933141886014698421389640051872236436347952180648571430478033503147195943781191272181891393034331156013583995252337952032444399550823829036180501009361408676364893818519864093575197267867609642682345931305414023421344331323570185424917324453282322507881437399806965710649939034581579150255256095247876209216474418089494544450585143551115825545702086633853971622965499045046153913799392113590176559865542181949293622405016676033531473218055108477096245875673031175529448054373862794509981575191810091056368788517906435589900005556477329927868833640946346260469970650169215943464632916635262487173492367392644167757079535216611392555175415966418482782804975725746236321567698049606713192462841694672618513674178872171972928858502369141616708960593764250556100658225186788896297928591106029640174615824797268446999787657239279629703164949760052959433099339462527502417885238928811447495938547341954834988156687976238531360812419692899852400958752033342781462409525768449648717666180163696975158619583447233164522594151046071422450090842963746332851885249623211463393397207875012342007671377501124006876943180847060354199835759957297029244453367367870769577643009004243577461998564025497787049682633619801855238949600400505758035088265968950784275167246871226245600007778697307074294800388480327502190153752244535859900836555659798922991893854175695330656722221441345365371188306652834446880550205500096591735637026337667623673419887151337834829706762973477971398067406607393346679152461499456777526968296424342010823941116588486299835924739426025611830457599885620069862797918378552012273668826647150804714551887070575537221080257046834960126921980424589363248428380495662237253750109224948017685675093060822151856076615280996341926603995127869000987003214455740835059959446123783326266759317402158521203893144703329507453072361465653640373381742047666762083722021533867876381079810691744118543712156571463454378115716228398918667286099129048394294016334872193645134327219479182616900558253544016432564392109738543798947860300753504940720472545824348911875462648583893166570143788611686193396464917473045677193861712587017281153023903814031831096429703218427025600218882972034077650722934197169148956866093218666637315684303026571912180196124077351689596982337579102366554992024250863200851611982290675073353327478412926284797235281657584703801020360822241484671969962347688004694466930488320801289350279292256523222388557315727335422138444514800633096522547518476277127636491932443799752939894596326048718749154739755092239735710244781023739902880167684916568715520638672765655630037415415645620988400745010673944867003952426937521775190055612608806290042362407631020816161313492872060165752888021380538989705983239094043548861357874148747830623286491017315466037382425573058789741616358950938797914873768653172583855662020586718544946204293281168201635109519332920733851876208887044232430881188454056467779363278047501010743493853823270824214524043650067763289694856713727535760797698697109116664875459844190497209763935928861676446299619429929201425464795415027240503048111214975826932230665129299759453472846875633020561030131381365165902121848052882089278609166853274149729192100947261930164652448689881430610073413849885212108350216981565161745938929098353756131556984033759111627708379640575507671736601663085069790805753500470243885195249528707038981162564647235386468211793537642939489990595051707312879807084046936833061089221551583640572450500531677375825178555828365352346713781899839188995433601248175566002866472744916482504679147641783606330345875819566643205940879856482181289111602263659250713438959357660553333330233064480946435301443436857962119281023206677163208311928363763425766303390899987790818315591560564937378818738804182215651642113336598841217184464656265649543941729125186075774224842604237206879232226113096044317433278085088247682533988207815486849827396709876335761784353727154669813168403338879599120206228610712576223786987457883502360491039948639642276361207160811313206686647742064632242314208889551963997322690585578625631600024478948065070345306501224164248058609397821750573593953833420018497827782554584891481559788253408896435894683159047637732840689657137731924020299433764911559957462020109839282948093735748196474477316645787513978237155250852332168438231748692628555004839356255509276529317691254679700182413573838607469625985276780027384090238291194345084156921077324730755500306470410246532883342966357076607773993810524609663968942803710930061408847227708050929452935501450195380137654379352267199295603686260886414871614606180646068473158696580295263274950457023375852840925267313224635650998022394945816953547381468165937727660470052546359324616995538520791764999241888469285857273754952808096736725733977980384543924849663644640892105314850782596739181876419715246739310691258369400373724956992206717295839483160359670445103375838482594496117685616980538224012977274959153441616170757688110913947048651335748640850927530653845783588282427347283756224044824777255815168949529715175303692912926886481190299099154624715982358667482115150059238312806393672500496913732372119636716986767292669863280776329956766882346600386363655400466473597574405523682381359356546250623025623588337236328170761506855925349078407643150275533445898112379901036482225373357994491924037222167772182487879003278059177250257271837002471810792511561753857839911497997701435841984218401354139158533949005902996182917063097942997453417337112098457752635236701710840258309761305988791603656721673706418997333486434502067882513705122074131853922205423307541003283182781911609738197186844323707485429316206739543253653678740301283542425332004544277477918136795216003634080261763954977807264502069300383298350681678208483834066828157829096779274420700685968434827971335038253391720417173159498444996436160968859693430278860806372657893552960964666566482293097204969226174088317645997758365211395879963171460301469321439861597161260187364036530616706325219351804713248055167121742505684579807934193005129802844696394119741153394576731749294014450093706740576647857981031558846995890343208566618615227816150588160635105153955830752383524489715307087775599687258361369182924112264130768677298972376710254865838773296208053088587256937509379146774556024780136414836368005420460265669848009419234585711345497177892593162170486716122087582553671844683505695839300609184563217571818268555689539209116867343265138806134928644572069039062642684345150110045181633903544326057329940415409755592982933501354964168204658740537164164915775201438306728918441087536369843908768828002331770835964406004126246252147669283525010114855153360066591436413015114742639914381909310987410351219861822539593992655372333373343170311843872116698976314334696855361711736276071009931011665345170746753333885674598975023072455364144009050593767292361823918837342592386743370899833808344235160634493777020691463089557090659117846560682376477569964090614327255058000365580903548023534566346480048306088789717273846702232268707118078540891376824659058547172684692439375547025640932049570926708276261727159404962902456660168344060684342938963453755350014771286862530968077497442938640616548013448273540449719903759258590613848529553398795438271901391137306173594275985622148013435209010829057364536441158027887221826077574061864560397017110820462185664516423443600602957331685391411351823781123932390118795161964595702933110779823513626461480934781543639714011015954692563960616238660700549863513702269584547777981155415102691437773391336353697675629879855728459875938040784127963512707303676861108968203079978609089626131859022065353501364911954578869635044104090620012584658620392351149782718870521390781333550133324159443427027599357843184111668131850845307562590243594500206247589284871075255861988745064941903534869812490309949809534624107286370396816223343946793536944440450861028919776165694679213971105255704156291589193533471206809548281136027255632565750173880318419056595155001772809547326953795566747818261881059551768981286444838663545410953474130968212999746935393667453190619378861334389055788577649387978124735996629394659346536844672216923844664338652710980112973498875993210772009838867010244724838037131404041030589831712494650398132650516734506216568574461958634230543113889464842025393070494535609783653333227125498043981253941293555664185629638879546597245138251587387866233874756732873113120514704395160714295541892282561687849890031969862967328842182298625823239911037895978077198709328002828022581588881798757744107847468570738646250908145336834860443713985253957548211914770596053809656252858385308557342910174957066558801384469524800121955443116065303621992535344355356862421388556726595385673256051272549803322986410371410728573257654850455835729694596122762950973456130414565046640882495026650641613565497802921840731633204883261714250394322686221950928116251955403562417959003506705178976176131639904295586677250631960512749282689508415178675999764941239433443963307249552953197040356857867304073674813389077651360957248177804044005821097730288020223263914827111670175494485965154713453983848302470045368542112107864987845751884153758507056159543275166437271473085168339519782045252380461751517359047412500124428256516229326022450493841473472986521768918355714306968532743006475535180288454791234091760839838326879776994519740202560699847841425345550730792017619449077385664293219921806006628849426616415129859056798343446317128153961850894619087513343910649976881707123546124180345634357778813105934798811294723850019289813574963496954428854420863901955892427373597165373101306728871266475868356434398747791955717769875424179571158107957815265579296298992780804810359101114492068592847204142304109916917367396152547402924870665562651286079577308935014389868053520841934731974867414581704115235255865329304708333234029538406189938930231721752185277415481413366521939968054709360377176111733178792615506091370615600982386379964401463607674298006883608381420859119198757315863527401671774651951995895296527317518941388433598178679428895949992254739397809705418316337534069476840354801881687636406287181552719403189887660707679466305466352854399231214397819422446438423893682886295657536322392369442057898273305753698187005848238141231228854736350800232024954413947345210682666879627277102476496341807794979956783402790372828400995717692095811226558165729015267096298639893766946794970754178358447954394494615735418583811655276487636340509189835689964235950457192529668576577929511782979591751100151797079553381833466215499471078658255658705881248026885650259134700454968191840017236504305885074963751183950410525892581107012633583936724184797147607037819297202152817173166805301750024809662121091260593793699413912756998064210526440503711463438224201140085744897817302373797547989988852603007527691786001422168024301295814850625593681617191153282765475929724864265061303679501650106157536302659264735615372602228614305799843127058937992159767564824180361094064663171133566763780030056287182312427755287183790623725046719779850746258157575829815806608649331308538248709812366201749008394342987551615409130090416934959221840427417626049663240461134561857732878318355764494193973373022010951010553053753385169714066274212026818634212597526884481889214027046280467437969065933707396065632918873554755962732583570801678645154240774264826559745319138372079915172701001256800214923666630990083266647505980802734047950705579563080462994760389043032577130109144688605262161146569785783634731338340061206218195732659596573126792099381419492798439651403223134311453423399007006360358256680294235985113895698542151032599532129586983789011830890632291572697243869491587428401649516119999361657317213162907662580839959911649716184009961614094992079627702147994343572051856916005914770033299010149054155314082702813447364671614167706719745979773841527152946387346729545549182351458840261908501592056539260279886228592006876779512073158891312819878758896338010082760140057779539077714305008533215956712818017478785561549629117170681665384901561331778559589937384513025922529814712627598295695185535658859705874305320626221432989054247123367087246695621472012542802098024210189918008528861770152725360934792805223489453866504030386673916203860259600931971468184923836501444735375217907694052989471828101102760790991007484769471700076076656482079561234665817667876363248159567909053871532839773697485033550961749019710591703022534298544506080309636599911797013515599775914809106758898923851438063708360550764965163846973837580669899385479605986804843108259469797160261431715935856067702896496905147316794259002550905456858051709965591679750631914268336133897139040830973359018404271224090287861145326156726174110835036847442014646448149659625010744616999044837569397459181108207297557573712602168971644111695328330960077920501539422194637973102084071278602899434146209950291885898466876839239734286909565645585115361738260641840414949894822125242145503175604847209203493440256489087371624122752428734148141998940363520477536530637649554579154925556934152729834672443686350699644871361195770090168569855329713036295671714747120857299240870055185437790177532520614736184871634999718484169831299764832879345114109990384725824825350754956655888095093333975690697600892614569337313333972326072393739709823068200847491796923823188758264806791111591616231182460488157377663611523000181787633479593229646377483826128087077677188725362544380916620437329416130712690856426674405326321096461324075991519439241043397074488131421750713805519638555174975297487358060140592600151834511522192589528157437998261186539592768685752644739182499559488974099757337728548986885260550313538740197120001886599078114062839810647210191189854512066945173399966217356860724920238404671839946139049828707157565965723928318217630023548730472240200984311149087530863308745971651090240284425809151984375302574050162686366839499931698759025532879309383343438382880307917771384555675770466676282273724749723908553494760087979229974233210232529313277767524490281762797968190505430955340584799067551367227112015002818719175396559351877163380116806043159111617083930982866456548913370617067779051823636681845745687469211764930598748707739276373942667938071476488951833161833872891008385318553801467208669390853801056768978646167951632901076493548224707918384027509778423094138207173220803718495461761071910743137937577256618240949747048521924562299432473772787429768111821897249109332682326868493170267698616944658504796778138640260754779307800319142933155425977909749136181968682818485065338438367620804707713897363821206083046594082775434395380026560869223436731486286742151959653258699100369375734105638203907883958902011738763895004911523998204316535309048374412670959282250060635379492003683018297375356340350236563590555899434499158358781999050155499366058961484136692495099174362366870800493543520480809709532781290018316029570276331836701181238114764231993786144043775907846516387649745248035328012672023871117429582906720443706195211203862177241010376135193791443420674248804744632411591418335377066444698221473081059685501445780454387895401593620547176836302732966929888295146000009974617740900106835673051854905813349124074854558433934349623533085498264487433912294341778638472539035554430152059943511607990853226360874070222019251553448059510451739142665041739398914548814254448261947525228801773650898450868816673136724978391299832718072777795403969702725846866806769946181529664285311949659778944372906404398497609961133397302682615629009013235315791075331911769273596178351065783271415336307227910958601607077661044680254090488394299229786478733254887471859524047783758714218964366097139359785394985283443774414163641953642686747476850509182003375351128250740709493159339563814643732329902450416513968496962062116029750020030089147262853012908824884526356701913972155108452157908277766349077802565993491886566930408629049934916160108952365955577713126641114838427977557317505069614006444394298722924962332984859946950818795810663484590134391253993290861248135872588886655482814101263124265731920760334183583020569337106405209532028918690380001932409060793101424487374207493913863177438323605013045506286687975094412620392913290623856649161808855799478501210722174334970309444892292351245397866811582339383447090300768182492969861800550281830035245914147041922523666583159700897876587607383018136290438653829104821072859215760791760681860260340783459103486746599999938048532856762317564217081829607219154650194667496851052944720736237572337651748774607239161427997772626346987086650521733101884369829239382473673068087691165735522633604687033417550160451761447204169580824652771047877170527144614086460499077211997344778752087612654968682861758896623415273098829106100350178429627432516259954155946144747307775440933531206709349963877654431299222110402653571014522151161823206645963109075720418179462316629556253095330566885810463163900990713101749293411748015530390998531809371205071868824320314525715483080644613186106478379740077656729333354370561957370884253222076962177470180464776170442037164204465650942694865284092571242153828239656082912542333805043838635985221309172888957335399142622915947791869900907022072779057410924217884527921939930396511060121673965599427163491698133785785914464663985625997406589976259622640372839534168940139168965416019886154866905989475409994008088787221973368878684312953079063287969351255728542444305029049566068621295757281950283242337728680529086079636868623822874118192686854676091759179714079706177176922368434914836275616173856445734531779779676784392862989215528736859444850817581776875955011574820472946295002475685282642001893451819034870836146142453402397906383598897070853916056023271649988192017377153249018809191460047564514574484818434767835612372227967863227214997036717210650773978145028484234818607417283487823148970080555948431053245404232617540334784588034552775525997880933734963322681188164295156454936142442005000925269576793330267410337639047814165509098894526126259205689605775087593712206004889173390687862942433410917706957016830486484196633634459633487838381776981627976769818814737475575468820713113418575240496846735047853607203034108588510740945513405247698497385012690691770060493056136306964921360671264256409063539343001870932978964612630189525504551578418700559852463438891263664026663426165790631823160862833131072973205850560249613206821154297841222160087040506887345468751230973994028462486946579049332909086208799877222596978431565267173567190228806346286403899818302313042209564980694504007733495283535239651238979907659918975116363970601255519108361894307205467699481647125570314223005875498288716442190763885057054571861546221635771344269361921305909391650729987951011826682539940247222425344341682435018111565541050491795055908460859348088060581033697946515101947930171867275828311372165484802151138201617271977612099445459850018536858677642132871961244620045984531575100707944998733186181045113902813288178106647959580211244840429883104220823943709184206892871328778747842384209587727532043348961492716062384592785273984621561311364571098381429559882783926642109913507333951828390057032140925779923602273222123654696789054853289203069423292165737620953620599131730552896694383847734438495106557367784461536281385793747501020430453112386848947341173475742427501017405794371637442380782417815133278507319102322946521313874624790045181744763195637951631563289260101433809762700720218791883808261921835274577684422748351796297313371938894389786904778806124079481896594757041581976365783775891702065495436218812185117962159324548120790513762020252232838151528398458205750431499491808792705954987114897370901106057013856370177035973648884500146296167394859099605260859936259410105083771269987725177455390660555442534887673682815091646163150641214731325807707986531952320430980141802722775344131677993877373373814909855350816616816868511243376263545330026166868600945196381546613220355694504454410781576926524002321405566216071830091444192130506890769140690441462040982228794571054242353122288772573148361959183102806465748451886802085436169781524981440007617432572410793786599205322433441862061252703170597439861069419828631789361970038213837310041612925464606571545486883072928649974925195602439277697683138093401302176097667938251061381252624664997702894937095406826996890053878881890863021769601305956145668928979885036983717332084800206975764704844518890783029103212680288872786168176912150768495442012198597527875649402619763502676654106104325992857410472000406166950848930141586652510764709964917333776099580250208313710508224115646529773684707521293068103225374094418003120833464220825510505136404447381889354022975650830368906590012434538431578238940952047575391731519447006557372453556961694703293233675908788309901397805055690012481456125709664832196730751539920858309033983753949634189796369974854819346413905524819767423140746077022367676805320654802318689908686885269782628139006703876925067651881312183604219519952810931531008589335465159547567303944483078086279988160959911604987233609358345383052401017833680031901184354510704839300540100425076177150586423180369452820295589264244183855389683636982106105282554504520262459543296772733755627368040970412393398079727721852400997239746851166815963219177194275745809939803398862008997016835613687502441248015584279150526876208969659388663956774906209248164855407007676445217009998935845579642393008292696907281197101118130796724383116033739102366550595990148463114477902755006009967050526853535550152405630273886262706172725735566824413443426836683762520265869703553161491457292665165579075902043005136721208802420731244354553308978464136928394813216875438182460343182136298601770202126639826812317795441407229195081936536398084734428773990833183271830789279325374184805226925091684001392539420217165948591456783474002497356965920583021718301124040079360448552031657407455116332156957589001413554449700101013421985489768608425131290212185758886158356920590799149366015275575152046521436742390050366249480701089675707422686590603357585379363303503764665242657921679507893209211033139762563147484790032037516630035917719731968042589710714828483800663812776058057645043677431299915310121636568127949257464860360431010741582139163945122240165244716443634424891832263218638865128588180593849866468182078954843924581556167664894845769729547926648045523488884447907904466468113117423603662518595731068590062034368607362798253017148049469750936802836261454684088449758170444502524803761389565777250304800636480048736083821446557442664394780357211353376295988846231605240853037553832602991458883082649320503677647875015801798032157709817188239332647258720502805291371908412325808609265780968014205465190751032067397075526858426632321089647507103674128434707359038986203271505849108774336522616124313461106419771167274209187854408945089266377791946721503253919415659540440877877383285904164556006854569796676507114391452162269789786659691547718397329874454881377158369421920264057625611078074596933619393847537415934275664941646106592851818837254352576923970634652071693667719197585031429964842725892059312472447404094099915397091593912076071390855983103735447477264989524032214751342841554768725088919379562109052672293680660818121914547122786746823429868320170505681715366888374532983485408801258768931608133024115187145292579639430966139393141224389423783499797205240418942494230925763164619495431687747240692031953916828181575855603910978881305466711624489508270584197719604620632632767398610324199844845229451857416210888623742228809861595656783892586230714352942495761012612240361512977021888821362507915315778022036792272044084506001776740634615359897992769471963052306881324749447985351521501517890709527534531183416147899826481478745873275368834724414639714480755118755498987564552021308105499671747567516147747396650138025818532520287195389898299108707357993196308539052407768995082163389897565474312372312106590729079949145697748753684471428107002763238679572005685841849212235084079251690692028895714169435612589993606973814587081427024900941439117914117578225221808131116047909980565666738943601879996126103851932575360527683611187233913103564539520658902794007736309482535848129170468990302879951025376422680377128901587568079048734369367444892163625383289929180234359866899212458159521676482909227687599267189534733546155342021156785455140526166860073715533458482854351211894291232784618827782513675475755704958947218867995847974563726774477022652194100768076590645456145314342903493602872740844837893393140829645703093557739502232942151669731543893857787277835980934280683161171810414796859005986000636140538781400143080739348832346853429275265744405932992080259332023322482250925584339287850308151817544398587403994212608872697332533647103717435333622692960928865473691139108627996514844957230491372335162384352303351650767231683370927979957416145589916386260937325823305863378424418864824204193007225643149918057504903080613563302884874966565483006742479644064829238990436760799225901045637395108615812110397226582703604855581442283625963257850099032627845309538081545432467278862054964964597673269377745210848790160602308708214642742827746923186245794094026495734148379229879994699399365987930957558478793398031813180099521685279944234278662815773934285729881228598550509500734707024916532376776643482401347295249088462934348601475681533249475380321952801434661326476975542618188064148711376281697412157763111595730331593670202885014536214678667754693391824675082985578524417468901892070268749273940835845687526888955765112956293708552935390835427275346226684038740884874602767966710474587195031428148855926652351634705994625542392882798422335342746653598132042582841107883778774095429175934235007556615433541395531006833674853981743976312864268807188390128440301288391216823255547649250086322754554314526186546645975042195977729128213469322829942243380024044695828644993609159700019358064349762779658457533312718194633465638833547095087174320098477503331250760061180691580176749127347470766142078704343860913405815987074128789613590740915640917770725242786750975003515688985395557723528070690293491244394341808883389951462696054215032207947532923204124356588891940567043798788500320251674162453110253625907321236256219211067324968862298180165388600368285030137541783585222278648542252723594062438441788613602154213155050483527385006788980618656715178041098666447397372128474024412426592414665322077726321394916402211469429050165155606405667623743699926091578406117284526235795335333630808156868086408330524875634696043251315552134547401158538866691993620412388099480321066298735019245229834838396174472894438528981225283651559917059262104034312809712912015888859467613590249005325077673735057033293826569523038751130509842355465150927434075375472642172149731133957853287953625000277898201133349339400379144914194540704235216070184761405537743747596252029619077478162917281222406295054033230384621957030525495059566599449301681351992977863944119336728725263641018426658451651172290980910068916547355035040853890631982002694205768756196578211424991502021172747724716501710239847348126723358068701426192287738128860646354893944824726132914950939975502090906767807533796720238024253164705481285128975962183619929486164357059938517376694748280713144939020319893058226991845809829139526715107596648336149174282168065240585440302915353537750940503186315848382488372621948216092229495279667875871019406970762607220667502977297220078320311793689325389164032870747611152940152038629470848803531884924268230019938084632667729614457031211438808772482494529489242398570819529944727137574278871507453588527298422508034665102222472367448217334037561017827889089124076967239908998823331986214302946238453056856242747884256317386964857384197036513097219290511403860537223910850502602509068355495239554328743569640636243881112697298698610683207739829212688853833904116113064945180333750031978795292360329716996457767736468933379889044180686012589158402649245646214206463708527901388471376250640292660484311690236074321148667143231513553159048746988046028054573517370187613774047074760057835443628851249765072450323768439922918749433529087239225855330906374270369906357451426363562792604827279349977929709663241710431826601456818928979994508617046902613467092880254620198597839697788242917258528729105377828579838654273724828750036875158043487452866206589196710796847143462378058682012562641084157941572986134367325151353504364416554971951734731096424115697564197907365339820702964754863307428712578475448479369249309653387299014313548046525397931262476497533599019517577840646865569398637604658711683516864284779412350696235331190606431684291737452093276413692381158435692530599196222649923843252607348330528102315382083087902863149899072909007942799200131994117384920377914330049474457452581184600850332670581544967824643853355912275126971712393062895686929864759633636821921347702365969241368871915648452904647505133385157661962570247400489533018289212895267631132234735248471849097699973910221343790346719410207515366390535438022206630078446796311208106442890654617254030458380207570532552362544951196294099058913743191494062416638649622946140053459472330823692499180713189818041648781719263934504508538466747203699277766796652310495065750138595535227666367100792852301194012338763851350919578621582161201011433068628714138777260236434688071494238459822284871177878829514757365106066968975584908205843163623144895703343472357209821998027892890484862936564087736624094872918083221060348558927059228539629094978574237216322303719640626578922201662010381234222429048054776967952772387184416738799992720732319493391093980997442437904074499727307973773102769612764637595778293729047708205377958383571809222802196275909502949971745699785488519841332866064523010347665284216948022219168640597281246056494806025157076290230094246036865736532450205495400549964587626041023487973182035816787427494267378735169214252793387614648550172483418333444759964139687655356700721990137215194167377821855464370893886778925004661267171567692010217979304444641660021496075505034204193840005552761947961870496648707196903385138313826735866157853917905417069939737270437285358022398469938729991567870301820314469575586727142083324915671731198484271957201434556668433243147622889577649425769733503391620925964801897358511999116218062243592685756005566550369709605196485333441720843337558387831235278668304928423128034532656442925086358752883757427191540858424282514934100279933497354872505790095617184041364915357662082439550389588869435103907577338529729098532376401678519765371541053306744585921602235015375869197545879495521326134624220174851106938997271121879173450320290912878739836580352912238367383120483488225523167828094821613239947744906639119227141577106298409447082766412216197570708910360071926778086600108943963327884609299694440069315992203993775885802955283563287436085328419908968363770607554706003413897714512855535134427303171457629536645287391375332349562600449016339851206235937915088950473337101482859549211218336318906094360658163627353013048774450825171230806008364283208724823227170944819354390013511975711012395522394681484022490868008330199675525907148463542031926767449202379609335095162529691334560645250892195338099573959016486020303170091274381747198723598683550028473469599415679623161133933884478465360620474151022005426714848176116941767541898148848138143887446298567377295649882585005867370573733824708466454539404343736635274635605179383639732155457259331087978513303406857528803456368691639773449391856721947940260452258499482521479947247897853132863649939614726126552241419545828761035536879517718546841720882969188582176932838645256957989963781070111424094272540431793235436776973262098759027841161420570064175758616316013035699675879764720752429347517575412867479366195951714883045919737980781204734788903490036912501387377318277297066249568795496873016053027731942838387296915636054753130951059577290164073342404881268254591356165853438199682448296017234285411466291581712978136561451602606970070612043707595875473454150378862359684467988326834613639813125932880412884683802800738069986660950604039940999853330947096928380512940520055467763352289689877453278694601354257760717086376186738990709365022499558261144869038880701020054978506153943135826109699241907602832860265086304206189608997742788669877864082486845330454516571167321471115468201859947947645313700496229651475181703578821750610637898998949425862510045184913185000442627647005426826755630846844333983171993491975263509502725897776339555467705278341083180713418618830843105881962952023928107197175000107895613346706670342929161280234792712004660818325214075495997833313704237308783852255315875534794008486281525503533530531371735434355043123427072342708827303453333191901504946429428028886164447544725185788313997353087086652560578436069876462941811944742483517767938691221119976402345212965351513254207335300621283049159045598468145053884614093613206006021335276290054239455774933497782041074613820615666709636385794934961514856522862388930236483420508176357534839898001452124350047119142764762554653174165332275010203975524433810533903459274696218522495968773982745322666924262388818854532915851204931672977211415290427533804778091664178478090161375052731402321318473137045355102045498996280355644448264094198835867212673771455701041482737663634262609748884548619370215900011867938663272767258845651741628411819060132812639063554813224840050468447935610706635874317607484033823890441531860722388477991100590328034834999213538809640037367094060153894168709375486400850117554553405685782918478935412206130294381342237636819199553761599760359732710127737338917158335253073106306028994100892081023216279671773276158470561545929114360480615762533711148517221392854951539970936310779567284105983109675504937728066841789567271392167764923551769724606085909864336273761515249057524486605263630942887443771491207485886496099551935430971159358106894452797186762476111983594610155783271683832128789829243374131799120073770843094519225431081239192427511483594591432883382808154587221868995126899603349495586185732441971259156269744276829077465250951052542231672635744845472741745769340816347315915268374975294978007910833783195367980786243886595011742817853522405406194569448712556554154449201243940698376281005769048441194539221864468065671142781154960297852951774625637719714253547967330106974909125588897865580506486063416520435728971087709544021271746670318140305357686454939927324976114099199238857005449029276789241547227069610888229863538816241914442560986410303385910462532289719961784384018510352514522525627157083177311491883772852739050244659779756118242748389921674487175304330494718674375100477452718817949984688829693846928307518208294556999719401079262278580112844479006532665146509969664047081700232214088688558199331419298842041847242101614316900028572602230870403406355120528585485208802142089449574716684240773298099153637546702401410740051510322570702820311494027123594637577289018732116579249712650345594886858438377434686734081960216303844939312267612866291193572328517157937784186575926008453026411108745782493555922350356194615004665966646286008404789336803263380499182753880959746165370932529138605253159419196191917757995031402439408963544848387610017867980135654320771349515824644544750751073704774729509371587205041062912414404422407166801907165843792535101292345890165687150693109134770735194466123674676336747019222473075221795217570195198307709577851223902959155207568853609841088966956199090353511213666287733407845318827196005694467043057668897821284672015216140907218611626110712239727010992479414770360698603090424153405545045400984625557842311882487284715801250568666768925018948297488843905224885117122898499634597701674964841910394498890336202592023023788725222931146656206653409321267843755741577651690246451644853043727287557374271867879980442347990456961946920935102130641674086491527483280832706346736478121219752400326444419413981720784489533468047186213968856183667382319699717379773064236099742057965439348611028715077372655654190202628052273651148650766376636799505832780529705098289422166909462340543721983614099513116357623711699271907745510926023346931173708969200510521799923843366750394285512946997942526990220370187410025169964003168207735434461551115822021208633472724441692361468732007163862959858935029130248800484789666040742717181242537497151334855379634398442488741747916923758506471021195494877784634419566074687224685851241968072084330012251051544531692877061527269443750096788511167795420575372745751329225413455364309805093019809148709038327265412363235754844157430823026319832664354757760674049906921612305972849267967368886485956240696475564354272691195565070291045040674270739672598081256626454258565281087039000391865341218776117083719179433602828475197311322864875615226623688341889160659117366281318031579571333731475156845255818973413675306853760730538035987841388815779776605770873031640152690729038534128711686545063209384094770892552752472313101035610477756532966496733812815363186001216865963010424271291390894475316962331741786800760533148121589566038163009444160866428503443108502050330469237573776363563693374597915822631439851088863511502573910429408427783596285565209628230980396506217374387223545300774617147783239812353037115598914001804292659743729954791696850568409688991140850384238296220642188416881828072784407315692211152422492960306562474500139189376879354016462426222641532695938503710884826950126363758940031122548088844113370255821278088407071594214824498021635020242357487456360609617436366652596683817261863496560014986263779906375437335671501560344150091294131003522077048748981974490576368287288026125471649373569724955694111675093560460528646949624288542642025625342882408198134585168833933118101562846581275724627316224231856776379329669449319508487372969265009846979204643394350219468426311896683924715942378804698672410198784194269290425931835241194907529350623557244325531192138621925422628218772223825369695533156731885878994702545381364816705812921887886686171393833236019069176709204276529994823557008462015155062002270630227522410990142124543725407356112178646779414795561421283899970565138218813495706301072467504204935023480189792570641900603730547259860816839315509831186399010500321734991792138987536860238909931261810479847278015163455584867885495784171762592779402453687119323092136965132084491617911151823189099824680660323756326091894003007766992632642644261097032764331908424884313902934328731428708273014806496873397710078636165874258777561566659623590531319555468807220425607397690348351434071789650169268198229384379230734684546728101375975975597325314996515913832458913797111388385319041474047589407847832008586403636315971076270648496740011722667545089195778239795196670336984849784200932615348188278804456837880797942766262855046722287083384585179435842287623751078309332254516937553365111176013486025387703692554183011700589219408679976833275778219228603605981937873712634883512181275929671731269589401819363361473206314900190713293822961045111407976736129715529748966743105949377439523164132529001293408392608956219330902855956848526163369646013517482699230026621312007585211522754761331024432402985507843152129614378587547395301603930950016728273150882120915959596001615816239832617341865450824895679193441808391238370506525154146066405060398644372147355709843915840460817752482827801304313089102952679346977208884417643296841755557567645677567124817351836388639829039948334181515426429410153861276118308786087696119442265960417971087506055144789172742242014554322218014549628317881462962351328863110552635732180572955653523575090170328720251446000887263702468218007206506498566426913528262807059345498205532137089527260005235379815339429337368742584653516280685152161586130321032156977646098247275370632705274750917591562669310960652407832839773844117308001364116697769685577943761647822164962424759947303580785327038559361007760865960565151137892953631432674171609583511712514187130646836366787464648913072283064485641719475083378866015455063070650983564015336945934105069979317652978671134688193728062709928034172796719926626973430274652907622920123229510286313967727751337514049414771020075422619294374624818899080302628185745135763618080209725052392994421667505326239938682370827365021436884070906094646654086819922614550785069791929415805149844497024528844780793501397172355452716598159686233313770595095205106145271475917966379260668433298295316713245319218968466443326692642297486066100690690725593585802482902186295542286248348381887252537515068112988589593850282537457273039182543666809879909243373813981537598316809182580341492157995668936098741930078994114904423858714448792516858875751288833126925362577106505926703142210705222612276267380092616539686067484624462317934664472200919434446640417915220239558927468609425604436183718839171912724750856621466763526228515482568928619081339422571852380799521592024665785431365124213905857757037831862291392226794261242923810287828635634657629159857743495943002265666060326207019553345916266531841019204629634158754698820422159230699392644174479466694777820752272820277798868420858788650596349781584376042049215858035370288116861423783960206094893407059418585527056068899505604676633702324946280811134475943833415671656104123137468890702010240381176639562040120092638830874523858973352270787190302209615512674377943948668327286290999715840848189709834346105225886225511515964260355358701568354626799754161146916820987756503072024617382762630428207642632204476643463573354420199691963625705664512948108101578296000047735982882682711715125879997205608086772859777095910361113946760304099912104627752097925814753326140051390293924619343810243551484401404860093639361732229473235333981309943577653776964367354341671462177438303250401985816450967978038559606469427076199659809961613969970590376132057854354534883794537423078052032141409983602465297906313690135422149768877338649321078781272303644894737785496835730756370600058234438260804409783488154617529951771215522457238208773929314318388764550250962996114989716989383020654182697662287549494656194572136334579743739596132646347861892836705778437754821829379085681339808025329457249067825311686918239220912580464243915671375766368778830137913634885259785577830832067230808056527189622737855831192511417848461884497287451472220490816905056825662003969997434345362228428567010809233096084445415792119345353354699494419919734244174306717381522820764202637295462578561522764530335779204170070123279220530248939730607203627636442519042250415149352421526597148094100474633198947191551208677483979169545980930403622190210781954742267928513275407598116608393712783223157257973268595135013321292603073314640663255621186037817598504939573903871767363104844742588553584201678780575853215880508859845691257165026953539779327063939212474867368055094617740615606291963711425217997731292939843723333549291137504475999252771410267184725312516184634969800419328197855660758651305158690833494181423930841441046747306507835614103494127696946290402286348705317409156820252540989999862557198941510210136076779473477792504997757540324865990304725441040023613743852134260398381578047024346644527377889816186595723167272762318959690716650761864844959387336525674548555631488483360035481759195760376569736087781024363259497297937050861273455938816664453927626145407276639215059509219700627762973275051638796580983974104276441735793577693756665367046153055365965314779428755759177786024522219800820100561512462922294345708765473933124605218061096964068606866115595791865097161053094563495506989101696620052084326191366113076258331310711179785844595753865263045224723759812903663382492161925992171393290307373135319807344213071281512556964918414130214016325572511386305655650522778189905909142786217940489933912354364389035678670846461395107562584305684363834186521571436796130604209614372367560789312316972928024551238391513198526512852848694151097065745265620085075159284236849727879170430877218499082818768192138179981981809296421836186004717377073416923512944824103380347220423323479762116974015750100844455283363573291083048773991883668617739141904038562938652616082673663962375620737359342653824648613716213342751416574688961356580058667478966725578383366455103898880392149268768208987222261294434487426074505697220357076147135364179505792339213972190174456391581879787135864937280434224585333698086039662493656850325066650129873400346616000740402191702041340996220964801643321964057029103192274770625186862498740733428906597532861049126214569558745912539694931181311759020515278107721715244323820967260816479616570531979781144460805286803222002222833552034342963685996424278580118902450843087349125691186661120910316789122972888616047250777681755188835440994987631187026656939366407141698018722120441699137607772898039585535383102048754579900237746767396209081536379824968379078876907404064601236390516694232161445095063706410318535112462592144946377583073945815044614189032371054469013476973507013823003946921357122007774853849104552713013654783265021988224464897061541975800865930830032050035640364688797631044415394201494593106769132932260908149486503283830115636466184040371516687780580825497707669974335538447398229440186508231527444973910509391386595811281945121021782501120296541783842112986363932349692819006174643562132466967391707610521907904111672084347341076504477141069541144479993506228258029607019379213734992945817047466926759019289133955811403854833436548314818187828975753851390546782652303066642703867817913301229573067646440782119410922048980291042897503561280714324658545445193831771115116214336945363140096219664224384345556052992949950283505615333084229929399139681264502839736644010826257027587161788010350461367596604908625587700841181894313828945879688570985376075536043095622671664424252368742056155243681185335693296356181812374575546286943195132246429631691155846841217813606694260374226780928660921765989066170161003583743177136168633476757427544515189524309137059032274903399804068007130062935774358118300912619521029515203808151840536969264117080891975467739105507060407346435482591641712219756371924814187395749377885268439571666153414944168458034670311768490342405472479781203232997228013365198098788338858363594537574922827403760845932592128991081081302334381747398972525534486937003006635096096880881898813028357465342658718058088334693438860491799522730524151867684539923634607315841200101886177826514876704430184244780373209661118660771039105479461896338764337526038540809417866592006584763029046566243059178455034056126117126449326833049432578995503129820308950189797479488848359244310980228504644779014764031635547188397439337868713920686944780437308463466079761443519697083623888817330937705039224844213871331493953193032452449833109437937095218487073523016374098818009152123813255780054999195235924845228178187101045085300976755133263437748534967405763450921418817089740501943780212558950383189320769613235908785078644772192770480771547808817007019418676754695114171223019727109088312064592831736849960458857675166172395877487547422862317705941623359691184997112787937319462082626377117779268252410159267180957819254770753718614413873895816937791975345708289655151098529054381332253165421594071815146309045406831275851629441275734401419066366591174900782629177753591215084097868211239184210637118921122426159442763875512253216257004376084893118483691620935360393080560979629400122572900322147063179341373880893375115309698831742182234147065875240533852976967744485831727783743545930391217461848681877603862604371024145772856464986233264069933994874079788041860268503282282834354828951124196219729268360326397300182140265098859143784261193022138242633274198559327548373045650749351184643784817219029331765111443837361298685796662856176901674868925291353787884433426905593081002496141044893374374677503361002545370623295122625295931288362208441113187610339616417260548418437143538170742155853368778270000613377926929914764993903568074465742457511920337870880556734975410625445234150835541281458483605724554173740220644998306297378180071111171079917854780162177037332679351699101122879166136852342276384074865911100492429779271233477398895986622860770814202029717428969899367898857021871493541201256218779442362324554880929152321142710304867702215454983941259860347947404952958886309983685503908476756097090051915195977948702050857004652706353103384760984761313687075216131674431930916888015706281874575909981412725473134200657900562175872458294842285084188238697524790168902746616988694690339911863838048006247542749348393072523659501814853093700086854117445861756629780659862565971985295401036968338442691220728185581500547702025453849615251994166788629400969848471907148189961437746327487038930466952680239077976050740719864077412406493737283657190101606489701632184090739387034205938116237176662195693039935201807496450210983845575459063203310996685112676470083586439131884152184920634248097083772634209190579505209130866845176907767916116279039663670571593348413772747408853125334889120153174796066022267225605670253287384640921112996422379828555977947798826285383602401015918836410569747158323057030541808901445107216612778183129155940762876366553294357267447930711200768568966423027236692262436998446391078331926052462671227706373600249149508046441806208903807280259895455350494240154827648543354525772282034559911743612905946955270253988286187421377178476761228639558245060278227394696577055949789336664876278633270898223150310510135824352838953132591172378475774180631047488917793534144541292340843584231307693727393234050508642058524049275541880774605483487723578349605514684768298115073276589901097332150188742700373946066123421866321188865073379265656919979492703671041629390556397005755197342105930654195947891255545379702849890726299565155531519620031409711345509489654153720471913707169442997618116537221239300051939987837208197182473223906934038667210523614439565595248005219728388170398339653712034434779896693010711537350310083159492163900219232313167394134284248341080413265692958877295518603898212871165238167667381199980120656464937676486226998626911741013826774493898688859715674371784014287244263692451639601487870105737031159908489473326583709506337675729308009053857237363540928204828727800101311143361330943667990959844853628872666289449338541626241254552777619258804776290714766018457485674959859408108490646747032985079845257137911635404032806968983830857293985808259359300789266283567774776892351607493182780899081772704595055544607550089522926162331174588331250396941991130802778353558407519009749328684666709363262225390806610997706725028707801268649608118382147192534804479580406577326454747027360663859255993507666425192723650527750000905839352088252467101424541128836904201054790565791268665190090835370620346662489098694389708156869650386218697017444519854421384440638211156722023802179180157809644234047808682857196104738656274250648667688778217838740813055105171367200451648539655763950270439104644068600601552317645297185802398771788508341236858501453415254294664970843910704535382241564150760556378600079505248125160240849650436247895112220125491672268524385697220719831054520307672375482676759553155268180358984190187207640381363091056800209264761869347604626861414568588188344002030697813229638838169738471792149649941914077380617406178463153746658883518698422440413060209477108246593521110571976857053337958233051309532200076462211726608735822907240143655801302361876993672434888093989904360582986121317270983513510627876678106455683219873372901074977766609747733162703950032045207073189117605232772147082895504896928382480125097095380628644378332409102654728303987500391438102696129768926194871750900729434768161007773087409306010992238163030004903770415318207051407723346621812022722274711212009673429427278384641977220852052391677355017310091501357520622746567963917022142685375074559890022428258615336888443548237180341487471704739688627681031695531216037588856005646176895940699499654341266474556688341933066658929347078739841658941741289554129373042272107284716027760754897077345052009785345390624478914766737511997165142393505717619337141267639320244264618822316192471532783015422321385064561031236240500678205158008527720962659337227835168240023726176013035609684113666032300822580271935047260959144945784054597710339062083931179021404040681530920824563447845021297315170655756724856111566311928329556415495451838900958729627405169302289357135150434401435884316819793458213149934800733377066360557559330915473926802056679319068149937000922843839316531675954415419000733868325532522560234002318743527066259478440217183892916188540884117839568268397198423201490862681498641224694343022140046736227040003458433348858621654079942005183887786573483216799219017726249294434030402625989252115335394274187492399674895631317805660303966820628270516209851178987776436442516544959029916391208183406094973434903819941075715557837661792007573923082080103044573352538388178798730589546087185524196348925947126549009264652178099250181519517637734274586705202508593075193300088536960342482093770175798510722476439533176803153463032595111405629762185780004232642765745245959398772379330977963545467859661853428932610034273724531954127399570867513485430886937002344560218197486871951328067354172986560382492214116290392100571989099838229538082635189774859760485542118191267854816958272861465350230366771587154072379942071817907120904731757774990254296753242030701206831723505563962744920801930138604483596118352710589627142984897323722589865958589170981702911821321206564557660026144119692840584616989309580572527534881785299287651148991546715097406714146974576117414104263499573173765833114808237162088763889186389411466512233723145337157523894461258961699846971457365428283085023637436810182545077310687866698218785529148024392069195871073033312417902947986612105211554381702114432511625458671494724607265712577219199842954070042892748195721003830083306147484168629763735809349977719188899286739261128073224796824304589597091541083411284126804702852669834650878826501201565202642945231003027778238358734204529299680811849230416592591215599999964994312741837911252499850310199301554709489133112247584376075935097494717208524827132319414743152648680117876587312027407375267581604838898016630158649015345723680105242581481768636354788582079265503509222338245599130258700099935575389046233507169489318793893530251159269992334010729197748917071469853155717948097550777260162073998774774927878406005078551644274583061679822789265240807990595733795345589483870987093565318268909960350202831260694395849720923843323689778612445790819254014676750419848825945696059058649134832964298905308913289020788621479917483453631000045245215162613761891640307634387420687998191728061370050791146163758537928808215670060848285398321969822614717098496411039199952417134468821963271746120160778851203971110182348265806492697134066682015312317362283675671449922043061440078938256358036849902186033210479393354843605149753062378629435171745995079258625283980006249134376846358906225295029481103845811898180547372563866009018517366143018580354524061960642231530367360810743740328839346961144479671787656983510007176830411677561812312847363208450558552555756359466387817113640629204710252302942164445028001417354783461196715844826977143106353214546892749280704160119012302645108982431448128734262505881959156043489187440098662119520681668974892219021648683880947929665608320838340383647188907260503798322889200671250490319959844047369780871964120059469931731181301886632158120453242990104070098533352076042495850608645051768418702675734277923367056350712651600080387462915921849405967654117509402233840739056483255872993981482657196844612731008498427095864268017100843979913185746801827841960699411651809983994585497245772381031235627816636898038213379969691393627830652062950271591176451047132311581079930013477599107584952896524991743742290498495243832158229216799730935617459236830483167354105321503387276715531434379266001182408956450619450803347806761336339377225765456600721878190910316873526853667444477405912813178297515513641363950177795539829779451459897111273795597329670312809260928112809276524200954956550268247246751781850808270075741160068140488531422798716772237047473678860840929308115321577572574168015682753151689539583516406539335675965326598083271826715318919301056298166041640037517847042750231222691646340529348745864181099225010847665946324720092181166508257527586338990776507950111432472128238379520731824046952386549164472187625430628926071633496272867309469771841592402239613784267181845105104641134600473039405946429725539713603870354380767409034545994052841666522085820945243058260498295892100334796666154908859412145344201313143015798515519737863035945358069688485010281013881383828453857544180885221655804517292967152503473017891824675841045539622325631665398066665558652103258583067367803468796292234463299250355849039666623679407420188887165813913103685045720056053389593780404602121465293068549494688411654562815649192277650464457929672032596674337716072293545220323448557049107587858144309252096480427493826932064467511615282667470786449251025700960136187760057263226393370277232289574475831171654513887196604912140034863592963023210920323013276165190898932433868174198681467663856214067094546406787558051160987241819073199206472099880955180371862091418319916906233036207085866124821197107867107853717684088543692311923095822018564435490074273376379646195031540141571952146394461069888568359547996484487937291954017590996110206634413225929076453655277526464069423900756284116991527362263571120147215481342104400166605848194811162371146411835322978686723183753778684247525236458915420669708034330328007511408995270932347007711870362269870858720539654258208872914843316111045867710157072155832729877341000169113871455398976922229311213639059348801241573389182226537339269597880105289938162012443752170851025117128929351914575997092742145412858200696984520216863846464333743830090367740174769387244688221364757295297335295497036932870730305759231996174350738348187320720713568193274693620664799237047208683656943608048835452457798772399747717944198535778497945190013048900094361513054950521279639511705707041932065162282188333341815065260756795332285674973429422880431976601292198900001930904652406884678533062109931457891714703771076798553376928492503933372767280509206378872775488765544555420995372246341607530747404405392659514922038871083684272157830821887890783672387883853481768609104546802857218018265333183454373043337159073592003995303982272702463583498569933763998406902932256278131135158160549568997921851800376016606477430025398542034089819826872473182859800485157436273059498676582896763551483267023975653839526972176281278279111113787940267863480511188128549385969776432205642992109817725167095452524332551399124125022943242978516864888781673471830927415759974936267649245414995356559413765272654415948650232745480231042845767757588960878104472276141277849058260014387918205631481660300013151967531578101650209091451606131407551674271445723015821882581881488422699476175233434197056136647150478444207805598291762979935047995494677034531624592126010912104703547913151678879551631252112853836450582835804838753346163792907253074708348963973400201031567415424206115174589853603001610579219075393456727131296468655524448353161168998683810239658654308541762967609823792979618964654601149863468772880142656025123271368820886280463044254576051681218698453911215695121364558610102577500248686792853037617072139570403134968481907912706152157058371972768344297531430790287949892514323512211197588384450094745860271303319431073692080301820521589074258037979727867065829444650876001201527958684210969004693417130427067378982923880833267967678896427206989919902912717597648278833573167031545258978285407799824538156081112337866459547230333348728463439864299144251156564962932313619395244603553476720478514760421789474297576555634717283627581846333883508915491244396401668807387372010534498610080565561303456034641872111522340558000322515929651465236763582683982924801832798285752625435164979197808772262412217188100534142402037962664170768591272056255431354199797424065645026098645363321710089295805614538255965763575183031768818820164228320941855270847499701194832256283120822900745923273326652749335951891488446563541445087500190028810077534955226040526342115541455663568631290782190172431894195384480776386716654022748719986619371027318683448845638256734781836242393862993120046759075011599643706929720303731778149195670193704987267541135742652733766663825767688737699973463618681031201251148018766356835325532002068559839675395986373589552221535922867831598119948900634534471906970921423476263772410905149506956700576464089213575158576664817270771457636056355561120579087277153182877637249859673472915580870613265603684744020758981540969096956446548847133749000621477926814631732709856792413343436042127696085472403459176352489165476868213908756402455762713052881242017613915147017700058561660497322664106129473870718390076491863053153067051715802077712008723504484593209490807433519698354615032449841183882561619708972743578697363684792641151367780136173183184264096570167093374349203253905267154155399808485360412958095933123349647211091700598592846182974175145732804703842319670756537692681856617805910913725292164873104035610767295713122879122305058958548286775699656388987749939939014653128454032187371195488426847609483303375227699778298554096894895831306035575991525986793391349120706888255854716793341706047082858595025790611965821619505088079644686203220730109279175804437541704172797869756093528445367507169490714715435266644543530753615716919120256036685734100261161280883112350666203607868423092447798291852049040236227865815827396069946386199391201299978572807720368504650572503265002645327361071241097083760850766590544431290242274669675868640746197689806326567559747373636553468141775348508275074238022810910016500126537121215106292714702148890489117592884935829312851138324425509617727118035264538836254808090416205434678649622549279315216555523273345998662728363750002438177341284963230778039479202371527994337756276081098228595357968371687139137107207989951881979299188414157377506049642049920190850170931672067608021251815898031807989867115064167912157019852876652690399731102778595529510666746375204624829411361974571385543053210737041013827257062554819042456661953767017045520656854063694925007179244086742771501955518335828551113128122344381982345925137330967946068919875406407579917572495252121801881652792644363657442816632388425514588985578908905740415119022575289498104289350321371608396712305977500741485998720915772079866147907392636949274475962417895069258837098720718423834747326922401314003818669029913562349821053134631528289483058761806669417008224422768238942371283059926410365206844505380066566286895232914296285988059592113368150925174414989211813429029212023285932950530017140930382305792475361366600085441195004458003168739536105633358876777927304526100242669884191092461018766734159436716933184779951266915781969743149046702658951915708738910691234717227023318665435441010903213705472984179149714579650637973397145137134051893062987714921817522725022511708087740163156304548893728057778736642800371474619886500983434017177091308011242126754003264711712934619704871558450409102780474779663321180990089500185568748496935512021934630068808675436725466625431604386488825769654637413279939875001015803742207444277870387217671293867573658544215342336671986720743557825018986275305726366153641631817081422024127273530656470292707622004108596244532436329664518646446072687912857106737624309250114278091895457166373743566796884384771272893325854706310820627293687906362968885481474931444584174384772897060600033003055950555753230084427362746159206408927170052236926725741280128827487496062474263784584067557443960310449395571320038798989948848393441614309413884784722212368328836256881178636136464939260978719975775893395772430288906151097013032052429422585331214486053554479830305092238339734547163765662481160091495111362724811790980823897464876128929669088315927439606430182054358740905168790671520437786589868022644515272292302295693778167795588719978463442559800741544570946520375532494335005218480804084949577793531885624584601546514772318412805333333036971419789462620697041139831776421033072452756183699691923867859424431316703622548811991582714452858399858711912917737702660668149431192862724385183552431565415777660338492179530415704518518576198795370396829135345965475270953291468229763923325161764313794238254909421382429684488344278208502444762984139903734835041384339746031322922091957996701476442304172569967135780775246291540307810646490366931217671159129735871175599527251937856073164285105456953499459372654969752506187125632923290059395117415228009523106564783892876256269739095775677884534164393971194132826633581327329036412103672218681319484084308918969125364096368621372040251125209047807920531518890648178211011263664460799822870084189463160623766150933993354985513398982069825652305953072572610703060543756730390754549348642867933752555078755734658675044462334765045892309853252797939869507216525238849416383294948559576085219018611367359342672642995970814676387972679833425352314324435818752268995521315275845791308193285376620486859842200040981336374272927571098459248359375893033682576160770959952087083379766811560275019038504086374719699621329992376431498464002691289982163587037643165305232729996106307904660468926469126612479065316762435242451866583766266225207223428503047472456476458109170822370068115301600228039983651777874972273861873831282634437434395617718413681503683056226810336027223907694553498527124054635495785840490745913969543954850993767071582669846027453287279650615449389522889044577666717713736416792163417059305836958662516024715984733101653903393826012174384196260008857138546290667703935647391206387737256640129172702525867697645243304881810212109009682212502835082337520425746888984269682291942766403516128021127848584603276750558371457939620401141332082255642167251695897735289401809524127456133014178039394380259609472919636213999887446080560479365998964856092543154928779192486419855869432762714155401562567805016569472238142896126714577503088764323077850027852550019580291829130214792146733283432685808441794476342466756401776834056449940335741419237255315630140690366549537354545662251570188718700748674100698270665888180905728779503011270191420811289285238909496065753138412647131833877109183204636869162077734030481287461702585700161658932728363463819892369232991774615800872448193068013985614858874014602042821071782945315221290650789645386170816626272237125915490692530926227530877637707734778435384848069476810626221978381900225191005660284279191365578677274305195124006228334484039924638774425676922911010340300628379611002639361381094967159806892042475532371895627001046144861505664035987789576409402731467170331369410150073967207284099436962731633110538894836655302200577469207628755769962638969921207498086366506173618220501620962241518288599432408225834942868554888097688567077299590089861132432243222641396715512661985526315416853401931030583817607619851034661459039209334768477057044046991071522633138732465206533855178248341104893627526713396437012912425690657520605889973081666231615234349415829797788992499966415620991653734374758928677129717650973627368042396808877334950588505457342374666938370118337357420157896953933669749275817566969333262372738407624490928788739282614432784595800428583365069612769639173393759266323449075699694862395394496325941899107858087476961701267475828762364481538957327657312315459888246542803573421414767927184414351716759338189813009128532541657350587046291107075380296857295386950657315452816232914346450424491618079016284686882796121532693055488055834889997730166761040346210283840095599698005909633401744875399025087724475080234476749110282231927348464693483307439628745928106198283916043283886650094091691681044367530447141642656893978926291350342300992989079420075017334382854420105977497438469712867620073423037624172711725041598214905463575086762544912857030090701886601909236897077262418763152313524877702725815968183647958827601730569422905086067742756661685666723486108273326952837163782125005185291836082539277387947124414300498289991131914615540072343603622899301504293095322222268063132413629267783339314882716853389569054942012476578483716323017727915434349658763903312621875501624638385700090583614808192577392236356444766252282294156857093945841276996366576621418426934325212891406772518903133195134301585094823143630792246618985243373425631443517764690387188912158723793996451723280240718534252121387043007002284044860891358621038321878683164086366016473322242926516680754258324426913293875679739707197722306467949111649374775916325973730378958961231132337288400520370619268592714295660253371197905439639881099873278741491819328407853089889897398248926909194148536026587651037728281875776863436041001577574788016612243969516962048092957102912332013418223267870355897781551927487198357822230131668080764966415227017812021618020196601216470467338811527649647015533890729796582544346721353314822786670337491650711390630171698091962769593650560498279963268667816051131524652644510992551333640445173502437453558570407979451727936024663936212350549111589622216157709960709679369728809749726941407429148370166721547868497942914120846023315534458148566782519178754078364704253766672144988874389709574238080175073594536852712616790910210889350635322620998629383542273118080944141825867488626956834532472155924110127841282188499865740253720628472980682689897102297081582358133666583353849558780568893439245355718171150219624455317980564104586106747080780799111467986803189082344279934899940574864006306747244023066307877958007980537204288191120723549064921130544481233664687855938027713818184652200511943162662052500603396938409739932374116946690321647512180132883131120414864426789833375387764001371568932574517516531239016569241640403008672122835645207670093281309562782076883310845020221953077092269289890826979110274914909599177322921760298386913999158138875137549869775838554002890512320154981882388763218208066297536666281737743507871306822539857777862458328606702748466304760383672119419769610329025021361575104813694837798329754421386961928963192752976299789790142302648383793651230049273404259675166019721709152633250843739416369241344357510082779183173303242289854768324703877287928459360222963182332163320679956393782275947151456590401418847047171120631162643210975975942134019860623964009008177487869226713789097111457303137441488253346836709995250469185738445417967738221207263218395791701797759215482675454986104364525059615299393841860411833260591644946118568760679724713833762795881959366762286406307879300500879456376461221556081346971203700349920820630105070281591842793280799047517517396933807155018291492565088245390454168921593647748767360499968407653410625322781060731955558480820875975113649889807840374906037240547633743570275986945982882960729799845907491204205799530379928304176533224627998799132860843858254607947788075104142965421761686994443534650243786655734702792745880900259673799821879955562020524026640547860892382969410379281578069552105366201604917925262953623069792459974230360705481834864740029317717466744694877164520598226099023111739941878719908495353608901555820020356283043712402807491057836842108749903896580806712960213638589101750815508291628968743193086914379315664078513132364691936613857618409316496558140204501069171783721317358367797035806219840861211584437573286399313183230157413628402077117442927606790765982168850784864420856533998867989454176571110131304759527298908581958156244657539988461765200228505850630258807109781858436001910500031519744560810422888601279068612539292450554806989045539819962026834120629291936649870076464085842357689515062374954956264668068200876707816064070181902901775989975122357216016154108728558237388320470927460679122227023956940205116693366018108642204454538230745943616934679796445049365222805706140321090847547435831126037956247656029056610921722739546418510874086935631183108453773370024173439016730806557103849458534532290629866170444401878785693843766519658544445931772805226886529745918556328334923692601916651062192670216415296106617382024727853589993965762296418601674474514792641339591188225645735256206942439239810983508850410372136381581972249820094487686742600655087375146778874676579611838886182242885085688693638210414424028024843916594443805230088293768855474748152846700856506178277015204204993632611569207600976193455096834636666140411778028228574309383107537918242849107641097216950162374375126521251688946462812288572407614882767397695833778532328912875757319717367406269509244524411359461917012151354650401501938524700607393016336927210729153081854274038785366485036893107046469595723735223842723827696560346596730722656749139160135621585095805053934503432559155848896626897028991047357123930982699881861931978650778408713110283747844564613025590685354695120922427395589128967478446444937807840855917819617955451578636515780726515475636834272319950642170443924490376679085441557804990857584972474929049188945813072340192848953584975331600082552297841590123841554330610958393465545113075051257885871543404729309721861191432522251226743734032774973405183076048177373453101556415815968265370368391851643009754914691650841826555675376967030623392260106507945914624314233011071678761437837826150971450677591572347268320500941481871530484177408506247021827708291603949666284470266539930011864816589197126426377189866683053749158117162993871253568414374263879899895835981702402105950114337704676461133444761089975401178449434928100309650420625820055294731867219113948799496624941770790661664614744243990526835153070498019457129139284044028353937580161440102427225438520867130328154435471031851277427795445152400726309763738771928613327379033205250094210036260189330094691354491913793546703215789334150548160465052234041738760912167960255583904867704017137491807346541836512596474139654385849931219006777875332029337493031947448213404633681272239566498555858373616081204510371820880075961968862226687402451776606689445154797296204145769587349508053998453312830189415347187158351635902211328262154409746922130492051268802207724866452660056604264924310852860696971008448794791635566928203191769068929931116549995977552462264591024148644383054159523741502722636254645360967274432286557292427705747975905330407809890701718293775665807125604704433560177833947764128245935506693548660575255692779125485246328942838842502263776626849315700911953474572977858881191630254349641770685208832324454714570799929366577214396750219049446692866747848560523516955698316051169372138173068719009223120855413751823387033292853220862713584238419300165553523147806452342369031021958467236223965926829302187540699245583613199548833525264719146162939931458368284312103253884085057657374629668887835710933506646894909556667876426056227465813603398441278867685172496794449610494634291110377026863741937240629115975236845580440935983029342875770259302530815773848679849334944346222665045481818771412478449464612774932146419357671991161916345908380833569901043302392985032489684974859932969801539403442918460017950158863787513968239595575584498747381449998553652232913963701121743896714500924751481541085621834494789414153151892294967711037349939046393058603531852263939855001937749221739430069737207275028950351566786627834801298591840405735519938297431274960860709680592336095314461217431977535657609015537956714950979349611392667202294721813104103083613708417933600373123098323152961628814698092243707015122738891137250536162984982782838463910463411111748577761320678817247417014431796955812301899884788973102687709628158996366560765012134082373530556766347786873043917835546276835542509357369508538371141751473214855882821492663190851528525656428340024173438264133498642007851396432048005196832723093403006826642766929713761324018766589193844949438073451050169172008876658490691222487038503044678935352105846947167198713034083282347200812816934501122083363008296113712532052886825071677332903991731582090411203878258213739866744795177184012011256985721125421329948536697777859470871667307212944634051031468810730803797990844689567109922638297303776833857116385272242187705330215480758008521071473899889112267348758796564553851409288265984974776678721359143506219113638251941441634410002148300517926620460530928100165646103809014393451614659921877413094614201684216975560596687204636775738611282415893947299541029986128243516271842881032923290661079794494228416033713704783531961018937826914625712062601808693654856663872591105004106153436941665726725645716162875621554973653949680460770709067377706836017211687457027541928686871983968558053762821835034692319734002111654208224181378706325050519933964445787024778297100013808596649880763011455270877634627886169494248534464327295000129357965985653652093844338195751542590457383415862452347025875768428553972404404259100598656129679912670593691634330825418711236613857474702605200756514795895579527557460340805264671579426842699210858201841713461851824081747631220408563878942705470360938241260620902790024103496542535257307984598113320737065047235128736970011362619608339836665917777314432862271070552673274175159398641750943037662212605052477013904843547861528620582764809148667304954503157747015260685724025153822237143359146730402617934743414987285127610162457482059834291933117715065741537829466144173285526207642521231312893692572799169336281147031969351714881731668583602459469176611667880386994948787865535394400700092790583848771865684298815706047169707223985734327158898965832046170830677825319336536886071033739610392403073385263066979090739951542726344154819610827208647525302534124687102577702586043707513872518064970145785637288608595024029319706228786957430661498740716011238509013544152382676717371249493369262533619368350091097716846468613204092928255642944789864723024537714638071172132313391508244896298313903603813638909836885989427224993089278905228408921943826492164876167330384734021077874765310793690219270279403620421227035216306431737636246511580896581751333078140861448664604462230898670208369416649613925022958967730920200875345903818616829354223583687910320126378839598830716253380421517910565708372879103306731535744395434151522638875357133882101068284192549686845689748985760652253912344126000096188181596502311650470514413859701250079509711591835780216382196669208734892444538051657920094995165018027502241985019938191091660829114678239266092653095372529908152783247919902388239938407176121475876189501399282996988828749217530030428794324815124964505278922378848232649213190970939785431235797776804776813640476778242060772551879762368649029205798052654309444943029991175229137856736388474785225883096971246021026784471260493537684616224951708343546024147488894790194432550025786344919347266034373851117059572723666102008863165834248820752400074393382839407496490324068183699711064005261088306906802535229376487160641740714247880223684340262685127444213560844883629064686940377237903411128399842991623368859861256218077603925401177144606448444968524745653596622976939371848050856245786547882254727159275429742542269946222042251558893140795117963133691538662077835974053078183667121268586885582484047288972008770820496720593665490006034579237177419383441183347835412719015748836557863984364209461838149585938935406769987513972199261092107098162970737205454100742355856972290053732947967833664281582611344983387035333568240638652675693273077734757561649936830152467555784759259304560884759944766569439689164138786130207778447871804397277681809305035565238769043483300055166281494486525884346027246493061194694741721254356489741751793991192269254883929245916841581347291442131223039888467520154392469795546850393983269094388933410821982835379254595929059280582672651585409292040856741181197524919417993373088228335606379977059809982238706417428564100845454880706707514227260162572911961718996490964497940538693040303759033813427653621164319452859703845579421545282140046829235824603980788519240789157496474743499901136441869366517302953189058522496520259485103509085169064973634848783462322297728228091672543342581062598023532263265575943384003741887668262992930051471360895235562583771765689409516739130004384290507427615021258463937465800726236612818132449399955956567916826379083484349141212199267198490628700101626290320685108399533642736670582306036086353655100626913994496062495960221389854168029861402000474592940873232902097680376532822198152491312712882126209380664567447455198287766903244557094036487296521822526565219181851777013421338109997226454006347815445603879593399505118628182403314513377182976121982778792786168022384139650534098479604806933929341343417692462965204697039468067528867489094297142267984787696698307739354574699863570100089595965213853554286875339193887042698033000577919179696417542246963275770715987728933121788709341844786351744383629835318634207610283731874620069485672539082754420162553034780892720558273694444427153459449338851159659060087545475589587296653732110396847900247791768393318846932972384345897984735068365956782399236571552293357369166366052072644914603252295863283552748330912739873296118071950947977891450053598009870137358679501186513114408804494744043306643437861127120607499591733581734665207352382048749078268312248283161794848221771887322313869907199105215591468443922418409603571999434655968812576136122348179423894114959711209436907392027491364590635931084310556033382076981679894058536823934717559401318823008124842771052394784071370721301215953198462974204672447872595595516863618761166783507037589629252936900625977164280006665047944353208435696977367667594680101252159033344874520831978236263691467682678454071662938513210414311579519788996689894142873048616517162127680472040244209618823952558859832747897856591691165385431280136942749791256344104052440108027816215967012315141039482724077166269407557205909596907185630783962061338386597892625749162502577102990358908158863531524470066056730005798590757823188758938354043872165407200523871456075572180280565100848569608711178341668477945091156024206131449623144277690129221796807234658464421437170981827160820883295273528318348142539414360348480951526132402617873140011693211632067749143639332178698741183489869218353745328574771003061858177903668659706188278344384733569613054088995979327910111431154726139482216428717275888442904347685176706198740037189767213419694402382168189355548082513353127947051998938021963766218756657061274903790409446653616076692698087957755190845150035856037104235905443536678322829132849564626027583325018366732528063903174804797641395329881364555733140863283563636438037913761086146886113576889827509429802463606778639214846723975925030213298075460737022013827367752782927066449258320908731850962617623960772644873818320600142575181596910106901553064927527393338346877504119947149665751983768475365671732208715275528273416013071883556201614667198868813871060613096668738992881706765054607996704024855986489338019731080311381085664508055730943935575787935727945486663153196819039318958894142061362077839759695357990096111180725835851748110041516509350438344941904168087488635795754811510167468418906846592904617248634968762754151552260488483166928278807659272201446628369432897274002456416168009111879649363805687352460659197158937545320552787206775858311586563284766497373304001906228066454358984818596107759551685725553972617350636644831901827332717629077015965979261768020947312533803635007461509891983722560565538549428909260549671560162419482617982757111351469038260481154607956191733460897437860611029767319060947719999581580653432001794608641172704710336052610805194717587146434501178517950233575175739599117408863025702816123202986089077324112109275836689588491207775686253288618599810463329643586003935078713745621600962726017666750761111514947974767248552615830227077951349445611807162850239440780258763640686537671327051119712853539152081255101572220626968422514676953036746053220831352768784240716538468920873930824853346536290709446274613960584068871464147088265139906848226640679703678731650061823470044430914804714404476920034443109775672869149515017910169083997326838186323467146816713852104020659899516919061782719370572878888744556617270157297813251310930359371818750577669142209475611968104269738804158564917051066429131860356598393252264362676189434855591444494289623172222734920503583294599426309879421477436911668536366327326927578047920404318742040870763746499436601964399122879229736532360576317441638281038700114597020668654879078827817573140051194656152083349692363497831261591645373900843398650661081045708615703728099208875302533757427408244751660683266919959519836513890963890226433303465682569829888300353901130399148818702201331560660269621078172937182056837689847795471065573811131590383678295045484869875695253088556515143105441267345350887795713351651430566333489535355073582575945394603989473809460083097274127536399055659632254045463353629334431122078163971227003755007145238193192288036595579830350649475740649534085601245157754845572807623990499502576991928788039232570015311464997167759232583608969492207929702166072165039715214325502540578162489639396737321052467910958581151531546963222772274491021190953443527553519180885389082516280763094989164311801947022793650193043692791139019658397261687484751737382946441463984743412770315393894880492227408528670826256242810836973950572690772387217490980104544480480336237294639661761030453771548948134877079548873369457806680939250888892590684676470927601708514700501744877101543042983292899967652211415099804963464210218429749021420361380545805370704405346318854462287224120814953990135210811386234351529208742639973619703420606280009371138698314808768832388699698286534058957085052798557805507516493306083378025472436588574250070081788767656582797364547739222180628434536643634417528345332602948600967474777787349961442530807600304664754959281916592042651148490965408849152620650923557194585222781033280265520113080110225012464672672032686613433202433944644618075730541355418850221665974663819219024431101824836587568078600715416108461101760846505160853636492227191639194970608659938487670442180683456205745382541393343837242787402367642302031829479597832569555023243934914120488757807309154654734479307184637812838394543815541771806071836545830594315759737479983339651946816504797673880479158686164653060261630040028466903430076529294758465781150603377082219194088141390025430018053332742478169056935213260505876589829768480183070158135120298902016458341775771783116593470202171257982141612762186244172947286473772180257838177537053909910423536020429482436450932262912968525874896518443203628771377207511628205066652682582898299655901111677697395400394379404259544470038967788952673558879092314753872423418502629351796260848066067954598758320675989269137642863257696243895330982762614469898237183390213078991009466693143553898485502296829604452510572349063103876979736307109853969409197281861953594548960751585963900744220650194729989296010646041808284595422950982009227068673442011586851233963082325778237702212502638850112418209725751276641253392918115147950305483074578344918346335969999070760306211555421955144548026905105025710656098631288845414244093770956768637981134692333789943203488481557173745339450926765051092443199068227057393688233771379778905655462980903113558925306198544056251361121961125118368908695193597499056934620022938311429218063711691627958583555700080340562164695161023820962731089125734767178095037247382136045356929625018834146326681334063258130229394558385860825820304231466962124169125610986277225686076562118799652419208194222826822814623664299000329331204825173802548902384918154517748134946352898999027080656339458877020176921990766724125428833766520065031725051177750131104268245553128736500170090824495746390280546219574568793038793176169120605236027808734844882229543210449580063052806257186675348661581303756899207211808776021415147629204926257432868084879758386155065810550839334744244900379713412755810035650591574214309735257520356250735167171446020969629018625113614127074419447024931023533417009801985325081635993104823741225295747778942784946628105553562590074560235834530785592783105293362016174875438274552484524928935927282305534062014485797340696833757914688681568694647338542445298743910882571608501683477218826478845183254855492209966404860824097159890633623266154818227759306023246063793508917540689271654505012193590022277985114094574969313477481741473960619931429498475197396659762228218189105413217735938916469883590118409892184035962979444420147472132095247817477606193887772884285278021219738470617891009207275212980535810665338041475243881498770187552779707367103057904400683071264576842327521573473837163676789108322454335878864056856944445682434623580570987826131674288031320302725553030294971791703353752431514107063951953125584102012457281965161865850231023479024678166164564340236638311302325403444219439994538137167016375318402974640112624970193388992370657025220010340834220994749361492446174737571074540489821331569870242114673026198897617685130531329838569125261671120132278664250703496895026582883446146103912924268660991412452693177553554862589377520616281656981344618911281851754855996407707510689238422587253727671976203261210447782071440237194970861075905673529919554755366835339162223903752997890021663126267020193121149849441182690784625858377214609159634570047205086508481079577005365872779399599481450508052957385717689515081160077600803080484103874463397945837544491111004361247647898983215641723806487044802226502559265606548921022957075670618512421587906467931034043512565295352823410207912726812350742116927254408646877910319670344869838843118908653722108666141263734346800180779203633125141326488841575343761322038934544582836348693616049443810480108604774754678600810188464977324853216939436292095667013968556553249317463272495655246685286663528416735700694295419674431660609382617493730028374690450500219965610788339512068780843005729911250589648533740295165009958390196678872052527348413793976968206537585347282086284230340966640671840146234294448293005815334365223207066301315006495441389523915442605185565931445808135990222449668793438395021224895612087453424504718294435137396312207989551181698351601203755598165314804757250228558709230274982419876500003204677707862582325885988196443404216757818480764223838403926690344423582214944885452338717663124193030843348565988542712756330367610082416540817824059463132594876048013737860024074414469686201636821982242601022714902049426491790661167109551235996156652644720919213599016013187772175918953208707711004883327600288884382896631249940904124556548226708570213329023799960755269892812869465943179899126436381629386253068541413794658638510092359727737261524984200193449563251812265610020288995916925593944822188170010735442468095145326974013349802130652231524412377197791274910966469373924682614573386259075326256426138211765585028653501059985468825376652482011179570297851926137188905718722343264771772167468971895210324963565893824168554932185217559244353600251833212433930861384014081228999035820429643742908933572604996519342257803218626967071074307096694652493279649818176806721784631742841513267088424641014385375114805945784355956467382731598798672887414398386492796169678070692515451749300681107455806508479417157787689713713626303967205476975074624063832716780330440888877443127855598909949673116944083756691002931931879510114398371099686562947428098664056376198848144933528535014701561053548587247964916249168391183088372810047081171504631348592904684361283664214406954636305100764438647707373455029473181610906255540583763598445499381567685180208056949674634073322252747375028473798811077152970514011333639367799464916516256995474281742610644834165090563179075638385058458187815268240894833762584001728532935748212800728517286117778458633933103798644729534426331553010638308703988934782906256806838619707170509933936814369093344353846428632743783885426557054531277335841196320460790220490936728406121885205725926639954428664090516595781773530659103421474026779030080403566083016350445192491901874153735421513185335964263986639684616915550409411894250418313991461216696871614856714951463327488969934376131358792577985522857254196757967140193907063409697643051349729648622687676451790076481510077598110977553214477915808850825161410503923467627143013519639215189166020761048023108413961508990718205008488140216237409693133065165020714189427964696395302487816007874248343364182669065180528507338560101150346900240468893118639861068643265662678229574502466851300080034493445412384101143085528067138664929881417615922572716379776759413206731492485749321587796843919614818137361882038332128416877833245309128545605668128314628482839368045131822469026408892882903288612755130668336603377521102508121408175263524324660862707221385709589204259235195954448727404673809517005864525693958607082524826860524556752086958583722169259405283457522588970921449533378671007793021630489861922581515364208456999921812854514070891628457960148474538755161208596856068217441823004651564075683929148512112243766369222424518628604585320225182128927899641377449510062563193956786901491060163132717512904878123218275125679104518545633464451049377385976956332874212977404171282267879203504075963360240887923861734918875496829086172737932715092993170835805216820351986820422518916340228099807085017768951026338930255318004922729234248274385871279272620127099349667250391292554537044969195600211982217432688109102575691308731402869600147241448989180751984200337389137294541095668875661708860635912712459080093924106123120344847674412751214472018167465948952168457483186061386649070671405452732391459713784013807078453736335244845439576624452253448186971384808564237722066320140146522885473937739210792005947201618893198792115888864369276947723881022655602421877550488917972740792271339700993198182210381020714860637765471717486649861091982633202136320910849452540129006284843122862641219231574035754705188173445321563063237627558375630115843440945671127647498535964558468000089539078897974324938128470112248696339520033151072591857398864372637086504946285932522851697137104656840367668413122476812340972904779258526419066449448945723818545545901302367128165004160450690880261320529563766098070917143394403625342566902201787531599817716998542527051387634463443128613076165400253767233591280724979050276883930797722163721729028404391881490770197099616194113490894079870305698283061882751547809484613993453320906648937303612350990508625620173390174480935057185741095713278531945714903830854576150230435789905870183077904540644732840618588043251389009043100262141583236725598778617695086271718094559647940171312246854272839954557560438740883070124240305616991880579419183744398128559640515229842050367527359445196204943333454633148877757093259684908933207174092779124180336286821645036988653521992579305714783887677367884972866096487335215768831461082164478189241615875495938299520885384054442333825653979899711165396484475904694833335904088543368581998780268180682853186692617185394967017294886098086606973464606443894958857261680177432394138172360697218950373580601208028031208304445146124348767941995261694244174218200111310122775139531584203215873365587243177537504806873650969553119544431068959922424922711111892957359382475018257705060299731728731858056828211713421130602403112279473198163205806472651514802351202841457160087540179598382781065130797122292651303487303793115520174988155978775097111760857937863631359106369290003519014735664710111838050257587580400284490316950892399537542462526905226795923770908921784652225030667593749262801452943192476423867633236024805807517893068486307105427412495162829083951511207679355281485519883801540727061656255792925749938580598122386878808949106366420352465011674743564951040694930816343220408952373015458334172683785632568458160483435955034636501403578950857686495315739359736982451325611259232153541677796329639065143636534210774922037875576180503873943703819888025238514347887153172997808709056211641594401978434999743839990430398847304051589999535961466893261000409671825454125848421588226446290771320566900967458236972855716012661250139601986573556022825891440648215240296379083052636409665590937458216169625255047239944261943749415593439016189711515732164316634678133839660694473350215394973079505836987082079797108735985494300366553051033256480119625740077953708755078068554041347382540643300635693169927525645126477182767114549941603936676165351080534554909628211150106141314445222000175102259241833469419613676633790656735330418108357225167851010095860892350302666411620893494495720042342067697635522558590144540371858671264211072804195680135610207517457411202620833259931278345526210137939778817652050514684701534680697553396303826838109161519295835206656482814935199564782049470142634349901870325186714267585526892955464676904044360780454579782822069328730066789028263883057602099643377027558792706532210459690176384294328020587387626702104890475241223790097541588902934306768058801070188538406182286237925692806076539282440892158973777772175318929991788382448233066398422674933993005473438963851294601782908486643982580703692843505231738673964040764486077395378325335096577675582936348451075862455298199355758797651642012856802402407504017224129784057493843973380679885136504094203592385467647487729316229867464241906620270446786594051715835737932289926425439729939985582331837074912880857248344185476165211655152341357109244407840846081439725148384856632551213590505942142701449824440039476865971791625806925543208178367839299185275602291826827061320797302363000520961753058399144497179959116370511804682678771202551847166543892697330554289526644550334497853000653817957787514212014932805393058822612172819250005045326789371650866046207229957926866485830195957053507496109624886253275392512222349225756153696984817446573572204243264820764407970074559119708808446421651894027405770226863126754430963340337699279999494158222760299630700839611475860729221240250633136606783047475368672633239134255322100942085866020343067955350209556506361521020682655015100658790483531961672855206337453539483563946271738291373852035892730342346585543923296275672748575026952962571683125638287575500269657993096562633818885863626275944041526477526918103835830212032733486201766543137244117088389022605666333789456386066527204835038442123227852542658167784727320953281898692694653509521219927236213837030274201616817408608041524418960258657670790517367739466905993314278616445410611286573713238801137668743530911331248641869362964067987156640189402426054918079718374895357086880519060626220272759647096689993524806919965111207501379871278191581195808708927044016627916791855500029299684203780246559536004357077551274526664661049097316607755335526757388758981551100990659893823054485690352881570494347504043065043503508614460339651012527367626735959105218915108788530208748643237254606316427631305690241526734669838355841155728538598016373367975693634482448322383781964207393180161162942974149013078224348614257312156415140105025342664025599988315513244442762098926293565877388947767507988404809483034842564964525710174470775178040707250248355120774999987715064991331670806615316347260497289077570091584273469135718012478346830783485184125277827903774302831888544534819121125348782020296669118300100619233177888816024324436743756171408343936565677208677287893682812840408357001802916410082176396890691538974634576529522780626170892395487336471625162450864719087158194576037577154527221244811916923535564120392560463650148143711642603243558212164015995250274052995494324116989498906952842122135077300360849031002992640610638739191158847365616976271394585928191444961526029581205420614288286843649554426890064749787751259901515324600057727713902537504459626121130770009773290660116312893617554921999548055482280646397387472451570144292509927506299741676527973676645150100631138376591335112161123253739804902219066647036511320972496191807790751541203606910260004533057952657277420964681493544374492760325542322985722614593938002128358622997103636412071450906879121075813420872157211276759930557244506694428135231060179624228261109485195950874242490714792977189042677118128770969887015134615130017372666452743908120094608146978871032967948580633303183305501790239464263468299418153638966745198370047891642151458226334267801879366910698135508295771606523665185375039782554054261687767804552359025154702884938348908222950556081797135129776736275639991859095080408879768948371369648349237838914822413753922722353500565197210587071352664452486536176670573484824978683272440000870314624096488154012311619755634963418759674041224899157128139670391080691766779046194268597863893219378944194713993324499627659810021715869090005042320365685957175641379673725431978720354751418958377819381699858906005965719921427249915818521124919796034207580823195944673865993877790582933283362952282869045088683787563857499830660587194101587025708139835320422703848714752020356734302912986108327981623859278887476882847244830471536577187801520824764106717726952828528712334718943878957984640588819681055135348244118325620434640824747267074709646163572032179667961277313202886237429852947042737851810940065118393444068701673137915340762561516884206977369196598500610063498003762725000583508100898085718306987916686868353119114863186121350324638388484804111596608663318422611583487306261390075708609389752168818323268915452528190835757117285266312579420283238199796666961013543188813549141808654798543222361589884544680669875317158956594564120424217616156837128657098583436142056035666530206608492527118395927130795579067281074360182114242158694603547942487006877990024363749349121021148074141782000126251396381039538715427633382886544680581659536861898993619884533543421740685723255344003695473473283166113420467509275299046529196740929546412803827991786040714915969711251000561270793055384062099646522500918485408633219015788156800912048339683724447954482480120972718726283838119619700516105983797909221354180091942949115710800316629792448710922194732131392281497458838333516858030765534757473851086239183170923604182673605056559270256516735520198605323329419732270846438554904148996792339434009370904404874817814412254961837188240683959155284744789652101071668587667780388131503017232982973109411275200953085064704932852082542759587280720299369701853691068198018060949143420868882965499225862089028484367943810569839013388601442158179242022807798481831382081292549421544928301984517579034676531191451089281522764041517829552098312657741265922360324284097575719671554656415114798866965384018693796019986175166114544920371961423770374850533336411719181838148553294615295137851849290814508928138766812248193080033436617941318733287966610132684387142647902767566086174161808653634048331972515210332680760963887353501642790002250238519710688224654890869267921874762140231599188825233897264164476566381441145947564021732678306275004803511145011781478306549142597334899834445890134728176224362013454990606277082552852807373708325610817300854767417549848437878741807325365190404041247582694891017031486293647219628710986891066111825674039121782943035177560360954784842538334506455543770342590455294346633005171947259118842351374325903189584941681969736115091996686436810834779119900213478600718779345280831376993706267845348134930989590463367118330830097290505005014396655895040181668651898209999456817464630589214365184100315066101666330160028423584874599919290347909765593999151583959730148363928140144652969129724747616889535168649482641146709757264259580565770778564480628109050400902749121580869644526144062279151972639636311072066071437645499501534719396713719487818142564912714902244956772896183409313624781776018688783089447580083925147590034943213242901515584844106431951619858347657308665801118345107139141916005565895630916840099610341828414861791008536479893477594512326159200497827398746658825503774178440476122219690705789967186370907751849904575529282454411618866731737436567469793398532614755447291701907326797580714919204991381918184398024706657178865742924710118681822528165162858241521642678730382801576387445525755817136173516850882388699828590533324621853865273468658601756587531064245437213839163272748510000337653986002604725711838280377500524239859891139193258640712502006340325212321637829845435468191482403872841781641259388208382559147861362538085827352519399656420746790771507639585218886486067557993772410190144481523989475921366997723986223688288902506057810433211152554386780711313479298047972953674732518095054429691570074790654021687531389084424624538839687314957884372850747203890978891030808589141737502863480622289916729765154527006523167289633330671181264912699643847214302223322762837320251268592773161119495891397507070345444764441912217027338367021929971193190232201803176306466511068257182678276541951306546116113932858833013202458034595719844174857677377858836199685572989472898486610469096942592540706666163778410765192735553825661096491945425223759547715606369807061493505988368030379403393167423345604916662714295983765580522007328142678128608951904631554421701026288748159737863588539440331568938262807563626733949754562555149577428456491284714855894001474818054429867776108844659896940281168985770570638197860944662548455286296535092948940913324606685457328727072620166762490931323693431419828080446264933909798479898337517278273381630742937351417649756048020266048241683889888794606342033990531787989760574952748768297725266078728074290195687871043016657291046708984143285099328137428600838864525301484775495479103151130828820279932856686041567067269548204404850453017024815835907499477575505829410239124754375196872335125471793795619301130322187501675981004500061393740282364768236916836664287703358397765039158283349927539957485952414905615844978441184841360954014797979241826316259557310279225362251620284262314789229646419502215525249036485563754506624920956347236879254164690140966087785419505875114162161404537487427076362893394737609298073841466447216009044867549591281232583631935874871951797085307426639046978618664409987772617359037348449034143319834884579092544186157076014173966026918221090440877620640795893712735530138874877199383172761982681717552396847936875869851377759080213923979083773155433254701612527796538940281045684795091759217613003871147866969880910222282011038048058727809570433431548639715961765533771774108028116077525349877975280609323223438150012244398350177145343462526311413224689623023518104454773579813596742969213178228074944282079699525460642023858535547928012375769817780755313044980275250071604161962828679084758995746446191524704457577994142602692181330288769382115001977094671114849458110386950490080754211920543401958504929653535119569646991575902916588060035036963966857999356260539085408639783698572282478248410020188411995757401946616712256809408100356454527316164804161043182367488896238912113991222399979850021455093927967035625546116492359124188399957831442391909019792636199938252186459095388525973782146994758554018290595650690645085223467119693979639144467952697490833114255444231906226822737695755596817571883690414670106553508900622323570683300480366325223266824625324927160837243965733758865717101189084794944689750849243894441927911854062587227098691235680860461226194474001281022699243951511630144173528767089740648351149370057493875234380232988246074519284790635867131622331319406985804309025629143437353189277325784425466508039422007095227553478072514021816358878261345443897727434948174317716013174448956226261403538154149617396170058976582291772029116378016144662006884710105561328472641591029103836528191772884929040509971006902575615826108171758090030906990929983342643485624070896589962002918129198876232262203915652710226546022921631677787069539022222860753149940692077905274469992134566449292338338318488866889507503531806372457058831314600312682971078635980844426772685885119483633714976183653831997134006016784279860031383915985987386160803979497335393293994771680683403902790767339307209219410291838458710880565981483850133128921404735832006893445936399501664042195914796077191663093730357596066121865480770811035048063483171248606358637519459743370570319554204247785031583597867036312474013617852035356691606200088023587653434994822464052820311664424061055356645785580760722975174571782361754298440721077844850765057739160364245806632785011643346608058320421672907573611337043282752977279963446903674240986792229174600843140399960266598120064731007628640437039000521911651148427146764950491708530181401522604875194411206421048564160869706540260398189424118475976429630512878837329718885833054089010328791877398243224241248499696229507493486875628750471810430956129083908595139993058709438375062342048544633094082595353471020379340745852610710987724375795065894285731679507548085533597903877630843913377764984190313473817489948377931370769826285055737046917752616237141387916806779596506142720276297815360504441867054223076159121930958282987222057055021336043133782136825291668251203461728248891022412286248326909817092643835635566562572264722698135179456503681636759608681518864755460010156182191199716004757101382803904324132783409599047439424203833401625134879732922632314996353302059160555059069213607778406896332325123478337583681722203632725314692037555384473770832868506330665186431766033299804347811573623568864494651532362109039310746437075165944286908508796897443403792548077527212969453293478394204981017385841456410057821163767184557577125858569496487122219007871938174024305984298730075014254549277828998187212385174233883502114656606579367545148526220431440382922464544286135303292122854011653325260915942340613987867383028240631970991690325061826981805840120873077197355561384019835608629403102398239843595718926031373007279304291364177022972894143960219300256410731516015109865706388631244947785794882657601636421730136400542924647217985014370533009592409145870406048753743270582519647813641541758990275657992167182261532871299145136553836381032977993103228364127636315776842828003111664282859260360407242708423185924590946540601435302170973473741282279750661009762155330129616710212048318514607743698121901310108782900900630435633451174832403336450317847754854063228039935269317846762452240723138868975120267661553015654291380939962183882279847635459523411068081783102116468666068803335639096851048216866387085732774729717374238320355563365412880449643956302575327404390102408999520995155208856858089468635439008324442050790630622268954836566723675234049126647789219095744895835360355976013267927848005161660553322985104262473466422574202913046584285448103916361443930924993285467043583147858717891285182911179612457632116391468938307580240527942383340031839146528295530695376481047172766553386445781096008407350219510985368168245877749292605721666134620962473061798006650291130174410133154015450991115453870510780969000045401938368691066457952013583845127111552543925388598653611090825755908751824474193878784540477267904753366185512027335975596908964626830759591926948922495001974704863066543228413495323468942579466781342065122143731760599827028369411711656129787351284024004829115359426950173000775332629882903399232814111300400057704203424018658048031884900289887908484180267402129808499522954142222211246116619376512447337721874578722490994796210499719662720012229194676042353201180514009735590728164909438207283416970971488017527723285510910906048876074459853981752252453465235912987725521226401313099759900928914567102596237401761764821536222263088474709640814154187426067876274054996541988331485612023542919835329669441611051331522289621175787133367691800483814465198908654398491847448857239276688563781440756254704177559647624873331926275059840305839459435282584645886363689574184015025209352334121605063306327791800060452448247465815009208143158020139279654125220892877889556339460448848345956339813229592666064352961551521763696635193944877614322437386476774630853964263234162301523017665554885463300432951332438314002173897819549883549454737464672236425056349307835282381843377602282338864626467700341523405721863048693557424238614547519366696605416000751523402202573961291443445108657208031016644978396185093725452984769986284521385310134785080867313457657260395846628544759081397430779023312740682999411206995399610274143205194252534879763890032040437602496197452275717040827330321954871335747007470691258870703867705903675819615562503768306477875987896368252408959083562133053201850606941985998099671344861274244606938755090413384510666273332197116286429739467263702103097264565501035554998771602325702789745007834445593163868904742394855539519650548873851943638970426817721920165563699830101530565953153858544762749092505098705207402442515054041362670913433347436233081857603809941983713799852958021807758394373378748643094135513331102096613589183148129909836522396015517844079512620630785900023574827011077346323588202164840057097559623361347023694444242834201480430098907171590529506410293350601839476556109514870706459511885977398936630833221946862608839851018212564132781209697515035631850035941397407144022748351076969140777123979540508996453978931097180654566249022256048989205911209583345040749622545590995776942044635687972801713626895182259089433153697418520886947418324716747670957494067410325515507768451000110056836100399417439374905358118820350704937603206867434809971541614677600727086488406218134659756711096276636683520419536014037243350649470937650821226477613520634363517352032264169758046178870954261388788333779987059878191898228236668778514305673361290755786665326552316772339619579132494437306555475015718082895081969589813146541995808795912096448581697967906530379675511852133114480772072403820415148390550209342022524458134635867490597885041332524784563181049111902272772416453450402978196069344620055657764330136015055417871633820030061041309556670133740557506509091494275690650262468900404272990857075832274432736495107684582488132310690049024620984620669304809229694177388887290825351938963879603373624262704344505847488311415728462480104135050171592501782637835316749741834057096553950019503503883372934090350001559401056783322111068985917250244785292553067508698159299037532326430475616123928494412242040304099853230998110838642278688376509465445092835500992521198151217319494960260171628400551760351906266659966372268991922564835866399458328764057636103116821374353336563252762197854153276348544768911634110303820040894109373177379399888822851886062995297256614738146615354635833262767973833046652102220201959419265059217522250962528118984362727640323365204393661369470793626540868939712109870620481195243450462871419174621589945331634981951531707507763706056064066830551008275840140487078134931626365137133145151877710976997948601329193683918499098169245186504002969407243622886487517325536913802271234249976290728403445577094495584875034111640435479708876543053071543896875186772786646318390516795323177388984945247472508430471653162281191094777895108570265977493398436817448115031999172083253591615435241298095847562771301996430388633084057555588108845205633930787847667249211033643975822162831486384421687748273638023607754786395932912804500135432302726991971271155685606211690633199659942549921093721785246245496104791952098494696118187472745349288337860318075310750412507203693284511038175246005866610141615193498692047153713497241031795612304074363072109896692979745047584039037163983941979543774315824562604679698719436764317353139190986150656134963632452953509380620605612676395915293813485791830130848330256777440216071687061182247205238433142182118335807528288764770832946133715377781507913609408355362930255029263942048264457930246687894662599892355104832569739207954352248515441081021628760449968143346582995531259269463080676885092233697928800975959405081629744098217946091512702547811207469078704776489503411570644062120718006356093390729197634926509245501569107425479161393808515344964910102507190274579049062276219272565780390341787800907682928765734865463336119888347250089760748525223769387399013088019313926774886127794109312687548960838100534325229106128162226465479870527867960429267103550275606828784899026720737805462969293824467885658589919688987014308773555171258522930498119749751500344548786202869320279644524078591221267208901605151881495682455310767211302453090087557351611394102241794070031276778430082402048648837983195480150476300457174691469448286718371315802551576223899844727707492298489746719303039439437143055460016522141171382581076899908911880247101920065640222277394256127617134066738146565992291626973535164909122612998138848546117425789336232810217931031692094386927973633424386721797497453999446687379824641929228647819675017143772097220822998695535042435339686990924528246716569084600239712720944307812066561525477428897191027791353328450607071935359921797864317081065758964969632699703489843526453979291760488105424858860446496547594738546292822299025949620217208124533599695728688928474962265784674875261787812686701093317331461592708801770171526344717942251177465697278883189447515845523811232642972713813373828175511613924263638305728763890631052618275474222320441530582974525148632591565813575793398668752251790775217973764919543833329980601805364951787634039425289176041518874640880587016401170519851165746403213005345682013596586741005236164269372174065389036457430555068103264527053306062114398043720535909026756173859940075500360374227636024000682154248777926233880894926752587027999547747251192918334574778816076314369740230486744244624767063561706529108160103028597633196359916359515727532954945646091637104358973163498920337332015134993674981202091801933000325118636668189443781950780069584894897767833463978258857372374442873720663649618261954382605105900155038267958569556968831608906389734731376034045961161186898357786707174728525550368074361108281851275864189361139309459398754396886690946221559821427810035427693732687764653813634864448813237335019983380544570499374068552416213617692496716682227028475268850233445141694188842483056588982085312372151691506643782730868670533138522345638431146235094133168466752025113885489675136616568869131079614958438860812446654501629161699918582013488099787635668875785706668744765335371663252026105409278075617507950965932386396248066035689713502454909971845154693632859025563486304420258304861239912605866406171910629831497835448210350795869142344253110335525323871320883860218578284405227791570842364594175379949467820361258349382709010723894104856798945490303551527304227695837089520181313594098644308253185577205865033241542903135145129331523072952467265866481340699799612010077159441734091320967830456519275434926952407064634782166914056918731083300210087963156406233435570037118142835103374178789336375718766391905765798019877005725560802224341874540224998932497945235495320891187753928499830021385490229116446560539314341076197135817455093775147596045876841219585047675857071804668775310222783303301167123930377498809826918995867988458017209858650282564201410194552427317820536213030587002995029424026580676603070291872690995438056281380851350870551923432986249326997013804485418718689980371841207651245451079977611305608314487365341949068783059591642934043862710006875951212377731560718270298364942075836582840387673519872831799789750783514366949129671044079675141168289434509515862802720154790381485058734110101816581082677993298303666605880349298350765396835975974023071949058407455010320505393191147319917990320742927298448955993540154887065875655220161510458946561175175685016231004222780591345961169052072632380610053268115486770190807485433733180689379595440399377702071930949118165440186595381203364756315334337316047459860908234477108363827115414421973591065140806920883963920009335552422752273180600809948500210836734369773345374965368204276510276812393492655922506636485413611185250822698470767914033457170726620762112152191777742135349002173588180816759605560412370855219559612886254948810226619591963461516434635442728076527112661907818744313948103948952768274841599865069467961987293208168513260801811066470412226459281380940483886503856042293150971924400146522416256578225761082562596732130247454368280514265049186072719041762905638443156460838968384045298931533741192803347271344950414499415220162589782420390961368203733583128953383494478686426337072732468852253987082161741803807703133842896445918609099324914199634759883121363926601498853798861687432335053004582826005571238848474846825101512722121693131148268350848806058613769528176816268088276761482362916650944336087511224796512760116790806165641896079116654870355375029004566476479035694691782134468261233645518594705690078363953648979469104706555915127337191232171108289381881077932401519357916231381687076458050739561390165980389187130504870307758793599637711058687704472362249229198661084162613459369095019006456334821000438911185615630557291073808615259395940096798372076360166800693918147513639799054555227075522957718992443197621390890420703316094810515476912462102276144933481916914614370663981360232969687417696585768590394320345902223621787788749792013448572262600259417867486041710352578576118549905482778881275840109405180549646403912553307020784119004118664329179423300983743999578665690265131298618492126701395659178949032821115108177104589392593596137363411236519410131167007914997291219403437671241664867977900693423841101562250728528087640197419763933124172163525899480289944086320674692355207806342689661717519817923405526216212078068635588995297480028832718453918097012638638156493929862562809442869738846975832683381959642697565649881673248452288323760578470006609983840591371834245546011074445514620135350953023526947386465299082778911459498182954465074107243692558229375434488773451579688226398590871254356021796271145523677504040082749457213210772225169650816489808227765270591251339648361628284589233205215461520580705833143196097758556167288615961331415530320702025793489560292514058920571637834100898418449265469826635423898557998229186620663556867656852388682763727278657257797108268960431429374513439052464917599360246431399236544382338743706451217866719048046191234058009234896518729452948408746451078837519774716318303086927578822051459626325292808479216915351229842512504004953845622586905257973033133991535463476030394163581996241829500410479874511780926600066609367470607912669357428114642720579275153107126134162158975500583012363596629336689895676039540255970124864559287895599187412319706434653377513746213947164687159834538162488918956749796044702213650981521631231749189644852252086103757908231753274772511909503547856959330044381172243565743424632965785364003046370880282416135714644514010220554042638275407720596686785021646044134326328583826601659546688258775582517148948981373253831011629269345566285810664585691072326499775953571449096295499127293892876430493684656334355571384623319459378653751591879332608463665245895114774399361748118753406397459696535993402489053797324638549137558440091177975588444317732198763189327327554659547716731741913425281884346612410386249274667991314219131916089042703143088587519857598084574272887676239796227883902416864445855330922498830932479190609287152790797682582453268825180418353825694024436569828522051324662429905643716583695118681786899327656484179905216355993183190504984954997031958283037457649075691945094566381427937834631682420727537422530692923615834823615944894100818486426462118848388087435918016647586052062133660861500414561430250925755274931719267263992339969414529934987126066164146794507775723439454576101471075865389420884818844449505153642807211065810794367555752098182931748254106981775028202973247572026821140859559054798178052340051022371377213164563735515055264613111572186394104092304229582912446743014130751479822431672177020171612008989901148491877123260328742264161480812752105534098008400191369645164884513017327767949044089407224281009282741391071671705262411277247074966642314673677444685929576410118869304235134690865302228215529379672358672304357944616900551465790878975112981332049242706548147208517868058536557445726639274806215867461888499256506132949304553915274478661850708817176977711184702036547049873367507967300533840218368202589947668444462327425139541493830123320610974518099145862445389429613556697323915501132806343730701898214260106285548382424114397060415029560918972136839373833219029362057522224906421585763583795570305812805169014757572737825117470390154125966875669452279340844873218479452573635709028092520919650067739198352727992866045089302768455531556026826983243279494227609188576899868316611191988221310044950128175018105878497403715032713085510293306701390876048853793076115390922603244657205908071537532864064453588796100158801287630386949148931566625382443378437762877555138624318578190608043751288322369106206470003873983721591819735376051859037345025886363464590709188344469588501509871233414179207762699509761476133809655822308254008363293357637293128579417949362360478848280808966763084511067595579627764215211646093061551388705751329934612595096848425672282305959603558179734462259173470688303076657139780223586700910711770044705689801848956806182784399972187779588583465380528922293672280270621857431508491662399215200418768434031450674911945890883711797102064583723449872079986632172905699021495334672372798454162608159674111228660398015282879304065274388701353866218249675375836245800548752453993780865504068528782553723864335054331570071006438623572529819938981631657368515673112026231561423096294288401721843091577414846562034034738274490668728261520084497645508397103050317899606092657600223271046969013383965302152355433656580399443242365233899530758546458747623836234072635553931080320941515486412380337022935669964518129882463679778342252899412714631634596765871713773489151433071601413492889270252862958555028492930116982763350553937454793208302193496815709045606469359250834065517177774942439490471846246632949122319458898775863567721342044335585900824836664188266830378713777425620849178521132644542794971434689025207208062115246199938504181785552756655756109758875913016541904601735141656385626337304399947087037454799436211521912321970254302312495442266259824265528700111788902595768382433137751595871296290372318233126519672157809928986301637814739132043062490359935357327231324433314170906305806213019457551597045094929147658244712302071798023978169456536308732325639118538120304568106624828537943897562909043777520947157380876888562886009239122677895957579068687248459789250523751232030132152760284676874935663751944832021438068083514718106911935999916404882615649720741288481711254015644532327891067929567087640106809665285012365866216791140298047406322256503888659948950333293949617275922178877808996586571079163712084327229345455112881214645222292545320140423578778629759536679189782150998447370500643016360677397463238103859144499945544134840318284522482442582286078295266507478048415536963054577689220058173718626571411381517333200242020096017878093686740092105888978539582708169299869762802276585807688404626399014279975740937374900618599957156753452960797293194044782316630197616923321915151466201195867312810224821399146602390823961793475732363375501332639770482958291176737235071808567539653523317621621554518504016554218376174543707432512831555366916234040782170978866945790239782090082290881319175161156441520923633923587991211430653257245352005423698484720066906610461753821136317979383923297167061111709703493735683278762557046722508846829592931898347218351299608907219174610676833123458095972208823853774067529958540964183071078702988882457241670894239379526262652684079330539918152206173133514531378600126088690271550304634582526706279450857351391492783688280116410412385713601789482633045092213927530185436137461050517969610989373906068272192956731982028791594993997115422353004600045311862027648464232651703135615985063465903114718629802581018441480224723335529704168781022953248567919704286814891312075059566981735822585469190007371177190185865966198452160985304511251938872719994273399728431554124018011442094669525673556174963986053141781466304684479891234479226745689236282432286334600479202229027058344604758080077132881679795352915951103939778337358707883295564988823470279118058858385195367027200952917560806756040763010786535148880187244722767993515244698669128584954006702929196577931640366739740246514742905974273848661545930642432054872283857450310029592202809395957666047203110565879294001373229203146834331041092921487089967154497070698963829010149372874867469386803626737128617199037316191029266382284285980302262544823532438832597473287937416563932238805258506393812093185536132945657179455596967089677448742634465081640569466228140221272907403405006495633235997420184259411284187689023060153233551660023404400256634160282582236947243492658732597523061934539465060140579474167993106481797964542403958964158752709646697918609885822266264021040640134862501510117724103420854699197950870415093962872582433871112347144796068398787948475657109363490974781511228231741452657035885208121074112982385126169063387822857305686102360543391970873621800473500696435874539072686205468836724444906417471587668097073918385806048085293566540556746911349911516170099570242079349092520368655308364941733059740568011433009395406065238920109785146128949358518755798503792641316298667316776452147534310363703202290122764236280200759401082048613580144406744408088380578061187212436987966080437042873197543648107938661703246456641639609809780730200797156270376298864450783608152961427254926418803494730214252429697480109232176667876192400841888634063175304682754944177540513556800871057768462623875926385569520071579816812633246374660139805078476631049276580035072894017714464725750539314099760053949910138189916108311724186530421024609538187110252938057324625132714901790644571075715491837856464158335494530625050294693162291076555198764062691322070404127958004895379728692714592633467362446385130115883385532148562296802864953462968861794331931077342600310965180167720379473980651713803504749803640831239534936704781900181352654713574646229915817731243435247626120559475787336534537275175870428476175690811330055396748895904844700069685702673711049322111828935781107755225817932911389613788716889219515714494182004866473289345585645698317566763307924366036977798428623625034982564607638368761503025692580342912041685949086637440186898058566713661173714168414372251786832720442267268012899407852199663588739526839334733364784933072017533424426382691299710574004945563500301251563196765155901377379996573729037794684344042000462146960090142437037818803724185926499085566154020431143534382435600521856062980546732040096341820239907250493587776241816137265400346163010469193235319328946808821996589195223003297848362835312308630916486021076742323373567330856860759714965426217901916074431709829653760639383329109086310871106753214995254300110233183003076395177913922278736020185305027693678499766588633172711498061493920904777448317537132825943210098006133169248517570627755517107780512015743552196474519284187726407519963640312169012265753299027674752974604913976435693118590013126138437811643885690750709881558037948457383217355346397724567722451591511572483618726606045721632476565754391842483846645111640770270526810717120615486188500832888277489613453950451121501087319635909352766027401467596447246337861217143520023576546774026492443661639934633296646649325083223004368018507028334467879229230608345233093479188869080656516286424198712390199916379435276814098914620756914230795920061477299014849889915496117632471364325620080151891026405120505962687765735175159109704018666138512414669080504732874349297245864454709676394547250339512272517893407027657238667454746588732453971013093051673062824945942951344548932310573848002322340084805799389394629403190973103169193026543615176147783067497890746101481761035544671913177695770387811094595170808574027706303125955523644640958040414209076183772810622919456816712175669677463227888558447466471702567926538067520224495396640591521475037230126126019604252662888245390585381908077304202995622358387556406857247749150305733851712518457244590164957249948589145421177682048015171611030527193227238286048530634863225352403192791699587089631502009357191026509296425795530709568614890064512561407777012627101335148425308848839956514603727282664470696396879165145193076096591248889412900213792433015252083321615743828162128421941756482571885097738377550101189979311183643115988469421616802377655666291004891264432017678440231776061074789926934878462158934561705517203866645093713289785899786109091249791503370095582095131009103302760501245094303685463066822669156952166581399883635481823241932536655789007788106693437119188907567913329395363597869929153045906074344262660806185962796741670668293210395847571805091185002002528894688112122863001335600332084059011692439451491993601853357665902896784485646868194301699875188319203294014083714613553783861949765553702561783693966820980357908705518048123217748490467295047840819302022823925366414991007115672808977821295207704275489340671131873131101550982442863589864506229336731442378591164190110070856667150767515843359730396188483334507041311046396420845570017242733370821912809900469081251292630490601542580633100451039843050902158927882402276300408397928464041376318180082030843598749649840667646596860537288543360078057311533084958523904542229236691050830042678525374504509796558767264958972844736130625845371012463348806066958360298947213937252922686667864874348926289570035382399500281900310094117759568188548961620883672778485280493022774326689981145716330206901265441472514179460280684214559428038518009180440413955620069596130565747007456164488299982444664641550440794341648946979929321869777777365193716877585982013056884401570636936793363412421244732199223872341852692858216624304461354870583690734403319553909905930719865910649538139635094302408614537781565636946943148284291721001819046990386067676789218914974125777868883015307428976808763786742879924483503918541156511028721584933931675384470434451427465972376104106259235638379127944142853515622468207215868484078556889715850416799111949700326946296352256449065428588557288864836479966219053145080552118976111178522384381227955867471070233275697995415667571844910707867984141150108220796993079145631948723627508966489812862533342750031102549282553441528874393927679436433887269502433012306645412360938711460269611249663285288737586983450933921879733740117059247746932393000107135555892024454456009475865109943303932120244424179348927105323133948582308625851970396231527368193284191321407284608763018198866353493955572932091618144697242194873651194342418117635025802655431238155760588109034726939788677628653953433977352703491280788325761456955398224315125962036646142297480771804776799415129321885155217841191644344474156165701787461713054333816180672473861895458367471517594053934830057870199426848139399340287129802020579862392285998205410863254951350149456705550302469129745762547016911985539429790304940577548433660170849450916643732944881601080580039703783438716966640410885944176861200106441367090331050764716316327938932475382847511390621188982447003650154777812828943108589532265576366787664430224244148458643159782546633587242321617155229894830152092001246724946485741174051794519461335926151232247888801008486849886898594169947828110087086335631868698063206383882329795807606098325576335187724457830209531619367091205740992256724380135185268821275186090856952479726280626516060707249247250816543377678471257902369243285691197530396055596795584014070645654707740108342383604470714090210242896068243183023649878914430172158867384000616558249082261737181038626668722659931213644281275732215282487757716698612272523883799793481103290910112507634323580198121154282626548461471022124723449055193964443562562188731650182919411194325265948717069587828809359300114054128366779323383971164978489291689135645459319309812345853169030703827731528658755983156239702730305885966776713633699477002931289887623301570025887938393367167324666636673723449717461093007766606154109533256543589722139431504646435372777128762759678959044678133286664867053853425544264774160988605322744713557687300684716906358035705201232095838793720041020193149217035075265209639570993310407234309888224524134845663776244425764977537097735016268447521425570807173213760553985251027396583986365772489389645951256939681648366835823826809868695489631097081207173071575978929429445996621993693471826646639449881984371440274046325944659799901525090829922202226235888767095203619498904563236739597703870713029195297859210746777953826249198417053783113358369980559844145303675826447315952302323766890842631608787382863472900640750565194170496729599910300439729222892459607098826991318136952981257321062981060073798533618868529726342587282250650054086527095722285444244254133341230520417276048668141982558454532438228100520816161721659291102433158755985502875103033104660736882292344012870602604348249871111592078807958927683161955739466798864844138656500308585074338312095531580877209042388218906950251631630586798942453254360194909081771914612583997301064137338898742568023171752355742834024085353590429659908726830731451904082479965993470406980445222797054874516101981525573295582414686157691712057650977194291353630548588350011819504354896640662551241550699935479792171560634421770302315351034225906506116759477911081266697404249141216599605452314473065738399860687052234907143363264255168795668319320234166608719270263017922550701469807252095831290547835930676751137348963829524054862167207725947343706971692255807176785534357696592220457128855864605850730916019936748123914073553441240267824928224257101261925221916566865268595712250179411961188741742129592719755249499551883203466721299319392052847262329989133314109468276368117854300664528090821322869698585464117956864504305707578593047532701923277448637055575881929183491156459384390726599022721851864060484877137920964697557699504222004701548386849474622151487070871546981606556461317473049894331560132945582094080076513404810283366284161493629931236316489000440367783424726728688784991897339549329624691286968144281183417609184694070207145622389915831924196092059771636640754592828704926792625324771792481217936664655156355554908152090213941109135881196851773931983002722892694120861908984886042927910532071914028548742341330302585931884950450790756472003982810479801080690247669058974318968622261013565924348032154869567498029769644781224030282831610114206919109462641627590000061477645649585984445588594670478111078418739128890281055244291137150042903829319889495797990908375350992071976248065210001673732766620215820752818512790084741712302255456147224829256384829332130613946571742083095987860780110344237499984732736666395217439906835918047471313402014385285065067459352932086757553442144723628245800025085488198296094267409428779391767878410849054055945910155003010988175918189644065593697824255826944953820887118301262241378681256357795411077102472137264428840910128235239348886447973904856554617359042259845492723246711810855892975195252441940884450825101581603597676728242302842153340937787288208327651238947963986658928239609970204526480504694662066138544227232179216417114494614640971176389715251877099898196738435510840442235955903178223873452696283145153809343137346674945911178196395070184669775569809456723560163522545113127682369595263796594619978651998636926525038810643591645907019085215266326030767400058321647169479318347267206156451321700911897290042655137654113448824636029053463500187419541980873804622678315151530400678125116880052172478007426261307779735145400798392601475857828316192558212425718397948999538432754738166706869466712492325769586615279112564953621887806052691306861651018661939670875202345940446486031820403255071779766213716752822361810340188873701285213590924591466925197794512037210710858787923156307100147035232105134892488026767403093885256991589128863374293678257642475879876192551857745266991481571988555952754003357983065622205821283760893820980743564368351414837954999392433294159170534136274808599115107287665672383492709831912203202547647919857483692008720935188145459259642822179635164507491098568173684874925711682758872598881494096845586950798641518830651542928147112075493068884534784050488143457856920056686746563609423270892793206132244402240054533061685009692726829223023834135572833890075903238986067381116562682938422989034738304787057664552791168020312357763103379005726154756157866564953361591691381190283231013415038877510785368279222508517825866765238960542453000936489239750749051880668165937486106285704711949599151962583000834337726349067167498971925531968197183986485737232379189916366576062929706032374771539932378032768313651066961068101084678834973073832130365195751206686309659913180728072696517903812822929458951074920069505617177142178757834288626638859584829293736532021789848448574753777503319491622279797792122720097675188627886681283099378069816843760819577676780634427515015530908968880866906223011301937093760266241860631665055911260834582913374154552034989604859179512335473261428435692545607021352712023041395393439066357045820252594028204626237984511834461944000911607985475812062765580154070904469779833116890128644168150117568043843686028186904375555656925590046757596831163404441558202739405159435681666109183537997102719068077125008138537524715758372683031351783458341580355936694308617925835492140915634129247417992688574664173540934726695046074334499320531887218324927009777373764449541523446203715011302778955344374174309790062514000171890650316248705782483730424172904827065230263441042931438934347760390007796808240603597074403685744695128919424110210422081601983620178611085075862705978359980821891664437506417714690928926608834758433583226744063880236421601319727295885951073000573300666473434969034402053191093733874877627897022633970989954438026373421131452463495124600765029445447870958090106457379846496483657085901015048402233448931845608888937286539908395463706520051768653588850170201643331916836672669760796816686676109580871711600661268485218709071533691656099305050585127209600458625294568682586297282367838363701754082556759709757284492692732164279376790096030321674452613261702460425976004587883510328407302818060235727338935536389290529383012127082192950219897446862765654741859213648738326639834664162473357444815086441738751347860655939493728669326603097824723422277933645381521913348522116845824877964882283541552089979234716105455021195853393108904058974605429569555636411041735257803509883209093005796833627560657349120157874200312326492518661335106446552214412004018628960037542081799156809383756940306828251140339650046060858575199123836678246973159120995408468147689230292977608640162700239642518268943825757557527193784491692793118868572366684123916756358558331411449332881066224374089427795124918466577034422313877704997134116093826514582720049541863515751022640374058867745337626488905215693364639810322572543204738023400425554231556751742604859785560369773968574707072575233881984977828229726175295181866264603626443673864533496090312367855173075912417777611727417386004718766367209802689655024332789121803679308216818705663226046858928348319989748251791052115910360218508718272836476836578380902832926205034241025728918524105853391974006775648995125420808741995960053503405536452020260503063838539285122323163943795625056392460450660804630264770978065359601329877817272686979849670176668706890252212821912283918072475865806509628819635485698268501319178829960654125977065746633055872189570415226896341680934358852627677634859268517359010335131812465530733410777251468385241136963680341975728019834772235053245914040731582072776578358731192473710992700353100265331897936302560321197744879380146276457956259492877492767895713513137091249445938827069459669049567488183665764526338452671804541905996199335673116788172261755794543781813915582571832151030093372026683868246520164232951923863383507859630274093935511942774733427790042266686743418161265528680430306201120313717761316100308184898015619137640661219970724048098797591179846011141006661529034790629262969203592343331855583216751355305831394176837643960962817956538925106316317504989384151708077927716971527511989385109383508555176090518790948251869383782637695288178859250016140279244190500134050422690788911742578692842699733892124431311097901241832740321987529068427688749741483701817555766679863157072096800883934297374320316279937357203072021697831254532704455089385055432728976616589843831301380967175746647806880115969763605199127696768096723126550997135706105883091010168426048765075562238229929269520621267140390797877432527386167125386586108356695709078754791341654826797242714371855622210193768219697988271479955670783171538821040938212641593961031150100479898957060175688552086152039578869960615133341747158907133259242295426330527953228968397133069927719765434593222649054471685577247224761626622298690084742379417074442057789597634765115698637518337163849005988008006108743284415094193391301143772318741582670903294945758295864978198212953368615737921927016601137858439037721354014696388378553853163542482284191577579963121471813674822110276042688974269249102850573985356825242837874289716328273377529085753437391375445503035125510072214959921307532672065570209615167541163637634083803692614972128185538078582964146016472762259424744149955477633492543196368512834216459839742483301330787405451502042608137852868495170143055836480710771772848672325609981736273463799237113277548440854857816060565437472092212576886221175348172017973833652588497207682085563586429098667663761087621418101162814283915333443800290868738492694045098689668459018937359726732286823720651041204170447886949164570666381779931655840312262540610423279520565764497677669947008347734378990307565777940185309220980744814274223144855966276288389226484201744794429470458842978820952510642545650100590359804067667322908130192393979729506054466937463617995622379316218950183678071155152567397677220991381022716086060498064388059995569896203963676506098747356388141132843593659568198374284249384378681775279655096640940710135426309291050930809843667395270565385829709285386610246057572082014639756371837915308497503329125445451301202969878080005385969667015730085784606994017531763187201774719379608752135330409709645521315842684453940468419321836887173810351190413155035987030652741871782075107515676821517337250709743672637878783815728534750252584051485659931488285184130597292922221325583475156905199706061208585115037308299875579939823341101911752830754968963486100333212399152743780814079834115351972480930011831650918895600108415690885003539861481138521732359851369372282957508311454293545431908719676419418789125101735172170592148657174059338295711448071485465776662443581527995928263820798274956180685267649015531335407953019034357989920191195735064802897209174722434292743222180209477047012207411946973946065259237575465819459741593848295284294392246873059400403848094622172663217239582366046983908230929857650834764495831596413010339557925517392082511660645650086384942412813133841626218652647713205228210992555427953846640622287315091828929170377581534604162002656848619124033146235703987090550671288642334355819680642793816713347690778354647707024359527365610822853670825578769450854298423273048332280248137386539811305158863488343885629570551464269083693425273800678250977540346924074667458122687362820189687595431344333833338488250339012048903641056699930912846598053153233617795321449479062297120228821767417332785519808684834463113660362394864433209073485590518089257635623340385877550639356201877803692261674758909091757105332757420100446974564224493310961276189468922402413099128263838291965381543952769979214858829630910102060847651124872712200410395020673849611684899579911295536714049092781741796756408455715489625895747112760291167530196854423007176628694475437656927490806501646874658582667924634845937989421385010595092264450954561689826519606257890578368163677004853012297972821334369338400909774514615891652676882761266895515982087064486779145372462977102468316348799180120138359684433077199080089480590060014115346897031858214313943022387748216264608049478311417325494711545029380485577182530877023305752817099359407798316322376827056713086027763450872866368234196213241231316237853676849303183945174939640507719548757969381895025721124186441058364507148884127265830925144942181305955751508830783322285963742323113687763445836381741931252106954577819064564991193057842147927728386840229959507864783062237181377553967427889164509088778557139249305813318955216094789144149680420495459964168058738408900945293514498539485524098790958417942140687919757854284824838723393118309322835190883881933419904642259491799052533096300566847109748354190772965659453827068862998048478754913628681752617838917158175268000113703051680295278977980634369846876814229938227243767324435405234196125501338968707660063548501181910875243298079494501265239710939952123138973284914261222616632455995318559569775856959014387524650131128743453811471913788107534622671651503367874427762012818931581177013914048813167109924871623568425386392729902226570749377783898861992737308178273679141814274595044836063382838462315822369593880467361139229943326591694430382773359014215886922548061518526183422338553432333822662555095827523725350632793591312775434139632044587276089672809515537629250216138458023305788956715780590233884276006134528706047019736717543027998677273014864262229479889779467536687264795664929184154610407533704107905712359961305981326774956959505191670878764908094164549221516963970860216030070488439926884798921077056570055366564798962512699164539492696474628678955407940311255828047527409749669985478925078181167856767404012364015273438754791077131885833755182219965878966639765487379303693597952287543485012968004589538172479816796115281627274899868034734606537052231896219977015830889609199137493972568654564627250069487496237056292374344387205307972021237938824921807106483993596538340777059308096382051483067972611607997577484011726170329087674350879909790391022032842585858757340387031003767695020466428972197295523813509162944276176208245989168440960915310427608917761462920486364242212328089254530777796107340480463603216147198161196338362907905220425190735084008294628687959567620176128562957243943849172532277687363274628895895066887085191193337703524960913265928252026033510825649731041316005925185589010657844128645419801263525761782186730748343004030545391372053207799356875337921954247601728139704205045198077026966804026258772239878542990076609968132637276010762111761629558128563993295045527242603788254485417188637852435113783520141378043335394262456515725523365170106478315533630407699223211664780100066796659690255153011014124205493339920751584727847797987460169141463134193529614821726088275776581019850159267755130324255872543887088128648115896003106633966112445397997309571440950920317325396271285290467171691454794654001308562038267481576726928521093669175290562491810898375918846125476558315767899887435235939529570004751946938850116234066354099937934210525185737194542118329375575161909229330832878523469975914520042331050223157963991777525939998414088869073222517084439566802256153441372113353665238667912655320504726553114317730350172748692165864832789813084304775345432749192744333378290170990049066505588808261728168431717976368970216119055219305029312757389858079192410714765949502685428201560741260944299846245053299629268191626279561610326708087585101378643833163028364968934475711592977743959217978173689951394141191962634703677585540400020149131763006110527207315740568105411328900652618403047621170098151204564621740166644831522888869189018015471462833281829861146509476548992317780719899823021794570968096480030231732097230104667091192232712930673194264132587391707117286346506258747454660597835800559437328739599581355155130907582112124577956414801533152597769932782673601449652400768008449110904746974084902693049082988361789457742838553746947410946100521676805729031954733731827430143664513774337414083850505677741098279536734792343091409135365576216340073938055308280840916909197311985184004695579099729475176241378250137824738163591422998636495610830479341669779331866476811353679887277600015103557216277396725836511098891629985933522338676036136640682123924468666267153141187232844751778966014577094156829071150082103980063466484807869752531632774108774789126713831518794991390599778898483199796993671711449591501632880631288627243918873071745719647871857064144863970547818890888953252100475781368664499124440707976606829517804005703633641511901009998584149903808542873589204721553685780289654599512730112439428295999756074443037710566521496241520826379289676987032770439004712944900261266603498336026712317802078249829454602171667145111656668513481526552635039527766773336689296016276725096117180527167174478565133642308315234432499522247584059136836725956620186134082047569051437546148126244401208276477739469442919417025857115850435676606394779541261469779589918915236290738450359146160867764499411061860069483700151933939227406134342864934436325661952127637182537295619406200513829395651058451733841260092807833341198767748933941969717025061625462275517234095471676233539740062016786825390931989635195235777632023190063914488164974728110075174021956201542313144230110547302801195227802708939607187514887713442832935114468131139207832475794808759562611538230105702407652296641343918474418782274665742193038227380635243746788885009315226997973729737176718470206051254557960411604094745357244748575280863225244671789764798246907298150269482980261274473212313149511926134597710790385958695795994532509126210372389364450140324329237012664859017439865105427219320453457648878272126202514485027768471548029400382111863517691758423900703230696427310390804595785377345318140777128495083492660826629489119326180661713349139188572141225211745166141100900570424839669269737475359250802567752581588044350239675250969117493413527200876552571408701472562476641407078573448025890508448040074829643567032446727315705681322457823004392591869759052504173260524745275017800335809488721775725383278919674480316593881236544239409802548282915897239137916437282878508877972994817572241108411568939669414535276981669996460200361757139419732224886306278867287122738817718484206578302488956857469633646323227375442914739002195995715355982077210001063470121124768838064339354467052182816113401426620610947779345857079454682468649034163634211122183251683019488188864528213693670067170088200138346811742273661329953456996481227066095908707218712443581724175342840962090132426503166850598250950662485192676309496751294382534316972894211547404641331986892914942608717593730834715874371491564930582901966935004815254292416051898153279574198979431873162269123982493011504838241441372867455727688020963496540002883504242523406892813684915246285645935779087778090721488103242825197112818098746351607420853793866242258900731689823067947573762130449101836946538614043109218436000196244433970313707555662208192099454191639884171407363542221286375246768100216310788171454704951959786885790322960365671136310320554950506235422721411092133828335895784786031889421058698196517935919673286729321535129038285558631484572381750755372931436987250883445332550696198375964556979027604292416497315069179968232668465361483681896667464078896766244928784068793384867383927718442937636182147223036071449483821175442692419048433706133663784885519170764609263216452840641612632575824331282482231577103211117345596978065359213718113597352351036380892844941919576654860565406833989500609480677396024994513346249297305430761522747722366883190090431282693935407186017042495024795211023448858602711493509700859475854747073324534303140758886279098433202054664120987440265578217521148046971419175150220979598353008963560217757233941841956217086130334891828661988074399862047527882169488822233975121340049949205026422717172252762850814731061626361053085800219976809639578885922215614378895976057931460721518223335439817869161056707359233948166075540252740492458868927711106122994767215783157653939039708478259850523205809529388982610452878320629832992393434484006459030547168336729987302266250754479234420078240111123858843594897978857319693659049489674253338149678887939367367978342053601205161419994264326801839961702542125040292062091947173308755975311411078120284441271307586356747437290391313418276708213885092016214724897233068700384442798766944662262522124514922165034726849986897483997049806250767963490501863143270352070458332441988399551695612934986163510441147830056321492420341189277066887571771701111267238338151297826859828309274418854478803032999781189159805855443506680274417878618862042709661696721544951121826277369804523929524713102658480048579742969800296115116052603369568399459435636215413038777892504597869532046140846092406252373657473767461882773172766454705606235823810704636133357948841031403605603125078732437151933680105786057248533830593273516321297541859391524716166165293845407485205948627643307232748231684108458105949248842716158683236553357895185203133816849337211878089393543604460103380983703780017195263220480438153641545201695364070203942425384647098944648007536235046559925062020461254123122493800676536008943562776967790497422318551698978884567314802315447713162981277067038692968138772648095938064162865782634547030676489967506445695070988210259399961602879277766903445460148914820472417151666987343452461407675333459580476413350302126089267480518717794929146062791759851322102446332068814761050286074928755005466678777545652152706058240250083363795126908211448902721450255079466265563638156617036561760365645247620962769202861731483370465511783935236781942511697365110385511939372192681088709339920687325102795903110843279787504754320744345839635082101471904109922198552909851835352757742139058780097231918084147442288466957877026204824019381557723754927835128860989360212623970688188626116792873913561480056587959295041219752486508538018085771386140506724838876305124997943314830593266392650020719826009565408696664874083839698436412036310150817082431659641290494002353980414023224268431147318384634058509336799370913183644599711513979886131916848279787999459842299350151472861437685556522070279235446578673921750229355474650778856492747962362253693427922340275227988478741362310355047346186330934715832838262680561071074100881227732854215215305195336582382511337675133174317920935584142448371592610444541182600521550895119012648724066886283287607180107863083356195770082423496350415164658343203029516823146054461703690088224903769611123492938785804408617424434879941182908992482309117963794493716861261967353892615823093760233138885010861032732154279600281213857730579270408072985903238503730373080188088830755698500726540454142421382213945043772810170961226539418149205110563103179559316516956456602095558921401094875195369938742881754878017252605777826910283701427304833539872472658873949800086001891913394024362044327779903509842595752573193425957581952751245827486923795956091243368897860098148961062058186281729532940287136111669965082216421672728259692320554670191411494813891603744247025538332167071041177054899626643576164341631154602086900337009904868631718352854851840226911666373782801563117047479685195270061527036594514932306526533427983506657743929043420218675700873561714534977096996319450290130534741086219735694436414322878099269406986958920497716707137379072010891323546948560006548558833328684682541649679671107932504479506447956772757720075821823747097819923184931974651420166158717508104546426061510929919910721930978232370951054037513382352808572587628140479386309001518051256449114204514470974440900812877691241797707073089251293450491768683253417527004170975838363600511748126424129784829128236540510181430391737906819383529635792051292233590874935176853340097173659420527217380601795232778315037500012264445708596018383999762458356969801757834335818210265847610414943558977518609505547636966181810595275186752965845895048090506554278149541006688606856128374045260719544715947367798669232309153125979689172362623715267447480583449239498290677065791422470262919034036558993549906416444194619598437281755793764741262197678695469024717155836640093599047234793792050405173724598501663794409509493281444161718109795139425420285370246743836296760967504210740014596637111764980629692052222270702785457085692231291817819290640320484174694298819640558776026162301848880564068358515444189835409902792862255187138558019840503622560152479880359199124470068519120820590633398121828256203081210918287396962325524709493302168968470632902932015738907011858910388453565716560066159113785308201825207896447672830677387399915551040931277710306024261606258034414786441892267813712835233543953856231340779562717186686898945028563099344449110161225256078649812446860750853471845378756787083153100798854852611987025713610732552675417810423693047838674077319555489135133094449731120679173095178572451230371201182553928450497751700180838995985984442594734957063755890398081027178254515303681468462851454693374673282771595852653905844891613852390829205904419352114777091684942112639922277054026979134836655132714013928734722192327589489812940539265067784943408799746553135021029292905420820064154686216888435150854095635957639782221809417374100766891221089802022312302076138884030236864195839432109113891705594690075326093620699956362287190079233408513526319752961826087038065225610301534554802456996233044644255380445500991823151581741768663882858837031943713343891701284071968550287358229317289925115455242408244542496221333568033625369453701088649962567384601643799102305740420670215964346785696672048719812473821898852203950968561927208486507678670240547843231930026790764104264918279185589092029005140837606929138511690938884204662276573286505906001977223005172436230614180729955643132484826963491429451785098879920556421987263478036394808211957736362617936515821701440705949061509648720845453609252115415414104779211949412696489985743299189135557601340454568991422416994771772202853874050269629636557743409343899932225205416554298481546324081651831917153690264719841898967618698474030743226199658313994076143415325275773148649739291341494087193471313806169713549016687192642897332523031653900780171570848061834862944550712335055321953085165704340131774755350638431197713356778797835739601207038921171239992780502080406503293879442724078362950744203232829344699850305435853455920602786125848644469519012831392485182047828025209280047484288741399058950409764783325092354820028969906812890766403011538794933682461852385157336032041534854333263438296061226680825402278015817324909843248949464212185546918579564114047095241623518876208158570660399076870052786047284045452469983598932977822803674899005886106390838648541156632196042275708514382293905824583201848799564033655807435223283237285947260903605466392830515046360733102532220616019504034076449687017513070434989029653294427303767904747766203321523167583665241606156101264025690465272806735015522415855380723209215407597004304230100328221405138714560706623639157131693121854455567542615174619843017544490952072258178001923356172787645977232975568134224512107171497615248429353206484474111779251648279308454963235452161961848384962983670993101306595120914981899991514821498484201773065082011642575250560713328068297949025461732993101438577444951261920715486762928320754235594887685707760536879048892274931263388977605326836708700923535685798398078703159530150283069774257443895279689785004188316846002637861095529521218077173611557433531131263171651566066160977115980415874455169670395351330341869122124729530022998683671666315060359633123577936016605413132813322726704381252927905567267774075763740721968730797001117837594927523245469444644586524351116097907543995667486475392623719206988191891379000915021467328522029356507448193492538097650749986225937351133958256745229008589138165582937046833093676450930072009890906474754854788006945879830080928785465739027330390920536029117245379317563383370234852322947803885486628189900856790399535150394133799081913583707904458453333463400673754172770243567414812331204170860350898353802311524801853897175920093095728131149715510906653564339182864609700430168996245283879633138975915506178932827022303174936541643755082028365144554762980116736988546090368854599799456983896763696346815667572491787771475895551287222394776432019745426893188019179074976240085074252530424052477882065897932226562112274550674163934888901316775725163951229819848442050724136257824012157256286661347156255742349024029463769263044287613661723897137242057857911426978145074767199155323317305051743081136731973524061061664784007241077847545380145665965860524680571278743520901919166336262862128042832673692724826654586773266928499578930183485948304589951417639074064557486741092420171060826776242842043382159064233442002881697065898021013443550976809290648404102459841500551139908254815774837695991383699272480744686716499976636062853936946523134071123039042319884692758127532311497977665871052356717091347860406571906746565358229122821569735225122121894486833948754732434870444812880807216727489941757099428925443059662315087949516992362109185079438437091484397790528535758062902664250229557636223218948699898646649487782186609091911386401545417796494771958575432858186899787205021555070747749529868499936003537116793004020678084342830773197566145920975133311032982751102507146002206722331037626440520192642060824705408502546226063501012194992868992779827678056681303714102606127433636595023299103564702284731471114791647509092683537424306232662246454210178179551045097118951350701067096926922545473185713078301594064328552173725578180365186154478983246669826994469295017678681115168357986003251891430392893992707211793551867081938275124054410590416510993066969227727915581580090750954675207623964865202254508891594982524548771926080773616985911877937016959748864566470592233248694478753414039447537766350636735293468936088298323854218332117605091430097423226350417918737010064827076890882194966158588187291641882793338599144478783654677207334309824684357934482388338360397533411425572434406586394070495715521758816339587101407312474634582301477946527043018911300416856243464259121284464120364428425740703391814455243880807226768634514341355276272056540450291295287492787380116588746649582718721367237033246332557440403731591858638272540190155127836875661950688247345882753674419245493275989946013070276644299112448954430713802662163957607035106705323733934498342186217020819518039285961903937615976382436460001711272403588948363618424911630998020314814218513657809572910997951207321011073808790462602123374597605174729196123759110564730546910166427394771538180639501394106722685663909751938471086140282393254094690755924695488337009998513478948690057569312285445523579677717421493088378179016828177195482797932656018336726231548032940202214895903091361853480247102173361658720082839184089859869147785509511480194772736810146448314603424706272898493955652544806513080529569514400735736823633297789436215534651744119495963255888731790723194394210182736523006732947903574572209395512759247084087059094139794392417744188031487865953530779554277011928141136059613909601800095348201692570270988318264200143926436782873998798579594580665719007046028009719421274857777583463541147952314618561104731549994257506736177946056909118878547154955336800975844604180613586616747772971300927668996849518862889609131164469944755961473625147992418138771801438973725673931328122762391910747688455184007896867791406161922507781537713605921647094443901308591976230194393254064234435740859766216635586456868156358633716523737540745521147302840723769093490848295604553440210803330927347653402916400550510610932477796828966720622203180240292503537790298921632473153533691945222404464010683519717598529225701672709853790744535544679622291972527165276241187071084621495992270932190296413685279480632496028993012348623806112124918478615073934634878200380903266518100081575221115024882356953640989894347174564895825311541349491347834365269962635252530921176110608987833999330633043523096632189687386410290032123765685832600466580403543477754161056916506088774810803100852014243832455243354561674194569078364877787254232510103339570007186808476948090846132934122595803457115651439981014006823431796588709009321177734905259222988804533120544010645326105881976365944235583496104715396485066844546149320605869581171288493745276961400395544646636266557555521614379567874509332078870283451526875707705610547625402235200988892186604057068296145900728915803587946448295893132985486322527894191613675481060706190792661619282949985042171971505611260587595234507225366586142858908721727751931353429601061062717038031684264461906937559785916574688739493517215323216174091240145177728784242723424135667816584515966409164441133793105248811164898156108463954431006387593388888176825914115155234598438776866868408077525870016353836104154471238542042413977827863852355822427287920333470382668512340897004832889397239688096211280049239717606531360807913081103097362998993367292190028276716548614007865020662950260345338796023819488679880329740032269994070597267158284042363689720282105313244069266990224795209935052382180298726937815589913127743321499507669208632895556156288163233845860758550220181838649000807267015983784525327627028868930310266559685479926979890068388594422643071380581758921468098960196977821935934864118499620961142813211468576446961938115890407474183747364851308989992830110952449480250394885958664895357166765501052502229081371337277440625388862797115795059195842643774768736995247461432320747187490344430858562932381481364651284144693113588713737134553203347960492739770093917407425335012573558343021776542998965958535114069190468977233371805192031979662305967584816542015873375334961072898491656751358235769911376861342049142454640584936745259185833849149417490295773560902927911177030579023845193082210393653085345972056753409375788998962341622046832885500373666174897471224521444078677849017078998503212815231828002758223693114718360492968439224253633298570242942832028225808960377423917562967050445048052104204304256623034025223360718623511921501232060617739963180017474949636595717197388623640122632060276013798400741759031182350464355410961613635125887178324107646756738215209470865495529379368206778402020581165304853999952187431967067496779003469408114023128752232164206152871189319709379641704384901186792525100781566531085718338359332677985245339452835157317792426938199542520313119915965909074506421355169336834279622870074711779422367590247054819389068613149207226433152384868200680100838324995982413512954109863063992745660536033199458735477043691385769333843513106827376199442039621247657220972694807044684700146660066752053797837681908609118892400416368912192655857270414903016728669506839307863181872206250998506499164115974220108725474441456513016808047605150778433267333746429944079138594878914765125391021043753553746198753476233711094162091125542280404270600842607318061699884323701541912084707347618491170550176800557587164278165612709540744199313642734244216703747074563955592143458459375792299304184051383529451693593403055783918668944393462224467485729479723288318977706799494024850237999306271306717733253283653526892103521342592650352883127358836050028343329992925913709038901218941968053665256080268107962121369242761178689761690799134851872840057830384554261083870114248074417244171798263235044546204680322689984875875598304634331781084341627671906329315766650034962652764042253822703281781425282080631424758931302078887596225807608710751984834464571596078087125582269198266172937875764772340396786789999336619013293745692418208193980709050143051051579434735420340052906434875855736396407190524744184335656553655546240577741273441026167628118840922044116107998624711860360457285564436756291001030607161781762418917271896964593050269840909527484397625137097207725381035831443110116054802753741480244218423681718666115703381836757678872448799280873491317755457224692657066833180783373254155673065409803241817711847655518828385876766896330127548598107625252275709329014235670187202705343954733437580491462420340176273581185087150553733953194320935935061522996598390259308860083340879505235892670692882078977048525754866899173858600335242480708505812894992016924349648632112085704847585519573830746949018633503117555198867644279934270252628550457804704967800691845816030892019927188015986066403326996470346504613421147622294215868141020898713219994409149764096810997109931575662363317576814784055107345570994680328271444189220134424203952438978710694057159984661142811106013460366802365028921898669703544128371546435292996551098963754216481839694730070587659659734147573591336459847519355745493996728777628579761319500359316569588192715254737103929786275444416946262665035267666330760457197372179756778998016457751025505086381115923941170291393795027459780683142264915712689834121963383281367719544234510828321940529342943267424880639611580762770894710060986750865353965104712215882346868757242207391061754654672905290974078250932958803855486204556892768466004214126103920243555546877674276528615899285666535711983796897683865194767774967267961556675425341253570660445431266712050836219701865885871584206175382276724735023124176038830665751982189261742839669481066311086942924548344461922436986146940323709968240573293381789096300161261822664558375337179286729355406560970649393976681151538017229751000398006899310550116640971434255632408218526198222793355365573842923073325096554221407062547457506799511537010967934185825924152667213060407713494531550080172064251949038176304587176773405535212668079685532245216990757976975304966598215068774767070015561266473405636309657619205026374262051198507355646626479360919696283581972672991805425228675821482089500289182447825950427141383036357877022407923049194940434087983989030761647823579710588725158136975681886162703364973872293223816408032986515097996831294825983532225526343581971850026495377587106297251934539051694827773028056279829280085351930588839570885180659751407941452776155178235408632017479324823565860036047317855078930008847834258713583000951640877312574281639779088122335044620113923685233085913386651584414057703216987454747964356371531840803309085933649456429699191985727221642205152561061393635100177576990042923425987909143737589503477483501632069043463124593535445163179097006010510149577073141956032894168501103041528917845382942493087342265392582095277521613659147184782252454475576866297440854441062866472461567710482991455598630635371937873667366034147072720869656721977417609342398448035408165067891672938512863912757240628296738549211134679202573809081715885706502325057405087227893454943374363640579231872329846695013573940062427434089515559885086443828237003791990579443127033539300707448328729600979892474564945936173566757043825467018230230464276657057245527832584803728384475632896504855650600106950930867898831971530592329216801877170555141436739509132912972320958907544126618509983739860176274187042173697356161188246988288118718734330987009323572898664102905692463129655138086477062608575703999336081499075969368302915335477800862297107010202159868748588328982739076517164364317768110495832207395002311154533784553938955282199286651087877127671114913798766202145297407350000163369849894642707239479695361630021413203206278003062197154232693409924526526955272961710529241329178963820613433583579795982731411392122267276145453337062276716109570748310568857890396377379960109710087895772545770245611422643631626581967930197833697550061489699776761054561612910223382508057988848874336470016387486472942177209164792226274310992359034957295082066201092551130315098754107007659602287068146053725258119069326735564738153180537161857342839934307924849594694249119572641320947056588614192639993512754937455431388591284138239302394437073098244322931513077836797022984515208852334359978982132878874970015262078443860943469555665745620749345956116862531596241192617979680920022262530757245689183802757718706018076634466684190486762793225930971214407837873147525116201498571677385959324685666838537427443238389444777347984327966951889416243040677694958543197350849003812246929404076593342438814545129973693737546708218350891340743156303354192200655459096805413481819746530072274105357296848195774202605724534174197541243771986467140257624462364409083095175085895856478743070702310989988204920179338456288265685385472093621261227656948268072441732261191278415018865648498662148458371123350440487732923912742545135220891137026221029603321023945081968664681650334287717501183734163161862997835028793996975359547455631206934712447234643461699719808264442009229734362874535267940665420291573716321355490487802511884021987242330313615352232750156174617494208204360546296874278062900638180802212457184149064509463085844495983648771586184074090113318230819030071828595047044083528689995548170009901120186740993383941679946505030550496075594698962361482880161480857066394740426191937260180801212600910055174047801643937735412420537167477940168983878705938922462793607934726964792366722349942013546132595334396417162994277804438056926828169810331421339923366365829107719741156096603140820544584030410575331041941955017537805297302247942899202576670858843339424459017384730503433144546090108269155006376699816473063742711936592749617056674747033080155515232022725813821282130363292515532189075734649883951109190276862445161084296160132252116751138183957437550247211861781226913734326544939104835848776840073078142582153618562675447487010945782523157671703176253321219091647011364159695702606904903496484661038362525584899133757140446544123842482321870199988397146300319113214251093453692077015550072260253650594015333764997011071018913489857869730772376896276445944930380160715090936166093002460039230365286073003102644262979538349418024457817906152880102861736443269467574439009294213135219338716942781487962711700771562751182666659097276950012911692099916849405603848481901492383964773687967320546369428547601636688725217279684776318311709269283243258263184103354553643734839221830535759360191591951510605883409719918827203042121308661993456998320504650279918588474638971645834166105453237353619929355081091329333828857359835219992641100879638769594173308976724301981852158388937091309188725715760339526700079379387014725119524326270618400426690459075872763007968439721004544796296093271089622977459955183104267055257637121950559882683850785433294378011823812246000207725586877983352895336019584032652926937403255567201066427789669038735379214662833779999705135278293993458897693254784211900810922876874086271573465274714029609252021392561692479026261999568642177939541458158843741715888844985665921409333832743239307029621238241927108901352017481287748161585851474404438426157284206274714938710759595196590908779630074943535284995893286259296310498870758265471899711657724782497149017620472717807707053720169926618775092273541910227482251691156166238561256199252742041087137165706174820290653443734480620877807565630475664855485116674487415118923565857535094646257551659680593630386384149468289472655377228383626555632033507953886868980902272485254189560943613103000531104688227113428822272852779840726012947687747724496676703700900797860231871631931752687850844445923958732694146852349159195016369180183374807886818339051901663159153258513114495892122112016149875229367498558771098118059690557071507098060189059401804776828831824202848108276056052800187448846330244250188161296449401811032661793996929302469125890589958509916510693843439285444757570063889625382388081409564759532663891700832429518901363440904576792597179122217063763083347452137002223064999747640998488939157739081126927813340308840865810046339715273260772087488854541109086604339957324559317810375127790356619985712416409232675356436460567326114660771594988115226977232137832763390539865205326778026572311244829102194690018249065674579510045156265591104249734656870947279056216265283444309867037101076926183401451168247326539162058502667562821264808421418878098308466310756819730883503674781053213608333350954298544202956524520204269310383149294667499051290424972664101843204577426590006112196922977220480488052413287290009720074894039814131664107008343984550995118827077154036030698388968178585650601944148819607741637902485384930243005319380233196281904459849489676450947503049933444254496622103373326008276687496320545542347118662616373537677379485761781301348099873562125348028704686426604354694859652674175441864509970660900103480142562988794285882184957875524331538671589411574986034713827710047292494471233013335208265637102394916444920026182362584642346788424883678274230644190404476192971785365119423334313189676468230587859309109576557708026979004770374885732668343749348013407604325699545408825849346749864197141512734967221140512835079171999515542494241213146009789642511917358379121720231834223164270070853104388517062494102203389124911075827640723131148741634468968396084507946955763457504553703572742408996573467032379605626710645849708849068443935950887241331326454029242162313416042205496578765462036810036650803163585767366014346278614564407022207835754472518175402882327562260887442720668597376209602827038898595819968506229214650722183120308850456362767854040377154261325479311307910131827061891486930688299757263250377818223840006941036510750736128573926069769846587865617545177639035023934944302902751115427849497652873712614585364339097670943496529677330618248063834067195489679504025506036336177216634762051414689921586215061018488848241096437761448418826740229288106617907500518401195277798949125886777484798328332486546631887661292039106287879259423108324282764981254035544371825541040366569155141154181633534177943299173164699812303155869528870788457039136384129062143565691427446390089988959871791134393070124923785729566969247594777783755750688535601693680185737054724114771768006731063583031840941908033426112445148270337034254270153744181553329050422920011872651326503799732099126079519328143397785596248767124720488503687586708504516412866398245133200259777088097182967291684150612549848186949124813342681138969016157829073878874327388064404636136748205740139596280425966606824067984051376932775156126067645848848089616390720144702902473360209325444710683652914566864472700616894576789325741367447092115064119740702402363777070870132447540146214304376671981178218840556729992415814549506338519901133649440669863156383196984160945663739739651249966522795895610598771074698805683647349863976098104842005097430639153502261459371867433236885744412738952489987597376323057253667961600360263192481655099317916873146349674791529964117706492365699004805798394700999895105660138754190911570137570481964825513448414541931799207169463370226308729663631476074787636415015165132154878141867061731222433241620372578559549653629973562156750646121412271834046791695303769526887167428333955265970407706856129881231305228592387920270767441448244388069641702372273865991002917653756293621788505209688083629081655462593739990053921034055622494111247589333021521898911154731003366356767466966363178239663115933540960762526096048981070499429449047239434203657258333129090632584129559511674962146381115959854656969119449313728807263732295657837550977188143276194265013484668515503926569364125399982859628331847498836753595675370900729188568525964090205108596775859940763651082116099481385965286449898445647130978263240013031253014435950908791790529651853910627228321109500948009201544305025274834559759292540609598653435337179092764672873847759309251199000173303168916456983294157275228093898632826463275351334609574153285853065674386524844215480968244484781632145702560971138989040927356205172855987637306257520818984260608727561219962044926233638266492825052789233404326408557966600472774186555094400089813900531315237505914923570309944340471271837538319225078373595213162147721279783327771376187862087574657080751322605193615443187123247251169294170381864500266190259242519356666235689573486376895388309937560812705321821953708548843683282067211341160237134726455664305310601340350060594313645671390904083142740562876228219696902949408706607343760200367386263196853117147317041901997738001108521359004765468561688907781558875863150761403589200033310924026114389404100722632996148776734905423352638644717747221884929012668348637275580675272768550613917088553170498564605203999270146169411936355826027362754158398040292963854749829407354081803738686387986581482457440500590612089401186278258906111866553039921841020632163358883575042921964494622669581775358024707399011614210902228977395769348024086507501929254021227085150422623884079978314470857301739592727069918053399792042259348378302169324235588446709778911157330241148738352583885147754364879150579640879286651798566101224465750710467295580918164640064412002317387157506161638823163326216392017273933054598544066398164161498665204041914625454857286203379291769988163053925716223040739270863093390223993152777652656094737508179719511196620672432908873258982799998218838526835838532895130417442922579443435627899416139231692437244713820589524401016802122460746789821552812527773237419932918338795158115220987194131780192976623671435677443673022051743993141290620760018325822822386795181764700201803254514688205502045900267435289123826741765271818485036354556004472481555581186939942986903928287920198559026618828002386280870416733976364024080254980827922881530554268493927432856860436970329452505068569449600211917894332777144589238446658556936610655324081209168581899167374681466040158612012982509097036790655965839028430236594251844628222197052740378052117087464044840066071720524205259613766823046847232926461867363480752609592205462679389318045776302980488883763019125428145524646613148511512287500610070929739358170488284008532030225890513760580713128834972196342347832472296466862380290450531343490420634843566275428311616321951274831691723705969403734699813517678343008307678451708980726644199646758970260058078495575385236274694790954162713608336675442971303147284674456346550878945868295804588019717079723660911985056065009441915528775768786497010738424713439248718503413644237628277645342046327418154835754673206378225590879616551526898258674223745331761822887739560442953004425030663244368015050206401954227399191052574196581401714917701650829938666308029583203592512384797062740796806799823728916970223751034935520909943522722174727092871969647298067800232739083110568987997583643650891773639176402966062661443968793783374395216026582921883375471991874669358160070833604598782558802065701863173756889415133059172703297086562603522718918785991370746738232041886077782035906406496802695283227427629463854897531410650018745378702190938363892716158615222451604699879805893354303760278394320847781420555844280115382186962771138460220080624741953282311181860503752309855288062643645983419261380509769226467776605099333932737112602363811114654967187869589901347294826064283184288990767005081144077518293173694185570491324568256736488493720699184622333267113012123143600576962516274973609501206656792797616354103249409661522973385510762436581541172903771832364298721516312571599336835046381100411936370929729418765050377890544179420040288142555480258246522782988036046171263566598785938777904078369180087370278517847002903639858146639890620944552860927081509911791075818932210544863067900570958409457122860595794165733041940789839761493125972044633355051551205391542132307914396928279124534924841705444328402652936658976827273371607806296516559272320950811194089857523333940205971421622216282418786886502114664298111498767910967570186131105524656557266742489633454197191078911702302592026926893801756280856577827066213142986242835184590132350813772043124787052125134730879346101204822181197473503830333513396271351471022213755635545528532442531838964902650859232398601157466335115443158801814659695686338917255897680533897858906959398149321252003468706308791058684323821413883546659677835245978787039576373892403772433690069511527795667609696493194901007302607249481874062860054556007059984215604769011653979062057924624735525106173213299297644809896028144913963417291219999156524756832124519478884985726177267512234528340018076238351672375473865997019624544567289341240708005223813515998093862658373720000326214203389633190422462938582208179073212115834381739199979836116428952923260712255385273658871931709073931813740212225323680266915728177047504986230127254103351053941356563795164239706655715346141768289783643771542594753224826016130457656927718265766407875258079455431226436976785756620538661647468712848357644754228822903134119665344445334700339645026345738716467338747251571581061969279171110877548733720214216010256115158971097473867680294460798151443853820372644153862542079694534816435626683283592971200040825783621687344424887751689334107504232182464226921234302866040315624544967535275960721257892085061646608064210888144699595217197538724666114407883005324485539019603115538147677892288760795294588402258143290531186244112690776237244697601713819506352203633920792138226865931167398082147472461897970995964160520795528942243068526749337889003096187997265140103263717842646182734758884655436936278086647039865158380602730134292085642901198164283747054030213202100921040677589243351643199084398171619141496848269476982094175884233361736321688974241374703988373631611531040896366891401409574063590305473921869153122026457617292615122833605175879082079121164172905179938986732873669620211084639148646325539526682495002367842711496329048612157584397108238817254639238488767272914448668125475699877903680287077927901382949891506462055914137237153216112371342504289694832326742834473747843863431675132072612986215525266082641438485573937550139955797173188777689401015604774760994506469922369203606797134530068177321392405730136865201802026029931039559941640140116842395279831544703185649432397544390098182701986383277772646835210532453912284467036259697348707603264559696579874818116533777795292786026386541062489091355141466751428435352599332513713850358411617894295056674517565558618865220699005117983282626548142253345516273845399521045782627517756640397947749786213324578323413933010246742224593718283326483597971101892472526463185456670315855542360323027050821581247489956108675168061178699226299867847885644925642396253964668929947290906818354216921371016681732725574170757480125778126523854440439672637267981632036371164231663847611816095106138231922834306109047012490008725913431417697206964976611455517631895817744709440630695364785121154115054143355991121131402886958662710221843900965341688092805422305325250894968791494951315205442819346448079680414442489337027219024924571982031068354523156922303638229305011736306937885170099000508382048870462654743392498856772997897262664339137241819835810910332906679584063658965274299302598236642889695591600857294760197622116787419771619096283037026961443882788474718816971301870675913676507157318446142282409829183240832230895211202819176474938166844354985999177254838321472844949569936359092157512037478401271494873764301148822979800024012062238712067518508195103091367731587509522599749579637155890096628897900026753600082548630936689271530835424785221872857710994693376960317655797643020879287636320313522330743810138502776762111545484864065002188127917282322596923406387281631738607483412871758465794526005605496884212425389661388180841555752122658219206341327734274278579474878694268106017086185802018680372553807262497139546303370870006539462522276167835590204877100438458082579913576464131091854224943765282399576929038224922161503326642273083978845318942592329098459337584661426491481294323762685430686445035305965429783159595047211144620385550007831110722619425551217701798546002318962028620862115936422780862722041559700155671004274671112043210061194765156180157589733749936817900644702904239941326818437851808743526908783763472061771111149822400105050575524086776282232935733824640061577623130134683838743390484730391207605323682033812404439350821543199768189245051776951005168991979607102245570151517398123488242864266109475560927653390086385898883803547080563617947403984055619526773627676276425306744361644601379311482247309094718341839235351409625857443146038126129855492865618058451310109610135764953839845610085455413915651707915871365424008308975708835413804436271152125335845176809907144501858017216331719545798811753937363155687853427317668493377438797059337757503776762174699067653925574887182111270683786437932909955938389222291172845651307429685112243936369014755960302960977773209119817043418382760774256758878165829182785692981868904202061038762459541122255590375824396758937311175573121908063989672114902048466524481937487818453340127664733231744165160310183144857880239006260616918034588138172552183169300088555405787876597062177366175261746907551289432233729614034076871321699686451149531070959679630310044793328768470605475337076085737076175501616584255283810021001495860218010836275055463838042265915208132848468815680121373467101075545837698482274908720063417456132362329549992352187928591995398017849620678686670402039524553625392347530549062743835379043841319975323591403437814903844725890652778995030659668750318279567611157303733107091108317211519475699665840772081072111227349432372760427541875375711786836618285833448884831997576043115855115017582945510307179748146559112151021881675647485161253265181434692458506465315529326135340088631271881545662097443567486303117481459952892184449617521848413000221441982684588846803529924804854581455158083488976857724209275724844369789498821519840676074449417592693909653097716179083219635783055038505086482946085638306684136501052942238943665356215937024219372789105983470742166352861718673283704661060184908400629518534490180194918134181717914477331879233231941089089675569741116495089209054257745634210524775142907894082172603423294042596009822803667276298276099711996188497961017186556133814525205965705177825034014087868247854792297332406984114482767596847712033856773247380859297188184061320196540310096499709520854457505995769247963787804893347199865902620085401042740062747524251654401628477509951652311382299751693874696890881143369843538107019533555801059306309765616956027366951862105350757441517567325566480068336318670726836924278343887518298144409162077000547415379836102822429991985829798379454753861312322274046716876724464847474028643046104460266556927711533498078667358824225285888778002850450610816010579701766531542021990490058580727841006026563767729493406428899710083855338974263820462732249257723126337501696029926967096892920775139475625827262328675073585281390504312073882028929143348468780007629519515141536291766307427258358373649271805800842212021641060545286039777654381009495418949515938665330257971992891375706340031136224961280205566012217033869547982497406616008565474073502782449482443880976963505038467155961019877101735315721803778131626804261725543216790387996766545112425423546225278307111670344876688666483871406551195510864306825203712068228909104124210663903445922958719669818459098338000358874071662390010798563976065208078249764264697799659838041140974912281363499254583984192778439054514524227994033706974350896009057153428472268903395719352468642309878731600789081213446365514054852959178407691914213557280395879193096904617876924123425890930042500666255306654815626993796758092535882149479464879745617648380749848192924414594077690519360494145518018567198144492417613335434955218471645447925689298005130794905780873203873123915165527703952569242304429510420470969030735071504485380897599686839166526829643481343825834127010227551817515127632652059166407941545166264502959584162955165014909178878353749763206241962482230088265388423552032129501780463020982998804559046810152987455273261062154756404085310776375658269922256418220941337514917970037910095892760112233510571908813859260824920385282690789495559958743158132527138283450550491013776207958941253832009473420381976995246123272232009409386951330508941964015224561507265916964179943574514203382635550523361263552858863251607195576888622101369173342464088867698470406812302988710044221815581361983605731130827893497857187871630603114140931591693213612719375291228947399902173594740710854832444886828669243032894549525154560318706393776200585462178547106637614787696213275251896511029220913613848732703599936949258193233341605375325705115879828325008187791339040641007713861826314241794094218877038999914269812028607294132281276904080093281848033705040430695374165376867562859323458039425319233992504939922034341488464880598415870349220191232057969644028865725677243632484930740738248698087238689567485381451251243856980195519233620330279936211867912922271821357595377979909307049768611567090985598373231994434949063179085451102069263116388480437376603006330940959747647096820282486261169579527059587679130203396229534318431645216257704685530218431848699267043215567512419599826045680835478563199801963078498789871841211753474783140569138155686082795695260928333644529878891173260741868424716452121489478537190516425773086582636254027766351952396521701723642551274703181115100338633255482803991290043307588314256795352178254177777901680304350026325170868725881440716258681061007884060348184474571583980563504991170226078697499927817329285498261943249277657550740262179727634421698241320805000353879696422033348765817256262048941931480386708879638599627235427090259425955835691709701239979182818756552847852305946202742390904093914892653268879707749147448788987713221428124866904912407779237900106902061369238672549496542821724461725064104316081393700293082712494779210503473929806572118099886125028674129208966743827412332766157671167974344187688772318571507353966160293906220902297076653816364987121087649726991520288921807546331795365528026405681569249721840582364964735019457650747828241122314353732870662414581662943665841283098549893306866563577420874294163795473351142883055113751353916672195701731979387363508077862007542101919252476002218475488603401816171047334229139532223234444708244540393410366800578446067921940850071715824835487826134008186342327955896158744331810942314729962173356181174866200510643863597720006931400540955504172039756117711339083271073909129672176859247029927911193255298888713703234966152192051999081169973686240109687290836325503441093972759581254052668179725664649530357540195277947121493035605057663370510142296724289634722613985466465095579339755047047550803679158542999955547868761117822077689097927280506875685242804500475668860045489382930495534315708752017991300731141770424511950319393516060458428648980810997152125022519637673708628924575592426967810753113251730546791157413796868771515927534768549165214298403942549490689112086910306432183743824888432724880708699809153139127903718459915191063432804491842229409235960940149444907047844887942472615341509270648898838496505429966909856911816039188467036376624591493336109661428351676527615876936234764328779639635883465945431881381743161359588213593241798530461900074424055677309202601585582214669923376493748991254594844027125656105579178602724912827628678105373465248065983364314929473470815853060533275078035664422522307095374720208991950455701946657116333829073222369409633585740267220160471502693088352126084089128949958156566673787913152350820470782413408613311035019783462666541599968171359138189722671429179112944342302945976968179197061201160770196065047580132346815292297554915009571585870253272173158910712487133032836875155537406961122949661402971363926362828031116636660921069489581256603508277495761733102339770311106182538622569946396168356770804086012099051861337932973185358954981562574057286007304921054068921951627797368858738128771985878065464562899024143849009668426439175572689949412447874897098405121782625913544678902410934670474805420975095161903472406538963289782816248283548729028901950952236306410060819842404783371630493367496455012340675814348392452827471425677145913821230833642978125645508240950957592376097170235689364279425518671211315203649124094313169031516826455670889454139972314928906797939000150003362219955830375662353284048988104425135346911451254668968407662886605735215525504227550493883691789397292529035565604788827127874224861576068721714223486456450269883017138846594859814174960281297140150670821320367287001945937878132026224078308347424028370874703333057055087735637646382632370799287583622452213973352549563051943635745246774689297984166464041380511715876858262133043251104745362805196656273875728689127677246243503050593122203490413644804882344405911524557922126836726310342153729727498784555321970147416490565076183383468344574498273677383129082520448160279352138281053453440276053552090335914272947078569213458943253638155237345943145171989281129618820605241403697994207858163668841763101570198392527910650927227466670732382720648709452658115395022351554715577914617062119236042139251164233491491524299121186180488140843052174467773753106308894167128129117003885732912688167661296744340213962412114410189106950800581159022670820662815526281007900530570426315102680112159740171497524568676128134290345378600686406076650927019464540624090310247458493543468285307328898994578531183265450423584582203330108969736942817802020887846587509272053538576902831108287918555302956084103451078827557330425157588775542119824054629570995344215369308650773828175850555425881312006478388660572294092868870602285229636081625109909050805504505040369699823056502636732470177910038026886648828134956871773302534760867321326773993106568086709476133677114915657012184114961471867518532048616925328849478911957196014041992478910042458626820410304825955617457857935911558560008957116570012523955597897723450961182011997633732902741415407727327881848545350789040872270876619688654725930171494835859546841968596263226743294905800037553084132037151154712476331628230823760342697533410139634206379325025166022707607598559082099753039321671889540067124823933381151943286256711382693168850670620595184741435535423347909417014720780241173609691809294575573862382683024876132733146749331988872389097745930879250800730874337757427875626795779337904638571356945772564518988641247821864213769373103353855644496414421648265190226943987198008224926107493056000320439255216170068053188373946876081141803535841674156337635001795284153924679542293103316576025878952575844637077385553501162487931441551077306110084189158604812515138366771517651812597525935755051826438330887603658172912381090924629915796905855546919513524419957477902150623480964454096331156350299078786668933829943981459088875315053376792222151898907239230728097286923840292388824483718721324603171243546866740891159925230668426763285580794898773284563326470542736199891819071530721070386239930547800377383834120598701015835909585892997932591445716259534094909074822694193046125741131005201344857791124039437959060217392644455335242417585528046096301820254319923181162741125248094010923663272088491762590015252230010665085456446482401117038937425869521795284625743765268782829163690354263701716540060298806792545821706348754272952185657138511177432542945791486972051859323465412106729245121115038916158263916207396652227043840356629115170181797355544070844283731178946360990201634890145272008081195830200952610243515560253833228086331614427102299014614413250191866656711256783794654821706037741807081371475726254519545077888280441330569038462947533378668187886429858865363607501446898320750563854698034121941759742667217810594724864728718836710518894676117308747740728928874193397717324862206091323227718223382638620632010027636619478652023586475452776906443786482228158393447677242740369193182027882968899583519440086133501731875220085840599311004122997897102199595176562782485471195322000875906235361351050688535094748389543028247931670690252546210605972678745193302823781003208268770051857346492175950843746316807449504926493028173193990746079689398605055274689150261204727878893587540123293526127653941804132247887718043021614021989148786691102271731408983944696740335622035929820678572747765067929106444201462641283447688647202291810898543891359362255648069134057634975743789902969257453113002259103253337510201783278356896332147975085739654185626269226376305476124600196860506982796861681530206540638004645008748916639236879004368025547703743948574633947930648052004376091496603967904007027184292131048610200756170109596673400485746041421246645483761917039604116163503308343150374534440527947025366611968447926849575026115523922646542842147734051004231974538607147359289694561162922048020081940029945210517637041952357237141290446215061557787520666094435663479431319891212002026057812188350312336716594818291514406769177007859257437725665028426152725932191751936908239385702249846914242656229851772389287760063882582350838774123881497369915292259370799845127168635110892271616776478199628037498922309131036135493786149073333291526311483737909749777861262541639189092512296897520499854852918579695083385036569552361356630916839621316377002370818210195899281580649065595319472051289044772059687388820639004481219301198026731266931777673764886193348139885653793627239235474689045063909925820993691253084017226033883572474390329597725641917271590991213099643301095916700728704148299710658552073200575174584312682851159817292570390182610637940114447606439182528977982960838063809726566456815416286021917382821150885045200192333626416004531894877420086436389339216556003645730946519973587281849567172657108556561060726095153608123640215054435575432534849755125694119099997845686805570151475172504219029015621619208171379590831067741630354558091903678611611205480863196170142788079062963363024582388429816703776407220545343411859005664092394565133637164877902833998136079037146854267321593088535264596670967458365921833190657752202128442506182447640489781949685885121530567681957138119518489403653200786466769439078762256232660434880018250178060916743763077893681349598830731434301391104755266759023665085031102122159221685712357580769907132198328058841015925361675176481473848542451268914150418851628752477191509383984121275664519282236575392946984621477881703726511926832542014928163076552003105570621393676408726399638676462267248788341913992390683988818349381660511200721613988892374251787022105514051387607529209692443389345860054173380977152669222318511741579160078860713906153738418345349912490368798565141009471976936320081734796120274993517442748872867420203402842636199271319317056953994105360541156026479203281891855333048994180108955294478018962035411549341122305746054658424163261841745704224401838930772814977498406858964217458242763297720100564588332827968950963390934859846873309833662362496246560856466835459622095161079332383618349281814196919582005948967253101872563069074358908074636673477779504517449410399265076768109012823417812983074731229680001515205500556753759842456216178207009832954537848994195550454293065137901195801029834445265981941820632091189810827333013617284689113935527724627840662120789122442056890322561831173446241428514470074773050878277382877585881826475878529702824361940801446845424746039681700677040166985756132020488315181064903366354129358733268101716761456770273948255395189600881711244227685105112436461449155509176695919195744667975594621286255736985107338373972664160822519812878521641068734931899671469030167621423050170411680390088692424947353180010023698565454346994018784904640048524389817962641699156356879653327409630378101010409616518599163735451121310417162621037648956318451606301094640994960656562212056224391441876779627661857384828289767663858113315337950779293221164132500528032387252997465883624298653356581675189583681347592286236233788895728975947156140707644253504935766993960621914039803696770953701798350691305160906321481343494967776521220180873671470205137448376151164887416215338898368506035877333384927345444461263264254736978651571575100975849169065446446904157929724317944328187140154403843560749185895723483101483709960658931584515441060282473935422324491975924595091197339807807474765290061683002093997393280645064904335881990835713933247957818369646292119383613732781178900858648549041113959719270913729392212716657770087919591477825700113865606921669340101320270801813816176607507641266533662094611346381388790878309988773125491555990649920550034101874402981174414715103326685883349088745494257750249021913631194162783482332016573148613186471773430787479676810801771882572657624079661147657514747497319769670802630185403849524352156197799572478090284365114179543167673084338317003193575306727103367103724446665394667328626634830105245174555497067148076533686401019332542505852951144855412758998300135798759541413701812212403363721013502451430850358401094407202856926045266470643800547253923850552531845575903595494631729427389009029828487516094534277286142316397340371900703297031568724101293731617592946881229739261958653020119794830884507560471680522612447525377392540006354640004686565529365350563322972881405963549311807646922924408547333180262826810395879095518046049767768940717703527913353745421133258395078702517052702877848215539959480122533453156514123173420808662464098563383792625994957987255457379876175370879185718150721311967698961909891114695801759282523418634039046355926225173058457848192958613124281260060838760622011942741762319820072888773614832566714888617618992780968658797737301447922763150308867304232308989253372164992295622507475771589972444031516297597313181269277287713838898892948403819973170848032992267932355766841013172253403294416919513953138214975394340954562268550237567931754064622453213368253406267050380867637525589548026465235693144609446404615861813903521569793455589227982706713354312521318492774514488356793314990222554388656501141757547841954355020295378633900631702782568830796309397621282520752210733238200321140667019324287225088628963247798843917020601810459591052603917580240040211786783249133828353733425775203735736396158233900357429163607291294657419410859842165365304279848150946359163558400727759500447083970113920189633121198227481114966083016023734546781280159139830744491644392125943239963239868071064809471497392210161779166466780079255496297117526139426238360380545788169004984342366116999677914855601202890253121442913037195184003677137218589557976519349657633648086756737951611186104709619051044734593600827778207329665188987526659092470647070261833186390256101344856775361114259965338084430993499131823210828132879250692309722597475855753116348383082185084209813660506521102667573758726546592555492275235089051589319822396998807172441619152332043006942531925920887513753540736156709495034404714496627689693812422449636532015108935936100491319576625549872995255665980841327105371066865162759086027885606383366742251532672162284537633781637141051969791486926998843042105792152745194206913485704973698869642857263335248772116095431345932479997144209399133333363708991446905445368311409143942124015965007644463594694530111594734448636551700461096125121945426441718139823633121329318327654598406403426695699372259270825139507563137887494978362556867339151416205247390103544419721272882776811314861061691903734392359877728689500722525559055638815165672305316744310502845323266826206293141769080397002280921649347152217944482509358607044359851785843285525772957933925998176701035268176458264496651569725134489503970421481095169538768694865567025840030131537320084489435341733150470821820751006377874382769984345625983809039671804977523368008290364725124643534302821129217576047114291335039654106688352058249831920776463609406822471172536650718101381104535740682609387497176354960626053336456435164519326279277083618489860600527431882843905814350412396214107230045808620284470953808825396386671263311243568316800970294385659527432717791730268434062287924580863310476309055444519620162182824784943702691082723797257870121214188678352796389457512039862809008087615722090430122806065889265551152071316262257486942627607428409178534482146753326047903086776669506231603146452750777153135960082521852982007567747534797295230562206444006379681100268638437595077370152047051045355519210956223649518991589928353046076621006414440475993029927927258354044144820828180639302340990719416723453292278933143576456944649262188622444492393933406918117173110335128403790886784688191690981239635461885814291718934052114829568359985014321963498719127856942909056540874469331883202905170195495780148541207474082737056202657310233684792582577073235585242676132473894470520847447948351759243147137512303303217422778552927149540450573084168845607393932486819387453825472613166287289579469911987093915107253230058811670922148493201910101675901783424105030351990161196868073149349966602845624631615556121464573434812833986131087721454310504776216650374378417547508387287996206708041535819741601396951861447165276955384025830195310778353212410025681354652400321071464908057528343374780983106736465021084348928192467166716551250212208257528782971915764037493890540202096542491021743291007851382461666090359663978617094716328705696470564965935561703192661675376027987653972770358561021034068535018461346396734795755902245473085794390938441912378761463721146558251518935671916035547060831634437894743534150188347340939688805191452067967407748433722921113007169162053176748169981149714648022597963670089602760182976114861226680555496649373889117075091369773995261618166737031678082978917360366240286065672376101314402266679707604662829263068166805011358213736530778270038300148823642388467137180362385040383226709292257521834940199944552642991681202671200086656082053419035357383945994756489162161611150433625897238636810362987486008351735553091751012995946358291386797259914154783703387153313253003272573312774061709943170318036737933824592746182452173320180920300856154249356994904128374808575843602856999980558669661069669706725863910480841120098484526477704169847416374782080242623625983212157725308580373660185816131171266374688772770400065579398656450348770880428946430012816032621650102074879048955359240363448372936788202294926081948829419372440239474634547311656466878040498619806645640623193078708528086762981977003039348149882645467310586332632873346760841305422851378923483858254249866451284663612977527234825650683165808477238696997836932687807297140976103397284620594127458235553862633038425782309989269221934970441975002554738497196385887685741428344493460677552747919889766229042068523673144127639848206832638947575499197951304676923868800434054518414458132196984983006305943102489453121979871820308881899608319836697924693240613361978439790245542424521208713782858911579573920547019479300638568584537902519221427562904816797561478319386764918056180205431966952620475882257817202585829598708755616742026473965502736319686902349389517252037635100688166684566685343523334806404856946177752729615526020774711620131369333747012145481525353417814735584906665024329509109511848835995448163528947117011045658001179172849057222749223115459261795230925950082528728775519034545052302555000748536128367192134582717334651777218914287313785268169690407033019379291201597385922479116980289284375410699967704983898685756076708042613087112292673962837564772643693818244665187431950139538975768128050698596316043900160836917587805017269461920158880624886041999716876014078417270041121734532225540052112850297398917553856488869594251582241308592642680789922795930427028092467364829473354192252752946176251205475990647329659602780798364631796330635481737812180121076009230816202304145334977772267325762836684031363317719739900431702439413362999604462864809247904951391757979961754044133477560415810335012958926415809559281407710953064022278851827217642046796288154009743658263897289822899387470549737374777856232948034501946125649200340258110606407431152680024603491590053953071761056898883180878676307998688818266417007023245697153668055199370024182962754194299986592517501981448738023868639894461002061426117086776507344342892685873590141670760680432920600855178243428591732949945412275628219025084284106134829266728490031864226866592813262951049582365750932454830810221974234753322051241281627771449203300796440372100776507514530645539453093369200498942329962221504627073651091339852724244785624634486536037037802128700376311660736874987776828976531493204304060804507238748863307760958728690735661811192213721672533367431232550294663361137889728241565092739933135839466754723052247808017357311141404821994767307559591205593294387427901351705899829407022839937138452257939856200773763707558928987367553268773270164382004256639950566164916821469141156862828509977744223816713037654440691015572940717112876586712614846820776681846507597868526187232127106567022048258038074015153952125924659520094278112047346410785455383427089271438235490859142226790564502278383722339441932530071952716419352706394400733085873257641896426240506529000402446576900470729566841330195254829968824211404582602551979781004355602401929782858845865980657526013604727057399792528204583831793061709191494089325937856048333707928169153781167292098550878594898422096098563625150956319854638139564120609723717491296316881376814438939752608854899079367366792160795886168153007280424251637568444597463684202550075591113242664635717796703025389642671109769594672815243886199117652967615301248754405255988097869286834273094419576824632854005777599663202183844146184043617959292423178652462342197107652524374734166913204423373657095993789278051916442743453706438539829134943334846658926953294134051963753787031004811155209982657406764714334104786293023566635259762853271349896600376811667756011797235425710230204178006213203405662703687673436891230226454423888956636793750938413860174002636220749767551523931832837530767560738692048334759617645598739022872300259473388663876168644817831633457663687019196604650910964940873309824741350798511316051791854255688299346188317687768312000123041987266683352124057804494463382795030817335500544251143203037829423826814278484896785168649682308745986833576878226298398940752855375683024954225307449066358901723131609247932422241793954430426024889977803307819111721655889588128432483554107772673264788080670986447293960277945651314848289177860263010787897373605122929826703332457819214171198817273353918708386108300237098213680272404138593604573383527095911091056964030411923894281837075777118650555068044382537548436371633177103511449053385776978142725163439362692946291929811744598769191998231769210974281063031697055903956657600678879783443255814309518009572455316751985589912968825935240244673542272263737084135899467386000807240030505759974492433427710191778709841881572941904544193914605596351632307201118568952024482856261418575351183294007740775969806654001732431573479656856942105731952447638269706008730177702869742511094952698299110822815063182206934616817540329204685589730761117665192330628935108960864374225233089241752282196148506407728331391494257387753435126848094796218394846107798746916801320597200898048372995135856979749262941055341138276264112625456911962831447500576035763972580993338907421468553123210831066576918541034742579379910989348635146621281508170087242673273119656540007877198235471602435106220485732449199816845774953758407848505244679121477844327015839527227619113389005146800733026203536763969274071717425692428922014704477081693740553064169158616805552344057693753709266738440391068315529198832491837122608818439907604382989961073537848907052084345478519500784507776952730310972357478084807264238544403943672442140891070634921374412703380841678706671018310228757901915625033587293903167783439801619102870916683883979574454408469665922726745397560767267960900138149529688795167094997059034915170169568428965990137665705919232421833863148538306023609661170454946247679554375181957388291777418768378585101411254300486287005217888689064308763801698424988504530138968399035437647647238938176521236825148366719046061960906654640837660678191060733493010122353233953270130215394740649572056123462474154393761164052441765275236601284900355170054883427588002211730413160543974310178426222386719053858954563606189952208705704517708684298416543294907965347417851778982291954107951839984645566992499287911766809433579440418297341162927629156793804105904412087664381910046985180034528259195163911112515871732478337685813938037248234800157279505916564042603123525913632512475666204863016965848318600981914074794927832555085065743149763725187558732893177092519049430335537424887210750449634851593629049336337008717687643507274214742305325323100265628364475916568618231531985431014596452704521246498014811729393259833860366721017323579270356127300622732272357317133021400307861798631040613864472513872371875266502218574340595357522883848728051353338171033786048694776939938878903060341454273191365140017486987146193420698347057092636244811881711489937674091992065559003594159258166354267036713268309614244816667383950536994622682302786706309699547784075792283852513199255917161950638263749658311670055186202812662128100277121084795188897407304701996544300850298664981782890876166171055222473890339655773658513379021326525027592530235062331039049470332085627329003786823100681552250283468849323725391168747331480895835345494799287355741923528526350585627396458113421217941338460256766837809858355763454232499698582728790501651434771142870884984417538171395970838021219385243233166484644889853048690275829606084591224209185688228769897950981851953724607020881500675922910329182729293409509431309014095404129012505195007711362888966015442750723998757568540394583518018735931395703924909690325854705967068889572570171399642344869346284387884172856658685671554930190207138667837672293542787217402251516878016749027323299638835183467987339059816937656961639832569378049918038286322676515266798088358770163119472117501487668068872294686805086174318619490934494307367190437119026097412597113731394221223703731322856976069571956452960366033094498547968508467720262812880137401611831785362368242579665711667700497295408564641479742805662193626369566180772520718654758759747336169568630394485527297169650353509682085817415413888456670707117173953879084744248779413647077073060499084188451274863445156896530198450575873141936176394761896316203966621155647679887362792864326838970773456437654642374168185033969736675524513393521930759901685867187864245302242903971344646897975171881067482606829894856126948455530996464452409088453638068559943877904632784270311657042762846941918313249234060385696289175013900603717680717440412667600049813695469213277798058676169658439304104012765448963087597923091613465184920626829049719066979658554432572902447390646729019078032751209159215081920178108914311106757307682203836117230587891572846861495460068138036502210280948258544092636656385996282507450193985809395111727817377972259420282103937059499662336913069232534228787144830615789281547179684624704290515469108097861294070337018493434751050582733393206362576225307630806327804190030029904941785293392915087865378213319163032388868857739151586111257746209306234254658008928161015129653748804470850270771012662353234088277503666591387758087842848365939292608441964649891159841893044510622106301851371053464176005297355089150123992994416390057139554200536831845526250842629441197025780601836375304101635702074804111218931589961481828079784144191356075882241089595836359869467981330225623215321390485003335536642406539365865334416631743663981974249148390522086481435421082792509659188767689506420418522319334509539031145170634038237223804142554913296485748809535031035423639490241379607589081051477904679017605398023593599163344766607415723554025837073190154330346927682919416015560577209387032651993670432155973099496474806169345803149703217460485143872341592621459145199519406914333994016985467782461633829058887351730321059377069424098602204809931130715592007150152418075220253929237210332082851179627359371062231964573222446235449699155842267587013473718089958336282722857313629547583963836025239166470980549507737827016577670464901495747672945264435304482260479260170900322728679185660915360015715391845491657246980557819772439996649979876950412131824543836944473669203289277748022809408398704832644120500324594638929955766438473181448638760140087407721101984011206260869439211641898332896238447009246030850651180192536861631897348421514574636064693333887886447127982066775300261484261667770849488628862020680236825078316614656730352076977944140537484684681011159525295119389388257655495070390750446363151334084549779269352070643327481212081827039086233169164239308064656239130728650325703556104857990780834958872232662000623080927542862864155776067972825522594569354612615413986489655853776670207074871888472350878343992699362383065355624121183783522532031240173407462161632826426679108907623176293647672635526124501396220737350964670739348686662187193221420832960795453153518726910011724028470571003705376680291699813909083014594875200866466622651056034133798936824071412252389888218284930586998503874909294130971063594928583883964274550772178133400968199610714757990538046412039022864619045743522344972121601322040961143913954474427895874860165425287981165204202790685493250316216499507073101210547841110412323511722232251074607732983066794191105787252010948909420741482908937479393548020102769676782584271982930625576847365558481756381342956390929095643350223872140990695197604382871584039781675768251169219341216152454061505838079148832750778778634062092248165326129430235064455926822942747364280237172573551517569055118855148696492264841251556949681113246533464937480273243101652193195447944365082146421861867527626398203521272565237421877033527884302972145415857014307755257109375757212735827514984415842769788848867192248284875405938294953738887928281258386288586094331023805008500406302103779840261939431632619188536825635917435467600194576275267385959009855902472431739553972275005011334509197952850417495233224697735076169643391687801235722831085472126428155176008238521444339888336470961820747406840001161489184976629191915187823206911843597000243978439414639772248548593898338098307724303538412280698804886657929778267811570158301586213763330639521704783417877988863624668602359791352885356720433504599618184273526890350004338101384723716701134279969922291899325416751579987373146453957707298666686137719209481910743523335880081599195583719477196862860812560866839178119445806852838773573173962354426861545631825551024646041361596171130376213165144947034664241662761576119062017475520588248469935466096612401881186901524728015504638047391951201417194807179701875087996070798895153679122379608739511957645756879834207153134503653058957962646474383171426721676629934015425941887655090196816615343742707837190237192610683699657113479083804814081692073098137876265868410986231238985051415694170445505997924628763266530856470870684020059970148507538857918753471058259442267719941007902803578146644998101645298854893117990391621317349352092189343936199120336351505330065265961681452833930599902135124769588911090481605629502064127087710252893967159152977481723704556208995110082354009742271261147463377520837384843137357944844865310823422039807936692611893730574966242165621882488250568779114213709190490026131002488396550348050241095478543780200502012127653053939009520952138359921737551169463014390457030113962618346187890160743606878542249126418305384257959988512394276415320593024773530260586326865544055702808870904553123493984345942019352612391642323844001603408513926402379310614033032851291551612300832595311544762569234569877430058801388215663825433877243292924872447081639473146882975269973325423465842145690335766094951536698618551347947738455969657600857366833439499194995258047915056551945623173817138227685094131761783189472791077572658542012983968921529807330468050596698793697555180441211672797417831060474791020710894509010584418915133334157502284977739625959425329243918233895098525323387152516553212956812672004684546122079498597386317014696284488805644495199986272862701178244919279413510790430190321007645748056238792542805412179926639102249941242120547312928992212901984780093116149541486000596634088584373908061622211725182007853067837566045087428834581880551898076732644186926560535731867163426076197127229951159849223525830384779071196362184156885736335728257874066774408553642591248417839387971253381533360187608295637262948145466604334040097885802560532028844057120661846011155145731377085019472723366999307591002027565301508046214609420175964594322200511653528074327547346704092160188061572096370147380565354981786787733524467082648311426231082047981870802656882244841261232574354123840102494027195494109006280618739942856924959329319188970027103705165257451990294745343249420405521475194018273228908452770499635084705494087568277091236729882730950664476335716625585164340357877145700087375467053387747881319057527012267065140577593402583996653749410726801891720881404108605485018348594967295551240540044337243084627750100163834255284067229749676070225178441910525448831003687744303220320247652807782125638923309839775420875919294751866702133498896184075883453824551885290583259746683357940127863300082932707436675106391715706820425377979081906104510440203821485310786275483775461214498109904388163469358309465325581733411300729019047596535907373030775161623216268571023662800462375962941338172456120871517571011233209392266887234325631312295631317797051678188220496834113720510650670202776842179709320951467098106494239511595895673487948471354202056445939028471607219145127883541892776250915514430873502669499143959867142650338801348374155709387664540692333923863296807575590111469015235869024727433943874358228367999822234745222462316347791746702091445003429320994783313431728519773860339506128070716092496086950448181398872695979498710112424667922595459383802314058943465068991593191330305044310491675056250947430300750530571682395178809400930715538644311800744277951576261721722000130098044509140565276093013822536573335768239209821620142086483871757066343141740759532245221808178554295179993894954676737045793224572674214982600699232077207201242462070858199172640496740851338047248371123384133374919620623515887013123177306269759574141322378072110731208113485515332706682431397413009929750446253321739192664381485102218514792244190861490869854306269222199333660991690135034477183947347992502529918915067407409573172391249007724564569469902130878362335373546665679897849554613716201774773746709160064239260058241524104340092290578857402824475512471619455974691756147406320941800105012180530402916892229777652957972796204757962503035945592543048599080885311575725373300139456931576995594716704482212385518889913182976958772658733829994135750463596020714778824340492759535569634358428759705966228913171370426579373109747959565495117250879356174995645181986365897681854791009100097066013987232506880132289421421878004314562192893763615714075473428047699125110286223187898238729811263699875039882289819367048574429927883102650790275602980557501484390626810490664210299046221170463149833323367754195411145195060629370096059469306981919204399485949008886843564296224732739447693604638097907770702040232031996608994604979482049087031643234533946316742973663484331526226578674107009992591806645920795574718527577833252056580997538469441143430031760492494906475239849847272802869530154440874615158895084163206991462373389964960369518734188911773944529380821228021033943273169705461695292050937623052303903246545340506293641130073850311746255129257447740383476901521060302586468117651730014375247424416771495625024196074889001217542239083492713159515012431032383847263512676264499680494032856194320085225949374681124159673320023047991820450835039369760028020718099384003768506372794168914107485475479869388900272646389517933917412352290381666141497453308553070013305785380042350569589875967488103302734139970935408854964691868374960375916348895607277889774652206918060869673979246851101658731612168591060125647649540415939104357856485719921213726528391101485847307636700957810199897242534103715980089108686254188500228690015176939593252743998698380347109382347888322098216157413369866987247998444906538670265852625184233884642615753488718154742438262803172193917444711144202770728011529131753766843948245799387911779955591270618425045024490937022817766809663464200307569137986122564262911265057886605535786792159119295499327580001376521672831951412253383178356226119035485666417131663735364131621655588439131539697047478312910309426149007378847031084649397507941471500755041399708521898791282246309159129999092750571694406891120117747132709179351830570274477159396147844328973968946479921790148051820933222907153993326779881142973482720279679102837179331854204893752386186779945927720343849391359960225734515415550283453257515301269272310569662244828448529321307841698660513228996657553339360533971959296459615820645082114955930457985914687749343583955390111773006626828385141785631997758533658045462160702671526751209021544141555165317465443783456122947091794541200273294411315042777488821096152813689855060779241563487048099247861169925242008528279158944420582714563697388663821354908189865132573726312141233037381382224498817852433248631151004846601310445913252932935091799699387353079371480349220840939626640111498443874832333410308376730683613221580984201795543552152541746305790917046438824807223622575674843805202728412376430107766391257293547459837982175046781226863947967849474910112826963653272809607510555050903317214514301774298879502808513925711838338263040012861781141550110533802330701057261318862769942248770659098899462256980949069792930041598240176008857148680825456411936283871315882023309256231624150379501691891156532130304993594563116507704226448768778401365361691326442717594742678925260134634087920732581824644186376010357781406312071733753853244970055223968256532872811682089937985887384252964695462414916608036743041372967830001436760358446759157419004759342212837733671855838746924703619752327508499172835889482617879962406388643389486834535799542324906161653442466845165924001568815344292142293140721163534034112037056551028993840490435288578562192539277818925955452001100904298023024043138909922476595213797220130969874627764509477652943518097654330200160359462887922299450225321297098756899736623931509449516220266232914131655168072669895631047060235300460296003837928601481755590193918198717721852681868194807825191166460750581691012991413109595842385564503135789022069278212204091801366467901560194214056048411996224580661296787712236895574905578291237196973949648482921631370449677807415721621574298630068556622011618473120674509937377730487184975271386670916962698886135662438516989931099958756958303710249306602967135823105535138798220605772314577400457141844441081659676044430523386299406419351916665019000382036243440445605109458708708000585709372399950167663540329632114807247907063514116032925809637253237033043407553216780206883400856264884725300479581414281461517796574744469009561517337874103500988939148434501487590970303876202833135077877906065068691681501188415120816110805972083194873150003676183705865424005562396561371273341341009474669020964373343937604798788622388402894102286249507121469555881436963427079163177995224557063031509758155331361071672028098711908985620903931500047494046300715824506652296992380882729715810419818428061291627910700326318290868224130329345142572629602065108765429606909511449054140434482382553088169925594141798060905456784650925884348486668835454967698182773663354188740562464667542061421279997556267735235670334440189105500534926904233333901277653764328793966473144447688283788532758012806087488240253496995600772993086158194121374408228833544703503973164104259803483231860502757535996117894148043726187428410898281651266859372682909426810630031295980094792283809650034593355099481471809527832039295731052053261207320269150200990064273386685515401367768755225429843105854161075550918764838304416549644001406170221886886178514889887717493099879179354565401189349374405965932344178731391969303255576217856153800301410059746935835550406118339209082024678037788701208493466946386701833516065568716861864655779973768915853021098271631001923593308942830690695660938621823318438553073867010655109587138627553798755023258377030002395722607294164612476017026236815016093253493041750445160019756705541217418007522934755930738313494256596072755711684280769874658490991452403231044118499383796308371234116734399352158746773159198431764966787827865513730124017203772196898471345398228107287413555522359720224317243354296934386873063744316992644229685322705900542258842547999183994113699379329334754057143593408873290251312104586391411088457103224269930542577607179603166004157671986996452164389490168776886941375384872913054065765134638694661641415817456944066562006577214540033573467123312966459107742780933018815313941559161094115555402638952270339119445165593498989996971899112109632139992238428862938772477752455263395578090680984861181996657242490869072151160334477258673554789465459561556208553328931906459826969823435610324535021895292009198141721283436524730634869787453547401034405382732987608969805309684008602928739349533708087983345086492751867540489222947269098706354900756353502692471710081495933965583296852772755523422400735566074059688448570030462180605729541295406925568051721522382842236018614498528391491174467055650126662950075312121292374332936839166465789899725881586424866135724721009829241737782119536590422116955369589778417980717212327208597405738024004163631583641997391901813581503988560841509240274328847827671497414637491718448115961415846227214763449023983681836408893051322660578470499532968004513460241789754946483822879562887094532302156043808252867002781061247854702721606629523130677838149759422467808666783338509213444780293061762364435643076209091560236542884623496949774774626528807699762236616263481386747295585830719667808165931486559892782530720960035867920683820035996590771957273619079655507063271867912716416693268782261877694516200925068782636448260808130113035917958103606109241525372347432840202324219922375506254789827290735409419018816994652990157458862322576738991151025367545043380340195365959325248273656365455248815960293905041584624392632748126784916881325381225089977940459225492918013034642677202457304823081642733171992012772341424931311321856801632796395312577415860112955338529169346702733349777585264449158085013903848872199437637308682742657166496819045262576663490510317821658765015260261706097170104094258371691210740379017331542182376599467066521653245723429717651181490824657735946019405135240068786793230586308114170932253910131404163352720075780773409475817083960893558481594816858846203340749781466534156276744913906436257294014025880215425633585303280252132942662475236903741747645184806265989389360010665890484312390206263523522776986122603943644465213399941922093908219166361281275332449908345270680424802144198066845943503837281773504092679318800189753751608260756131250724755169056907308514445928578194391893581919450569078071644443259890690338702768468226178601486181144024724276661280266857034710252182724296137029917525318163335357349263927356588303849377066030303346946185431073513550451526914515680414670781373914392788944172896449054437599471476062033577931712664613765137802521558508427993463114582719644064542837948874321775625366708654846852312378318804099033173042389408215077403535785291855692008844420149220173410542754721074752698622095297916739233115755346086559505545295378093632527657882483050202435851787880464480145638170035857057119152440184809620479984275794749648275546309929548743069536651407101884379677128292038780370096891670018369956294074606683034023205511472604573900423301342840583865788273910376714104135044424709873606192196993756250844149138879704942819209027571330495779773359983455576565256215852000873529205684774837097012015399439160666025097720139201312278041381293526238866683333714537787983639396805796069288218345025938370133566145837579666563849985374333425916479825588928566421141447447020044456938663806586970024326884013966127825554880506003867934147734455054359269900639195368807848525465686789518257441631150193518256341862047838815805803122957356680872726724913198001222829095426346985885543776663532173499479237621979236459896630726664899597342742401989551586226246984088215365573651819206715767130510774729984555350474784873870725987293133201866987179122678596948997486422683541521911911967802136184623927688284262064237285158330049358700397545061749581691521249115386275153290749265498661797977221176497248636444323778663368862528974039054109781666656461372477654214405562157815378521520053102048779366916962832952151887288494978958300187808438870525916520119947595040991802023132399060959061618386866794687269769594424525619279090657111528882401708807593480408142143353322200359465526587705897870911352956411261847128173098427596989079873748068226595493451421677274025217865898473364917587140496591909612842952151440606676097862761334152851619029096603257497936148958381327832883792072412237213814585837614393327517733081279670765576611494166982297756515490649270466018660485031596492202243838462866870866102616388499354835638744334413228250747801208130210288160894762611812563202129351610661948051504133560638513512019853572176821175372362045313765744333944306637253672280499968860856500821203038901914250892521890385580247903011351078669893046880712534519863637168804294778607741508616758211127640864020631391389661961119185351756941941080203762495726634675913208658717812299520966588952793645057646668572828294712946100686149923523949989707486878776311948562149961023217237055810653253900041710012538565859390427305427834508086488091021687444616260599450160938750137055184389947122654576215082336895459321560501326315047626042530252039828470989738105854110864085168912291058358872272008110384060683582421830329917936041163724946020928099493794130991419634797670346457485167292747506547336793882127014073091693886624103706278860740666540674568874227226560917332712207201026107592003313220368059429793614767194172722627893402333278653007977101618810650211447689680756482331822265427219503709438275190142785281133247230843837129336818784770212178153901848697110805342757421448705983342952371250654291679461284301846126535173819355051965616336762102461902723499771184788176727377682580186790106453761773540999349032590378335696900516272615698683387669384901935973743129554918836236488925362023732427705730724750247603558456710994450376938915053288327478516404731744089931458300844580494388801234292470708828228878641497049871387708556222316403520543359272590324929819283760608146549362162655130497637614714637535759026708863320510370334767173263575209279839706255510467743012007486842000839039544233603627388384928632162813650838575578397017838621391797831588880446343572213844033321367172038709373672552301252484612144480544281104871406671220041939356481411558431201164089678789167841087243316585632116113454830327331400156103226906046480508837160820612722849455746063148279719142385000772978198163067903846996655183082289304205950289918886978690077294681171028647652833438339713750301632503669615630305019964419156064420301323179652996442084691055581092589911577581832943027352461824540271029561898284318715052194180437483172550600083803301076691277260165002711568963746611780589143168627815902966274654111681102432962993567921957400866131426519875557649716113926172559289108493438887294187893671301811680333517179799215252752906399628529031813396269481685608980238497188197906556008231200478642291432959287744401142760448045018764005139990759034624434614397459379060173625590577441989896839345845453609255556545188039103782332844948360084470491983452968839060193440372698729074243159917656106453509581792106696908729343363927471238654041757423900028276336116079106787951621718753634291445639234476465989019878155581969746090750205963661439385075017956789063889090243635232378289462258015014622008542664720823850254700788708087971981675152114715238611194109338565769601215751614231517569152294781794863245990587457926555818218518383278344496220623450203156210616109480135061538310570876642483953372729399551547619593091342461399811170233575244700316451742560412599257737427171602398341180814201264267339147855197498426708308468248852400010484689825583299934260013731397997868914418383071186205873899911840476823090266804045510299440513785930999864934730056564709246787427054076558991492175507712053702896733944685345243509174258601235864919041341175184375193054939276997771572945883670359041211274516058007241896981593213034302861307665689066026787050388767016664835985474782662162595258249315974433154162256116941848784725895634319629081422149452722376478775922272517175124618258690415380891115433182034338005572170312143070445614643584757787901710501052691734014045548800114146989149147080704364883445060761725184138149731145728084456636350005677648933150535262425788853160748951035969576950096136255481892410581696253156146888318329272068388082350072108049051667090529584416211379164711795070628461776216799465350458427293010358933713573874984552070192010407674875409264326377204311808736307216443337835354707469092135974972514344225742496338811562474361096322279866986810987959919789189685317448899901903282834541922019991900402577208633053392789054261050362146451568129696078532869753491943085171059735476249970738786280222408476962625996160171960503321354496570332317452486584112568439023785131382083015835607695509190298114260168259278193942972191609648224710785730933068418210088242759271586081079098439836687143661241521559350655977238572174177804847760259292465478372012986395779912624293605817274867948773706137756672083998614253938707679777449141864493946682937586619975321538685285264535021705755901409095729389792150832090592522225186225301925961591398331835845005002978155272798836572451730990541447480555484982390110874843806919920835231566163366026355512850728830811802857640684813203689116057195192419748000706003623270002302632665049878263273297418281237330629999434442460659931997730954909501632134594027679677440447194053855362112980538505771703332554823036446509293040317914400336798090818713602621396039123623661659706116203535342409528524350726691488552171739951753224758659861379913215266467796653239030879067934856107524997552327810453474670209195505260428431125522415981200943986836690274268078663374542106128569002171908466975608664959224445217716626160116256602587719333166259879793717047121736945403717968794300031951744004254465621019848750566380924570519821208481768971363394079103996591244462680728920513074154235102767888983195494931901497923870576768486968393863355203027737535462849051301628341143890631206685672485218256951491617673844499127107372579937835815043655152331671992877374642503173826759163722409807297103578191913937258916228259298259740834467767263842399144419776648532727439019034108733099160161654689359409761972263064684651099549133239491653077999766688455172262253723341248812070293739680069784024051195564768645336615834431309758853770779723791614121469250409077425716009169461927095479067666934142614839240536586978479234566327049270738247967702766376461698381855889889785330328378510425762158195992527251900796045762310753524918408164626865667622000413307722674532845773069833210674733343950312861227854870263513082657172113923021071187363201451919533569596561235444474135380328888233434946196771543967355628136078609417221073987561888857324543643768703808846369201470439678079208589792594977433515554128288515016387054933539978644349415325163156508000608945687676076435422090770735048963896954620203913044419158399341713994066621704956695144241060012508232398012754369123565632068018818253656621589437997390612569932080404569698820029516421171808604541682953291865299971654023359500488496213214062300810723957633478873115361020806546048079620938883129515444251223155941662207824547149855254036698469084278030571343486637144916380875785206188196777741130674069075690873812671975837900961787628995139204240657952041804573846273487342722658133449445963155100814612021833234472559498415722547159151327831992555483601131401908436468614199303175363369898155290142269905415648602435227188958565511113572244929475740314931094481564650901326733544492117580089066483628508583218844586571156155159367311518221861355339699734644412135482918513928393470910521293552800439128446232204989663889004329621415084720787312185280729279790567909715257200806831254731789014590848725429693009012539814548626269146356751508531857893426839322543237302140044103874533020986552933123300850394694950287931630114106823563437080846607644262335103416241952668492934703176215541171690798812694201493727228817067830083951473580751715994710251800946372500554168106618404818306695612117214418183339281161882334303562249527758359110477384551121384423676069466526275523477130293102760644548592229126839768758011950387793536813602207094570480026416392211771938118301324183225898215917710296203619077878604804102895659115978611482913539034156470090933698688371103133179233523819186401245973625498100184511492953839040862330785323758530577739036949394648258163452070571453131974284027231104935458389894230910503150862269211819894869191340640191938659515348040349389567409075683289814284875307831339099880930283291463664202842984500465205051449625191557927165777299910206801947494007854870429863813818044151275521081880687280870708245476856494891620011399787326370851826878998894334139779852686452036308777662485315872962556041476033827821843262636892145945073959299821829370605412790763371192576431784333129892530682228755461897633695583006871335722086516289435510145258951654116653926267276056911786421733270716440380394518927548776484523935949771057594653364234493678370048337317631446581733504939216516691559442633751514248153111119212682079215380282258560005911900062307861595658654957177145518563415811852682603053854461182174002160520894430000108524702415112603925794546544142435553503626712939093278703134647235111965316249490069796202345598085180507051628296963200747528768482979179825463145255804171929433974950744444887983203899782620416403515394636404578341167274661752655142086461978220909164643895122452230394694848603836385907044959169956916547767361541321479097617281757239138133158132414129383277712335696869376455370607097988874625481895430672694869722083570359556234593046870287299000205760852400641604720197809116973429753610405648623024321271099817400437528271094796413252805941207058633992107890669574105320332838210463776529360285758708047781899936596713878010696201878391215335137617663813531915935200154339099516465030553198953436390174895628434923799257560424340197558003922276572476364719474998079119853674705256274339611784618854846908983811926646344802021926473226505238803726354936008384704357721047467789167232132691662687402052695878637138001216898467130559610309449565678228248814130479160271782943369048057651223632763258196767591915737517229413742625320197486183985561897303949804379906147555154338920004623397787524406831875782797879712284580957535659017233001616404892888571740597385407936325498749120038725834212205784586396410400236696274578546967074388328921526138982966080834066435308371504589256678594735875346880382634718446766910847824700070617769208135310254335784979734566118003961290987085065387402008609750715653394657890824066458830973965959150014427503558687819087068074349560011047739163751726449839349174691543938109660242297582438575620157451566795218544953757897723606538747383100901623748206636378013725339422034047927338076658324038779157633463782130338171960539974023234084281585657027558390055292616753338015570714564246307352831948213986722769685920067516302783686382820108760942501391131740256296600394549834870794831450902127654083576400222693420826086063616943937529043988361847277874586654023800483132689837617343703975285993916675686826242065080693772177880851642192905237448172205880365355638082133530481694892148746127781665344478338083306524174373747933789317888291839998218842871946208805213747193763206670904745347422415871093307664760631238162321939987943877759472512646731965485232336540245192046216131599132930325788226832348576719178277607391908542673267595220173307441449947765440174624481031997553162947286215209381264639560095387224424629098629402216182257633208206103843999231680876578638969808827449837569951528973704349152859077833025981667595789602391317245255157960901276431665658374908522072863838281145118244898412382277026735874603291498469659770664433395658432589875985197825601477590323265874066202980404717380635189739320449773808047194641266150394687271804137505670646710018871688171484445287645095734831911810093459583702900196904408627453761998751023719937957204357166082105765929180780983816516872013222551345907869105866724125733766538938432013431724835251449608122733732833303147340955622860492543712303276854767367861508767933894523652910220743613740576831405657088787558100992760650753593409878189284579514038334807126888337981314501001197000548540132523797880776833768609235312135949074221351365647597349170963786444834570093225344037147540061513420398033792933040222050034090153782572306996228096555950531844134817355858707172669056262048915692136812140678828834342381113030753062787017793311202808249168475718310499368799342542126541927788837403327161531185786201443787621868182303070101533945634594116121730198940579129697297135027646424585670817772327972052079811462406166887161827825957078755565897198534961452123046689592731434105223409431502863813186420375613166963390385048704066204990190584300249950552734941906469248443554775436794234988968836936979927526968314775019962058320853588521496396546541981761197296286932342383479639153297391452474490205165750563367691642389128541128923258112573213941808406149514996821223813526741632295733759728304983961614847380777356996400597968666191540501462859192845710619166332975891702248522025363422677192130645429483319708193155326949415797703266819876051775981453170613058042144027594384911805727059331845774089525567713753067235728883286300241426722043039911436655764442336330379294974208641013692528473498847512355967366869723742390017884034735992687613740041131260029060470670869677023944998155138582365594675282434388382475107476164175873195974464881718334962325812320861621820736222700263542207656323223063639207055527874235959480112944672167740498183767913310451686284979368249322506469750980899916888417538699006415159375142972268790952520653036072001423572700802676413630970064578294109872391615068666864999150685697865174250406937919041251081248966714766664285801288151829221407609338100804459412446638605574965201983117688149017394137297040437813247566012547476821950307274833046406436813335271061037603498185245983289414154015410674955333433886728434266878345003798084061150968556470037142456680992550400885413755322049277303300105494157324180339424929841821832701498390419176384159972624863802804024862647349306743968856302350380164658360171851369894933530059777774123069764087114759810270044382865404636776900121147003349315042991164588718149672461283346099900812576847710549497749459525848661581645797907055858331715262390398460888293179540075460878204427207682210945854815092800453105498729565241178055876311904437683936377238610182248903645689898472762190237690239608048240177545732562118068401992866690412382320290694657410064818555753107527347790770797848030793283976763757036340239010136887490671459885417859655055848598173330636300510633061794648671590534557759116197236990013243288875530998557753080585253466254840628553552011003931242632481426248317728251673493995210062881891919284737604950737995318376314250773727432601176381801171715915681223734686646292492603652309176223552401820479611542483638801230029460989631456106290371713337252673353054871152913238522566997719719038512235791631212868642332223184152524669326539768722336600490086532414444943796894956306784573791242318008597533822635439815276870038900464439288196156098243079616972511223520150271994302786452745232744270170857583457726662004094490905510884318507970930790563822473220781233946163366689857235046386817995971673455145291701095174100655542795785780704115162485004751028878717886131351353555304859291087859324825748241552693198906064819343561777197987368446233524048276080374069494064715170288566294547532649448912910601302501045045352968377222578163161409390914975438749959999931095813780675784597302817051845774711371078287581100297201017164500297263970476008985346881741019577021671537517084667409902095876964648968106922705487883255581587329420688836518361986537466494893624092288854472798260137202779640970540619097918470066045666834751297628741323240949021979814133093991691185454307024863077261968893841353086235275874087694444779015490036791455992902345650754350790462603080585525344780298573988309964094128951715899096999000717327213807697442457761441787110740006830558131439638205484558174531503819515217269101058647105315904260802029506922470273243070577529315366007228850202478645367307587603829427050162138599302455586178961481742040928509030123732550674830148148191590393087096364760081179896468488732953417699800377763427555912258844445248419317551047299759791715086206974465968522352245789541578420081062457338454091461205633681022106679931673140425058035248386749900155101871078111160344684490487270417206423633553911788419315714326787077748892664506501273817569935977711204330207121853811747460260582444573518013789573727963098425858340543139018541743758730346619814866729314487426503660124847207844442842050556601120811837779019222118109770408342583086479204531120404117055653175956307537289564950096939172421243201050105826459595312444039742892322905751134656668776337501925547402441625729011710864413015066166810086344803617483949743354178994495794037272420001514958942921154349802370848150050066216888097640242564030551636053714175889128547986070688055232064847211522745717375542445663924895087720465145958207764940149976511231346951948963901612846668121264191309388792184804435840280675549787102525683553035581287580206017529814796578502635583404339783008352024517198605454641933258836876658880678124092255298698098284795153985292080461448330616802843345620802195685407781017876033563443432278342849990336322580562742534680231304723556614481961950875211247534512296503313878489577358829789388657730505321260272229538445888089897985468829347956450549342069407120506001465228471369178463383369357363818208477603655594460739330499829154972441761688590321886919846892847508627249931793034950248355200608596241456809592594404405983736106432103278441923537342343444881562341809288139617371513678719490147032409678177485239990169010828192571842262530914229143201989240857105667152737714599841706328278851670244673531437628601999876725845264017548647614296444569749232705791055664479595115969932593724759425313255429764668195450132552610642923614103066439629159500135690971628852786821856958062430874265804549176374059802121159364507187001515050002134531530128279057636295749699319272203992466821771563417955471523742443010129339044964410905257513067994364530179289209270043213119966601303292685930908198725906861454649579770109062092204200291091103324062781683214015509052712298735923310538769474491264152383911071847356521391504864029005186558553146716067720858571638480650956866608338902604682856487684136593094623446384644955629220946849664377965259834484472918131055943881804769311407341015753159130186488173161333071718379652488734942578534060440472203893722151811087433641644023690067006821046478338959202968699292743089068515936895918084276800626497077840196726119797658099598310320058049406002153911298755197124503780770319405267349265684540932554683574195956711339358164830472809529435542739831263113370853155963631747888380003139338888158656574440139906494254888631862343542643572997553813143839228022066227834672472377643109458726382224817421453869677736863630894441964587171734524595371219493831735856553835215884290807029439542603598119652695683702680714397365339166909731376955721231202839218570526037098045710460017839197439615292711268181272880580422677077134599973607953110118786252309136265207577528730240393156304970199069760971387948525427816762268928610470513962976395923192227593353602375961225922222921254559403165497732739532316383851567732890477400888434677745673280560688810151790139643101336770595202547683924175801644600114609940513615973754279257807713089052531602131867390218479496448255638679183554494838751078524713803672251628998304922994510002973732729715491846273490232599144986986411799028219987386240177834394828973109519462729358444126480599657912779351969302733522649900017950030954837370323574437322579702625329835606184693726150290160586344164046739008875338112435053144545225591591283494312558701771340432754357178758814781142347193931510731952624278705294202889929098090039520314121224172953474099347909871286579225295011244338700996151878135155964718197732133600684336542239755761197189585512364023052429545776539111170625378951867169498891622442224488052418485589476970340507290936464411597264222463784108466930001649852665965724541127996056450652460672772498433114110862494110051099712056585397686221154124032515445510339018989876601754413664541020395491908972691437802427692824453073044724250840354763997601467843542001198427912413918695132041567744354464916865524427143915751777820026260319281319336966313217046911388254480894529710620236182036151994741094185103206100432635215706183725099903063456771284041274586004767647655408213140240130154295590737304844669037087602818209823660096041484039029098379756112112709294038461523692451622416492956068219215633271455996059400316163833747196966801590505772893295735878716335810321644869345492110644314064055827913294439148044124601192959442910864215065248823522957575333873070351875858066476897136709080492393130573984918923503592166255694057670649848633196209569128317688890233498977945393138894862596302988639749530917974978817516765662454376930681625566825341726224649739828481810081052478300861946282719672952073207232063516196547866510385461479582166255433002644683314816187417977156026797902874474957264461285332258871026994202117256356066154332518835071223814001207829782918369255592969186166997374474567459247284264807061169502227169225975270320400485186508681939744566531358263062823789822983430989015373731675161250761077416255064483195005116318955192926055176439970858682765191960852713668939652791385908580218820220157245541902140070028740988255762288182319536268117075515868163543777331189304458269843883470729071331272725832946548459849528978571071120470338691758069982823680524375670133038917635856614075447218447622581494396204853240005000467880367799751853590067716391531306530968790083062600968149887518175466300365709272529181036771253934049825300568612970372216739133666791569090521424074592751994231103581669556925615742781063917492720735033639437781790484059503723575229475473033176060677682496735880557373133251799390177871613597829024786278890986016682048200473587877620053631344052276574899104222991205090294762993494849167198554440496186805774586266244403491858383754994779835761685516345340789703631012451935097421498198571574039718913375604265044587201769360195278778576201008033973351148161986607018108640634304159790333514736858574955633940876514327042990987436577649622246706728044361823476383204348314499295844938320177479809127019636794513565245050350072626677521728088975201218940389921518716933365908202461055345314676268658297557881638336392533362261153561856184191433968918607294839126982105875568405481595014484620532167276663543196536392175440775726941059068863643404011976988749920741816084198781924699742125033963144638300028177818157502723861496265343764858492788570781166859643538608980439209474234936711333493352416387624073121762578005694594804700461564209114243037284479137908566529161370511035201983085583678366448123172389652015928531752474591215118433523384812687369404139771653357632353759389257626516203420816614253278780685659211271822847806749695750679799253614634795570859376630305544795109638574409682864440458632970789374265346774360688963021881674786351747480981267281368305459214521848218733776546114707081204296770782694099945030028600064079478608884195850721476097076714068235960905809632052036224263545211969601052614615634414520883838519866944791736779299967326526180954531247381242028097478288135870974183180006266266370953989332169544807635168043805218079545571406808183543644160358194845566590880454343618394893589640242657901608593460214007697566661930247253979542748286906405687782284000363048579104320636486567195714782750937692282512924704392338579419921918207729146904005758430402739782318070954064767809547139442470800577153079450291166856722626219966890031838348666241573404043369762029898263070272245690832308281844249248345199878492293718846406131662404134317500407922813521498679231554370564480156929716554385528389862098654895887776966740191735773852057380411638418942180025789007569940073404048927207338666454093501808584805611777690796150219329817182116582705921719378191397264480113969020949350923550187952173659383303651759035469021825870660670275429419065136903295237843449330023029901715494437682505506406930367731012704176620942645793039149314541984823648114096389945306831622993597508358307086993040284256289199528727367398369393207567133690592104452143848844250987932150174503686182916222696992382511091293683987166641668210507189436733268891502599653705339641207991665035684376646874638579915413659076992099409421043902145225430611010942509718901322081049549563788160760504330259735638452812078114941469793558292505108789303802804720192952759267780248627478204639281231461475080343413640819997134951937029174572586733484645758708932119570901455945174734915378370946529380073241898400416993408831903318388502872126069432238612250994293402522939230589805419636268045607768674852103645127270612524871269994923826637157692756794630016048121997996320515078824273592450094709155620612916210231332586564805850116184224054581487652569557623191368986770966364256674468077548958384401156419102014827409324202763198760119956564860051492886445331245290400618321568765780885731884102646362470467244193340223403571301077486725991611398448622781636429053049893233768432955359358084658667614573453667752747142637958391216705307751379005083178780691708647151111447275367831738118509353084017036561305757354006297866760944724607883445237785060398076761391933583925000699692091525412128137659513707883396578206366732326475898592547235365919905287085087320780327897970769674157991820124510315789890111810337524504955272192006071616961557117488569626378325402084183658651185183114702866213666995552998427384675977016972251006787493849920618355223609323253627426397586560161327979068074569601108225175710839471885430166277299290298551376520592717113175172765029704155676904718999924886534387140834619134784726602255204178934010860580599383915724268150617839415151346137160613705304457082943997019358510386715491873929330307272020791077577194739750489702319192651371158585685938545395278101111334381814318261246945485100336236274324802344238593042187443281706143088537955816292068405659048299783404941026781726000055939456988204250116711781309283483417289919239875861963400946368392893374204645072129612928917809163863314341675415517928141110087745464814923008304133578031665163564399580234392322970293705155215052579325665528388802293790616079340123091611242246475594625561063285192215531995104066187258855653824765270130462577484847133862730590075223021516232581282238701876262862706136528762276669683852839400477072750618067815821049725650524974508484130641739944190626866279475555089754606241405084063727082985188970743901237110166195894056589384726337501911997169799387826405876804260155440082985420528914182932198290264421264308102145188338031310957270394582963072140152906205374223611157281751434241453888467432243967768321925330376058969327011236653929641637114979830912745492028394539440314105544310967898170522398627863936659349960575449618013192529567987761525492182721490326707748396392067945261362085070909191754714471579482577586772426971873701514535214438839561427462120039724996426971268891632055412770353607517141025197734476282932179305561949306655677177346923706071712111977588510745062728749039031018665633655423301646595879884788023888384383280287612837269235068448255662923259321270543939431471725842445077875421960701097007809330147767744173574017336062757750107938911565349909152797884525989102140051956782238446532503787896136975633368804008246219580612645733125738286423655290449839222274866815595914331695557872045477976444288574451885088785144554818476242769161833072151087204901432293198587664964416969469540222581972165074755304257747982963913891895382746782504017522128943907599897653248449645635637027915277335453976639200343541286705988772021392301217498470298613994913583839916932321801596661612780429682562605647756753087072583582722403560524864035362528679151260942204283732465727072892413186328883802867467143348544912422090729502469102797757184598695297709073642413731220308165932338993174887509085459423376849935165946427692802164319135140566337499563813096078624279734323788613939015091311604929464092109987456292600158874212891888001342343263846265003944836297203536145463787374194679717828799962883368355821153163007065972245145752741241168878087946380282714593730310969250338242983503919836304533879189288112316139411353187273019634077658663548824268149274513277933393542078701137288887091555369862501792161867309183517954443859990994613860292156178553433988379675718133123506565242158383484838208450517052452119072439435575157756450953245196418566643913629804188587476118302881721984121750129249826569106095883059180471070608113136059867334323430613869740168238151014732663010858466308836189686073205390270772508752185373075003799815529913351491570080599886042014457553997973183228328314747726925603594732818869601135179200627979095182227063307883230780242266678394383809708085889074452485007317022382846807929678976216807660198910020065823164020985482681658934713668862526065127491377459872967464773792488436269180469809746113133270905884359355779201232009627585888862649318286655798334917862095311486861027399087090694076704062799363533402941251638525813733082137515235539143170169556909391213361400240853525501754556814690361988256945773052771667391437697126286174226778984795944060875592233703240279807021679678478067239477017035460934333461719533942053442330165881201256337563378770231658430825946548037994551885465315945114661630469244162366163730391489018630685263521093265929160942860760118306486623566455680759160370398804792760575852980152604613436278500197039770723316704694854408989703944255889202285191591767759649716214249934213862336200715667971987851667701320388931500397035514592439445690976390595015424755329962717610833148641157651637463224169891897443316579204685741000248998812271036395683964341006056695820349570841634474693483774207754141147775642707617772398678042262366850650258786158665979335903050407133215213090304194282857670453246526120427920946007810455530933494801057304542046591381449546556990725547256416060090349331432994498118684419149405299546970235753814699837229583198093247184581667203581630044626436517324606207582949832800240210044846288126771368599710836844288075171115453402182862344035109778190630854125295670825183761976779638848453986317490181964217640059844227698437474408119795354825531885522764858529096416899055362102753319272106962732538924333197657854189969964620168729636716158873309083831432854763622192485034747593155206361770261236802511375522680992908364794186613970143439091141600453388327042239821073921622655674373376512135316838739123404032718304177074474278139518794636774869461158701387654586422861253897175467271657480787355903453212342727710698577111779129790308108731214643859470319584935627523095047124400636833838406071263247425560557075992093525776297959686750012641872587223826903157829218297685203681804671322157712852585565208124039220594184923320093945492971476071632122500352053535357281155666597071436259820062936397460561417406478681747261210555331153050395324875279264653016065478648730408049658453805254406322798582096566983569753506055946108535597538865363770930147959563081280600037322772699505152353621158774237121395358214826772494748299317221320561573828869103429175147884465635777895001602403772197094208395154332557455600799540441508375886301725723959329616978564129102520898892764638900664138752952288146209466363411411550311142952097880673512432261450774433828992932179993163832670958077875236864598538329936360709887276109992933922084735545173102131961940074403308983593766856414791387428647479022151546629469112921963783424486554284423731577307955381622198174205860419915013126524988450796572952651393214378908046025867481080386690611650185140699223065373709689635566437220756566057020309025725030877328674363782157328545578159235924919433744708433738132000853449054197228315529552238935652573468466614956729663520427645741510747290161695148648239576583726742280642598477820078809175478430545091453760638301114953977141470842233269379318367500064489114815079154563637812138809892851727497544897087717060048546742142102395223230620846005680267411200852979498133723503690972546398225531804444224861803457241124983260244657722028511009575023039149881553334307639875729164513046615206353734000414854383457257486019136071411673275019978378233362312314254263077967581727752962838827371759943163917135943051846158209894645920247614442977972786395279109132886689540465082633266564169665091291553830063480774476159045887495920910099550664486021848262693473342081720619785683057383863179910901054097322629933751861128822698065828216084319978223115452049259217318224191788992511754537605069126006794569505233539316993885440148051794149192600230183517683683267008738029340464023282156953032131968508360457538207754245580746982628011763923025595869734042498615046991951309988572238803419831362515985098830134707636317563649938292520753611918710961120395851992201687496115380362987848327230169295250846230925322863196582004337400682265222804500915809603950066581404595774351278648684153345919488698745242902308597781662400011624800443285460052988835792133123281189131355134959783116799036227251704639429980025535672900047694605813838474025166011676946497937648148783885187505339567256550352612046594828175689049946718253071602467616966365774012337918179314225991674132932054924014827346702447778517406002289299545264410327872268425297750462345036960588739325396322010774969555485731709703778231906327076660793952065509627643873102776696096102200522672694296213616850010374724472308985195280221840072735994429964000581973577149271905080979464506114896174467271781840945379077816000756260388714704035775279785581243077410026473723768187284317654814919186661435131388351295252028772098885111626315112171754596624541651905648151147422893721911587271602275683194949665476793590438645526730005776984514874116148538977016206409591907045940483673483457687314411900028748545482148344735799719903196630610246156824872803702786969067366217109748826894100918012513564899336060764788706562322145009238478521071877605522427772671283934624827301154896170594817594435134301994234500284279156256515935321351092379852726079792099636566473056189493521993179479821984138215473729230114262326545469083081908258996262966862181226281982728622879223761998777213712682513885846700449153742682098675736481126924368371355543816459917023439074689156109159104331532092611413886964175668213411652839960715476160722974784461784442692408130096209808702600238755435053471579840864806190886400038393492711461942491301902282118247363658132868533902616733310268233308858716721663530554002558793640916616019393603841933315284948545510467985953349989296888939052980045649167376967845419918674867883230016743482345362965142983965763634298012720576890421360003867422931956054399685705853478971016677103858338333539926150524735053884420746603673339783501297989898875015272988975615251910614255045300421697607026351606234627007364021736166621930874943551048763569029953743447114891565878390663673134564956813892320613139173923058852978098961739860788547035951370133914435766531408092201295892925378997076435320230692638572926207182173390941498271417076074672381367120189582653668208505406990932723675370908824257375912895320638851526488859777162835348417902462609118178019210146760621299883391732852967000736927402779769767530312251381207643737452288183546661015472728891363021863670937864073209472257956235752325773839473966902478565283227951695615040486360439955045455187770665396449411990477928755859206823201794267445080722778556812143717523606910951415012038016735798830778714953171432391686927840777272467912492559464770943558759523664761248234651976903853907635712970332167896771847049314913864892696676358876601847970047380710820020198116675580562307329228330451155204233493427537812543827795472681751126260187513218142617004020083000627504747308770741350050711970450202663548537142071409940766917032407525468030254337177299855723451227070233232617944243210914792496502072440124418116638194585247441992796325424953719366682708917239801241687499307928084470035801827931530127299754113637522212867371574150731467208739688306991632798575268935100890624309312741278869921483525707007599335959741624558456987675767084810006670343939344845877444744016504957589835620108725598660914945279466064641901359335212226833670189674034940323319947828345296499489954281713769286824294622967007922557680421398035833085299672623082790407861471600134060924324946238288746525042751327845864279986265476763848706997210593647594553954476571193342388232048434624815072725729304446679642680888406150827180683738022846902367803233498616282061054754119937346007888760971287182930566277807354520446067182258198313891632245113296847846235996741424249762940611693612839255634246621009854568759850136562714007803265743792513333234398540867295111404224060483048603311695397329279680356300972437149363313552160258496269473215585979886001464638562557389682939848680951673813733576197660696549623168385851280919960111957360179612396872029094538645177850001752493189841572713941011399946857556198282734198679905560541536164639933661167604166164468742242319890275193169172014398044638852806956737368483779316155457364005015419663152322604863947508173209388386898571999768223734612942667282831189354661431120794638977636447935870447635818586148930447544473633588363055845772203216270037543498728931083774059294704669942576019577906198366281161190498636311016837482431016805003677177016559574563467380936846955137705710435511813608404939319367643288078780213763031795985947409750967693152961361809635777376609692288900848793269404270954342984160023008928687097151800787480809576496864704514754764394132814999889341639015802206651895416073471405906478262860541934707066506795223708842992211471676740405090552995677575595672818500343948528676097939252878584186883888020036163756988114622405156953187095870640782578717434082986170653370604048050029000245332154294955035771416494074692960328920422143789958129032538295025843699453364960314506589052601847374294301521801445122725602836231546841160867716281492000009391973895169222849502746371228068167258568785961087657788969490665660924211676809227964541479662513708602003600726994003228712848710247976504237243729404594516171313338712505039218770766137621345529893764570316349189469903475988416860481129984546986461539496981274044826638403846788132637278832686837621763797189785475334277033040951795030791463152796988502241399170093167961465523917939885148442520932474839641572528411963866726456986449445379590407929707178609336037372623742639057071480573394987198284875091254533165259906539275562593530766076126646520463235916910823003240335111657840144841056706058857185413412362481873874625217984049751570985276870694887096300341728523281129462860072694190434750896722222184992090649770279609383990521417110302012870692652172707201463156004381777451340558240452742213687168829809064293922359577731324581144482328372954668028454249093778127015073181677718231839491556520299136066516116401727042128048318338839517172926301729422738545042129135397150144581487524518202807507727083709458468077011743999771121644706374553480218813974754860454804683894372491797489696607057804441914461714646885176924340762963922782046406628026032679300429078950548945389034601085804551742973283619023899059602328433380652340315579139563011102372871587551924472426330272519799555261666300865150258429116107964152555582898210344180889476194248645322175606294350062652556286223789853719003902392714827424203679339402372355328209229380908960902088217234415363311073907413493302001783260840437423175675415501838453506216332989689123745995005627898077120451140205886143664527693052972123223352124438197824686708974730178892748610738402438174768287239264642604526481891768099470633559040874682619523984667517389636934688626085725179158987557063753775982827708898856916294133290235777458268380139401237746854732078054484139073995820479356282081838421548332072353049605802879602479620645895063364808514129060809245612110978697766842068203473890608559173171465330108677251260500373479611081048175569865828128206136515857675084579828184748158748761287930315622915077328736090301013970758632259367293487157759418630414762268216364309676843573709561320618028653500255626510240180585243345985027604522433916026226103562495354984470614785365573411742053335541610420144464959959943862073649152771182274643206917316110578598510974622249515406097598797346230638160805498833153330611368278089757354396980275865219397700252996729359635720370710473419749350802276157434418182205453496932273689392672581676670921092587562550478704232808894238031526491948016432917907850387130443209988673581487565374357015588636065578442744271760225846458428213654572307150309200398499837612220880606693878491482080231199900778646772673565846241095460565337261657254038456061565443736163458461414327146387369804848737931665626382249346618770960235686945166378237772383837956967314120214571536227472197865854885353790793926209400517226739641891847286171003739325016395344230196975202532556948649686205701699402793208345396598300862552332795757743549356914295215910535609574247781025093850115641522943029675583734895739690388783495146330243002126096571481292429434546411392455731241267007312706385188363186674991237020643164538331582632666543270779956373503566235897973679140304753780793710242357811358752925732777346597181139429067527055254997747112279599960123770640998833995385076886719028906228928190098127248058874509694168620392113315586127438787373417321746955630088654043978290535738324760076822376306273306868800920988818353039421833033818186014699083286815187586571858490761619121290105436561105344650270630882266112638511444698609607858635034011688733411410915797908429678016144791661082552274451833352610016488152548874683156976264577031425152228348140816071465498483676774589651591440741427767152194717779490492102495480806233165704028260877214196398466422227021483462287304653820347014021414949899736657162561261621199238219750597626569946389679083668720197262348135822187414557167955668332429221178232607283928933944007722610535840685167667527366938835824253124762178282638603215890844788141765359656176615276591120702595764338949269434138384935143190173765197789453345039966862875993322418304223934586976372616650721394858340513315720113735573411032047708903325263903511299840917734496632936882716158704471751748005052046519393450703133466506192984903268067527605495619757706669788516363774645148699948649874437781759790100383739895181121920134249410821764626088828767250940955992318862942593818170958013553545026520350760435848053213555791380019616833820103055086884683545314322918684207044333980782231671190744092325284059963544774883405250375366885854012551344382736859524768318405064116913126472891140057737324619164890404089884963042669690170244247999417872005584640172830659084610590897227926291409387571638138144392830458726763433354467079949858584658097077175467560926990861796840851451366177885156269653173182325004565063275597432596344420433675054714007813179379575883818090339413218799703310641542577247364520231849450984437564867743770471520770914035274358595654463662882580973061939198412403268833615009474557993212137552846515969519671742258217190907905941881806704956404863351983391364785432440997841917720189466676742995420312441020822911010604312960548634764417112603248881637635772047485111630410100183347445961689296800408465858454077733582191581760864813052381954032588089996670137941437862529768977482880823832786036673002987795817983846356063978270754283287577112045728811812899400177665637468129876735789525839498956744240109483593067087799006780870296929158879565741611679705976407089362439655699834147830626427388056384470873044273301421430582568278263839157276899532989345192391848247830441793656864637357437077486346690726278578507522645014806348075084388712779779484079952205971301730025787222124230575520915978284103924020575518690240407611768179096429048887720524217023850159653650111150488323024242209026876267446966303159270327244202356817195073940457594257755105849905561363718261740600767779162395339008388631966099864233364236739362589876185330257259040419418195567656948323559241496072345707904915740771380307178854909452568068173318252913233887177028443531671925230766127838330233573133833707222892752003321975851514871527646703807664040905223100267116669537170843675146580909015521676627556614663226551349250776288227220486907767140915937682162145404299771736896596693480159006065646259101468772527349030627028608979979940343754458405804132083763266814157860405651622096566335026529651860796565907196718720439275235450161082116560405623470867857232213173408254599527704425267651441934850475934987090506864943283899469446248734713930016816939933064618012712912280035606488648983025829653770336448061096106113073979692044304609917864125087545962234045512387112325557416865475075756469419051088781914277761415114320931160600448429743120658495856892170341870624807444398368803258970682468789729939820623626642129507607372555570968342354410577276514462111276105567432476188490749871716703022394262363680671911340591935387213243442983066477566980637809841423586325441495862529029300296336150767015706228634474820669312677380596607714837640764978513129605606623348538685329763241492429623414407190292698635343490979480552053713808806842983534444688936622576930404850493843004344307157483128561399456826726311642371610005020191000685766307160449428678370830000805712077693774124255262048771371523276966128886622905526008271767369093163181625395213966256793190906125123434749325808044068746849891094451287260969931579773517439464561721308930130974980494625146828702315075035183681714637650817285218115178887235089070926249326221610038701942649947830310997023880036833163240270920984079183391088395354525695140115605995227082647244627472835151681553957668201819913865992972071155760879183885638168710275795297588435213503078710611897881708118163344952214275135381614513340081646368370828175875292647441998778847073943602477206401167278792881265099508260272345146328903013472942666940628694419118635188739039228792911150315106677505010636090762677193048877812806417926330690822154552431542225605380185750761804136575633448338363974264681355689898824713819878183746104499265012122214088353302269568349209679819354622785052841484063666657953588836034742866228344861595549260471516426362566766632416085446495906007514389037672764039219383631680598653160880705602799191394866774237046080715222542142104493049807174915020356962848289313756545565604825385923507316729495560739924577201030149049258111839218529049062177698492989691265151467393692707805776691397282030054844922383193469902065132249755636033676291136477497874948355236831578250050620327670772134184372148836961208212219553692274495868082471561885339245021632694277763311539809227838592073070305224372324723055864686019712047462445410311662988819875728559231746053474999637019174877030958563635099695113135735325243807239983250545334449767269154150883655527696261411471148148513270648758173202469339583215817039597170294617463057598420943996263986553589507338055178815760144800772079795988068806758850855527884322591514444976611331238088245460983013357356983527728197855819184190179907365956480443057577083365941234324310006662004520314179088340763905630179053343623696067886559369051807579472577784319201672680615745686669787816615502542777064090019170250005266886517868030466783662685551696915844852887942813188039649891344084152852006769418152096755668843983823950216595609747628643906683298798615365615005972945762966010618947821323437976493657371163409649310498793019392522952965775915093319062111217397155663929673156977393745447802127113049963337176452777646332858431285055988083422567766983454679017807093781700683312785370992810471645452260941168383230757300646422704640445580107013117737240512707788721496061000653215143474653485057102612703716308457907558476957914300039954318054712725414274381575809503246183942347184840982855368827853071737630543038167624626411769666270502045315941245312475405921087623852020324643053334960058750489592680730326796277649657347233872658521357494440432234565062420642202979846267744158335765695365300292690672943066755860837990951645184840015117798922214426423884039259149772773859401040653696811641885898922352437518681873412804781706358314633073136438919609326120094101822598909721221948875313597594915238111507349564369734338552589577552186102605562036480548693225782112357690215225893359416210572880948627438939172174980334248661501942760680111351805427619338699653594829581088273360378796910739615439927462599920816623761122437343751108119687937884269557339232825066198252374140721164720289438776032830132454926241689643952789527739996439173683610948158171549985893538612635031731110005975127023722941321233753703701106987614022425224666933879087869468165996128056711821658071056423838164749422782543847882202036828727273296497683742892306259879761494828836947995404582446573242007058918939058662343415365680307937381384585263686200610555130957849541882905398752243945575648675758251896019356562166140292566076050774026875882988537774577837620203889083539211406500842280090237840701547719933505799906096142478567261173908139900854255720793200153886174538120659394775404814071520954610048800256028096352128996366587614246450335819152452826529538463617614059320096556815225531380485425544910866636618603372857392507768252673334091230753182902191711646241543204538244945262302137200794817310608092097505089970475684703680504872126929335072748703285752425148017865586294358585101701776002954843797911861132486854163377282355016533363172369577162987162483406106753600198249749500886425580969012382848195057999742451689705245612425076641167822144861146157077061669212837443299669656208494377787293586189406236785011037650882800498124358671690993215626587840903194686341269546480176223061905452691458251512255231197407251791198014969630416483597054635232597751991124960913845973903092134434385473025709854623091612881533730254012800039231518825111333341277317597470565463264314104371220521940088649750654409685827675750708995370880112656559088355037921634083735312100145403057408373257684916321711977562555019288305324762324667001002532129857218529568119070237372330658100222609517418426036145403227438340494203419330469343750503683733853441375624474748833709994286466590094159258310899890575053746562111342953308432672881937681692601236089003000702778606644479168476730995544587909176018837179909104799644384484241254375088281132030363609048757424850245475787213905065083980764511444602622604188355269195500550761712048741588907200730335023904130137654401738621518739556595829326496379950426534261818769635650552930156261696141638007237713724715378398585002215468602624718324579617334003236257873966092796747679729714689293697685829922744767868211177386422067537897306065636037736200143599566367450277263295831246499437044474969321529813279661095694475945182453246664098291287077424049409150797008402338453736712359939626613280112420754807472304758281303360198293589646701133902616286515090395591777499820293144463931601189663626643494155457226321049482319170375720170470225480781378068082446306122010619371050998563255436094895935815030500412677269537290025012262659931040724596469062973518821647969533862351713713074176190208735794467775988094023041494442267596452666122484845580687354010014084656146623075122853945497373167797962437341336256388885149404045773035455065482504295371680453162743278574692828827518079661274459273898555357273991497747672422443244581669227445672167833302411763825187891724758909136092230820794323793494403179520588140766282047914012054029186086497996794329764108352573747410289161759492756145661966775769351224597630976786079830996852408214849277912363929542181811085937018069194448448321643685902880977879639151001084854400471377921334301761057968426993367891044603122200142233079517154563370357176209338825401026458126608951780103359471181186212766977143961696916448371438235379976821945847837626664292145218665074172648410542056663255694999072084188883105813535895672130168868436949116848290032050693372058706007962749105111825741637066302998523919988308777484926645311021862613559247933665397523428740343371574814638637760697311865491020770925229271623957823510208372817408647365088379224183242487438305199110970564664817727635566790284083331860287395287909502091750927922698605943056026446173621630385355286043975280298542035972229184098004041287668748038747872761168563408480146610700247632355690993526287126751559536825401308488541691878793077839927631972246027417185457090348949418008974548562364046263847271985794558048775319462973502490376166465962560521440247216775028362619876311347011119737236077275756180437200262288936851652894801422796297936833817693407855681709792913702276279753069778093988694956305370626336828146197110023630054294791680015932707909888489336015503980738829583551245701872812676375238911659304899323686350299659914410516952480814612898011493174740980473418922044775044470410995441672666427556061682604018261282020654799856897083618300089736716578118279070155578356455790902481450717078226280742613499485594883981982404634362480549938096153019086390798193647290559580674927937204791213458761391179950990702995117314290790964232352797515560197568293077349457240986581182718373907165958272913720290079612672509893346868415020389837380430133541731932711118019170571646920337867550009346485182548440901649543666938852930125860976248513839599226582394563363267072872054259282200516131310107452218169408402906426175501383483368821878215838176910520360639170829404846887289832767898364377588602793767053651368776254073196023336567015162315252132918855248027367568589150161238078888897103242758272901531680559430460494326656494395451513093543135667315944225963059041555987161076945410263564769802810360128687603159603472303160707313285209634678959578701977708723279288152466152577904239982796954587612484738454528388850624083806290666123333587937870193119393303643509144019115677043691275503119680699021400056670070199262688461129158165505853419717806970964407923980464043278143875239613211485622656176735226415370950759410276072150093801526523052227960204786885268207046302399714982010901727410377279220358979132882587485740334856669524535504547124050738889555725228579920565622555363341656761054814351721753718642969128165267720469873114632035368215307300784832662720408791887577218395521849030541364366096969403237482127275682212559364977224428335802321957995430742984647943642913723561592462377352824588409289112134114427491455414230355991541753048969158095632747106057083940955001750431438990192307226067956884692842082851011396021642379087071268068843402719187634727023560849048549562981718289538555263400099288865560713256028397835344892480016212949852599727383030476894101881175259089917820005978035585609793041539999820608051332818340746770440302582766034195001733022405772577323522874281614108161904319075572521899832553332384596238830230509546627054558321184851523418914945600578795369675138324860552420511554859453076482473077727438737762806279412373785251488321395006272978105220450209660508258128273969260569731085492664714622144439519293981196624830769039966959324948235765147765532630333223746364921180193899965194198289261886201307499991323611053831078154524340987490439985691110337555126153223381478272646373798186327978651517086173939078464946391902909776287129886846318031980601619584736356746431727838827797283976506574220063036206126443761593944762387015751541947463750899038526849800096831553949063005428621164043282786377432237276452979720683167010067311518828424852837509704669454410333773734415542865807905911762778953142026939482847209205525347174265449545143674209960629570991123252386669986066685428470287281088374394938285099913217430954654536196702150393100813115473458161652927369030511726533798957370926068390742570931462505572710112568203159357200848505897885029691337631881750879896740851827844328397350888319940210432414835842602567598913850660710591722053656378727643211751858763983207383895191282815150781394554861966008536838423897650242585674420270902316412230429818288029893293563774009628807509937241015787782047490898105460162677777073089362960385632498360190260411661244651578776038051495396423689782127572235279305022372587957778357422806108191569177233998231959580170262577111759427029707827051070693037357248390013005305288716667906203017193133033182382800966350098266244398953316217188273681404475861432449911931732343956182638209421872845257989508599769024338997926468421630399122780344655456759422611809368741573453407139358500960039278342212097301371549983596566058798586088873252298543201538831776590216088076848845191351664016343050790496509973973693175255476094974941054679224797155523857816928153127364804055856657591703815854472372577804862287752783389245059544059765270227432846770319640903063862526576227896558996814048124382784716021929586150844093776883761056228124166010001016463666817283216225790636573918089638479396841041878596332713850420463805614701556462612877957011196927451229073198935259549687956090199796701690446321655927969697457331053401099397329688726891805479114948137053401252442808580732216070166890354610401099113322669552334551851642953704596695120213699524629569334181880983791652756210630098212536306550919611342405168436773504483370907722692573857432044284819361071461385995864305138192906525003430492692353542657004536193875153441857505835859039841566364314151955034889388216103908550299039640308376470201709647709966788332987231387779886884069957665738946679506406339703570630426614592266501056816752918241922878952211775120697793066446649807773877984643182525113192710387684386949213990783570708339427707669298113918544919401432002772880942456649109128019676297059125457202237228624904289730988944313531957754944609255787706913324031099883568928833506113188626832257518106352321509470560266676219256967304055573987083119268168974251219846704763058804117174548263754148441419588424155169864743135546412810970456136120512413048585336681520555541053910442161524752223498245250859715595560780510106540870355067474864066595652052488717324839933001054668253341795612562546416069993190368492320176595214126599116702539072559198582426703336661512917030398112454748788352769544734247175154506562004439870447064699750806252714366056711599109433817733850811362084100098602357836552415492185758636020400494859715244528347318733978957462704410191543639619026667025363754682167353611764001385617235488308861300773427288064650474466605720809828287286972110201035369321658886447736408986444965242060662715708059050802822445559663602290357244907096686665632832370286210720619426337682551332601721467490292896372108966964295958726543755215852939213172624125675240798134302124857237385739249606030974312737573918032841782201533505005345507221120311617872726506402137741175920651107413571348328399045103757150873617348780081910953412112602130374685062252415317865616574590881536790073976313494416929497082169072476336819796387046864614116202529991904017956770127790607928549865896928009219467539291237034948480434801472503349737798274893576176346914278334782866140072020232955511865273994303832246790914238215378070818129998625081417992959270476867646362669386698756168269234221133116521660347608251628992402139286593637946735416206463564946384176090043603882716640715457429826299366552543850345897433040740935510363201270835386741550347187667256636710867891546891269716875254558954038394707341079692858704015469682171695253707967453164792648514477597714034981201427958576259924672764826482298375242222096988694447838105345926797515396557233663337859377582002599564700478506048908851110181548720261699184817865109701219339383483373591490523684745012220109049982483037034060744394183435878188465619016382806195243479900832316789331312863087147511678883396981514790114421714389521419717934631230894352350094890189475527716320503266341336454709577153130195366680131313161935251570514830472228570930430374490673372543437305812395989553549027236448685127857243933413869485477873911756901842650923575142496938171468395811382065544698410936107277849151976610084100178189018282055277106273905321720306481182707430147109913812009491616692496508010846926349079539708778024004459924560675753153938854747899926460462313392372728511514879839705415124184834442993785632919122968437540999555398325361639306790194083381682761509378227413161573740961411483155067889080299140868451243645403148337573032944676075091238669404716118036885202046596830012192666759696166031591170107792497420364826126862218788494336163397839843403425769388941437863241032809961563225596144333126316582258076438344896144247191086768154342971770761459196259507384445426595478961647527590679833414579637489816330250683352300014907953589198022833403100039114596459330416563487268101866418002625600396640457184633589887249290961637907457123441827752523763029965462739794342495402692648163210976941069230927227521710963034306359426106205920578079362695307798236698178568443926174444444285909284149671069779900619296936605059968383777008887175009615748228873405986507359946547134914052351763770688829154229152307428006879638126946641210402291752067386448420445958302329396211204033408532950456857148901797278811847045684970740146831265828287922220446043457081227582384971996304189935280859505433973158641044137648991570007190415313915746243730824532909041332900760235322569626871263150071026400219170108563679653330417996707821758583366735703017428106706622373770976035955613349161430780208308784396101854980054750539831128723577923080658114769714291358977061513368961292769640764207043805629538425985454925665142834323185529040623441817949190412452388061630655312986097998822641077601364202732578468760999777024934984837615440718749997115353522147335224746018115641700765629484467491560422635354699109464447844143540029407800446931245401640755310167290225762344810013852548580985179104785252188835552629979141527113848326031016035048210621035624720371767559543374644970545709842284585857562495877086496530733007774158987193689406919832072852072289876988539214298900102498292021311654830088010684616958162409317033564972007059669645586362468128339046600168424085891048709358436919586075966299927369155286771139515858271339034196609480038437176892697549600391983037697254842148448104505557430691103138021774592527045294768390906907107190710939104436652512082552953309702693298325664484570932471106574266475317564423825444587786971215335310816933902355330819369974791427125849784240207829820523384521651383049615211164685013117821600635344135789399986363834563438080890384800578460645373149339310079143913257983368826432869288243264599106996214859145481411350524939744523564963052713890333926595271175434734898429776766440383684893454351656118906792757538362449365908550869833328843945177621048248334847875919485828046217518641884963838703851896441362730081556334856616237132820710819104039143679556721356063524285132350434200590146001277517288413417351282004516345521901289218042809801709952159345142535493122126575738648212441709142597671344761321051426970970840890287718171055932170377027154552042405590587631610401779157013949415771179449804561224219121323405563522318869632216668384208791500330786879452345215228735299395359836019491933978078951742425265364722970427822316982884863525974090910199315762768565786894110468099754343384366071174564621423379599599280464271952518348082135394651532141486379221540779494487919522260144414030074031025947438243098093422883131947942931521401109267032472166527200170733759192122077971112125561752392092485407272296570064269011387112118251651908318298842548678825067573759463169301001496475382786561040606654771191506346878663119223370448328214467648762172973949721587523767946589660875375614671521725442052999726066173436702985785361804729103703498598818236126445497184313226526086763889928984405087196192318438748391003364544899159357171748448763203596046432123209937603045321965621820802784800937532578188617344285737335201224624837574794456832540291587083997311997518093693688590989869995656113577505444130836203468647981619591753529367998454577413556405235442632906954097850014035766554681989303017979194941391978349458460311446140049025312569450243467719289438153012892181480144033777902683758891757479236522296906572007792525167869040963259176128476036589454041397691577013280297309608144674732487443854548750990595986015678559792231952829616354245984524415726780669209626625687204193249820921899577146417462655209400233086477425031185199340042198813717177416363817966986587132465524630641124394667641596393421840663144536519180316691696500974157111376106396582298088660822095359871300047608260090590918538973432648279216413811407554581588384535479245019094293817310969381620093572090699267549857905179782224823748720498090218275869795962965295232688974525982419341527741201439842406942703128279753354026603236325906501510337884348389625440999613974403618960377637064625393082663448966219096706736384976023445216713582358545117127113905263801172917063693122626574458701057735267143877038692852704849886952080973572585623057159310818719721642468354199199206458764048090994518869208073140873714358377866463993230649621733879535678752543091692912638683759617748240757340091480096873402056913674390753646200666009731216962998369923738550578297724056372909732892255586650099379330975761524982358978867801810545726088686448510695162869354181255471935499411907852931842797327040692126540507176394290207953648189857728605035337802755899098923818385538053889059763018568366366443496331944901445492554681714106051973918100572315842280764886358613956161586512588797159878142858614020595242881368148123773338137273515537189126698967627368190702420072414568994812530606173129316465192128532462393243772329203098589442479327312676985525315771415515252373914141053768475899563631865311610115764174321323249721401570042662245224869233394495431130291681345292517659730836534749633740913498437976879941560649635022825082657235118325751488938851211959799307376233186765006436198673560008548591873201329534448883107603315068242275473646447794387264105055407682541120793188107074349379824192577641965265703691968728648942533955212479309820102418700658192131079386829575126498432323381316436833639471997267672347792358377221878500537746722469938877752258123898374357114527651144092508209457486988783513460009369499319706700767087538336385794813577546314999211878793040090176169848219480880192270409773758922311479838265894139765571153913066403376796206771444785149663497851925333250384938697312084235418012778416248486611712831365973960001439239060123688980418888406354289881726560578282349278962389558794035059363828056120741737308331543443582673779030064768863609586633262860217956078568336522760045838720540835081932197526175656756424675666001337095857612435904030623507004382251734173601878823233434958269920552528412172160802507454825628003729758581593129279119861701390900244336873898344158406208399298472111008223431167645877004761516150329129441665367456272018851850901200913818250705979374268354595967183924413580128096461158878123192039832702804739038603745964211386560287531894071064693870955299195909836928659789573254572684039789277438025187909360571438610526205757888627990524108740305897547704474979744207841138400247180716704071379209733883081592432699848368181933144199286668556876374789709455845563696646284841485015002778184695196367208130342258558407390087052395953084773264583354596051096917248057713052731747210598823756201550478570149750908678653286448352341330343489352557908401670081115405586938321999369394616871746647189945287199963735066279695386870921018434368528979465133715332420060987722895034818275508699092400102200375092802950807743561463162505679508563830862709809508128891390704432562033442173231997542882812173056551108184129428284859686449220265630473134335533169899325748851146477032634102920682501690451877266640326102602428082961306210429983629150380114491723954344355300981803408677846367936735851006532689142328709582188620381215273760942748414285574844159931097838768922205228435556679847346887718172542220359768298625890056545287116994704811769675903266067485859180210075118118977873444220093167542781184315223870821896073334913395504733530316336449260262385797766420014282356110358655554682343908094398346668702150229301209580596635149847591274111162128764794868550675494133189218624348441976415122616371280796173369477903085691589051221778824608048073490023654809429529337535846101809326444677798231393969774023049022118454865491870414260100519550173856308429415479731733827503823785861114246732494272231532905079873148820440646116253246188843375998199587081169701147241562760410295651757592966562827020298847672792213157336953288967022580708689180461825543381906289564125130957708980807449375804512744492847970279684495276965238590379509986339683571384734368348732764227722687005321184621903624276585928941803005205911661463488622614742617805319871836110757237302990321875937138517791574212689818449698071964533158831002470542383575111407644649709056865089523820053923393209743503234428922256983209487111118545389355795690129181640761476836555171067282365017807402399023708141054251902905563391821597452146613408110524710056262890682897912194451376526343437671538922086697792138372494141040053000123061155391669983355329439955405942757705494377502816324441438358769339660136636008913386641037479485853818919878683018091491308753224634386680242180485918917889412802030031673636890371423049757659044173490168989603374493363919750826631012099710608488344271834107595820197555325429314893270028724997000353683296917892939814606240696396830743606712110834841216218822816403481297911443980167340106061268943526268015358031962750780164972031551500569520691100238054652639678634869384510504471713623442718202147073848863366936917770623861770322582430202135141334353014057029774468951966718487522655638869749408449474640424335870074898035311148082466855078829009175724245833221224973946572983299734062805136328165952867344410477715763762308638676119832882777623594728035224690733600757672140486849588223945896216167625659701178602371242323592762486698485220602912657918103867405831835736012141825920526074713206303791519700129181516346827062045205259666490499662655042891475525423037953936564011908736875826328660297285102790951917825611634403903531972345095295947048620045658281020706917214627169687728255742981019659100257221406593297180434878841112416152609890254216374412081709150038581445702333378662071229214479455725646759175800982670314594118249253842842828236216021360330779825208396731369997100210564304065851724914078974627916056224046625309185972579816538660019169287524267912657415898609035991433449116351497149388635559603094133212715681297514797894961812482354540372987175763955332681638684612574527070428978520383176567606156967466049732548726714697892251853532487958094416547533588265772149988106067194507236653107991944754686043022795397170868354387040873927365500599555677321872264537178157522656548771711620917495641468127029443981700752100746156684149984239003363309269784835731573735706210071741051703377032712814007594853131461357817187954242352614255098341874081874870329119878377498297633432339885930274724721132140895202839893230370599078236870897985575793643064312239784459838167560505548989367347437879263754462338690990221856321187701551295886464306243474764478742219538820699839549693148448435785155354325436831247057275990716378532258608624409109467824857049366011926577381335704575376106670570986634863558611356382750168314381482155599218920663796602070717936883825199939756187923683288540491777466812532394925731703925606745955510435218612431331655545741491825407185393530222164709273396501413386116183509087708553387492623884661168959420185285347595241599855185316888679188159455503352342638087486385543826091125010341521652588665524503909026806426770274060565027680500737701481542167377313344848462228680579819400421871134018108638558796296124396992999439489423980662574767709663666346874517333838519804950342268409891733277846750725372845059106344609281039200645229947989613413119329886017669083761144169857197713091429118670065262250550185446393000391465852805368827455315188723644125801275540904772355015909365491749962551095317824560312271352457536395511106454366225675953984383074648385845267202259324027228235386182777370591998935099307627649426301261439048561392558704208235154045631606548039253983826414450274238717468433425107768066749274563172271019112213591906397148692922307252606123189246914587719536685959146887198424037558685138177697035015467791586965679558586656954860441613017145906164835851450129886207237981534473598128450003929682222974969709167051531081410403140585687001698409870117723287277248962753851495935793522675086318764460054999851515578158817489232275285660273972899811465402309668532784946224689594289962435284406034685567260002159393021263819482120631103817753834709004768791542836186350185679476176838376757892052248575577165302196385458480644612180644350863908326642064006474517200631546005530590277259382872879414611690660260066574923123569795989250536722744977726976430383589140995684358182613389715189380727681472827292492685197956098525320826671053206639161630063236001657403479835139793898667944947081820228199054281445334188544048079646401527696693564296114079461514868075416281902393015665221112669454345816573539364225055147127456639812562292484481123660651543285180233189997254658362873853543043897956004768125231375195807330536845730773727170788127713026299273356190955710821419995658059588042088083137689881412081357913751981645203900119941091632608156436038701382971677766800285745116537207456787957860066264808179788647394182983264566712637023357641594793620670095101799111529706435580447935626722199809404902309867231441089191074399498434755357970381559189365289668605863814324027833095482477581200914646023114189774384718300270852209125664564500412942799848196049843091434359195271930854997993057269492701685002545807804367490463344492614801803460947495495427446613625258506424959876974184203648449318521345847408297162169181916969817376450252056410772711657744083896232564609825995198306271883356868521841111353572054122088072107582862332188868594399028955480734846452104590249848561039869051674601000967789813524827036538103874970128332458562070437878213839443919546492563126590059383948253923224723405848190701566011362331429355189084474536611335051751952819194072533751878436743230849823200689050090780179867688997589429911783143771233555790989319981838797970693864871498336987264711199207690063357770898645084306799132746031956462415890411328197250573835366921564885820773617551542355304518788251250504121715885064879964119221035544655916572148186347562827296684278953406121671423055493806609509200135991407394122942556638559068723582242455996118922702499407639286398623762741980515449479164336652450097562200445245195045221201695885881409670440516942423438233713994139197785984544762614844515361819562927710472681110386187974946853643210461990264312363764937340491887579054517204144612388772390115346030889069016659279462550728621469082801926959594653111976170328790426997434173267612221312545777194882438234386388799441714179875192465418147916078049500546731597605645799101744204557344123800680793184379660402445487823517862569595976303348785771867620898102026739797277587855974229078647220670570296196762240646993650744324196143760885966101147146720199097500712962506204299597111592715016546536874560249105120068349612852847826924259781972573081640888080113765109238626211658431645553291194946006550365983768794079750009830407327155179980861339878556793931174044711990318281986887247143126108009628800604975650861380531821108223225657319985494210737584156038189372190487196939777402067992794164299603960153627622959156087623384510157570282356261714001082915112477762768952352803561754904965716251702999704592205444712495552224238183285459780494742022437448884219831232891923145608058009552887550239782192382782361487621917091946900781614357930190238298521635298940915797666257840003444651629123288168049164931162479574936765718189975021647881643722393674986084236552471311157054361413628935091614412665507155812725383134099532701777168629798421961238491587362187985855519636170659920214300305851293200862316113605758198222354076988163919158636238002859285744887590538506372498997369281491121005475299555571411822155704949230969413253870125796770415133460906932732637795729011467700075557694576198224728151804607317240130540176839652337634205800805419089737257539101291129697986985963497885777355506694647101805731155319649191799379116666443738167996300777590491263958529155347821762834974744850426861586624747514468149027158634353747063733192521655668193955140471497749011746080021026711212349280140402727447327629786985464382421401549641459713853024375075667905746448881348707461108250391898653448406009224517637462875544017761756038098181032935602045711495558925959739666223018439021495085646028822057655603181422343636731146508103402185706030648596565091106616302270521848909518239811772485335200380432323190484431751631380565308247670315149750462142069973758546219750348498446611671101915501697529796380434539218537837687519216658755226291687377783805695550423119270497687098101459599078603481372046804556697545132810930744964786902924816689051759189177819998715031159495904190469529133467140723972796006576648691235518847975911841868968109580644855316051439464385586615043250427984830362009088549538759978415467611158855497490626474223195974689614317391031319751765146247120161484373566128452305214823772563290723753098140242437368181919916935583917248043932944144427160194051402735105541201804631205979528999236880575655806460561126004681871926755058941275625571836948235954569374192299671960371708975883432155916726596716048604407362549154634906209136799104201492765219943386749058667932137203972294927354428643661608991444310177257292313518928120232909718987912433476294587635518326367992369532077718642020110287154857093602835861045057119832112998659498512104887006193764074776532863335654070800982335007250809855562314319708687227805290507050465763846847109065983563868358113261141241680769637019630978737259921968877232321660037373387980743356781560438858352890876995055810170380053105272491564128306552347076382900784447201597253957848273528113260239022791163147513207332536039952847705372949946805675052028021645579227579800917309266868772096258145316810966978027099625822371593952082888609962026440905709875814259046950605852663653866139088896405603501527733954348328988613722077827767498596128533003402668588500288762981475404616313380742066678243262122002308905127030023176331192423014300803770982945414463056810539866308362519121868265972429789776642057475471516105455834211441698627409578357279495451463061057246927912651351347276087636140396231205711541383238836589764382700929073348311853021008489598581215228715848785068828437101927882734122628288721613748364290934402028503160904873124464698384674831783957404609093026635651260754972112825529601329815484653017428340639577541664011666709469608996746759723859690397644778453832197582918458622712100393982431910250445226361400321882149418330222286633914452248303576278196329689017123481620111393412825088181333324144584331396274213945744690545710197242387206325370778335430306058627881587442800347353302871217266446013369066011761157382310686617495138179092898010063350089130912754459188679676305594491314954350624968499501945565701714639748298887658718895103434294008717922611511313455308644662416531133541301215573085546620674105510822687738742087550011389199546727934289546043935145843591404419073301403280876142905729438621367654998592245818006208285310788893262249392863999181534223176426298702692580812987493716343070024926863230265597340635091905397990480723801293455624541806122837301197149357629448487542152468308018571571375089078535707961778960277172606199832258789376850810009345003847318166105439152500723151067570625091109327805388889871662895711209061264565645249325677581361961592177117591144931294564381107202339915559619551094916738068267221860359692006777807821990043360479464724307444821286547342299655692057087723539966539390795688990346767111641013661329520226229549526048795571303528469637360131511460533477764172948222589002471580985978363450735332644865763476990762050750938765489619465196676188903228362065554819563355975267496139425422364842539935725847659311107904764859738378726542180927134126372971201713117414952458901689918488953354676235534243609075913185960226999251980388302970709052188574381598127107461824862488082348765406716933566159782243935697517379224577353871984589087206062148186571718409476133839996638441583676443283983667124776055583035972974021785522318460400241084798530910567246513272355126511693479393362916236867138435723509034373059289106970904762715218486081919460939091536326673570962289611987233955539037395451278131904855751888735881083582745847409263741648715868323612228360396156849109443152588653536123595486133361448119797552588919430902803473757125458789132814878960607059678657415102510708013220842841514932602719705842035048933037685259077275378189591993723345503067044752741356136244270969090720316752112258041606808251393775422006911381962278107698910699453188615546048839798249109732163349942018295753705644278441932614508980577209831941240404812457006448349246690768300423322812609738438127137515755632809306412909207888653776987125798231312388545557425728882563181042871105321793857826500987898017343750389398913799734754444808776144949437998243138114415554374433643197770136344184189543194976454327877201647825918253049765570848351243897478698607244977704551192691765275384133262629454542204121019169417851848321250180245922341732474532047094234263401437515252526604946372542626627828084587516447081546740064026403736040251340622530445537883404153052049778327877611724728191339285784454392043306807408969241565377422927186805473200051948336454427992663760589763996230092549472394026530728828414733912653738811286717552434623628839066061870598911969152906297793540528843772906207358364215706584630056743346625475300621276270150546066812442386889285889877518953998146851905644563545554372705845976683168369539500625261535398466564947064579649775243814819647434721709616755358461731225458976607470975673598088702015469017394632972279316115953653891390350298506829138070847854104721821533858338912682690413350808414174361002988770148445842406673712977105016079937525440271975221664455840762449035412696820179472631265329142900895910919309720059146993686706046285337755498331973231290961344993066610142800583768364123601147084584720746948071563918196945951261649593864530557209306205002258543428550008730659984583681287681683402102349346018043881089049538127143628219958205613386017183234738135166008490172721438645913115867459731286967654639193635475875216528655082316256370271039110475760254284858414964794415743180326619364434782113900645236523696828022341452743340194536037859805180371673164255125532099385517387116368420639816839908725711180164752842374671643995099069227669574256089357615573636942359043920967447164122888158673766155154608922342573517707516912466749868795577910501670503816005861814279312985930881462615494419854789819493515732749327745932237888745737936510739666558722682691100690067307270369802141552323733279189307699063030085694118192707187988352932776098272675051637270142539988811464983004496800533551519983076565450526717749522531401798433801160628003741608472424447813996474487981940504960642827292080803110490286375154110845644110305824493528843308231549452731726858924050916880203775080695949341230847440542083729100506445490237025272245606763370281275293285497685403055765765139414134707261632806058849207787548668501432812037968390183473156977030031978725459486252231597471747171080957084839390581428628412849606541808966055598440426208332842564805611232735900465460221230812192344775737863700272531438632999051515371094050145618942035159387432783865132567061926860083167169570412386859038125624700059000528806368489573687796251500605013203372590574270089213723200671317817478549819234859495871017307842600354394520413224248102695562736150244743483265336563316770664185626155829291988983203328646185875088303722185230695461169247817464173010347038693708478644548636578285213110250979264317384319149358227621588852048382468678948622092447525046636348958727332668257015251958599275929612741933000125301558507003056685497138950553544127934271798490028304241193762476144986706232424701594403320586810164805597986197034485341484348689635186748580424151597029724060943309601493061635236335844659674115502235295973119012994592523145288781486498154246165907792968004139065099145201927412198464808663536286183314997073939471658779423229398517893872571322187749467577077548565080638466510037927621268801455011358874224588726115600359205640903215760369607424162796171966269254194118605062403583681655373943950032797228902361852504982427430587829942549656199829426975337182025135050699957434065529494497385742548362103106386811829899671525507111057852451350862883195132031312636201609968806154215616628213508577802431276040411932229645786721558975840420016475424159264847544737717144127044828082148068803706501080276627911393279393329453491435896912860372219725766810425341592339824312055622826578067495269387402251283271537643097305173004922434798027815269509900257206858818745668403336102065904320391574282350706083126414264970050812910380066953466723658395416873153744336061477732727141615289316060595492267067805080456060910296190928718224140678211417305943602131156076214258422297945666209598862102870372999509800899690530442444470312439552696490021854605267797565239520294624366307449327622290333050752192278468725808164908148753542929111040383977494320348402177062124571102942530351975960185294830710111500747207430399190940930593904393706840560919068415407731002352858182283291369847310878360414096488583067728016628460880679843659087131419974389810025738046192759617762580284874400007747597877309198007939947615943650351946855650013375499337874044949535949170535180844471198630816037261813955631698710777543072993191458661911728654009725259718970891184543402846287461600429003314960644815244790475102377960149355388315313334307802128715185478236224970147639226669230111389926171127702509657522486346319216136716705505286492303912633957470793757964954130796311588733618119717577587364597565937239022566391071605435472055585270608405437386835736459302969663105924018711020734478751396430254683911664981406793419331677928554562196153569267937592623205855169158157941863583337676315710624102798610289482992930001452788316339494490688336050611685445479256552965527295154995529184477425438172493792769199783963681636175863624111139339771511261675666327764799989621200363211334569713787875170405523644826880866189153372731632152885356491589428634714390973265503226665649344579920358826025392283298468655066070518500558568153439498340193833515021507709867067264830393055571218103654912257828273969810392539413388672099812958158678037437325622877119423838974172192904416360683144083913654503930289132447228185021657090534178920946206517934925616820925734994709369107674265314340986427662903482119363215205922907130253864762443730911235846786916183539779282495639170938464229700685544756456670973425915655627114206841092473491456834884519661688575876800883698649948527421501008956287345675549533580910587163672849122612992447023024653492851689705713315373753110886957311053059991593214092493101578614882494369800601449032198622317023118689199372137705624116924061004341205844898671031897315633021388925000610787563005710105116065681128814555235818063005482537705089379236653139086156055557151501546578386736856487683742948177033819499369637650091953158916285432808949007988222395556348911478682422285124898606494011429083331056612713615039446342063596352704435592546911503894702824956219735884492206899320973956511488067758191059000808793270938416098396163892367906582632826079092888566957054024528894800642150796794723075683765276159350479788757539047144601132220167063796059178492608188683173898080451781046269889539783900486715346439420496431484688632266780019638086376494845564138514276719475072364139077030781883895614809276683142205558612612283487115768754462277222939835970197941281240642788219858296342643653680350084605744095045855029609038870253129898645522899607100168801035260071805483972134816423043097773678390612720829447397713705983073240454837496910172355823653107992719062019100078185667821574238332144625707502381092575277615435466020646393233761656605031698512894153493979640919099144673056252645955364799660148647249525913944876029342463150250974546878238133542959481774700751501396391637900789420623261745049488744116389258244306684110866113579402504582819060795486328326237075650056137290246575652932506830682950997438713941052821408033235714793699540148379949919583289148476386300498587273115925764958042725930998651078595631618528310506451803526711746385206460503539677875822510264109250052183689896417055251487168611752045849389718085969165539074377142941958463389750398006053867275949128846590342674265641909036499930629722205654102861956946444904113938536964956258681136828919467059214805578378501742500246378183724611587194968795367787356458738237039416383156745328480271256256642302224294845356280250071912091542577028795836112259195138007169725983399647641898267388979301404211528357836382432406853395545120663084773880524417008549986331451522946941577081739849660870149526483351763504290133049828691325148962320681073718070614492658579048012456220937682131556281235215192526402959179072240623969538538097097242037710577986945931968926584193050709065132827047847209782281115725155299422212867810920590222917289161065287594767456530035635260903281452407350177252658651716828102992751859509255646315247114519377239858707868952759772802749011631261422549544229571804953318327526470764424580857828446974400238366450948164257007969610973408381385298424535624035752941107245694699613011164558392584429885685945990221865668411122205607931629180159532542417713808266707872368773926976950988580618874181637377560760716624153673156820957145044758038217947022969208624289694541624392581925325043119396345646351563523816491052446379495476525415195992443494576697523421698083532613801771030241060607222111665859331559131444818228152841545875811696134488337772612737265444081089804741839461394420026771393669485552673299438631448505867189866105377298813742385937330966730610960020416630906029441620970853727371722254165112385840431651845848763583091927494447967674562896603335034350849770447500104533056306348453697989122360311757145890129958781699790868067256793439711257226252051555265803410722123808219045882293973541648198017008251843676679782868828747146781277405395191213319198199050748924591784946357801279192172446000552878300257883559629183406556913856032002865755866454211386957246657747924050226696751126786329479401815665829679572863856600454614527243541009300190147348609299404040567826305817932589094135842118731558604587074859152324985250820272416115076251911360592015163324021765741804006609480855404552844031421208649638670883729517184721799023130272608779899101929416509858389198706198951524107074221679740791456503652351766299326061669899964618290007173719429999608773987402836238258984684636860906138299410906621786389655691954604540904268542145937172135825304247998989963556760989452258536522347842913838794796463385510826983063605079992572379442511041081406574294500486466068090735628530197956135437133401125711864925312369580554283943744098301045352151838091571981142861536596422548590410680421225858550588741139500070079867207636739806310812299998331706385639970897779990513452254694583780822513307782240693702079583388643148032190608674391517578352168917674592208461733917598163433801045787593980397816915334004650438723606050255121794719514868642635968521312345695661766321727445153426754445249532711324825357145223844885245668142200261537380529354551135612100089264135235782810742492991094746477241423699380103879068858023241614409588795929384910256352318365479655660050860922186971525085977392994551399704215173598245912898725081083494813333991430926452958153811401879469194078285745358605667232654107936270292323408689590450631946365353638245234071847932402651966491787280053908554925083844567747472060471481662724647370685189440286489798268553874939050696977669892626696190915243319672020000951029921636748216651101861454430551793161714045626504041249271935749070572654552191065173937907261147424980416149419967450290408899014577342661665965417451232964705304576801317504342961723788134401881558035003321668895876166003672188295185347792408678566961155689345012230733699738227609924348072874101503564739279738999991899970055794855182684434817720845536930468049741883076629566256494865942434767346014611159231385215633270690219084554108408916909031588531519970510291444640439488980121376124016860214593887093016434723440936711088408992236065572493723984652169444897651810303873591300501597019028719301593064224634515407331834520428114851023923222152389906160305767542847400153095510400121126809373967361381835189065556365687663103502821995782218976521871640972490280386708424337587960132156616930394310895462221648408325230979876961902426993883415330385049516293885061178757019634874065270603460058765476682816543646077003156273437682545471726531041977174086485372002408754641321692011704861871363050366533375094803416751226317779112835854167413893007228296515461020465655039403121739968173770994916025438298993484493378872070412955768222152741985112364387695256820885646925264267802782808740152623631048522754364282429928054091239094723670330144077771204907048945839263979789810134905622418851340847324836897969617948881647641861331501394630370980341293605046673718925918635655548762190175025364522523878116206931713728669103611184167648122257312165150128055414701189047527665689985097883331530467827476556640966727720612190245637336030434987724951431439996179918873832294662936355866616386908313777133471195298218111461017636352969383209020634383843620535196839754856306481572644514285009904798672403095434951351373104795497524673677969708293003434915003960487138587642497932963021331207201782242652504052895239692815668906489893123980896730743420054947258119215863673069068775219975150616057962800730014548825467057500430847870691247720293103088508106439898513109920662339183007273586577210052506564521481292475261215931571137004436230118315388535379939274711940406813939382524367103985492221996571387578099301374297168670068699699645222497963758815714753888998652802441196460735187950257111096583888241727240044715213768077106300771005296830459420810493529444413090665725316724175901379376962863724736075425827706601449638293400596329500562109823229072734631073573994008194049514720359490013458260778546812853679898628993101509152161202765908081642831336614346288438579572673148148765089145370267021667293411788213612414027194661312059005061011029128706555570330317673848612678387947860479072430191170447185109648417979929658234718382862395262621295548807240231485236555533623249387744575942668285074275247978330215698780717212233131863454344949950894503468748170879208183157422297705889835387245089960332262745716584128435798715326249888873288424718796416137742869435341075452060662865187357056728040212648219917469015040958788789141763935412448738897849061394007128468271240597948291324511354454726960483617969752338514983329791438746997900276517233543696536346212234772165057926031438584005332307896021412390410347918180580139121458845786804633577372681718076751820971451106942750459180919838367965692684196577429576190377302416889104074452734862234329141804577494995807589780751934346668680501383681140085219019022210360896812740983439667304437405796368997125778532348710693548224227406229090699032525711384065405238679073400506834346814153935838041819538230321961670079971553365106928859947336374364557908168346749306167469594192315456856607611139648799988700800712573978540224642490161272494496585253824782464608188238543698978276514064492801938329370578219535387218901826944875879839644061758840466051820884321777947531046710698534492796369939844569606590749372076361938950237493167449729323674055118498452237361240797835303459864765594849098866372125866221453257308655144282127646139948122163144571292252191572484473111405344001812219854040070925063556006955555106055155996090588238471952918410475978354878989706669457033815743440261707513587822877231629176457650255040391437691476624268949698207056796096752474425891390668486889810851448621468827821764568461148055597676061581874773141062587933288548907681988322350713841639327915681939764412124007593273053166639892621503442205716810474291631631139362302220655104978602350240697745756549752208353156636546745797660893298436529842694945357960749943218166766992119980287460939776179254880712025545678841588844499239490718029973015752619725388819720853858816155586687571359440654609880630555497100878369958843746397721747139421621847526486530427378202137899545330984558472987158518751684914459825214254557730982646238524382719887223612931009690554734476905259730149593759309342835028608060913680187058596399123455438628430688039041013742537087006110803544450909034735310161201753113854710521753689232717280058048491751161592462834078006781983234043526871054467388771576450203289533302820581052745858323701936025977246655820536360325405747359335006703532454543031857435171565296251557288166118344873359864942160820668238486710867269277239278231465540296342904671752846597331320145516945310965971158909471472042546122930061825515581344377703244510186675306709690018638486032050299030062970404088755254030525259264882927168358996967026566626482333736261708475595059600323431680843311560093864650555483442140836554462873063593608989551737122843940026605485464992438206751858375014285337336116718398071197374119073799655452594797011224005923736406892825069966843966806638207636583717208494598828593005269190253051444740412523962906549043304331827229718955600066042817988705150825207677988569836033599633849481942375767432630128354643419695120457430409572405542001397492621468702937909382819979541856896536513047172027860445726805216217956126950911492173893642144793894098536421032979695958588527009174015304777569466924806996610833239399862290593748607707939769891838276976247790732035011540834003550526019709599899206989056281517658383264875338802324029148634693805864979675301858957777756127683418135236881897037185311556225192569459807387347868500844158279959559088165626605476706864457991098784741942543993514015932765928768626436503773217179309387525229508822875364431296700620405461187450594825000864800155234556245884789017730712233700317177037830361024981084221291055283486059603161889665861760866664779486612315448282424791678650832902314029890556593095224168678924085105175320340060923453432836687473269933514973124780985058584743683100742493308426155564402270447848906746376152948366887968605703922444510415556936399872977046997130485861156317780732846399986382702175722794123214937836044336989342946038879620948563832731822583780107183379952105076278072197489134214484636946345589871932608973495106919626073792990696469274377794291021759923169572148359289521852337195148431908925472474253565931432834729912161096875372249077415182728418521891437086848218351600171171798817901843299581070660450044422211561812906596014433491740327443234679862758577750703072260212124138661206273906961837897242916693434536618821438371405942805181723333018292949546591058161809453604930974417562011746115866173710590409102704755139350184497073947074800034243788240686517752358792721537590972567794640618341452083644151936753661742290680035595396373653652736784174113649718097582805639200458543502074652859632538678679511784615322199820235163548197387441945263905864965524858579411659902267415152990051535637904392694034475093014566748572215448759549136538822469004497759565933152735319084319419036391874510175886049093752280673659369489604649382757838206392728354055049297562546798838277428534356161618540149727102216578803053043480653909854477088307577116424642040713213672120983369613963418065556799073379758974919531635976399270776254903992196236758044103655633320927638751262022803735344944435400127043331005634253436237000774492617944363254472013066751222879010246551573113811364495044937057847827265568905105880052385784996735580693596160681658752619720090552675551905388000430001250763038849479590021929223343851601553795711312285622758906773325482440370303649101785379914226400267117363565846240669283180173194206576923725002315469982401236186447831728037158992287651207424225889692047217587385873828539122969611965471914494990653341043428955629909205024934892611157884145392346408293885070718133086505172881451112242199662344607354291434665367821567869362096817375907907892351302487393904592835269602710496138409324030663961050268214833097116548471680442855086145127777239060428829734491728622455982257881854756434470246197719364002784848066752281109903941759484527316991554021291415691828908954166336184788434535517597843914074103392555214136950198350008174455284199474435271771394660251791737618977902001890045490138233773536703148595028300462953233020410856219274896425352886351369693938351193581993796204147105754129914260830485836441958649241974117353085783775822395168319408433225001712923114487671979353535809606599080748446482334598167665505323388619913584204196441650929644465998082297703821292506779307242993057128394083811969931381306364178710805118792561255471584768917416244427124311959174516894649943269099314480850157636673235980291699302345909815815484767949909559013483646547546755810677684102698246906446440692624431534490415117344409757053986434252026484025705028284390326144105622992162221476998919677561958398151633181538442066113811984123303509142045947309864832179335206258543337311389448065075554380498081110282005487758246307495094957638147425066406139390383399909609305014679435610812615086319639914493607924333091783799717289764947668444260626608466386462218095917351955729708732383155960991877340491573043173865170974836327102856278876980571476594565922971342015002073069803584223325731054672065631927893265628122724023081971901383050343068826212862913477146774280424709712980471915271322909791934983102151888442219676228827781371342253309813058014726513082492446602879285117175583042242855605927085806223659952872688309720106650508390731908157566100370763239905362226640301449726611607204955321560026900572858012057307427028441779298531428812221685130288429006536628603461982131847366708963748524086613058329770855088006591564509320495726130940779737901620874180660306430099382528445437161286929745451138460137547892927977065866530798714273494635908478225956649127428743739354319049181336736788918441626670774680430706058724379508777399103200410806661630019829450372951950804675076735609308328195404702548818925059473556396541289309465428676526446891642635247482660695854275972565265572237756569954771828850447008507295762030146157924380769029617040669997133898866050626824812208807389477982565741073297826806300155367451499740712627611674335047666896640212763967143596866265948284311591422190942994007238549365345616993744360700755727032130738076680535470955299188526861302633451036152226696297729344143357577030641971063920173602560362325044253846277208104295199159794182327065552929936130699005261686848567602602998663730933419332915116061299886863012197128247847058096592649680468499211774225999526907748529599715398129488154242682546095061904215063713839817223979518812595804276066570743223396962007103443856775140812412470386058205337996852023047874728814421025638850473253908338374071222637211716292373852509226601606959139911448416298600157154716901096752206579425639756073266724322710559433500295054525392239204147761944261306988311896767020983629523557085359152506147487758831161380005320854497660336584459387857632322504924514605801861635623551834442549762013987432496237989492219755465457938382902853828765239538631459741818838869870655548574339016260478439663300186331236390608364026894481508794009445311410797821522739847516036226774232470463018045475862838106571395190412069504006216787765753759259949827252609584932230769916729052181088363036887781114060622081284572178532192373826879344761679980423954462814030805157274208789107220941796822903636638289249335303227614601655716634001933052310794297432484926966463233949545454002802574571944726303865452812959866491432365365652939792937047703679485228131873979697887808026057043503286031385226469978117668970084332409633386307468441236990968334430935001190044398530797011398595072636754662195249901063903643809008289475378041772017266726838359477326169360538045068260105433201946875233212390164852579407991602669407511156407380908205487645236695265057747724459759129610659020548390636196549409281842361659422893080490544591726950384539481191884605174988487762610480242254823793103696463684064715003874018033608473041037676932746677923213954302570855027064713406598755758478017915638923089222481763803410430050388082513592038497139024954756622247630809322689104357122179507315952253394677939927346049916684230104147848003172508059404758904802699674826405691537530863490328990183607762344090148164333159359633010524143205758938178977255549958650049394449287877978980814332678822404129509850118550129161187937290372953284375355902541679833120976971506047458795684518190197056121716890628360806049339757541384548722956019343197376408114847651614244369267397335413320442658274007291084947133464853517148461458976194797154988178827018623976448648745091166027397597315306874925881955064702628178362232058806351036155313078781078193628528702036597990801303292038886056368736566394731215448921054002608019995639975047380672190519038988964896109669874080758228309508563542497720761263237868805793529175996517926267354963629245939351870703535348588993383596032010450553038514104072766036430214087296076459206632573322906960476818101139351562961593432837884466697921709478505141044717269413276835009177719252926654079075533518990477759808822510390306043267567537576807067128493916746973595226767817807940024075480848483889795307765303150028008736172892011315351508184622967976560602447156759407438026064051721770943283494668515020264793673626346160119511324229474222134058479212605933365668703222177143356427566025133610602189381016765947106116343312328368426954531460447617229577071545114769479841663623701086614673746365865420451284901127663765565748751876260447294523823350049562325139283888970696057957270030850250228938363020075019915033009386994429019160889655507809403530475315648747141073103757560868855583682227321023470501248643327888020866940971188508958328446660626295484798228032962799680502685052896577765795637505647618402896527891491550970329266668410019248110196824044087036980267465774146051780647088219316872448153171188696939443725041353879221192966167262542313988692840015895782038970809276228369078123933394614589290559229957435283738500132720880930187042428774415503115176718309999762032363001819555551851663120093373495295090414050346008590611315253653564516314520623341657536799731558342580652862233229068318823289827246934271957431248873353904730795859924485718291380212392796975713495220136510749406564635123620233582236567845429832727794374250828146311645720032613867559895874344950811449064546075728779504510362897026589971909570497721521867900549283198387153466832208224370065525361716216413816477503487632978819416476528877457996671328408122937641604743665762754313588256053641959130924932016211324130180801271211937832520928043174579134360307663924644308751215990436927132516899641993192471092951694717377020056857128764261559768881456398159275506524699364405080083700638271573369554340684098849165010809105931697400817346508442780938833854267876130592870252344415951616047413639727010354981636382543747351248367727617565290178501150912246770638451210679085426775299803719094632919306513137177518405965928408275777208009951731542827716403882384720611355529886436674869086291027668607596685049669491335999875757689569321209623206501530577060759740113886741040953249988441384229642619368492771155219561885321088116469625399757085147065637050044030478428477689694731468781108208551160245856875401329649366956890248241113086887764302196018007782424670095267005931886316084520894469892844053885127131680333790476533560205344268517728848571057187667194411653717039859879896713017666316692164340337367348809320788417706299129865442144130983198160987722257161572510743851069863902747918416537082757557821938284536300080796876362792664593635317988102154468560417916643940396698353330188420763791480055580407676201217030396384055610246497066494617033196454613674615622972517578556985199576156419909341279245651919507492294816407326784177093031480122331569087011884762281226400185343398345797089618333765717020526993873149429595419248047725381063058825045229945963257591323316517421328353527222697706925681441965820795036749419185986857979122304193250003989423712502356361558517930115869145302026012306365503335441364440231970214872749539090624209576099534287430572314318198608736176220378626735496197136618269678516087669481917168545947965837620003465253967642989167887136659490515242572730019041708759205709500356998903128263366763939524137708781942039363103378228845241860163789128548205168888065718141069372121457760323532648913839494828070095041235305023362889247178833646965624582291698783931896996877472354699801042166418986055219726515488689735852324832785437223047260319382983366009780666286874747240689354800495099167887300594778052128987028615389508273662411172779306520826290497771121512627295189053046380764178556279872042107985045658119944469909501211950285628575996114483290803634605475733808913829860675921784847217903987988757572581890837160033321743170161828342402265122278200328792701899172571651794046627990188240984112204904661281818704936866976108341564014620270759683053603105389349032143343528752672337188947201350551043661039808024344142808808059768804258426934567109397479280585867431334925196523120336507978766003168078274136645171802233423070854048972571294322422740709392462258776608747482270526583430624824959448058497113713532410070775856396169414044833298542017730478884876788176323834983559210560890065506448831973762647447730738520231294098387500087277031956515546345542135987504841274740198252397260658949231873901762785949504943271082927711021752586948777584266209875910801581247616761492024660497942730775170611534425512529391612939358220838886340606429429238152196688946200180709058483531615704986329009490503911570857978138109081826489701963948530485762743793858536306776238305839501940133248008678405160337999624767353276149327635282273507880522157240820100973707921727582583780893982278378222572957690160599019944699117131732817764735315868921226152063166393059514554798706509993627187060045084494310371605580961527789436201929319983203910558992629563403174476293014015473988949504783307988317735890764131405716685311810642462890283890102214459444095947362676367196650363060909388743422350942893674599690389109173714841006746371379581137493540993900131401707492886654490919156363060648980227634637536132764818383385514273429633069662113073412715104484387492986149620221894338267904243786836896711265756521601767603296277721549418093716272442508639371884164195487244979925240674682129374134652848267367244464007131335390652771031125602596742427062986471451483138305962560882762890975475382642534437749766122549299001945945855958746634922800835220109211943874933433405626852305900173930606422269396702257144343999962399630681332610758224628916647878334716397750742053091587002355541445884037079608455517537819022159604971468981733200457664430969202562993261457984742488415422781152554954528184653848915755772598140952872666741832633032232247320616108585210771476791090346122576429051032094195090448657258962295479505252470658018771626984518662890282488964362855614639103027295714664741315873318051248903155685408506365720978916742043657736167956027435629052252394932464766600108377550500770832420580859386130136233502623645584397610947556580274028137892843027189616690603830534936521397417291553525902652502732696079019588006977972219950460311137020971293220332988512913795631645374745455135235613866338407961326114553205002177163925102587682170435587756226403536097067879344884378363656548079841486043449391723108721286487019853255322955269276389381433061878018186297104115148148974368844369929446225787780025409210919755071264461386147323257588919230360025337063049823396443128886766849812777696072483554546736739537091330256171153461046864470402507448450127577850455231946521928798813350057721853696936184873590414599689791775621607849702721543154983567879835770836892076993209849152498493361098867735865753427416462482715415919456918725028020607934570224498682288641197584318408653154615459474276396196962128460572535153087761835937466183409787431412326801886854806387468738818572801158857068292410968428476175097375496393002434519037018946360076557370603328177486815399680173403140594257722997993035518993425986551690319339536395073358541939160364879309089364160288149881522384166362018442416893797982913937429696452115188644407455482034906703304410168565661667195897510329375642696924385750837610291848766329209581564205175110671900586461847011542885017132995074403737954387573067143184041671063072578037073503109561163459429120928855730517610370271691721464003036778994132618049685131426695372536086220920899496220855053353315134450737909013273054632069303842408506580215186799372817657936697948814108506224921950323036190338826103714983277511434122245029462584105832009082919314499500317473494909048704409785129610671072659338483779823353024850984612705551815247457809657547136000501179346635847278906696794692439798116353949175567792957624832712853795876731187579432021077785755394442124825754282596765563696793792272930208456179488615610476604054288587080550504229067350176493104646895627746464506201186928730218999994425308025665617230596871403216201166369118738731002011402094967972095264689080356004407926891890428323869922347190968461039953264751279492356556914350511522790380348322213657783278934691294656535810461841963312715581402455159465211386551501205933251578751409281613903181343569791430313552086249813882600845175743631683032815761578982724230977281115180145678319414717955193981579270329234989775112555901352748981232927032780028208618296061476147568517990838658281762603516992928492663660274027826783650596204053642087045616849400653169210917052997513980937047195535704573136352430567062502005757610938543981936298436973103180277877583865067393781065492890682453747352505918171577209290081284270932676365891055931660214049673265832876137139830610067651209687327810155304683598046613552454957607823811932143841980975577447797254238865593045511701729839393896299760970128925381813608673750189063475034531562628564453856085209640912730407784365993587022234019629719062828094932616864183620217264989296376007717780907691435698814863250191224686877677588798968321763992204289627982719056837045886221180108606533129095808477283266369988792923941737525642740180808793246369040635581327225351846738332809014073727095668424142761627118807731397785231925213154927581095474683643537884956599184978169176603000607875966907035757034903775625222295447949622572067179819084355922195221792482759389814275121397794597526081108612369673689996917690292027119152100539225319578388159575974778953559943503441902438948105585044908428839000500080739455506620451031561737344477826901765561401035853905436614314562744597083571267345433931434607172129366373413494363936706789045229858606360292440575962010613595560100834164797887184977796719860102236602359863933574036897250030511247120397655175895869099874775957797378628534753801067780011228924163180582184199644815958610692323600455573391146024599470055443693385589603865935150832780794339712654438064200362665708795303499450449581233609814488610987367269588130566847609396300683842838032537317314336762355610237244443636122588008341035378731004378740541310785981287928693580839824877713463970624210206572185724442621962569526017335380742812732660104856486579268616420561719245596311429908080282140021724387133002290847802986785070106303711602530476476416650612007341849326557828428412150237998049646832813124363678845766761794591112263235854781750331480402836249384484614740004807162680714031603563148132299763399696978301601704822861987155095666766209217683875931160665280129302558672764694171925301681335618741381223127164969700055510752643350339873338591968178396628543532816865275321389857774175223990770114003392331823286202006426000859494372129672886633426551729915487781416994491896297711571424070344204947548833042017752996307880892994312940379180628567868851563669972239990315315228883387308000729579567488919576881898960735012013947509224703371697576135137895389591386037842766514345686350634493714590183186146106264608815858624270715158584458257265032900475862580828039606941934256018737081282618022155784143536861355367449380917638439676770579099510465489927356326489883679780049292750996866179190892780396722137504697237550765247933771530559743945583792590717676034767737573819927055343081809181195700220068190084441742744077375861674698638662637362815985107445502669912419758219504931717525608539435869047904377219419583511959466018895944427894281665416494196163725670592417600037814058819455638188791023070503730171700230345358170270788892044255640435500646722067549570923585837148716412952768054179200470304503553836164401205720930255188796909087225336489760630376751083618768863765270185743511180760035745281691393143690666241155396281907063499498176497674458011856254135663902319995057086141364160629365674759914185594420484710847955528432196112655057464359098302781982354925353604748037119250288213031828018240272233719146541136978643780622129973612418599197349072955029152437271549235068004504268923849947815641635917022752733771283739982863219239699361762074980554649063489216609785911104843493414891616198518100718563898888269765087746270419864664290286356269442870066882158811058220419709128350092394222137871630409837845420976387286500635013349238116825787556825897066452244596196138831093088751120549085561045811755484598256952424528588962583247672429370891639520557088222284094424810021799988923502537287727875326085708356776629428539739319901367455812065984803911299770721760700175245502891322276980161697018571210293121219083478068323130485154326148495393243241538806405964864130634675319319143502702940509561942266454885131373100892824948994400290030444618611818686443076937998177543175215525436552597150997460161695430934494379244042089788211467308335925726473281671768380738149635502191319058637165789563760020659185164472355308775101296803841186499221072030599097213642910804128576376970554281634311151407702067483034062129853927154011695199909180756467487757132693613719495723361443135194620089536445239246564118005102199915707533060054858436466246678219128706956611423685045776396032820487646027287053822507008369563925862651596771831454201618134133763110723292041182052885621302766430283161202413649628003801722369549144802249799631747612939593221156198384073694117204012404982046414153033392264236782705199327254969761152374409389422330561121953726972074421710936955042469537157008694953700440673127528311407841920750465765728122187542299014044105848868663272774239507715184060545095419523314025767274563819699538658342865602792446812992630450185432227451656126852996139523149666609711531614088227978183015344664105909070159325131998416022206553828887085591706667245669812633919196284835210849717620469902939736506744918657769624880665441512698173097640854377872895899876890947443003821404976851534233027098800751383096972341141841744531004349842193875798753533516739587577363967515182258120797866548835366725233521933409431814128017921406747736368951960866153960356207284820217050311298396087140543939175719004818981624635190393264497421750333148409888613446573952810399565206884980032647097088172459160957057345385714408994720525403941615604979525550919197484831144998930360702045202683061470228098642463078704387793395623525533974316490866162888611399337983989416350004854902578670568270275214810224771284018038509147667676881167694671962217733293736787524902191566223016991994815205380022842245040915721316236462730578224104177074460651812634878488261306300339141943851957055038700261129734670483472574985816199728252528705547415295861768869406910676518607714936053960054263512568932414628438450979903403318576313349043519037674080569839543108378260386085375487344299636401856513489538592573793399766542625252951757272154052064142846173204679305365363693249250264214871938182414466856354459518602358845758811330115747100449932722399695015865577083419580853329209096785002269813316305547613275563243860011229579192751828997610183320485186956545000524817125874946467849287554878477589729956958619186980200137083367069501954066423442754836362572790106908515328842035901851792860988709750895429073850213765031172468193082317256507685635356065137612342573543857696555795986512297201685760592769252217506771191433566035357009545872595912682584314012096270817304260097986032556134990559653263504438543992286395989813248231787567463383833105615200105668816112957531834830500152402694620246371274883464465291910492932147065881190680083191373033873964506286013350921317813144148386373721180576312388025213072579261608186055836505467689850017815881593294260449372750897709353147335959299448763124988869063170022293423438938434862342695439274751435891603157945112162248067502223587863455317149871149967088939666493692051481649459706663825500607155484675131988893320093822037372367703188833705992384730672281512128048608569281964156355135350992144823340255958483973486264477120998911484627984849560966061849441824494857005167712421782144962890369217890732438724485868322964472384849060934325978563458833843343199335190232931546055062528480796024112581986153331716269924087356722822722969916237209582711460235716495389129056572774590344116029149666847601159555726488917995342314290862114538594778937871596425546967928044615765897319786585718164402578736447777648857625469875546567128710777583522004979713748433852371621110871662642683533864742515742582259457047002510279713371181113456961908936415016719174850639925966337481141692684092544965026703905532349004656235693315252824530014437743231766701615009410171260995159028093386697734476175612147125035904083302999559890233277324656333404427589364442755289872227929555909655966639366706623340307568193347833078293599380740736589882775228975393353011968875379521078783110748533763452478558603463569739256885442849625279625403642222114044086162423860593769617782881365208481241927391322271187892798144701913311279817114247973941943107222920536943932555030094212390737089252311791620320675763037937798676345965972297983252183352139173127143406154365475565509204921951654025927940712622243190017982284943553453988795770736668768815187515788276026333629519383737714253283867346079524535620636881534066055391810178581141184154976450907522791364469506833019947921389150790229306186512024519762810011675713888746284142739535024695533121779297496900699004406335330655697029530835329194578165537395728987877830793213772004943792531847818964126755320256037332756519879339371521568282302787622053369676540330779953021759698170987433952422656027578200688539972394178875777369444525344865453607930551580471069473573491873526580970322861527583800858516092964251333897323434364999053211583016583995646295506769438568377673178524795935476036644118074118193092319917109732676539672952587809058046096844945392648618311183590070136205545373076333414704988678202083932090683813927653749231030969481312719864500712577327673067669731562459418603285844683932368387004156510659166178364492986631277116425220339218335237277590991681047598053337682731805696288723725584136043968542484246560346618777772166173671793308988218013273422807410470992500814833972672081880762870603448238481950323645919250978057683943599155076638661355229381977620194323177108806366597154141746831870537728819908784475176144299515488581821376720455483919551555674558982030320588421070930231862880086840801180561196778493794684840460819260623131716240790978201080504571062079821541835707208917587142370511595926458507393327891963181189416244411091908226022733234174388206942404015941649647223855040298651862831823162533829575947446660513190550816590699462058858669914846073315700199156743336162702981092687578518823113597327144133847367940002857363044646298071691729112408502964706306257563963585688059024667277755865693384835424110841215432342254014865922214453179804675565182682201261002706425120012765702843777637462151339228573649283134951118312219143895248131570642008943537517379587711772457409993501965906785681208856727924487537456133893445965125085593042127528871791218466408271165159244882152587211536466460944869836857636285647529914439333278210076365692712943026029110669534185359712733877506847320005411744043623908494313143627043719526185361619976344836008167692734263879062264419735276536271279749886428803374854788216994975747764559831604562212476471785250015318904636098615641813442450423741835591504677130088619378549229423715981783397709315624374560941983936588824939202873948512111164136456552726541109701398259843995988451614757771680649869340762070676811475074598160405069572966573601097189313092276419242729251678593547993232143577513915273293698372682800183073575344423978998384637234010772373055201849836919795416908411699750964848215314983577308415494095181749061874698898457509068394740730346156870822638899371962987325959783662815877392241879752941674582881662818579679537771972321074616133018837181582282023402901824179832397180124230434722308636985938917354957418131206645467254882417798201961731730745485805142048370790262355298983197759905283000466932501377051249198132332697708383335342390087809312524272156649733474041912239599477020399855681231107414430501441196609386951017634274187506071316415968768399231298965860028651941230276287401097263273859530979058112480620692481651259697786440070337647282704305443591413123994347767667690707550882497738099785550980624335285818092862692413512433567820873527468362991498103734434266101564137410506702651368271041936082663450478910103543828001007064179064282252224984179032410200576067570507750181279063519702111796645716875006019973625247362959436483722303823702253166597509681209366077090708393692442600072014383838282759541404988172415184901800761101987084151541674620977946036639094964806817088241143293557456209593772420096807356268729971330960843804564848010051992151567750981348068054672175465570136658952719665995442983469519340439799895226655135692339539745256211295174679150639019737640149513407294529928788008370212567254227931792614061553388113599321106693771297857072226228136303219504269361155555001015692421310645777776617238686080469952896515011891400643607029874264412512720860611342440102898332274955615617491832588241263685595113408923491408314868078347496155846836191791865816751281534036466587692467267595489971441777898521536935130024727098963601542479666123602601849380215838479560369299664941441655205816015242431492253447772309669170113806811205547553745166085563543645051308536634276659314248710453176241971482425613014722973869066790097236746016112032353779400245846985508731889728816344335241278044029352310550791190052964662770610219295513022796926672396229227839374366781561577085904525609651912383846707085145183156761481006584634622437694065269349979382904392691803870041906237106931940788236637311392530163609366813635488137471949145520130130440231751247675816061203397410171040904912465269240057314324209817688542700658199812263374881120011727351578490289029150980391501588073146183573807229954343226607135271372019947655882968881665815297370423442843544896535970006586845390973397370568315563007647229458805785515991871376215290182921340331217764767412860860739802946747760163393854221122074336403986911422155140046710740515396211829942964510441996204087038220575993189589145287512270790267022024458651315886128200322080659499380820141407132273631344506183797765590288157327165876346519050916260502253593263384226112350462252339863136401266356023715831834562452841234557424664957889783485237578851123675814837442869742663599849206711758642260618098680321635391203818348541697856363588541156172704597910977007841235803448661199344595031562949326473249120754747556059234026131171368785791306733124328568817240720534049056409837314900030073630910684361935384043165483561846061359631975576198643391586036936924011851386852769987181445255581516116033358544417433138284595298854571738767611245162342428897253934705578146509571186989193972632264813506407764096532811032518106946751289149069847939635659288111100531256667522471686169301114853446070955990781629911057433277996265996654534508205119419768417347497734727300376672582137616167432560421567921802894282568995919170043969893663967391839016133464041748749554999716044621744512269827236532004464190003826490938468857310769236306980446013183253427469876134201672737836214823712212459062607597826863206925254883159856333756101820536818911091468516852494761592766636388638796879113275283595942464723083893230722231258746934269520849592000741666643020542058483235141829596640318835053514977270816327459381204678762442503835643526169112228096492975911019929796827663725061014774866536170331199933497958974103411950485713090137223643820819449210347997891328086794941879597126211828441171544585947359086289192836187246174081789301898285828974696191536533636525949638879773776916287804284385761584899336007414221126520420891102793971337095199961659048985282684393048949496778720887957883652328687117751312230740112184477153235843294087686167244089721766441276928681032694403477053842015058879604989246899112578074556376420352940436429357819144353305552359065935182015693277195002864318646349586178867323457537019110927111632260843716103398346350558501077751685803579670289824983904879561512424636274962541625870787054196313813255125839456286463730161469729352824207905460802712395975844430650453406819190724012125520390354033964311855147407665766421464542851041032217963867691860340237046672963447432414174842853354987665400841728673483013985880116776887336499393044819495034910750697433676118241593755474228320719307880027394918465517076866017822038265625610473511580895344272865543699323537705854788982616089671859619150181207914129051454340792894098673209014522405491997238659000653906728154554869223102823698539758158603508749311223531035178088235095772910599628040359142315965425019811126878824434316282032474056484084272193911459337145409665975244891014180329712622197649939576471654164871599282944498654776645959528597907949829586948027846772302214545034425264221082123826133917063470631273049100044112945750658557283781019584604820681118049237305609051758596398550021656075213794443436157895410011484733569784062812946467102408633527098650745248444941354058405530639469985358227815802163961821205528430288772510507965374048416009995295320071505972194798393817929388660152281426070152156775117344343145461347688934693036521392379183731364925259670345609509777205509458278776523351516802592696115143747549008980316655018019471052709098798629149171859002893613789102258323860040575494224249534881927045373171899583407319581003464795374686892130545125238924073460682987045078323610055389779279709176702578766810333018468903899421852367468417061443089561579833202691654106678330349000360762741602179115795271821567558486243258004284314462388200000491209935314332492681454424222435933550443052284930419581272785417016058159789863410319846499241316284449103558478065798716328937182381794478025813443372169121293550286805868050901129999318311102914453591742220527637677642167732116433628313565764744560075703626857553416762406942475014561676707419831696219689018488355355096659945380857780401809161920054279574499839802742871280219903686155207780858867122449517928440599930970211479148620733929043604485602256118582491967533333422395516093547710209835629510820857477761609814089669214173327550056760742382750117500984774692415431644937361199003587018979870188486513305932481358273966743159844096529799029987963711537908166144061058157521184731578891461280518386793427088632353617830460108487252052706741380644353189021939120474127297581391319175734488422266494428533792334405220182021423838886666130503487780828755841979794349120295001253362753968251717815031705133376397304954409244378217687253993821285936019099974047652263210950073494672476052038206959104582152439300993807072400519033621703397988931855936428699319061860871079211287852785945766429473262177002212712087233131801540057785036725937237891732456746328712384199630280648332237696885617710673955863932317142074755642308663206288536681849853412899959374027660935871489767950602182890195116873876689368464293185241643116344682737542506115336900084425554773252860595455002497638983559894160079419967629588673924124675653485421628302661325629147089695826171769146697162332905261529669243075007102991532100094975996104094599972844093524295657720714664971149694278691577870966632767283722334898462876582694004817686640059221576621056545043095930972972603695449657147051779514352652765779707115598206156709767593311299327477575295762090276769411680018685626605054592852067196481893067477784105518194662636513885467680093025147093964837150901565107555988951644144706753040311244627967637958008401562539456281156993602483975145423812028984565820456290856478727488719866453936670598663800023487634345829897152382347231740605429301791488196569690992141002561533041194627290188898815122519280622022080408971151362655131212044574034613910565620745689856193775646101234082908707286424703240805777617656625756401434236104508142551466595039118111871567378002251925226486367882037506795649632871745599968396235309835396514702181351024891776072708264856147824632008941993393509365682861644930929022221110880165989079725171096932322286739457662859382761998598524492716684610035128436827586821086661442566252836202062220886964747138444073932905236697179957554874364052249858391094936656340690107429694632587440214073008485330219591990229173400505801731078867321275876398062815198069785613382906509184955292559641358337489749434269920497773635428197350198366837942000389996245057174653963222815452275142043467874451331663290916647344092226963892784953956381757549843507095025972875918418445584115639051542804333848455726437762572325228983223868259330195094547707683474300387405963969778948876680623096692470057922689949068005507976295895552063951953027501535760076095515569837097472606324346973080371994455674033681865203030526781554726137651253186124289435621616701728938220423802825346503700994157750022581399985019726351884138038324528980275906007518139252124046215410447280614211301832345353822888544714658931561054742637271256828557110442598396101119648314652499872133880505462556767404693025063275177828802314941162182183551252504952194410466565772368761157746269880117547745074383745352021576746031967896655867348720357171232480325154804091592710969873375214335453665312517148022950030507127716473743211899053240305283038885259649370788492225723374926015546388787283617939608707741771747018882339844283833848942228553996552097626086902955964793692122248718571882295690250058941723204017626277596447741813223522426034112918372143152892443716538255555815820935318313220239250205509265363958224599110298315791719501008734446259264951729600724680054699329062705126584429700762480883563175622818020710920838952839954508348251154713019238134676598960455974451129393158543487511001178643857741788880149532558063247261068548069286286012832351170214890584675107804981916167913307126831096825115476630875616284121007277756810417915005407049780606179365677793857893274590670454917010955036746118807956272054542338473122317582658623070920269178321150009338940626640010268193737710567996549732233821064093286798886166048090316067634388374577471479274511148789073056958646243457035630620065648738252755247663090660204155290996603773720630451519969810356253556589091658102552386021268574428891794587954417225318996317308372789348021391103659464797537366357156261795055405815602117209113643663642657972607960733404392138483319595526138142115793104193035315944636596630368358956860572139813373358717506107983710544159718396783987103766996277079070618780830283809263586228911751485974550721671912048063371359777354318611152915003107473619682043496103673700270407139050536693674651400726719527247741989595803368643843067695409454099386937340445369778114429984793773108717476105129304588129341810833310567475850348494749082474613502485487476184981254992432135030611968492448290878892374524488218734137177241757796640649436912852810807207247223334096276753671485495145458984783781739445533585806655746700151962825197812357989850501260880541118115837436482806145051438586840573857760659326748237923434008000397337159216667531545533502993690937274375951824984640025509829726336077901237791497090910539370202324968693426903807812841821843464643917084676300909837701570447662202205778300164379003382854742810726832216112113703041859682384247505193908525683039487549786695954937294559053464346138753405152898768632814514216117761426496930861795164510155666259056264128760924533204439589348585635464851194967183310698508756410479487620199703728201357701882431897015186035276177075705171357473930457042659438768107424777319479041924869707923519823360255687869315596478379402333022778880075313666066717262849787626322901585966123349819451304108942055689141764998688694008215068482539517612006177101314991518107196901097279492855846176859526690704687713603476073528456643964886851353500626474681616795780859540764068814600424358144161625038254861460746143482233548791828610731562285255247713147909404998251734444865082224653078887985908859536877034986398985165246455350462383481070511920513142869548019874434667905542403030613536798987312850868102504161203405351379848623501978713935552479248271151226724149585554327944047094601669607226300548265261491001216254234228222219808435364038481349446429048359832322263578769396124425490226774142674173227987100307533153486095625773461553681729698516319021983296894898880049339783578783645448947761035299331040942707999542852937339187345046165898551652229219287444435030336161025920223134555674877302298770478280956649336395362895836746785679192392747253723558738523172563482862243392802193835417164594425602296254549989712585870944921469033564527767210106842814527733210300599995122251651458898602918338512805077563870411654930430403484394122735897447202959836420902354931935262571289624145696027094404854713829438283889545644230697276512405433405847691206460094357269698454966671549682329499655658904799676808247426781785869981495239922573621989881311913660646766173732544587817205970562321267442400498110222728612158146465805762235044610584530683344264783731540118797158772576841912628581629453608617386870519771702467864283839493474982149329453269652424955846555582746712336956210497481049771913115627144176850094187008271648154674074359563861766173107352457379291955282087979426523461849534537199400601765313575222549626130318097510965525277056381963670403308356853934941059097292964691317761301229112761910205056615974584836534385487972187588979780403069965064369534996802691270752741059369993670337323720941518954424194563251646891340801078379674258702292904660619172363779663789750254534031729292665178762300546601021693518944659004773946914765235040443040349146488874824051297824933998408079311775095752242458256067291893637676514852099804795033544927904957916883438576661660651318833477713097162486490068189500814204230715372267756328532893185164932660854023787001252299569173484491096747865902201708587938693150027190658379940409413291541437491596912198663391716688749248687457903425218714347958557238347513715670814561153508587683124536124468194886397136186157231603759573892903816940430891773174921335723568930536963312443566746924255884930799966697721778577526289268625411093929380389564187072974774146472822718094668238889755580209167467084522597749089176133518940525878665048554243041545322664623177125919351174396522460453914660786741622678919434196448613281384669329008452206953628768773462478472771456951075957721630032397389729204643577818070269034852563140365176110444587009204019115496325545216021335154610239736065082947072833688926940792750194315752093987312386035495378390544486790784406049901595244323891443019724149860988089703805226287999791431796628036532944377658812475658429387182033344543173719528826446291394483368049703938127787189390210955174208176232561445910771858535180172793291471988101387793129915060350361561846228706075211011920869881538534118296862753565854770092705755259382922199968613284502575914817878935492687931985519601260929145857793265636091886269865276617373308799410568416757116584261575444454188181949788484117720375567823896178820654066957301836053934908848038783382808403124022109612976788366257500150778026516860249673924949149949020890574206610296172032034175892385501540493991789686348406854539570143457067056158285374122062911822894411066511707520612588244575484441534470023801072296475148884906821796296780033630076902580922179348791447291499581671628217415118095468233764887750317098256425269511350562106405010376733613504448205207325546627477972537039073177093315933186489227937993480791830747428142238665009452714405357519116381069981726475649324915082189864345645675038260066177753355909511784195522753083137964297369829838292232141248091444089524232514195966764408931521093361954760277265101945331089891452240837719250226347882050520906590823154154369443209392696673377623925338240109248681631944285850034133253896204020894808789066052849988623721166463085949290540156987714284950817939752645007627592717630980414478621910767053181864438729361000897972973550516420013624171927800178758735981583804198768716684780447223936162175671643178628282381247764244913191331965861019738331709310173729916562123888463589628032511819775609751201187010781693776604912611513947358745329728099856310772768779513489525045888727302341088356691596079975955281614071523768861339379054346638604495636583886450752420646042874919598763398747024001069590986179628979468868001089796986154894516308062901489734948751796738698981616471188555431969617449592361705936015705374880843222052436053793232234671078929238878075317441581690800497452156988703828755729397568440818458671595652682184253528610289759104093267481692203195427966276425126616247560085503090083878687780411933522094720986678496203110296834427568089572719353990014738692919351341924448392378404131120517401506394191640314736957049139667128435712332015474361749759046004577049675076122885426761882493354217388810834579668994572402045111959631223720719251604997177765063968915067432956856770542684901802202465952467965287766831563340534717742304759041213862771960256335452956546601160152697861718764635700255453466606486337537272139472504063198145489941101999084914729226309006474375855231484868740355632051175055041485376420120461710427450899747123709263588756263921962972499157892615503024823531886152487822975245753609287216727504552108181383441505642816579841630808000024206339294190378842227900048267489306407948633732106062503339837458935299151917746523770074012200268697855657290012977190951546080053071643253565636873597101427771861874975814189767299145695720882424394234069191881167547286006059174070092439970421284772632119767111470864492416643234027963432435291384746605220140957020831229603341004969431226192966931912089948860693651790204130704847654501772368654906645987008113652402031076598292353620844970066727859735510834304427946751757632202158993375754862207540533522540706439434049646431442871662175808013542905247598978369246673240313628222559301323652291525891501164517890300989422014360373159555997614013741518677030927311129286242153180427104356983210543091644960374202012506636356996684792133508900457486266324221916666809232923677079367310814888138567469048334025098267840588041002240186644599636833637752176261148749083099395696566978301457912076568105383781238137532476368981404792901657677619113028137283137164707516668292070345240673399730405762738504016022518678389580569105667521426511077658627986116717204910380964298248131865578916267106929103077428647869675971320150412998842833298599514116157066572899168416014038235601265067174470369179967689459851510325276180102562763905591629780920285879542674142025575666236149338159334218803101354089243979213717437632802792053175700165567478611889302716095005040273012180250163006798826715410384036875363976314452330522999352895277819851468456941027807950019854499213640011370635365638177612582575970504996267746961647211881145836346353099632120875932518642481019562939348844780649001034038065013291022422446041972724176032386060578076352109340623962465952907287085896461914406613068279786949657014278334172072119704133138031290021068428966372223392866308649051631701011217457235999955586816099394996558026499622833808161279812481814355409641292709052236322076377270210730338321662985010016120893706014263217519143702198811506647883395005790526461156197869452343886076020988642824233454641018916717994994272130456244541527307455346646541695302847215842371176707142299729115413042479177335507841637187823148245213281878843502407191482961968391504991130502411672071489686529470619596037655210306499703630770475893236618474203863035092377629544375208371794046030556091733755979299275574907426164145286464853073912276449916003664606286932287715970702083528999258516582153312164170533534792231254062234858949062829288252876016336503594626717512775513074528699243199756027309886314329557532705974325132100812762296532769203144099047800655446607557891851360863917433836471998069580149263076314576585379471092356197533794798074950892257192218175762340222017342495579427971817125198379425967690672489827073958537718975570503836690619625702297232043113676804567666053324060102389245377053545956664615777349134654163600770496509625876112176178504332952330447836669373684113469353815726111446621808616226296869472484180361052970813998217955062501121969172681809584888153700752696132282918300094739515184646406481508658952452541448427043874582012719802737343428496597796413852621715318035042214931820740936098979767485506313327980761426582420613534983696913876116295775481886336335385325622790536786820241323237428350228052866119908237138229463357354683368888397395077809463812151909120248659214197459828341975566051624668288472527179267229764523996749889983307852984044438266230206854119230410948452779962374089253029912008665729367849294959980963166003585504411738504444264926081674577681094860748302547412550614248341016273927600311216695484373665665139975362893798875643024895595821626041267341571275772899430026841843798214435292134078907235774503982623493241306254906769865988587005005513450794403168514387497953355320651948159767078905109826195298658311230929435945354563066888778237095647638027610023427295670064947064316388118352172748025734493154061243529095023499039831718259524768900976987060983311046227152310590471996386677398532163580035674260391899537770467302683206508806650185881676251824965631804506075215481534287308975659353038726359083515509493505381985369572586551236005111131751188761916433122047644787003846858328515215975009710760114106836484426421448596360509394181302245460980499176427402262103778495301832778904553530135092832161823944614459916942773671721040856822372238366877390986080505525713043105778616412560640673657383627114025570359887084538477527725315009740656578072349602364446145494849854756917829302740526720334096329966392179293131254432750370900042215148756993646863433553056585202684815643010856497329272590632365269795804513698615861310379995725391056055271211380583613200979862100586483376438682377075664730078065703338018212829048571545957797956020395501635115280506529539291799101725879136054068628778974407840088320095653718468591793913996764582450486210595939013086256697384029379734588247290282912337236199098589876194283813339676617637407440466046278186645295519362102733950129733833721468698874234426005697389670101409969772266604941351637021098430348791197857407715559433751365391891576469218267216076202955145722905943697244688462941214820516204787076936076554974084083247985998750249130668009251208735709904118895393315041883525666453890670737676058374861452857425788413175408255753109401717547070987453206166787401153277984062099961396797642180762276046091079721850660925555062958494617943734250667125915381096148320862160377227713805050636888369016176141858563435323296881710066268294283287949340169027770894289804173303611083591314691930003178994312277687964857333423593818391470386784098824104391864894271956176219395526401963983308635171159186769955651518220870112782759753397610938840237379518312760789156361700005814367033422372149264300088089471430275874781083883835384405286297822550105332449448112161954434745713175734153829844906569255720079319243278966361874586660121579569770372710453612155629721682163241190339709380255092877345346137052671811946474354368009003203800620855670983077050125479011697417700618179749530826106448883653750235631939384471013108150074729167868222071855478507004524399392324868450085328326053027546864621020621600156451075453563515024331007897186684294421674260184112147564690106780746459949939629270377355177779718864243667241018353806350447727887789801772363830676987789018889892618451859749962674067941660149647161570056702584791011489267813637531422444383923444710131893128325595188248842408572414015663641570341090921900225536645040175754629444376877853946327051047071161005037996151973740162046997660605532265711828501851756849667663225155451957180533602226835717946957517645971778867401508304776900008769051021190022423401539904406355221886241980530192921927318871979560530610371255377976998877869565103605059294584265451380830631041834155609834780186182912878572488255238513119475862355035551752095857275346206021927135104325989742160082337406015489374991606177169287250728758949614663220519280132564130207566694720061252757069153272297718234544800911718792133819024076652085226631753211179554309327170369452479506463551984553186319580424764978354900254880362223478418536735279241164439403654508616770745564818439593091003863636329960054267372050594235032854607619918489049514037293677255588819604895602548313494919873866319676299141878203704668650227381393619009441698245949009362006139832411333879473719952925245948184379430923743590220607201861891788686494121256789622741606941056514741382121015756884734526613218439650907756070305943220419735842763951461561224104364167330787205875696460892178538660324584496752150664712537673776863375865106545457498849992664565711306467064044790576324450921707613436312667753301573488151563407745715913072194406925340010752476063850655640901688402659404824427459857426602163423321149740122427411804163005676094935034821380772745143029793197514595998910501066497821438907185686672320667596514557490217938999353604005008057180175804227200851414978734445221008947669538003123131869931803235891947066177853892830970287714753842095997991545172509426835528997427208880525317927046991288392886291406935017626906698083529231098245947358359175746950123796835247650834907487501475295790384260139453579907725746516691785123128370146767517859755407539525139393582927501062016210351724797972485142962145977957818479875205281269503794837841330856327729162761623370773151090253877238129309860766027529313316594677730441375750128416997581422436762605159521156984961665983535252117434796339813820000518862787989917373214734063131065427104179823339066219512550295614665204446263649684320271335544362491430029199042188775370514937712493433629781046992686422396106807100601398715326015558676187804088754530896921458118909635633849827831841366632478744857398435808575198924690807547543063491550909898580240655944822766360381571347858161083889933477331445342646886461149420195146130925580835629704235899477405947937869820702031534871824568392850504557950975847854607106472218156091783317119636327579028214396938675031214868320716829844317735158377345909173227362725428656203271540675420775259936458895262473731808573292263166638904630599374979646325107523134750842519273588101622773134914784542176858022737082075925080087662159877740884942405129806556989659467843447202991855431095892631746736379263095817243678237146522605585050820737684153942434606085670935311624934124453206564945184124527705100213369128613533390055369911989946017524621752021153995650546954025611603575794990322114002441872052000794570657990487212652692003869394133132547197480576178531625716668191809990242881278068740346043734080760253706049937122221578983940052612781956732306328371351215404559537579045930705554453250528422348267327706105352065712938598104650052671884242126002796561774198291182307322775422881017516381905985597045638403292145317673299474702954242388823352231087829606017198733151427912114016555608359836118345547726903209350187799135296086425540575539845296068700910051086320320950310610997894442483215169048784976776266032397102803368646158848446923337178615007329970909637425424308669615177645704345048079132019294132875408301177765740790160975227272743540589552846449313968218987904219097626759383742740363270817422650574461520744142531534205918889323439772489800443057835505386616004714026067875864748831374826988656214743697831288097106164380693921881581202141847374902831794810522996928994158811525773591605890462160935242519076299523056409425076066692080993988684999598629403776619110298039278551297684789873308202501667837007216804762485618091795163180230509247788688119644213454569410289759455652468335632674064893245556495146354058079764956449256613625544616135811653531118252827777821379289927638434540690649432969077481567647571908043298655986621463179953423422203171997436181626608979064900243607149182432861282353135899113695545069646552029072828654083849985384128316487544582605599344521251828711161108984793473567820694585718131018372942414953282692573437770437750136168732253951561851671895587872714828948445248018065224106535441980947819673175766825655062150091238895922131905772487357062529825359336493641243985833793540674254374245557758958798538292499742976319126204051783698690320281653957364019317585939846260863962692069641453980703668417664861828800520821152723999356427612918881319534959901617365669798451951992317209834529622776536326214712132986122702384766910307907069481425131823445787859521995306239047552304768561581517030117411080752270213951647032488075081061007503693997546397163475479688168936338433719361818428082482223106889898390849493284821228563063564887663518631113143379577617914457033738919103653995970355670294234784003559019456757278614910209183285642220202504904519097661656685477309938675820058710354014932837896903207180054168433624313234096616698315417432974238603223732881284331440200628590129642833100791657014951318965905697585132011560630130670916771353553822279625468820731849926188393069826369103330725210371456490144779232148533749216628858176835765440653065263266483702662655511777084769780081519292507473673165442688503611436437620311699043088732781590433922958137329683589021597587593477387360531977915253557218814761361145463288528981224188461665884720506021768974727900542075749358433233700850773313494021098293908159371398387609586899665152054353198069980431842584766925146050804530594588964010101558287395907536664345472968681568698793517296021670700423357834279376652596179711519736852377708486637700863856590755892311544658541938679573942776187940764441079513852141307418207989609266532749520973101988122799868584458971161178115909698664471476721518037587979495475175748507985514070272517570213373361423519839440934526816186494755213254899944735868287257556283928813180770043639284480078063512317004330895753464133772657908176616343857992963910296205656740198867256559299803467065662243349519191940152354023675389688383995015424930691068530463826702105128133099602418796869739579068068657329588367346584880978996732294888665792697837565662997470431537877121357056256752295786506924666335884551305145696105593093183141271292921923544459342057623360476153233168878822906783608903387568067569320515543307842550630989151960495575858988312865762773786858133223558590615104892788452281879496869810363517576404385331669589123438295382775921754573373533629455268621418609412616913713142788713462525028555171535487644685305772877884057104917198695028082389538977565935765936828716004246477934806883559500866504356096634464245972602151565720801372719549090258114985641969937578663368735835463395733651778534578218347038933757682582001835424627744640667484893390680270072927081182839147534591331862796807047649220520285521849681496180227239125511007207353723470394692546674983503171500911617115176467237283833722634684983002856019365198624473989001530081161954769644912668432467790379072775743524938649951097493195087197382365191641418009708541386990761631887795491209105620315511438833809026958642347853301060255440256308248188922170570848938315975261955206183652612757555151011419637997344067739135651920028863952067238815513693024986895125871188446329598665276836132775464933971254958405094179694343458606881830375941788620491058395132406170381861355675804535752458303203153449912558618825404634862382678052631194312765728893804036660907290944192698357416965567318892807219915472874316031762561001235561758194436871410874857245018243151743329237208141743262400240729052631614405432145286540899911478725807643148325034434927160744975161995089431003394885761713090325007355947772674067533647945967328737581789079284020297150532330037167558677513070012144834277415161518711261308494594177148617262789353412076803501337134083306291630498628425750596873641307792978816105732845195412256439865204034396096877951315196123502191281237003699892422560670462371852067147604027759565076962203244854220055805377543592654402866215954456706311066535890463102984926636455433498474617134064164552577190922633617788088550200201137474354146557179172607508960242567861148445939458518322482833402195367684528467320051614515299993225853435826853360347024824287976193038293266777401387516592690464259868250303467919412167407636464488907875766777977722222220731754093295675174110717493929662953686530235564842833666667143990354166434820010334537170709622786651525335227498687095261802256608473628559016444340066775018529196749515117466260943829882330422175542028941722194878599957870281317169228304539603614052133201155991101436863721885548930561902062452728880454996635767372644048322798621411969738519714961486312944099041939454546099833265770014372877423691167084506087166831173739890612425058470576995410022414348426669665681811361480084635076182910823597587318593971832495263818635532287045045839809257961259832221489516499227138885956189829324525478719525411829032864995349221531701995827143348278682898002600295213401368014023913982746330234579606337332927990143663198676196110889371924438551951662082252454423339094157189528662513859817750912239951726543367708832229233708341423079537343464385487559821966135143223469871296435462515645900824421659855266151661530475683480540647848668629083529147315069277565276868314609769124083124735876026283959884351532495993219422539676507525340219223812562136608550490281449237852421608907309325227625434156329670629377795962981258911802818371362272974871383359264077316778313758232702641601944901600904064546020561125015872798586309864928380434314941919611618216432515616504158335758365744877071738431385158933349881838650165497175085594140340448414306715551717467781013008442926783534110415801494403297962902839566657255324536677372798903666232462467208637079918464273804480005109606209533577857991147287776444405198922605468368497824500219394906268256199205096060913056613354421771090056397430803445199367493675760908551220878073670109562325485963229210430095970285901837699709936241571995543568191684464574022865492558479523705876959071247821253626474218020792638091251051664789278308859407801152422063632408120691775412708924793809277949228663565893217821145973697136414142961945126705872968643029061862134764039189844884652217277635273443201909208044800323487542100740622256966062361712524023030389376714556325018638035618724468772012539112448356646424924584769387572720442518343012933140193125014733847454243456694219215837577178886408535258899267930817128638946311247216565626142353671973202709578592544601940420977767587555550656986078207677345180858337487135465818324047060553752395445616084792756129152004047360902965640709986852413187617197511413563831835954143405292483482243890024781768932654512588268768203115990159755554432363892152146019521076006980094995078230133728263861226905572974335966907510172910981459926135878477374309584689170866488994338553213318946386268169949041973903025451862851957730838757487852275473143408072390039645943027241098608003269046620891677245281573074117349975682683784248178473803007970397164147595972479958881555405585248856715397091655689520229104344591137844825183489314678544877398765741230744362118574701957996868159515866232949043836003150532957856979689780598464483078585201605070636664526510321059145334497011213382877999384299958233529056494969491612458838152865869082142060692241015410263325984643089669316295440311316879853522462112801815512866461761388139595218674371610014497985078972700167961694034945897614109573372378851836973758137839560269301279049442791234750784298485545716429432722787920562543162043634629815834682266624562128183983336291195921008734120272571817843739090504558350561327219332968744586827505134173621272057592400056116510648769761997395500723743779542679513019236862013758720044085703088054511135199777018311703635195796176047544971853442739062491272570105141403484323238447606493240238730959717255506850344075974957515881228644657216232323327725245912795195017637312757401100496247008591409795179024172502460873267906697365841789192870627205013800139107521196933071239827539046282839796699351867074684284769226065480376607425676618802538887459145281247530029884353553187643331077393067596295650292918974579774879822157099717986696851761221041892974084558464261471346327321188872135519261083111203590129544730771208759247662386393743683536421414992042779997377718652092549435501582853061842800644171885080304611115466264022451875059892894162173941877803932795613480444983753317002910027572973111897073721525348294431902831717111090145816087804023380155130232336986763098582187193272586362370954560321188683872555193209437085276649353547873001385765016203273990093251818042113414189306876509885428568638760267255473434706149444914984361587548020584112991463413781255168857402488627741882050130991559631500696775948754354621374694020517136846254429069189371695064763331596600509724677904366227673238284017812893734749548480803746607093726028517476991602574025327088951902802699804677773635838318105532992584697910682809887448870208507877291112520941465360350620336423963235641830860965452742088619306054007318285461009631634391428609586437634397885327099369473990380911031200362405215214871283635726235053193158997877878304118693541322696310495243006805118618860088998391363519318683098064650323684841370133595827216202858740914174466669611095700973744882569428620845859522751207702438219930169530439353772589453656140954178040934856534292894792191399857104989038960243716807231729395068259715107238269099708257864009546336013670300323732814067335563724814107842985183132723309864307919613964262789654939245273263105160688028183839878975864590817102737320444925569411480703442579360586314618324141659979701855055051022877489741634138739596477069273875412452054017061783440435688636747571563953758592839076684916746294588195384751424585257657852740852701774684466889464754351379419053682198902377283824336339618790166008411812102114636653136202045748721004065525692645993873809208262785734271293750046730172660890855729337361573946729169661411155139711521875611881917761313241964903649137281811162717410494068250365432329814420525071461390325812959480804596108631037455483810943531137264266349053289338396140277565802665580785473558783976176938189429658492514370912669779610993630252697199232117865309964117205160255919341659267145724785267087558424488069430711285701763421184706530361414189319740537366270649845355783236398779428966609396184665909064864817329298447138118271431844975246873770257946062047839226707866403558488676829606142764643502512800988937806054964729338613170109551325495516330921118462947390331502759514759742261994591922775199186333679229128237510454452835068447309890744217096565709717554691654950980359200557289387038001827017443685138381049655378554110612777457620834329777106943487442489679193209397458182901305069425852337001035121159180918831511287991104408493745205277266637323374112112522929675176707847287413002630858072903675659711444448700709885038754635900613509511967627710755524751129906857747261856517665356302403188328978614877375885573173450211342690216461078304002770704349377487530567818389131537742916165537258723973969497536223929340005985138478190113248223232722941049569217193402670841184172502886743209296032765649981458974580685015302400035892118684719132017686560917690916523274941143308277011233656840697299005610359046778876368516480054621942259554961845932362810959057511734275604617937417323138946594424553516964429590762990588346136437848924476327661107008890718548259862224224523937346660978070018717519494823844979361990640590214432855785611288767967907713090547161157745956474066978331816946631454712769579293811220547679204882774115699636028065702044780134694390677018648335790381113747580314447531794869530462578342901684917011698644126327936130235778379656074909060682869495165397383243173105330062921603840414682456907976730950316605917030834983821874631169631157385666223026714310532984894985387788269808260435142840442599435316340728587459439515382830764145670462372611424807683754517889474990301270305912352397767052376863899695338073028411986297437821882531472571719625713893334489625617848179915358188632770668885016715685304601734899448972417298812395720288270232369897115082701609444955192634094065501069612496421344814983030290717819495762574101946850861460202094729869802749113827917133018332741540940764765940344499140962838725262395743732965393511414967546059087924024655183469784179283601210903825356387462700199901076435804389466922513373870721088987369304561231333284911221433764334880281584451515571673121186355981564065820604654422434644721643658443390871053461824612898816017412501325133071045577208128017951432761778179665409238960041341469798594721089170251454643662281143645876795567646323189335529654990584202791332677595970827654825083901479793297632855894929110665820770750740296275681021829279806502922352352102150010532800946455843784931254697721639643383216564807625569399888877254140303046398505951922056637268638473537364771119651120675919368594097146384735412794093231856749662862077711961388744905418857926679209829961508834673512356738629815974741373692572578776986924343167104031615627601675211423171037858241241394279892780108599517870186749977654757959752835818781944276163802771211070581235565025026911800214284469664318622565857157580454329365327082074801339234473717416917865503155207968944430054885698468097753119419198749695422814111266551507471233957800503084868979966182992568012472418823741487812659167431080579204000118502834449769508909687905136516630591899095746619156676680249486419417237838112382665737115690937478758201708418214430513579327299770142940874642836419930304695673115255978014675968568136823267919477650031711770363018359690167163985293579703768790905902576215325671676595818862226743790534082443678124898955519561904920235703584180149444112081870503548045551046833607417848865355415494562624217844682344405713648379825989728729472432499970348996061839043623233716250848975108380759426370285838299924120269905343438127653838875497691428184575423859645100263087066678166142247654792783082063489482412721087956553909693558531712557907914094756872888789821414589215623434181860132599406469882344474929895874929848062621835146558892658438417469973534822181594499154078705294475652168796958139912768063456461786482397270882684380698842389745292151223064263861732747704396950567285594509472545927545447486681534443578516559237925573578356788764664720225618872131472803507628166002872027784918292235066940837718976234454873222005077305518937235907878257359316610587060216167314095608245681354276480151173744506917582108979866508500697113452489602225704380229714454756556108866044190995317592172935619647213184405173951320036245220457776114214883619892426020605125127671142006362076514585099861315009697546206450841174306713976758359615585444105571057606607666122125230211226640579617980660382153798954889151726426610425132808114237734917802083893024325800375436604145461231350308181313410990865764857393191792722668074351702974802140357901301861055949455074156702102921507759828901197792562809288263407787662106573051890740348408188640209072462743252543532079052380754142556881877176718349752571863250226963838029237706309353715650183661173541765984706983364490712316659653669876381735180733687751400479808829288368287403312327964806800200936062388281606134490911917601542352395432217944158319282693510509082832205857966798136264092269902758315836498597902869502600679816169418780836355234697233604629688841689193290605905171553746359326223641346004559333759796088190963179937536220886928475889885401354352811232948840605793359494081127258216066131111184733099332786581234777453949459429159559238426736001928584347052974053424329409073315889481396482034736629006695006283419258249888221205186484290030145366755638320202071717037082415122538774112637847796195629163055752915794198105807828607846903226687298119392131570169975651280497193314881090429080623415558102692588670496646833820502616166315950527957169869002600386993898213226702256322602168904918199284505478287501256451061252437688089519288429131270399912255889767077087258600461498544214686810009100671217256547435904804395189293204657379808069433859717054756513570965154378674047834414987887308664165805090474348607537177224399882887014387592656201339729581152546268267448952601887086207488084010235065506481298113079899925800871474780205595256466283525581398377644857971866689336770568788675293021219075833246275006290839458007572898455872366204038525535250553257738358394063863726353373606714877684800948110202075650997691351689883933538835911788927807384365160153154925716587827896385700835677855437208876977155975684458190160318842134612368032894527512043987287448161067388251429958655792669299232401897176831173443352109440116202425547849461162561240333786009955301407841348294328839833670560037230113348833459438817668527744324737911833803889421444804694827898236468058095939392186811295528986873496309971652241997117454365255342763355293859742533864377350152050341991591042125794439301562691297238572254634364419790571888597494004013593940639065293761454265062746241052067384581904948447387491805248673502434364422693936696736746836629441649978452771600115888060614287366111039072326207200982619442409671944469929728061672835243361840689623180383654936860470559208172136425933816991686234728427323126903204837783424368743514653641192928185522128585527837552111224891528769120100111559831034848312602540030304449012931559139186016856140385800265464131124181300547117680994181497425106612090215239457531064502695565736091841646779818286074890230801763845336127853435818667279718947655796477775107977414904522819854122782866106302938272550409299766147891704943498662702666778980418890261498309530641237127266412392933363240922043229947512001516532105509818670028432557450348511733613402730115148552588034242731099354859016783241131536412421642028665595336066324838045912221348853646197920233399876606408082371239828843816288313367064577684594911964246898689363426507913321531164139679587496056647238772641142536332527262233167967481135365812148650117833432401322804392441991902879744137795765111225694705177906663500227701832981992142723243950137117305963755063790978029640043234745880474247105104100138572100236042548186888452235450928202108526492450399796335091502910545877614384074508946395042650625391043901085185225382175027562306093443467963727445387955097638087574083947265553076756413154769603699234474351978797629044814567392195948743460623704243423831162895542628819497152649694644897551556586488690095936583342777610763145068797361723256132232300076007218009923757343207180549926244918676018029182106258648575700982737853009037453383939752503243021862450947680645854366516240408916678121617338548234395709609818025297128222986993745512296454947325549784128624388313003037748261083972258936579298180535376202007888495802762698102535039033999258201225231678481437865240282768842597553862054643624417103415401343553190880848601239774685310621832134934226664774932368443968405546828837267691949380441131550372928217756264122298230887266550537834501938620781130681101740887037154039655059055256186207077069882965932622265374538945152176921250110504271086680838515865459383437068501989646096403921408940136819765133315947998541634877695479274873732257054647706576105962904634459306539985455283715674591523208878444133353100374669384080951919139453192744303574687081711019127974453829199651814459392662209561237425748498588460253422487923958809348656654800308723474617130716890403448239227472632832898143923875886815978756995374228425440155938099830837438575777241538163413879592304522962369701542323127799500174490377532983393118480391603480903373410227291710492759137421727509926687316103761339145859276428248162538055822919078928741828952092906946842429387771460508934591936364188058682028792713820865174131822466193706163225637357232666086010660759833573599155172026446566994198045008520128203713441354954739271669233527158922157777545496756390926829295192196055129149554620059346431521307057514692932314012755972839511236078890470818321781772928665658000976904575348934565301971316045247127684125820459984568216345570488967269409287273574888746086948650973114551370970108964094915059696077485363864648432188846418146625332069704534485742529035447743087605285931578913789186595785755962007726044394632766543695248916335301195042554606141458643651755863555026852731090042048453070139149264416637095610147229048408473842472065511215079328607017849486038074835059871337712529511273717291130349997035582497340513153124133784060633674986746139954335792643514286761124183306333801641636039924148329127050450131447875575334159138777864331575470478959749992538570634060288136547460141378405798331409516053569573862975629783193062287492279294861596910285996056297187107055747160868361177336614819901734992161828503111637814198103895737501790799006817489710083729942851682217067244010816796742592814502293396954408164233716084657668650708804933832263539019366705542012882464279429596086499417507613901267379188236842247053386882188838563561875960417035308538743167537337065810464767896376117677995430056668557118901390071653457180737919325971985165932604578252883791028107539868834614183498955049043092010625841007888536622854335322890243947085647528270991098001359354455133616244525411736181262172235204677412792464344659298356349608164401228195457135438990105000693591864403944147474023615978383010915141995961793372827413098061380061752441762232954867740273722740830694503136193142197293402360798241997029026768655427219293266250737351670905507392187661801924032463756318793066212367150152911883421396082109899352373193245181019933508914060668775562150559955039039151924244691252613681128282019083455817549563729084432578015044574294830112132854221489885464560342121307577547375832792253836209002831484071701451268439429627326008092365154682334387921525267628327720009626794272131357867087954680219237645452629784272640202614429946911145210548267266304126515587569613513443530446215199212036042186082512273434660196509235811017063472984880376464545479145608884308292512446084280346094097370056067729186657413150417721785526357034303857028454718627665947767144574868521705154930071376787300178925566684929795907007734858105753639337742309914024363928102112961214597969497444492337290017094390577106337844702892242958614630582052721274627869482674632569434845951066544852818156945969897209863806167338477569110455465474173224030248205166587685580345249913729814563234305038674472454688649027805213436072057240795484388458555763700801742668386797531238965966921386922790362243758600201422288563941515149840810197244212141593567272413617298565102433935779301780151894045573683043043412464924652433732633245454306905968938880027027338712166553814751414406126213740417242379672889223099643231260149565651141614185005581740570914776329949870548838403606031831356057234492893289294121935182207461272755060875799671940720183856797368444894552363847911605136103305199419914303009844839899607827178649301529796711725029781864457773153514248599903442070810540465607824057172383137247692214509539286649496739065575140851681631978904837136323922109717044236421035624220091505376900633471737658845582771598504042541561406422336883923714482144821607676091965360373107720885350133968986944687535808195642794646600545513451289252728452722272205965150556025898930965525630617029534177039909571040107633451046592976515848709879283685317501412014540729479455367330171309603689235174817357281686717753295606240504531993032792485739605633094108358910132200726746678118232992622355367170739176271293275934452270702314031611559085966231658795497985285820478516397748161167163350444261676416967966020740997983540968589043137796234019058223910847508785837194941768183723912911356468376914148376991098478606178342290250468841270329961157800214320752281837370992525077770803373845862779218851992973256946737366188675644083756977025485626264330472960891209660287952998826504055061105704380842116659094242051610123426108579065112772576591784912892510680735341268982898803168266827396886259919346843793389759192645824753889579863648200283838099804820723441600069995675907299071804950535189483637652237048340497406258366308247653824734672939222445499753954237715086039949496668462724804112843745210782695931448451837774028517457299667294106951406869857477759298660033626813296465274472850181315031651645482002483923584476964762186882085403748000536032859601894672992618203798848211899373980191959049732888373790028234871442137614093096856053699507729603577295442844485373074235498076025431843299265090784902663868577680725139551051455522163044863359237924734978749065267401206168071783545519633320535688643036175359055372791381511194190058464115980160715491185515946290679772327791025131519207936883183525400177560769115111865650368508184466179753417398075520817723619415173237670684869251946816453604892239103925838538018356405909888756789771666425325695025882666125215489665241238728242092269606769320416689601668924081807832153390701748549767963192163669417220985442323428543322507913398205283806244369179609230174015180691537407179884161935624400422160303441337892768339770770714751234474699906397525971763530875815636342887009549911199185064996939306706270930629233640143635688587850491482466374626147842815530695666741697499373423379457866118519800359154758374619657462638411344711575325402955569324422269637939597995594888755182095427665546537114965347448669310756191207468651345793666268290102134812371680264190920138189545239757506332107060449623947897084083460967889792382047263534077604506310324189552548415672678719529430925069786390998228600357602932032788993270224152076526642763801695921375998762047426714309793849914103885068979719864186888669351985863446973762448775357161131846520644797441071261032888087004829228108625862938650254721776269455575898249399751545259563155486459769310703014220147285683243223977383110509312830846191068673095921991766559287962476416415652923688477923324022872324315012317615139787600122893158061569975672936451581547377846905042667934327310058088160524024638834116535652577759872177007454429914844547688464405852353281161851710163898420709319632287805440521441582268055478806244915641301263994938048752855419321171925945269508691123555151521692599797580365514170012477069877013839161444305515011868431040102790842438195619775955797836968410277789858052969606988762407422522894503630846150948360632599094049275213706630225574654621887241030360849290757183767803215383908346644951098856208139215115928071426462353556067671837795165798234556841739820830769382702782197855763068861838530939421467028918014449555444571072731701005339065263817961170388805147531812551292089723527612284207383610550560411781813871089784895228021593092542412885399653032369479319841633977183095830430082083547922908860096728872061556392402193782128420468467267081429974980157383593373115994781518419286929224319210705925709427040315668716557336969793816662790916790875430198658321340158830142086055542305195327816115982012244514312892335329899591069423309802378581564070342180040125288124222482894847944294584135541683586824859226139650367117306110146745829570431570131332674199031004397685671034317102308643516556742919607533138649686038474626643641447383277704049472972208786226957956212242804925770570013777290680763620920456207756187324656169982801080817327283173715724343555592461104520824746242673541262501796364454032127814466645651488064428120792407576982435137177009491158530866571661700812727386730659633267174490097017184086022830875819201761695093274877463764907927906909562199689589588393726756623540037586511665819069438932219135086591897404757830998290722919976498431660934776445117239557488397462577847596623297985797271477466364747289308599359239580380338429357489960103300954920774376011242875982979521323972699468324379719740420159017317233292545419200520201446893926087384036909547099449459055516577612719990677521003282334219163309740904653639547333256726259621300032745579369299802686925575629937737473275692512698285546781165317492975304441328772836654309377568426336437528691353979710365789399879093136739825742395528227070160039163103888767551720458717134252721044045038388847433523865827807419862628052395004214868407633746158074411136728803140873791206874009173792815033956731771918775270111677643008708452320733579486668464834222097196346925947581917038167773476863711960671051985034223855117793903789354863449363387231737348352760388426939184240700671458447815312884870099316277544466793806185407257654408324444770038865951469875198244336033570310698404079357952892781559974563374126897344349613270819832669963916906428192420502629583272888817810236255983893994722041776637754948392867507499658056260765051744360144405071894946260063313339159457270352310228996379527961150166544375811984643808560942588508413221677101268488031438975649224888534832436715099864068405471949606946797995049825334038207331229905398822896248907836606693405343071430402477449152855445251935973688282994669935272631095853078659119592911360560937052716985472080925032506265368653622481436566873826158185789605893671638689874612595203950595070692027406913504373087334345444528400284134062885108087229705053311197112128955437268897600979908571594024644275022181310012631290124889774534345453139334409557985173242678868915423829046182956667733736067477167920491473064308100394385655836684623240807805032814461857533127103117196970014025161549609491588740495032196452319659510200855781169550324009992688501798915090474802964083722575854974677335961091380941898772440919640553710832794779781521068327344889999021822149636482225218456382867902669678983560370390426020417744479404591322631982236119254402952245756659523593363642890590760798297121869872191270402496333785747936570933744953214836110947338103932801110653003937040686919439754387712148280510379528188867282170956637440750252809205409456347150466912672962539074231711407975068398389556098507473533906220640788342988487251975390331263180342227669951389279768521289927115336748797082801329990985814544034133991920117080503914552219690819567800718230608084241386441612912810969218413975279001890772825133954264035941076447328956349342379880596676249975533110488863266158854202682540678167257384389018916522533900717585142691760078343030342097987362681381264365000062282911287823087096471860464821231051026582431212621183804697448272036786768725394550762220227779377375501042560991318414308031408743907502003022009345068599590408639145969177435141261698804107961133229188764866162253286918033064039198280638676415205124416145872557762406841264243274174778378618690439976314454403391747590355740815849504749021876084946753229867470142660457892790521920339558687182689309698238212224945760218949288852909836412541430690147838243677740445610413118648913685332445870794215293655694429505367889544757394685926675254689738345491728107156855656088086386129671839856578688364731242443070449955002843184484583089416458590657772373115749769543180317187620649168449843681042846468524122961261436222136105062579881313957269322295585465919551347535796182749119464952078340050895943833069108184113912476619627478626526765537980679651098660289291027225979397344378681118890721635928397807710203169594575051769438092944902431415890763643035305301394145036479103326457018692946651960742628041200651620411786480272727993224523700724980987734097863263497230808249277702885039181972214721301389748694725399554927136409821777642365516942406754248056606023783175996614636322343032681280595879282764069560284695881323185803345730214754997995558094040984422630266443054109697106058542708997712278880279357748245456013864075082071405102533422251985336173250549983538825178953994921974081697293080922474159664747152419286130903894107329747872057050634877270007508995606367973327045275680026531208125197013568034181321026020677670658417314216286073249040688183843340541759708860670387518308941390237140460927428095385385013861748964672372872963159900421236856283495515758034019999585670317400984287526911101603750004672776988337232975658031876984630586585154059034350358156634307748084590543843580955645945262356990750303383304552191246679320479171659169024929986799742724151600707123707997094195049135659727334122131086263490938161014586582259226030240434192640519490313412717765764525264993486856343054448340559804322693072554484904056906353626787988399829664706206539095687211754960209687299409454850561549047117431844184325053480406200059564730375614403517120334440212799128825974737372349834062735400844802152803999122238661142614930084931794160263523007518062197952836866959188569453991464109828996195201780917428486487674149041305530550630242628113494151091347226832375840409071707717949266955508179821479962988833415901174431972053728754379657194642706249630412257727678154035853026546702906037776767455769110426920039726512763063309933441806373873019523787467796670903959489081324830607641559957474580345139016290947038210343691598490397871160101623881284521010680458371664720200926432715729226170790588584559059831791643499195837577908453532849258050124150187046786323491859101411136721655491392298579748672575728695694493620767692494548099484058915474989139041660414910670098747261921591182928722513204750893048180526471302388988036130185505189141097659065848308145062277160427017057402410254693219115247840441028344403554088635997475588492498646047266894565449992610982816920844628012746457650681041902545146522083485869135835770728208134611976073993673225780678033000469372866565163158732639378666896802977835450988695017462544402276528517344010970508371710685571914870999415328172743092009709219236232247529998626458809008542871027165817896011834946482287956646319097335626903274135959104788269255125065200391179513952967054568424012489390077880696289786329509605366598026238205294622898623538458169882273217009699276905707638180674629308162630461781457098295096367909815588756515028110934696388461896917234546704749273479482670467822430216178835607383435865267336840300744058271181605290766884530201526383000226347787871429184730641677981210620775832118828761613333686094191362884693195475536947662085561541055512418173660835483407237670630902990141374094528492403416214993114035661075181907638277978625109777800227847797335930497184573410227104532959753810214355770766626442485881433847698423036712240076824983142662975173489481241097300654112298126426544299079156769414315092469319292648263973854282963651040164992547960076956700397760912776792930416000481148800406468844305752431713914900285884106240151519692875666367924703139633680794174075737098576524683387503500187222375180342384424662470740907057444509892217292839661265331578012430164825318276520470467738009425437267118942259020534649419696403258972496754164910683944310110795082559548834316448224899607257271782482342738603999715330998935491507863725995024810974520724992578050833247022100363509061678781902903162743930497759173493943716895548288043707750493619374338928345405369756850975275750252188936551320671773823027259869375653303549121695726505537740554332150607554591229212761890472278025705034810929926103568518554532455707880013472754907434714087143038228976957937537560954077726579939304608190768586084353068086969646200925787089141267954572514835544181607220149953400958070774992906114471186986535311185770934595434550490002022727378762541242585783956748726998688538698636399902861025028842796981232234763781909281132418250916290560322511843786209556075404407204349519754189428210296083090980230710527779146231385871095609836902185306827409486631246891403711127949514367403397117835483122086023215910847350147426031394132579168898191708340151543693842066603876792951758477862416693004209530479358976700354804499790382539773926610417353849848450757800390815530621476934739128454448265887080785264229375101353627396286547750103055751869752466788454106639827568786066829916635203225574896859774907439663531869760966839148396978460776806162491822377528750824213972042293669499357874085857237313726210286815385585666876211580480172330956964792111016884635841128453450445699233436252393596828735105505518203139340782439113627373865804434350838590754793184982107765324835855962119890015155241019926683832414884579346386589078967028526432709338808599124064747959713393750080563281506750059969788203696576996757953542416251261614905761906495015979802845540499382432486485231739469248386034134189462825863795673934307455746655390905676142309422494954621548559855664814038425703930675228996571609140241110004684659840248795370804839912065153531221833312889999183543308330492771598552587003942958502577836020170942874972479434988188511816146320733824390743249969068437426277949612357216881885569787668876129943318715343955307017544963283373259095417536564731222483884129001855872640258259984060733411718423552530847702434050987177286808530596907009575512662623296798405227547808582394403842314918692416990213340904471024720321117551545182891426841004827095054541100523004296995676034582112318112849867068986970708153411877634919615983275593445027666590788824948410330269273874513912959386105330093069591128471926372487684116658296762708294272151454142766960189112451357528958827168145749993068421174439938766140836971481124997032207630030449827308106208903345601915934281743498942569714241782920748266691959949291129268199056434985127234832744489225770326624916998764795815493159525860602517257047650788891144962577626446089777134455237617817639008304517398010943308096264791547934345558775163665496486912530946575727901884313547990362249805863101374058394618380673583341263494921088802182272197948811348707404524655093907590741895372614117755570042975518304741582251317367759526389132951014161955551461218087548561251866937806623198862596837158144938052547635428095735290499673612650845285126492853153669214656166181882088399188359237432735757622093442598691336124330470223849807127326427255749415761354621787534208526197074690365399675479308007620388486722406024499489047386612292212769406288941470549112050348277400513663778483364001632332241836232923087929804226698271105508286931959410735702702861102351377973916972640499722169758924864919402147283450516666372702236602644426263197502817509000839760260410291874690347964712687355618795236618649344757769457189909462843547462014217469333994353504347383475233914365421708024751930156344413636844337979167047586145415848969178474029617627620922728342238705375854804946617573257192529943297927741311735682521668422879127111717113012778899619178891112656612060289510365513335305836221723640421318933812751209670282130184002304356698056723331542515121722928317309519160680418795406474409158833032205497776943792295161957360152984832104565321845811550411799931894883030278782960920234549285176048023570919573715591440279131238822190791836908591461464184575166657292825203142097150475024048497212609539162958534520918765754403152697134576487922618990111841607472473130547011481534339912165171151447912417055039270839812710915948392766595885204647507499732813665473903923263374353469090370236852904892694254616722230790208832417677108876880308816619160802383546733696857700447809489821053355985822854837642737231354610063602671408264146303257150260980072622111447736063813439812559798052995447628411240578783023172169101757223973347779068956172707598415315199411268315735127780994837921710110335728842103471408192819203730945105270746382159461555579829030557398912082137411706976623028116571313825137954879622686187139195760874222702765340145866280386861563150753310578339474113417720333120669678653084009279647458829837506494361807642212041834524002122452189689365135748610221300932317080539434665573593943430654780749879474062689566502553738113405249551714555896612861248183871358896385262345663991693852934761923804418182516547948018495495695644138433173283487977524834984810931844473390862279856671223617822014165170168066584511964807830910352099676826577317163580694061425147062304137682915533842169533812013812366819196076395881108669554351322873534061636289291253260716985708186315142969626005623363093845448704033394530384290005153697251978001659651529249475894742830786054364572247092901616391901315233099165795638812201640008477827119260685030841644300969381643294988337041670249662270707093882595254197612014652792855086748131642858794048586750694674117355742362363902918337543332107194695617827804160810979315238253623385083552487149339844048487590557208390693307711306203469746320898106036785859341249365759200100409704022607794620471309535251150443314135646405725048268854185125490488256705348416607183633207259038618305156963966487824831584102078189429441477576181379827837359718228818114583807488922974019582504093334245619923340918949015133831717898545909155677031150555062696359334895952193090942854999603046123276893675129134516396857996244504682988312848520369845963628583064051147379639772240822713915059500430133692812121988345029324720230318966083791473300573649701184250684510783620289430551644071539031287888084144615317543059494203686443987179947011992975118066562311426103756071185931710496699959594431766284232456807225786222047244312490505323914461714735087398453701203872176988588414355199389443812528895454609818794554974578007839172081506552265707620240859321355500140281766101939333956221166671180661508422887427661498096925009437577695343328076486702951013310926962868679980236931646777355935558326987593000226831430479286143067018007628170043158030734879277202303354374985675577107367747100956422573926028748520735563914619215654527730673418263940684650471620536575977778088105518714322229596375751181644205049812581426744063548428131962468663543813389138858039130306881760312261146523037307173177096022534037789167806940922369035253432529553452378382879885731468139381586149326584814755113147993244899575682367409910447417540793677584551000459483787039096803109897067569156921771626093275794518410301106541717633789305082986351994240970517602204683220065343024671828763038761790475311663543808079022091818459602569958577150189708355364124473888698686502393869627932649807752988230792991992333281141153494405954928761129464258382360265916819063979549883267691328185314212349839678494562831993526549913003055748973284321509904447963791863613827843577098374377698010261423394262573903186226426386565779586651224280166259670935638722534555437368551907253983111230365379994823073974965943007661759790007999396323665479708015077343221787522857339107361611484156196463539713884186998145837120618924186258774386861753746870971385691264753026893978071368118121022223077497623383203060615427469767188499383377564669078745461457539412185932237163430639106116330028610060986304185715563870613511403824167281828288427424956824519585089743242046669158643003557415262370531750922153996933263841893555541026895529394974658592248939492849088674133878564398644739905893293984553167111463144749210635286556281858248191742795305794654486605380796497939076017074374556379016270013250885338614759920449228385362761531208421928935766384491206722608006114471578702875418001007705180416208808480799720643226470038158328723217586214961302065255192154460852193599477388614655649320367813390479490273606170395189394741372950397044322557431421409685791306112869188517763714561052935852267910363391520026967903475588589756500292257242923818729488638706388745130947700567432640057219326512953490818941529638972627640685604847215119631324818230887546614832390476259406314843063338697962924091342200808786630024194970351050509604247195699504195902389620579719736637381576781430230929663795996423875100744539613990776933584635607669281259931293586631315169573279912795087614318513468582833077006257781741091535479920518496860368155891917250248985815988409724900617665980663579840548828818366682469340433739068547954969891868034921315327863979921270284623346949119251956481931798951280613821813184698406315031230787669839451492459360409832791550251239191646422424450992550579726436108481873616846772481644953668797579054929244377241976874612830565642969511141542488839124815342188898579968875177353614868558456692855666244352599363984849772437268386625286495166626944109822537071446130147884774180654721660187285168324737403859163188096681689658608105276049606303584587589586941877262274356830786629016825721715893508876487529893137598926737431026149843001711922565695294600808074136327882390172213298808217474337366764117264150659709978001530243354388928492696596397873662416460297144242101587369823431817482181278252293706271002435508422955385108419646733074371378221215370082809802666803272318984309159587365143102024197589311967038837446426051389305554982219276711004516790881483221704703131845253148894398324775585801104377891430724997087006048824876507431925442005337245297423038139906566162578774684468147375204960845457464491303685587540672545137700394897455557519644928286264725891703135242072476520663143754060954750042170991387612687084161672125951034530004739739746014539042054941805867195548521220082581046403787423165966516092483035931803288168920073768291929010718796415426353831256412861431442014636660216802785869861787724989152689777003129912343560302511430536255441717066953677473295612527367312429289414280395298642056989653466213185494203051726233672516270882021952557790771526766696766966048836275620217383831628945951608736221002252522097121856182637514599274401348098145434443899499856624265367313022457689855533500599760832355589776561387668168318114700909337096625434106594029830684296571059949070083223007889049116413382642833185495613127970581271247513308670265396552658356456560442305225765602845075028067695643064772674491818962423129353723757840030938756247103664419949899052829648907780085541804810822478631998107205658110620379162588039401408756628835566747566010115903988228629296369200976998190351942853847675635734319630976932077153827176859267052593122987081226304325819645545605740954918764873096263965697794386688495506369874254301714870174811177940498817000849742296200702273150002634669352977681322283137253002794300960208361937720254555486140145942717988070037111143672480601564788611606218857908759831327163908298324368398899358867605116759138556908632488022898130298666022786236248904681780618280071622013249895203765378037470614242464291608304124806503998806990305008807504794181311454327969218581151804082089991432458898921772541931471348034649152923973292818359486978878725900737879953596809913425877834875356831158227020431904661343196533799915297301845301514195783812409134606295363994333735988618259369266630008522415666243339286015111490425222633449784902616074627987705346966681150122589393065788346059239377880903232734691753432793345029139063023190655332256611159396691506645967565764605372440659366891503195610883567148508263830866235385823678526937694005357641868328223282059703865297860922684009294315673633143945224093320161218329404078134314708591361185217165951054201293528010983965301074618673922634706083897223133525642719544969253521556241495544889656927312268676862846559984906930003214851906603241729082810537092159975091308170078578782305326245281681645432419550897532483634445051568436930578593648170755986435909630193247160942269252362183568884234733011820679179695370502611236882941128526745114612087976918916572973812083935151568250676989024247716703238093706946898942383896968198511008170776074379175721053123512058009314763507625596849049161522862833656692042231347407449137877516570644484151316129382631873231955959644168401461554593094405412323001844233669724654393234749446790609614994521173809209421687243643074898985952152492275298213245219705084042952717190428413651409120905415679284301847969764879735440639311420898662243591202836353206874204303590867486250328882966028969980487059903720741156871970288571763025702459787599875060320185410752605842332712715447849651507876556573156639095060964466781819983225657750865941644067375988968322207273274508468453128989839245772480311827712653829042952139404383624015208235827206434178679921790419373744599368876309004669983136731874196927815187404047260974512713596086217676783476252792146462705068075312746987486691463946060047013807839365538619625165869447596111652513986645159055782951438487177500633236700849220723284296010086748498173437866831503877574747696893711159998839915478883943600964964963231475136809134948024668787852931644814489813778679636789006798939450617590349895037482195526049657674774607757357821626046409378880952839085259340105945152888663485532021336185005165485607678141021608123736582793054045924401372556398190818796049321256621413791327316337942279728315620694001628894473863228182866575410633599769383106034283642047551194638071606309368776926628658586808181630105385450532903715233755583081478293595986767772380052940642557882619447433191685473597265507204412583074972599441874646877860211831655117042381551254368775721710471496371373292863740611849197166052051890756105875784475615917688913370448472397797920196485788492666985883344625351109027296750699378503237908464886237915064610966069576145629744455587981912837970662038529107127658626748497036646705162770922024464212394903989127917036048631449209419803891112970145297743946860831014826584574322048778776356042190728635828711212960368969973337920560644995505786643998340668978959179328847550877163943201043953879767207411229979756612889946444968827067278398933133512205723130990844407435039617908489360615675033268487071498935329171192232899124622507799229117678020835791155647721204228481939039546100826134570797971369055391682613328454356072165936082386351909247705343342314412705513650472548565759437370596108972688751004928772259574851333594843472956521242893341125981523656437446459403584670091020298137341808282711446242648195239276438261826328099803875232518875062479162773362269346908201376331319053828354549201883340318594459782847505008591127818618323095931358973823586307873990672363916804960248724155003633404658074055976200731896015179731828948821153403931684477107713581965918553401527774275206521991137503552164385692616379658660531415465713439414572613480238318622799545917019191621136932994570273566768592046975638380669193270978981236854702558842993691963201017912312583212152620001393916593915028134240941735226072208492109888744679471219921359819045578496606458923965000292747768713939509577590407085397478856042545517668039189183466641899730296715375701643100791090259529353040173853131772114646189241187157187942729201992331673261449238102303363850196863633526522365787181989493781333258025685366858631860655724247991691889647780998078634965412971695390407476536879425963430025851696978320061182897075488193527949316713121114840025810831909724381413909970281236216727223821055537217006938746081474774824677653768706601787534344180481669715770559518198616982582553555183732073041044810105671006042254828307358488939019966223611667722080377319060289431740079375457635860776941901226123934970826264698859408924853326281299087067746418087912639333390874703582905514855208587992932498078757410745071778044544276031956554388029977037290674709067360215136385281565296433077469276589386832175423842963182155012077312424826312530332044615332356375814485852964925962591435163586514457120650166172158364082802727945161490586579133635970292415878204846035451969734224093344451569783102737841907231325362525854006735173198324589016974065593135544026105421251855572242973513997299299664392470981855028538530335018649994328908090979472778591720623760598869151280146059338437071671044659057981363888040746682926307385290423274382759801378952329637538448517675173267272366489227282881093338135174423393978837245191312884459016005981271635874913507970038002986058141162884343917565472159846994742698963529096150852462016192071359878413961051601524284688241042302785385038641032217916265789006489125934649476542410345959594649786507266123920230996107083071205584405839779827343972394033713136784460806653584738851620352520394814062345487614148244109965320831703494827731246668855525756824866557176907391634649567634541771462945040018112957010986681494988993018076927844185647619321456267531389196910219297038498680174604976981966692664900306820603838434040597429152791570548503818124561387452878009949965213449808818218282836221652302497582380275496567303977290473337393829027293434569450447700617135830254751454614477689891102979492274421023841658447106454551961510106533186696512228019061065961198822427385148179719596016672998703766967513880115954964272243482442829729360250142110290521968343739555985456689257365589236658309731084412682821940558108997411941381083851471844285142856745406326591633680840989148069040872601861518609081655691916367591710062449867323744739731166099282195110116732093448995365592053730898655860562782310401204385393727268370701416812926562502040726322778963859907756280470129986451655920403463895970413666967826948381859683414150690264729180476458045805902960621236939004931527425991775017047576162042721529188941476634334549879468767783557908594286865446963663005632929324439116053815926969005175853339294585359633152045512116659117035813184742717557066600011887879411709825975611461094426974401473109374382588058182785434110128973225284301442617506539505796750348338536775890785309351206435556451283294815157967595897211323114055072135129521472825137824381749586293348476923376977078662664582259341558466220459476278832577755710157983807459199361241940553624029917705705561232679876253965224592198540413146807513619451573549820446709337132204838040516308695075063681331480257198680835730494343149356311894403880510368638025902638538164722293008439440018972075720554002252429312829814716141314814190650713086859263881199203968369078422478261249865777034654611061728176896038845625370215085074884349763942664919796009566947497656043551081237075776060407147199561110201200206200036985672850424975109728869677462688394611208213002424131055951710463105922230471442910081556215738703725160018108640303180646952932496941616725697268460281482661440041921007887490997126094852805976892794715647088593969117955283807980960325412275503722122580415914149526233975108527546925782971821949149599090163999783510652003291196245455481648449981976511529489493430230876706755734771731949154983497416931485462239466807416843192244170035813387061566984643381426322975334832701370858560518252812655368272413628533861103799210259218445037532962962020991764943469601443989345122420007854441227096849491741861297133756978555931165255025135894322504945346644518022879029502330658198440439455764357960006726104774800400977500344186800953998453573776495986115746133227824858812575040556138643846166520480039860224111112609300296701770377490061190861068174510432526984913912387578852960449941489502502940001665569981282933779006253904202825279465231968481479008275136488920264930384147538842039546407459784930448092144747705358150589137223536014931579270671257321807672340851230438441919725284168259173912216044524380360663158005549254849942382312780526580903771455949754240445219389093335692723526485850464574487978235168621624490900179300375024567716333575002895472665910393264077542347632770627761721194270998570914350503984953893378128324966196801698176170230944004508826404482356913996398974740558614509283242247562297026521449281040836700356943871183393492725126900565150744982242435187336141145801770546884793851137829581913953045385785155224390313934037839230830121098798648864121685793686833101004787867186986629453676222343794483645246416627896764754114389920401329890371244839718506936975422415870624791436476949681522493041447199714887647223965181908479273162995936766336879607076915613142191737928613675288791548197055240097424715632411546384850085085302441917862607188182327626373109210344323079605418273790494073060272130181889104956705489238465509198238839788094566533790058659322730164471532055333107849118520475524381761952203982198001647912405763189451702415000795813755598851548458747739143198086215899166047810248385365903953507897682190677261399735311728950470493983744694387112852987663174218410488176242766311662695443302056092443557055796871264337620564730157215685095724971346747712634117026769031954200209012947373975823898339248832621957104030359448708773919426857720646463260700317581311639984467090833500914857275343368550866548559346673934398618637790671352161118902859405230894186004707893263388876513057086255457226466650849271434528247581836387871678882197419192512287130471507847087378619319819330184121225684884703742241285236849837718344773912939353813822471370770525445976397638031513319767081871354468152204248861068220584571511104513607517703902583091076310570392290886942896818740640876144432494262778956983515088669042837546167494867864671797064531145640022992466247931131555409860621269020993628661654379703519996624563294386951642059733355005323531953477375862446049138776062971395116788654874458508502389344184504309297344624887405120709515801696495164470284188870063313257439100523197341591516715427731422659444760593535205589898260693903602789145148249926673299989858222318412298976415910612379539897144596268327012784276910827971081447171573246961643031065197915908172243843237410285288947029319277035183648054361322373851338212983509194694803122175884989464899693381215774606863059831681580169303877149616156470633214217099096525732380014160729465304898200383632958663844828849462123212324005728009727195397912517543678028414986269708856227139645727529075367967112043367978496478954384734946580407301315213207485157876405285461078612809592666479492643334805547939686087849132276153071081779757959357144855978989265125403699250898184514378866302066903460488586741151516720205672388677406902095682270700265058379701927213198454412475476299639836754720228739890682051467403776751008123212966720774179519281988260684455937166535287061033924217150490971470093000843237287213734813223823318082704383583463863625851600198468708312426368957551476482991890240654768104168501652287767143652377751710817282940428825578947398882241867488440002428891732150764537364801946635390229698204679168537353763644908984460564624427232699527375840196914601187356250321654924356040312206646936350350754260339371918434075020991330096189774892990159248099841863087859022755627605729921104812520647478089684376191613628767295129382998765501053879927161006132064467800635472601813903993868001323565285195895186355397210453713616102929890824400571773085749112466966707734372290711650813343505507737799175369791119834129470497905030939229498251702576104448163925876085474593005364063964121639958574946024157842787176858705662840605472574832031994846853859717255633911895446585078666747447174905121730516252624055079239613949473495194964342123407123474433274521907496794791356669388390157305740326076122882048550372149224365870006402295054333632610732747960632660003859370545083242433344384120037956884599389278917345099029448735131363810973655852295687703517405096442994999782165655598734287397398407951514680703872227493810413336477101419509376527875525983954409344087312057618074005172241113552664403550262611759898927252246324513442383611888778520208868635853691075985296760665322042836807282877914752681646780463509846991939539042400975980690124042904533540228377187087442670773145049329874215263349234341665821143426280153112007433873807368163887874645973668783149103431181925078208640581883400320506729304284870337005571469474426312875389041397496439877377177420413029547738688801079429688527421909472617981899985007100851254844394556692114030103817761608117804299863968464686705032597188850736425262067421977885179065024590959211865933380162576329862170887505280009222160639326291772658942850535419000211743735668350836196810870741701219811766670396942048387520995211146503096825380124322679964822148086957286126708327167091140998680900723391887240413799324466258234502176575846370695132114862171800414832224757286388733325673332833105680738995153053243537054545548555955679172381928785871209442835716522173755374216885049009667076967294118708760075184710475449273594972239908923930523062844165894461838811797540623099219022374142446742557980109159482117200221290090338367592360258274899864602699907658724045379481891430823708300712949071127914895039529046742387260583474959458367556439933559663804382579096936386362956227076068457475289997311445975086061548811051002346516571953656374107397770802355590419577891178208883574103295268562939435904969327931793317747534631944111074391390651533054648921364998359329970121390872307176948925176969842413268340164819111083915995220908528390642792720083011528574232641739871795818783675711684687159215896168116601863918830246091796831080477580518761110158821811784683370703108932465355982917977807772206022759224525598070632578046583931729261078134658060557638734774817686046178094149132395721563893753531631929302232526992129497627566296287529580692047089157824647119274368468704926201559664713105819436720719257008435735968748664416464390932804586211586314227422897439229622608026725195554266781657246635176174539058900618405187184588613061888081230522999501884464884788078930615491676161584941965970853672170939869107050550061028525229663128785452441282218269296888194933849617781095544344762194054108563257492744919538837408003563068666209003487175298562215146746594806442983370866988100369825634370744138532243671765315882630645419440060788425229997787522118547386724080773331155533704099471520090102918603658115633157821536460421997249890188201209655212310040261252103499217219363530352228478864809113115909488996050124189836908835058575706372964130966321711559412571613738613992117285099787812929333617717004191641497461567637228347399866368837638203316591104026632357513248769650589810381279064972182785826446284062533052381144151479266637142530293357599037365003030660150885555192513061535880955444612649221052909975721802372404888103413814973554554561473474023573438648575175721685986055108050825850961268932205760083585108734348549202767660281559954277824266497468335298653117389851552248550931383299193803141837063494251475260097310267856919888212623066331608280821603023467285535694900754195682687940736141692695298504328433563486525740431416460143281316473793706147310021245043843763654203216590801594133865779009815649493424577848348068158160065873745976869123937619630477984724609949929910075965970539020848283954817030311207232574342749734011341271912288535483525375046974016519650833019451234381954424742395525323982104254652017511844854898105777783995428689339761053008225642661598059121616681776178555373032714894683145253298088683787791714940117639453063438979723356304035455795137654136551914201156392915426546033695534074437145798533851777908276140211476406740597007552599455421802405462657888877485022301543831093118880529967858584991025012649990805562427366938719847632733252370417666313324211617830168946355924415164997056674376303466771003624362160588540000185896466354544269522824191379023729137807391002674538343550094371270689331010812416387712907656687761729240072545948266380445801002473164617486734569503788378324215054201130678804688295717392475074717752438150594779097201278582646089538922344881790121700304193274618862466284940027109869021206926992079674979351221234524882826490639680161690860057036663740828167206506415776638019445793121171438271535089714941605350276305985582003951649988658228884238295768888723156706156170626685168867754559636792627018699296590932613872497466333002008790890809203363662843024206413747291780176851818331280935030393823685789485638812705253898726094602299792315075399467671021005431533152086966803175745917782974438943564809275855907453122316064980506059407965515174600061154528007325954736528187163179555398937525602132161961376025350393985615492293220620300584157434044116184703771208267994676910413476755781574729272360220293380367839575986376454251986780607155218117746235898115603013817975581594226273490546438707986801916929237011058740003161649444661874249333201037249932470908577233075178952176522318881712661330976107516967727414846942886031848518797267640333586300667472974363253846970123332258060524285361663012786199710000134757728969635734368662230790294400207208659361385668854349786590861764824158605319602180594162588448459444943582389715616033153713704308795760276352973533669985931366093361880251921960734264888552276704416703022544144426664548272154130265904072482505838119855235532489952950031690350020520654603564574079608984450822731131576698144984327901638882981809012101809580859567445989161093929819561772831270698682586828016105825556645316193916894614617571939414434468300047989305030852557257677053231170177726212697288075034461993466017624871882299210876040813409248462424860114664007565358085814124890165453585844345544337305234943361322826257237047611726994323524527529797453800335862168610367901813801100687511548890244302685161127887776083919589298502701205912934381320804874978157718621085361182042420054842377160450479076898571207516792700153735670473596992078071354191445790107966344615786355058442841228596727928237280075960786028598369361773265219877994277258754544091650775935024295554922272406750307441817515920210146375827870732728488404948983225441034733085145837433080661845154717541498991423215698111503617253818792681048712142850158112173783714663500260905576015773621046188771099931969386884820641449059757552759637401758523002475655150890533114389812038572268380231019185722748480662530551160416539896472817490734258583546601950784906482966451718831743233002005531960987714602098599923060273867473368700374208831828203952660415204365420973741672464055340752155226039041232792597602776081649768379063508300910579940149174338193545050622674741940335368028291869039235277077575925943268944990310192045679568945100879978469334419717576032643512271394949257189414890721427726786874691145540862903834545359808975046216662979290291924406735428910078684085413284861821461186834893463247741122384341010058602321990469596662461036589128513792618572424810862209406979473443722079998830428820931708523641139333121459169300510691010221873013301220659968533568754437422387777389802278004288297773122496462121567528217523226776654422325787889857206970212959912018671143469483506570448637720989608157601698489962283863918263109368889086581893864992785073416120182472947948752716083263672547822405756247510383322743448918981198485911819317143448750316380232605713158060491910580348183968056265889156386255826294068015225989753197723019907560899864523336023279229443959299614137927688394150050112150805097251227076133710859539236318126553912942503636924194112059249389380258904840698748974151316919158681444886035153979903933232973816447975057044096705769239410172787889702517205407032972783533183622854982706839548259370769240535808980868986195451447531999681627120994840048864142677272520040164480095588075433452048374964515447385016843717904131259218768794086160228284495609118710538609966434961579063320657016716946284152776561007633612521099173402992663197611990345795965120061992910784443265153092279074999323626554024606096664359582667827329429173765012358196923559220521828190038020218119401390859937572299123217291340935850640204698136646008502194103510082023334264064295443791273885139242685748786382768327243522696038992137736645515978427096679737287536312963220297823958523579128752400183740348425360913518452205098513739047742422522875514953013476467831695691892740617003300762836657032202206145438244286676929276738635403009889100802032303807474411070400891185714261963105564665500382413498467166429747144125268335791599349772440006079114577658155432173112798399611144220948766324971159289384570456437450942491525589507754325016455484567659256902543929650689066353027711439318344610324569495748149961114485347403020512802302193346800483053082961687695413881093296490555728247889295685647286805806411421421769432711311900987981308000660688540726980284750738120724023691874832533787127773752644887052297752693599878651489743453347420421420365796428691294172380370282659123655182769048007044561613589618299629451028857840202325204139813886538329978316324688994081639122092375453708083678840253362230630561450967675251013505446352605032517335140265017747520551813673432550149574192840095340407978100833631024043279954166526717618736131081194872252556146377520862735261627917139195554675804078195477335780615935602747227072352632844545788769947435226664214771581497094120004757633068302359201241355944628691009898727775298796296385156258955310972508275226037248913266318609304750828766076292522426123764936909070478766901907666717572818772315250001029698606443349896403104143401095032928863459871748760976480624401615676664653104130687221227849582397188820386557040882526970996461028813881491211392926945329955907954188519167588673624096246305420111045367826892896244593287598908248919707037571874719979310981582467515560290688427388384589577367894936271612514683269332157312554572094205607949425630702156205450563299105925889168908104022898043102674993651535454816459737892722873257676164061920309164914664756585946302105082509257887344855674708346506876832795903171594350964459673411517287289522573857341252263021124863109924449055443143742964420403029920968716493989369387525127158686292235521177835122232316091981397062852572678845274319106715072528470591064302775000505075095871519016851228883592487565533987001923043789437990266991435411441251688724061412626259547425086154639516636900140488616731385523901766229738376860769796794680279259343423585845136943875426553899893855686049257601341021997065551119836504303921561541024447245986112822555325866303494579570676616163283890196467538234787456433809236135487632553910706312820639202288591459712100552799629339764727867347518523258650635979601043602683680898997221991512973057888841362918653894678970386000193788265669759404599831149069014764389346518322090925249469877632156853353203101086540225258263211937011182812429388507568765285459980992508208029982129216206760161429657189672665356971843862537354372577212299410046286027723087972780751712703497386686031435053042771303538433741921917204336535967043920940718039786513333920252214712987073721260479508883740137120467569918525215376689176879333870295025649406623762262408933376134779096558856628981108373075282189984590387952273575411890500590983594931460856579620508749575936851645527925769482336090189813553563957360916480800738973708094296135940417139694733283119739903236324253300634979433254823338389481103010740496922372553166780168687743978275073493102682123711955495178550696221106254472933485503458097931890764993976048634285376389271966165628562898002717305052098482487858976763367963700833300651907475605352889864545609461281031103874008758649101246187996728308465281212558550490548434524522942034901533114956533403129164635551398170154817127783060635368292926709452613029665075608335381161371337921007001861099005965249283810485710149609001454170129570770818728448971620798322525606139479570663990415447899792199452263203905701030893924125331131471115630646426285232553522312777600048861953110940946048222011256107774099075307223394459707464148118261189699937473160505869283722049813054578316789953935285685755220164484288007542598690609170411022454267813470619977684492854650482018120460979976160814373436513792314623706977068800472029922887744431252486965005155255257818197019251826139154478831612442829956492182821789682977584527074522439870280451003335919955863162372830691843566452260946831577394936792192538031046284652333405479228062324193922682534238194511161107333016774927394204873668870162393495959160365698142404617995316330716506278258611993666200709165113658371793275836241439000408822676398466007104045267913103771069169978945369723328292037711118901661373539292322969727866142245755954104234284966879956166863228690736209952022489451531790316375307846670710969540450403733965243719313982668603522242893597310287626027116658309245883562312339505034555893880443776379325794124427745621613658277925455288354667016237934467274813571176711073379758699300943706509436188128640329705728617529528783032284913229941199638449205343508291746961571766759951291445451931237870958878466127868982191702456147052538044628086783915912249937374407432417843188898807318414482950911344181527521334769930513772224664539070461314276439893156595826789809566927181828161341056316995224480326313583991419417364471988423496805222513375620148302669048527390187702995979526563696356834935917475967855484065049261627774606654302892345832216686809622693578725960345686676243154470882883470357362342280145574033898217737016521131044941114001662349871535608852009895264840288358869738145303990288879381081404967570665082573043762824717519473823414990715420740869852200135954469188398225584497808946354346836975854783962919463166715793009205140008426637319545451360074928068719840927209490560314434370919083009070450048296859937930901056035361710144640305358976587930528282009437602380944482133552555248421736886692438836677252455872913106167234353590957976053157662276019771903428543498719474282197121202490539566077620790681416465184865410320362242280265793584559468793769005567896643929495726356266370767348668413935476521663868205052378116836506607239001219804668493113852761829888558830247230088906128286947248578060101031646413736536191159857139913319314127813732132411956009491323074658011562033393535898171638152802139776705367599392094917822680875423332639907019759472364376335988003042464376767376714661271705575833467322071807593583715127643903854591376392418157488228310137978362537740621038579964371018269661571314055558738704681542285850542687042908452665309352997791308854614957131933079538966385957181020961739469709012503627684852550208364716162264153973104881128448990376460956160732405442846186642179239886846965242527620212359618954392651966728478999484135074714393536752066230823010232680058727534706658501543933266829433247297293434886678225811896994656794265053465812389680077757353280636020252957830705279095505333063380936237528387315130971068389985081736422038738156067371392929223570062711230163053230689612253595347400289931965196276222076496823404183573330586982225666980540777433254968904362267029153051187143307026792464627194371887283834092375555267113143535363166951173350524970732145629553098218950745194624694631613218941473087303757996033126926936208722367211581496402290617509340862049756824936998103945429959426051741770205355802051407058257039081982086885780319000947936702242336117020562575961203030822260535903171240400085032024735436655980956334292852146686714991263771703066612941164764043555907982907139981489333537510599943679745015589118835229257058474324858190060351973329689102081508439390636133516443000823525060124003811561972085422953600662740161425391957431180822683825166118251224366579402327034977742879895971901550558530599207504018072354537796249342806199355766467176189441645903285306826284832645318846091193096184097970515506570119142739831466071131259399307529398737168243445361714119298898375108235544610554601395652030814191072866914905332956014798989398211354833123676336491163565191973969570499565776075915669461126694692845142729319788412340973358617238516501606853308799474109780327726726779224443660301157296813635965631648617591469359936559487844068222167191444549774343831112019119697484058041776723913944373540843603251171349301118248943846755834818204864744454727318220465471522125610313565266678146276131810814520297914806630654982744308328201881338275798636482323259452603885833118645256861643730025267173050703883016174931878188591941761630656250806986699314909490700306974491609794568128551678719259851717667540027943119207914893112664548894847923430103948576892606787790478447883433507898277327147662603928237487691336426067710174818701994364208024148251052043846763119131932131332555463863271371855136462082441384000744811828040255846737059038727588530194852516042621756848908155832076989394228963461689824429133849085963775798061220007307318999181745555202332419045567958132442988588098704550318240091930653078043391302708613245664245316344093342962580149916108096333024457420902734446256350347687088995909896953557598661579626691726758375431437512961634419783217428758192501486196433348914998104072678789456241015625213777800508926503993486273169992937145259522512568593444049689667820504797792828382759962446548294367122249107155967023935929872064805720362022175588691131652892224355637469985388885441203706603085398467596597383834119593486706685618957417075542498428245354620511192406295306949685373009566620072575208604317859915631587399520822165232048853843578573053269566244333997692149967208588746997852587948520025918338344986021575207272660406896063202205363454271485478379356213058662038407784802012130525152984475897930219278461351674197377780295876133671689457362240615712323682363601326016615718397609350447803817544499907883757444683868977735343513275807111024575895416909435061903271092057676414460327040368364493893435870861023119176313932310683954974850314852858318696777071641569968665120133001676257913633568362716311269655749188316031514986440279814471440129791517511254609177581717811909889674895200163744003858475279106001627802762767951584095463913543658019820945679734851803753456919263035874167940037014018502998883354786890608402968109488669882617742087659830767727107427016828855458052710629964264583915830498260309200459953528590804141670211242966716895086200436191312803246172505178841525435665395566175602093318115808742415456245331768894648276225493290035201507644769483475346296485052842925588346036190539963871270467033937617874397186679953415890231125028979357496033927529379284033455629770130890435410953953054069451990721544136008272185566815035085532971060112032825071765235372976825874981126893814168554634442267058080090821698269278140980307912669458051530352454562801598153046629096314698822686566246946258408399687957172967872455738435979261088552554404098318761007329710963429105502271097167817338486398578848154459726726853741206687120789868270487561940318056519404528021736651768264434229822803485043913345373652117854611561081240922191812233169751161702318170917796794770789550295935744675403175254198899110064923392800581351761964100979517371762758135103542246468163701190578842833369381913681122792598188765035873268569753101271310408672704651358474733035394106629460660174980161932215224783848143404334810183188719995843364477842732339776181548605623079879842808644149354148277274770527708256955343437506047816420448537341810946348543499410197487445442831024004730710312529257395288805044574864179608472026265955922090608001441165109316332276182966093101984912873747358496491745064437079206705014241681007187989262920715399721603196512601488502013301821263171891621983558249281935286607616234792017771391504748943508997397477761337156230768895080253706257389021084056420052975753515088219701791036634709010857435548090630559342611941283622350454836707047923552011699992910158994359577893097104437087227180170032331860996286525911066757824346881501381792385494225374355085079560278283882779973616204742552947635316245566826268818179048449038767191615730563819381781030488708554288646261914079265083736110333823783049065539122989135580948753196157141066798269015437473239549764178720083180472015693801208654938700307739204250495021843354253917280164157037645766613308414292876937890712721235385067325927629966887613297974417940839543275277932691078514928955569070581057894506178041245204496371716054312273786769627622975111898582009537191070934224461167359476664745433156542841822849040579103886381138945911817155453034748635700523836012299357685687309647506878073876192811129988731887796987467089829637881070424622373297426202855630698564636056287402226398787435631549204650135697308831497733304673533480546650403077694892888491401030204894520720620174560204448751425174808994988930679291336323729462847057959976685094299145934762419410795101170430953504602865286261259407096052152044840002451397262437045386401387594368160844995165878237492427212704212351231254778842971001416630127382479183581973108502079703191203198565310739489222320631323992538109214898427414362789933416808025437138187865563926159187656233479569199989978974199906926477411620838806967843251998075133478017073052775796099334404957271365506408222210107288074229944485300899198288109838754593858727279200890737441263220807022641208977274558885434236466601475386310656231445978480883945103026762968681280950871461593884228881601989860689960265529320700414587001208672829023387839964881060308331048247975141395514552077000519275378934883302994100644893977740956493429965705079178785060572950659979300938220751680027483083384184805486729700379553539862623395080548942807386457114547332540746636453455322169148865189603097787334537425796293027722255242203466855963801730481457679169104811409373416830987450023164142430208849590364979830253078224001085386512695512085393348327843428755904266498513439622496888608201580882043417546101250791258631988769664952915104287344648301804488798162420015968943908832892398933863940436957601601951378123584250251193048110088548445833168201274534664895534955163626131724256938122279024946467049077548864486060700526666293493146774498384562093483937145685479896606327312063253860975973095197078630023978013704344288865296477984167324985085755918999330585099370940540608299077812267292005758558622189058293084023820520774838564495629205520200566799165714924779534886070026307563115217469576626829704130476038208182701722591300317524123559128023132010518420878436902911798138138252657016716314179735975919206151777542162629329589306112753018232464606460317883872092630200273841013914063702441589673176797554373143142930179877085181816945676967107655594490027365649679038579924344482267690476025305825033139713127915416250806740872217280224414571680303068623470286768507193697207978327387223564047934555357846085132533441774257482171573826800163282321007149385864918193385884474279214596916879347282763492271372962568223523730546692849948236108854701224221005809621037922208734470260871664183367216470414940653811821614707832331003924462373383650778379200356749551726696440836820855999815601156302817038594097871267387955160898237068330949154911449784798173821257463735925402204719338689284182992597137966493335544219638714234713604178917877702596833839216620278281135193734914524194782022563820455336903387491368029844510955425427264293255676655169367624397945485533379829213661780125564695975637139991334694104372261832048920374758029595540418911515944369613355705510376152290753436650603103233681518807346400735628938520647930266569396087058142502961572107167244888296681018159189275032609645130112085967223198480749670932033867325346640159595936501332680103509728343340144628035704562336453223231830090968894090555188464222424097720176985501350052129844635733517532383247240255812225738425913601799955760094825835731945959269818953148012156555199454776279645189877769616201590858455760043464370872590633875706900174434581443253336008294207585787559484280585938566915947401499336190105336586888222744254916284023513738568412650784431109105050231945398019478808551181389905248555966414730049190465915441807917116574336240743065229612973054096153104290567932786187197644973038371908846189516562075384451737954407094004832485652471049992203690314571787329438169453289809324725204426531502525584471744635926855879663783120071183124039015527856998420048396295987973093268846666272842648263842589037232114561725493509253770580328629261686394181465899433252728970525376684098463702644951080586688784831764416050827473340833717042349960747092043385974887556373091850690557037710326194060007077786059235223073808583130848909313271115556234970430204085247076205896309252097996108296954631726310227055073899091515371453798664150328803460311809794463450031047557750504755970576885896686166212295139402467342702417931415599683544247728985559202037988691100003243512892836330606512967585542332829117968935336606864640313985916998854498530775248403685617373779417683367950564325296866042458275809431663999668807463527212384319894329740424803716382210930963827620093344792696620228343156372886491406770377983489934063172584055089792201425781542862937351363584665523323018883494499920981915345941728598067654877649823478418307951743499885289654656731708740444450757598662739951867297585784177226572641313711062082162121034721769688104084106434409234991012331863157315476650650716302410936941303064672052965157356916115300544514679651050479081408323236177788638071500514063469679943244916713678595491447450341789677744397297242100802692045941659575347664973870674102411345007441928239702248558865184086035999232384722381657074741718898960332333653733198018980714902614151889006838944489172387658473810382213174976019684052471075321846266586102940622331484099447609058890600580525577403603464835310430375416281694203515876365140495584262635247688588839397833186765146631459864383952718124849082874270477937384926750660402950172299746946416905747048900046926283109101408599862109863154756683250014543668839568443768527120474840590359930533628364940508430680744366014164572968395617895820755984052789737469227716185222254506429785351265354619252955067369278795343230143786515878951952582764802542650872703135745303337096173508870719834094682553133639869108900867990194862821518507070007929978903172652505605685561423241363679826492312431760772609296963623516300040329469335697547352869148327122057932762499527590564863849861482635219386013113002101828786251701410778901807929734223858432574416072344864270245326075982496725676787091111940475570610911767551414946112675776240549746242025125945128871439701229746715898714797041059042647643663933550374983506802794160585195106336637164231450528285653117683671020178528485807708657257383298463249999105099845232679191046494980176247339002462377516893536760434222331846100153700107902762684644356844627693644036171667817855840321273307880233410742173844469612137086906510246658551427190438585218461400909879383802301610894946778975781010252763323468161175736953843230645139605003758082476000382119497055219990161850807172813640757306668990813630455712603880415346693845223151838004714220932438530053292772962222702879093913849307206361674249916832494633856697656913307975819071097184920718680777220904525806190539317672471953161300183067423409454090782199053563008455662275956271204115493229168498861534943458456377207521795087710705091701955702602962972929798861626836823234604906985821181663253926396934558273108359061831973388150671591656852336055199242198435451005385239747135054017266616454798532220760674062042492286830975359979673105045519189545873463249573769249283739446054686051045042901504099283367664603053220580843861679935868235889253805766839612538966629033866762179478147703189414469719375653022440824495416215583780505464270799735642025290246451085319264173895832563810557563981934675610690454877206779393664027897651554075828509203793950649056480582791357491216091720133793169511886505654492040035026476559022454011159035030886478111914299630848404368473987864998627920799699656536225636322577909518489220013386086435729032788835807059345008282984843773111283732674860064431797593971102773597213999153717267904149606360672674963785738344933934993664581995442237970643751210251648770153014671945691769055193880638602385765944471813993063369209787242655885644737169329439050834218082005733786297238315390680520006043704978470105914970743316264935629006272781061939172667933131109287598679713782946994292121228189549469677038986097815412637371535558326109528648847887687862951626835218515867258685500771091672496689122688266482241761751329359109352404229819468130597858758144137029697778487919934419939541638406678216175014944751729573913973414574555551955721153216826522424790837223415518409158608350050257088150440968959436185895020245047575504049432682509499149923084494154388389032530796732749085420120439560026066155159260185495219015575842225855366019925022020783888686623320135289380267096354941080259703642666103236588894963594545809793284474658759258403006406357278602503270334547725247823780424488478794779702345174263328218527961505083324852826956820298748474757130624493270799629794618706913389394678772399704605237870690539233744667261495852104104192010394905643425696683097848239745650536713473041967254287280393893308617281687707356238208026597901525296209643485600281306954867405106999645243693510199084378778219024608885415611306562654370650949354605777153192261887469718275462639062374652037842249102001162185124947033036418394580090499237423872504789846107472902482523863021973947451424079869982953283790116400764529001526743148518364325299886763910139054795361029063558840766874082629053874945073086297426732847830858727560607157250739916512256492586409766726819662076746752360615622070238799236344562858846123952029879335878923914638084707092821092454558908009298275694445100907430817783472365439612377324621645756619753931868411125110912319895942107361775356918540933664579713118837316519658306509402704724801171834431673193756562721214531992676541275591481353121444329717610607465474780524239893893437746475320022088015160643162058820119880452857930710133346963917807770489905505788367010036047894795409924106383113327297943014598439716423437214713925851548602400534319510407223572637027136301385299935926558298646657442752031668394762000712514080860569971364115321144331284792934319446628404247709619005423005189299568691776675874558364133789753507140912162042251673851201798682745548802405557233386232301539576870787327279184195928331191410116055692927760023129578459014267822868682027266396579227693686046276810203865685804615335618233006799952904075465996700679417914848363655690368751922790581952533084580328037899072168124756918638854513455104075256961197796197726947000358002863314286715824905186031942670912335208489422482959327007762052946422740126554885113721290254811794415929813866468889628521602343596652733628265992652119170884580519366023631545303157536882342019506447673861324630896876589200874595412107169125831561066690374797662625089376780550506390158035128561634927858469821987734937192043989006424032176017025663997271723975468348029248552939771954311012575330544831937642298793946800536258008679534589654037101508379901409206498496620127704490823644452359030250299990573781169565316065109040308872606444669519148863137158165488891890930962759026429128326471727282995832709829890334858715297138008632652862821948907418921428920121304306543905593804811428492946661268921552624767953680295158713307612328351863183714940749618696943612551123754585693059612673091814453678679859918048157750494734136623359882588097905481518299953188906788838482173436789108258062637180832900950942810963037642269495917063458978844463219236728054550152241371784590483679021402313432689654974970654324749169957799575905610840114998110413932898305401729807276597926897099382454428892990474081647774028671343877722461398887395849933496089143452168635469801409370097825464649509194636618043615554411906252265402366577677573223675691627807302763173773096808722371814928293271746257896393388837901455798947636449782934550169456299280758581977243117921322457769794557517522959757382389321208887174857691099008301708066330190286823659474882948541414612478828550737942597829868990340817609839615033401702838140765687321477857092927406232586516741943309427984556124894967703302953762590087910140188114143793935357131050030005901472923299169897786157622205272861442967026382818856654585230230666413599527493167803477879918507066872734556139162670734594463772621843561939093589413169316517165672044429412571407383740932624520181102145905702516037035512157510079074503179774990223154682380211013770893696839455676077106295700297953221060047554161261915799518916313643224295235044899183368419334741291006868631963997060935225473538623325465664560427014469651942224774943308686144668506545664717397732889289477860905279778337634914702418177743312300029524859144677185157007752323599782505268325918722004461059357728956462005475528692702667133704549089596207161309029384130939790001261035634898516167073374837336932539498788631687614452633913527105157555496800408786839757768677976428349716657827510900578083586742427927213957863933824536948884842617670902220238512718775972143570921482029113464296000664923651657931899428173220102458796801736122736332771709999945412459787187903580757925822830064897316241527616876592562630446749631423331632076140747949499417390811149012251334411275111994772456849469344767083894876992910750976738543664732498390689193155105290251507968425942817785595718180925187169885062359130835223630892902085965142626759690464076083499067586005585688225765891956105842766747063936874056118933990504575348582007362473340549971046876302889847226226905229621051273342951888560395463944821862592668512104921901863392068138149257944555972773491755515950762622096113708778066843202115089465024695230242369566802436964487007332247949320370774277775211938167607346797671669509151113211491142851797835314010246018655532876605098827018340900272186427902707420960510567523672237807807395483758012088168183116755682790899401214576613239400969581517925361695235993674882288416206222065691369432339081271893877445026935475099827620948274566666860834103697849095824456369597328777374947575691146501380181130053998825881978139000565280603936538976736340910019458568150273583231278083724009683892144787659962721617902931519090300203281550103141557424999817128557654542004918021447369378020079356620851050223009708102984939901105653359738940254988177795363016280966735890910032537407776286396321338872529266656384495101614659723513354569722709450528845169694681662756610397307708154298690490205167468158081050267391825014000438985653201602063672222143994285800715033738886276554249399126210305477677571039134875525753408621398337547732209135180722714112030820397603504941772685621932228337733860072243744724154673523340803862056073549398373125008374798435641098130176728300063529977827041358113057910652543862726751275992477960938202404625616600212647764617537674348735728356351263266168680405799794192405773815229785372111054507564161881384281248135229320354235623945219490952294979097397158439464994304264456802072603178497361331863143634138969678713481607030400184493254284093149603906353492135479057622453540751965242105132826639944139692276905701711678880746972482486200739550237120707051678584145751586660263693504876411172163436819626323752214480669742143974926850538385867452559523079163477331434672078590600189869716079570214973361378162458271686513632909332877334857476009117593199039664067558573931949425347944343480198287893501783883960094944099268775485537901820425503607215804578442058106142807955663260844563985377878866206150335154073672125163186223776366212131980724805310876281204571958629170234998667860506764377544203876462419465514452554534625010410603433012996375162302131125538716855217541071664867397388016611452600640556809738345527709137200836865523327985957957734830302888763264916907231001093517577829838660181146328761627175323755175358501078767232764561025436435432849705263605242285084742317050996448242857145763778091473083764079659875568848816228538242073977495111622239518573684341317126295087996348945739109260475625942174243146082895404698149399779650920810613929442985779333469213593092966332427500230860397328237501265760978703215020316839048739939628823439239938526619505167933704018016059020267482110597062018469606051001364672958940860681759657289200911015985914782572770988358540872456000625781434638539238858780061809070815491632745462984858862560717727671044292294357766138180245452966835838166546963815836386650328033952579744331434209067491232083086651285845817193176117968811822479733873975230599211027236277974898546642051592580965543723649551524577154769262049300421723849631273722670022057025584827124461866087131801077320958736019658259224017235870094473527069287996286545158554973536360657226805544382232764920672844799042480263593813827064545403066974830546909182245054320210570741369189444481892633316889895889054584118241227526139307551402747150844070274305349880555470289851790954401215559206323616519610494349527561367647491979692142344452915196825601489794452015965446302193432612381250298339417376208522602814204433659813193849017459036227746106023500549686559961581247443606140303343062683853676660267957089993562955114380816784379963196698046603258948668524124651868039929696458557794756082142358786779779904279088731174878614387454527646480146810620342303105479087017068403902882699132027011000598763817974963067747850417341529509061167798720989532949845457807478774495050591234639709456763375982880432652933923700162877799269138498468547933393729869521560939752905490115768387411692133393744458044554025466517402053112915687658841485900676492757749196642748635002462399981080445583211775911816117201507285767599242862765985607011848671216977635578801134690602574566311614342017377978986797494681261869366383362785360234388833588181990796773088366692148768621378224988400973636564847765147142846578472837563817065818095804274851753892103031675058559314976807339802705157048461616051968798602376482559455129300107414501321700727658829167363499777559478245042001606873974229134506495886099157654620419437142726893726663978725890553021422495775206608105081024661350525407068446827645975945791317410283902901877926739355855231120394381169631765141999584985842859788867935458621872140452692386175305252368068849815774071816234385145297944236258699037235028929644258481110906995367834132640038906197196460605400061119256618432008254751610395851315130696590731484573513992335259326417106437816071009958005118260591358112264614050859299408436333414418105756654982257611917469126279581851166341986286919059985482783541618021868198277759359842494882647039322459660564629043509346309920490504083834244067975258332170711545038817535140379359226561858353628951506101628889317788643636249950018670493970554393221574600219349666574477540215497333453409926804058644913285276575792660818162039492370670940740331039358604394921080895301586834801208779186702943720990738688144023848216486353166756203926426760197316516465416323925902684996646436880562930619231167624685122675765848682883249659274600589161279766574599872115436778128089123892011436308817665840635314886133778500024247592347201663939625297707449173773554240582900943693659754959400461012200061473834110912510016578325212313703045822865172441712274529764242318026190547997339080195240305965677007874846984235480714961913231523116837319024695245971740988191675395031991262805931508377423283998365124099265246789078668466164458641092428106190638538310195336206617593305250403261567642818789022284185901180352874449314262645114066025854599239044032954573529728856450803864010261877511292264099446024770792995553655407773569414010408712623109820593979249750964394848579479124063231431199117996342082216350548372253555106799419091160004633362873756735215755088227663041982410942034105896685578691486859772438093856903856527573504950967573355961762318311486104727002343158104722798310272602609892187157119291036845018141016447785963130094731019151872088397751212965472982441713849630902442684853160519013427600255810797262811419812310557126809584528698650756587963536871194743002619075924454104913370817551846480002967132969910147568544332270866178298659432372723180689090909653328291005871676798951169593303275345772931268403320088134072183922157667574457623811574604068645726945492445721659761322767581734258557939044787702414953822421690402390931583966791315600449116800184476687530919557711447051609162348508512768912918646053434966783806169860995305232110168658494779003337329434752563352034665219247383816293490586969797464301367144061330725783010346892959104300831877401581022502662781961307007696264772768106249137105023869882555298107121293970604257431836311441053095371163892423107814936059572533677517472370965018613096673106901861505274229787097818859790207173245516838621143597076458017998419197604307562129925348084091339581151733451031278580915997567320649670589358648526432468457348977091582403671154049366938667997308485104401554035920828638955763675820701491411299293778679689727582752143725607581111948686476398815802921623369214462670846306907611730586684127590055529139555031769667858137425262916095377748062374881355596097112301254346379411986798516933309303640242611719447004008303779815603119742669989857293282208022459544580877066694032779137697519275855895904922325857997958202953569883319792500362722272840375909475761673695833762268745039728651099960155898542093551994158950182628006136880455878422561053169945874277432150250419669312097069223385931143217063924300070930314927142165823342057933155679416520885844985305034950892017739631825689495155738135870827893048488996302349457982648954802959745804608468670409575804944459410780512430859569441520483133864384497968168500239732604264119625227364919518956708803342809681589254162034964438815799338406305625196933364107365476583895733907609397397197452079132176906852770890814922958568107286979824119110654918518098131175052117292204755811966790364484968181344654447785726850571099472191118690135926930355325083867831863892481528265397099386151143874892626057224685700013380958002484011781176094472560524983120840206816070523586344461984925322462168333944616380145049706459279368365618819889866312473259646792399513598317691566242377344594743899499201986115947305744300963203209394230947288667869209733879835920522454285167686650307624272294526983299764220734401436394104159732248264384970988728233602947174266772810203878643640573379730928624389215768379460954524557971109913031383172962623651745610089393590394008014818329450359016934088768615365616645627750507889883076463162149001797171683940121234774925469979015591141442421234010113285936442404200101173246887212660147034487038982634047945342353520674251714351894598288083302077896269115847660723820103115260168456545560987544599276919097574479173484005720140631118143794257975685779888989622208033085123433371911872735588751960916009977453127053601260422044961898499517044715464254077088671263494833555365845711999763880146350238342439096136052835379209956051394791236756782019240829052698491423881827158947939406773362939064885167186543247414553450729680922637794838952929993465322708509102951451004757450369711744371230837688310865905138271935474100793117681347828863452624877820503387284043197638693176289953543480253424264683353034263291556957893376631405004038039126453947442596213443419032134940539413322543892119526662157823038298610697588608397761941396115493107835133533251917933539248074688234024243744343067080564309008092068297566660406179203911848323389593071390363668483958016760905356942103166431368416336551088943747414006681792811441836899333264403772903292206467376735388389652600450363494023363535179454613691038297280335670852192271896343357816165982371849651898748808851941014051949436374208079708348253303377315643012346134186848817040362677898879958641208946129679837990076507099601862330415356793606938266691742209678532040560781540514281240018602079267137062969745148663760918885987457188878422526402307888845963168481510457502257809971506755531969677873351097031156442186044335304906542193011454612167239556336781257516185318607606473153117176701215700722886555656230742742130018800655427700900016535813704075643367190561027331931891130530291999698071556038205973512862024712467056907796846745787429822426851393044682905001465943045275346748989066714724654775526818070654481260133696909437184114326545789261559126321369534778136870765820510538314290135866680331821596464656272341832581409626845657542037490509569215418293739507248186098158661629884872818934086341749450613538864917620818669456004195809516001262495539998085861336427698321105582574705733521071341266740000104774724336457496591749014124068267768257472376691573767688088262890847609366696758331612681694330462119231849101781865083728362329821376726317641965651675670294992288863867443540210848042962557985822114048325822570969970319945084872949316768734874376029536676285722893661963977095499762737562296535845395563000102205511819668516408044140727372853776037312632390443757056293243591332177437159507329637671286091332141923146030366590966546358287818299727789739074315625835936035198604649753184874456695678153227626156664104645770381670106576042852379779144298010101043260251802848809341616162018095053361401318735588772392506893547662398527181927235466887023391964021714977004309292350105998517958281370228456096285917914279554554950409761639291819641056316156240700757706972164759275216930218548583614309313686290324026764456880673336357699511953669757755074994601015207189826226465548758062865151054616952395007287098592310505283221267317549144590829334403494762663946122511292365217580720110477751206617242185293808840726275490590049775769457951056719920027273736016111746663174217127684366142405769103573268564805158919790437033156456783623383457481015551488517763991487061718077833243544740837793899325782381394316169679484336293466889582312567372944457099437622256126230794685738638823012365182607755160770178375899170345011002077153033028050791232062096576995150241274318999257031702181583125537923266980709302804389080831647082814993664807032053105235417974372058613302839611120335066068705131743612190841795977959307718766800693405704104692792999644219073914062961453907969292436111517427656889342291580261768530846468207349805721490189368326293487839768955103254533456935164954101001487791725643505914083323549662743433452349074602940870419905320860021935335555356995814652412517515204373292035987879352280579700315158095749915495126893954864636786188200322009533405127370179970189773955494230178452837307311498214190060245863790047933100260122220734957445551079784686740214874562045916853110293180157090736717679883308517455063771362531590714708526423894926630503017430114403258401803398355503323057830077479963026487211697407315613402140657003153995669107255434708695980933284285463122818522038070622406887534442601671679112554314831577587974017493941094730690507483489413912490562148279061708584585321057056433265847411299015221520826776978245016249743771844831167933617432699553349347570594524166951895241474982119197305459141231264326674302835223823106649732545671282137938675383903468851810333103685056651850426972451556607455103242237208006705995927291803942245380776382959835401120625403217948624776346700508578117529763309678800264457499040374172333740581173242568592826630485740379888989608275790752563314632473013550577580353251422784927419274914627791247624244977158406201683915857231503543215457720455761145191822792524586127048956468337424903746939627885975170052556812906273696799924303486437768771306438903981535691187480813059891807569246045569425810630898897784910992861928419473318517652438497023405322025727327704814159582442448295446332085367625480903039550708860588136906860102834289921457449102389298920972178355519448056223993619096547913193760490495372867137838063227770464384288121575663782327138055294468628169980818826144061961539253801171726686863000844463689398160438280230647104602097190132666306548937297224656983147409036410819760549812835600798695925230180275693404816147077260864103967501727706116715217622891522378243732806623262550635868183401782942953298900340662830400982614788376965548331907502187497381686262789050380227619560627226822888597840797856857226435238660320978874492765195491894676576933312046625038528528672056420807583980116086626913059007970548856725717306753492957587502386991217679193573654127901911515034682603221727788542232439039930707959856416478394124826882111794612185154620834021064356797614205685791588412351204951995532566216734159749964952173929016579285903467732453364146939388931392975314120597215593018736442767043068905336375249669417178956172631568711503122261321750317129070564631428037976646511405649386795165763491924771475828757502830798270851580513671994054824799730610809959970722796343265168206249251513165334045232577548546354915607577831662733555392617021412938939567490648604635594422892765460822306006083554584968014816919509242736763069267061222798462428539227591101329241867912066620764319130503068983139479599558262068975395532761414197643021514814392391879818028269851669108657856509996993000983377955468759552844064276140493619670643416241288203888412314140230574874633153369000802886906815363487539462039561041475067532819923377698611251660108606151850696950983168313071087641124879415426592799356194312103288393021165775884567598817395960701578100910543867831372169599459837411498803489508611489881551006691304860203922749557740945953959332413904420968559452641431229121140157144808822246194863209267775821874603899909050469148421163950385512433898037453039215745710245769204134894903845193563568403924562630525590558399733377933799040776250256948170815567020640688150258492807511223163631074584771935749592697969061995464963759347272270343195968750274157619100298386445891065090219295658204988800162846394397656006789247171666180182087494876558423588111702390887940992500151911020746782347457026027378947310114384664214376027593433844269653783616458602368428627150474003871029576157427113433085534899420517821525070288640982869610083346174943321644930802058283223753246189877373510232577445480065480918706995949658875458665230195124617208569812326574874686460424569817781949551838843909484069688867169759603527703994234232251884223629414223650750026891913097871993005690937877904726988524232181827544920246216322375189410078269330167383866211296683529764393017231467542890688727813668296902419811502675129323920752096476044981200740103693992025922822034763927098305007308559576491495948513976359713095396435048528471275434140996489323050699874698840163189243639117001376349403441155460750485665096490361812382540091800224308912947557644795893595589642301565727899335649091470245674204508593656812602679702331358611003438635799748099031410296269190689691734976855333185268256659899299569736689921283982605780265751439761592753577541957229255052682203024301665601334341014934080036038919129889135522678794186908115706776447663515408364439869661457833265685756307972480780700197004668228225858279486745458959535104482040698623131981597364454473300236613878190435550497370704855436605652112637741777116290551691810588916188159867315455637185035410547870723315743441904480364678182371409246001162545898841257169534652317801177168913768646103514527138109373314529652818516355196156698287517589860192186175529751291581581388713571565449556916423893812629701739886749621641007310226836751924654216931872612254804973984168758439482401968903449595116608301539545066857581199849429945636443108209561624338487307895977784702870984981238544902336290632454816431034961685794939336318186212493310890078926552801575807550026253519334532370264372444031473129023423063821199295644434915336861561993932916223633483367496236117054197902954011328188847715451202652817488403875608054232874470609603011818779214992989500400584134411325813101020519285321529308987815599306819867788287512838864259699629384964062379765945055218745944492938851061933496395836768148635755345270567176341611971347055194815611105148394558590610084231616552273272545283297558562589520712762710779293614815378985379530361155140520646681511169854070142058476480874737675614032427760311665706528907262068350798520408102982309843944135197996067699722364099991229411981504272599504490433744003442296824675567550637445486750489765825132736777685898182178977131322516825248104098304759674624961148489051652352264843098353309611353505457234979515211701443649918585674865321230970106630902665976322671122120316245068251904958856145725669996768468712848453212600065505694121704984790039619676285306804109195966015210547217235100550688018040939681964579728598759189857440583860906200792503853042224880139389237295831084244938131107731472436708110857528372371567599689632265677659355424300788214706005393931624430973665513508479714295181314311164510791354795581985258759113702213966614238374548951628334947809848432596805882597361951259205739702288060055266384559551130239052226961731777691734311818487453850153907018906127270687511664729450465257897618765016189078609050188862490313436659201444363342230555531317508372988981873589079401351348194172228562470062996780468861200117997330504038392878655431949491973476687143676034400054948703423727935580443105162139708026111713098339552717241760965589503778079711467223177386048185672238596036531001928896489708506824687766187264623462147305165739115934808122755421929285925118937939365391675575239287498314499086596873304700422437712796649664944453692311934966244012664235713958284175108579925392813483360740056011720251527900843809763928627694536439445668622335457231596410344266244833381697879069340689148108663316542290427405704853536798011567114437508133807405238909651603893877285388135850720592834873168573206655553165815941257793563619099814396247684384556141186302231087876367928974413155736059966188904364959381845812878966979378208595871573793279263849180813342904880964835569525300758741264591384457082495018338785251295493846940071994852857950713915743685718250337865258909992559826941220833037349875660752680110988935191215342465473963547599464127978255980749542254268262832960676100853665563247014188041047689982086045245228179797608939068913672814404600880098878390491319669148795431055378704959200481440955535201593454921633105716287603389264696507098974717525805627005463934669595401576177070035727122849233094385487199831554801629671909872834960042657937298340234555689624811773915232159070573834669202055462882022894799374797646028577469992710216578806605157950926224297566445668263430625814995655988239690967314847973779759737710893558291845218580546751949430616478523732297880464902901030263290639130958847771683050801626396443601289230039486556846568580087161173839027282663381921064719202872902892135885234850465489494340906450339322420975988748127971408858980843414022980069286187634114747717679599628618910708389408186435778383233533902686583066179253115306710471622318734385618985911159997310086403964217721700706912044664950112453882674302192558497387513618412025826243264325314039592317011001309814411862980804714597152938082855146788247800091832403651019716250424737601860144666411588562835439726625648113683060306742778877636942701018288552280908064700676630396203694481744744551113816872373759819730293116232412120930550384172049814407586205296234503349991014017598253746695284903476937986084397557028935658505600412329912149761342774728830986076358378743853563971897006636646673737696595898218349069779115330977317815693889958849714044654699847952773765123396502546861755129371163946177192308201418137669614739853400802158040265728106605033143845260972352526155193090954393455507900599179944887936410171291833649275946440352119820206988844351889485873007245554959444789095872161869902866423420447837573974055394732455608379272840051089040699919708174619882941417065672307975245104999348979475517901048191038526281060459187386132257911975935341624460509308076173438814349031546305271281766979270406869032660744085569350582031817354416985731709887600375266174075861084075664481457177681408554228768845772290113325737555610778445233920522858500542641960380123136080986937833752728370261584882367966245988218956314005113135816130561811426029138114388330001794617441815510151800598186028769153777315454153510665858331943434923409098043623581083864054562676776235632351473473162521263077747339220362338825147228710488207551149989831636166820622023790565672925397152029397513942955116652126368954641610667425592408191051173213662078678912656512334387298240916337659078545384591271880910689598695724332567676440084121863794621914505916113749796921643501230128515158755331830710539964596482299197297831473409294858949198519202397047511456187518413991473238761011159627276837037065171769572392672804543917904051307887804867637964904295726110856204369182311441406016544005578057032915471777025339994468542823389760415207512075137760930993418414011881205313190425241415370650605198892836817877912678998919303775387756427069985156494329851962303664988801777391935103278007590138578176813982388964664565862920887066019398218388547096021372475679133206856339484167233173942564689230578407204011837821445148073324518507180911591662541037830642834747899597853095434114694500119052901994899785088005744159542734333561690370008612976052113637211358269926472106348014492660176672047559100086502657581410952223048673572312057637138897748226914115607255501178822752854473713906800730606305129914007182970816637748973830940059044281643407641141416091192674069441690389759338905773797168184702460290613898381310115064827785040701639608258002314682456696641414954370977896163230716683126244691688388150261010471480314874095360773595766198869853501791186794258449135265234239170788624428531392243232682515519943085868725525680242242262699656864695854288359102093636443686303349475888337707303904577133987565958735142695507324849875083474945877842653945659298464120263278899587989460651713592770973431591391824276614305387330313739470582251829762730404180430472698825618384134036811600760503956011702799329227865523774415634371903736917162559607526627801340496486584669693323506043387604862422623377678503645660308710339379078195642302641429305322581610700475784250220156795578023186972080403378808520733278449389548530818294116351674474873261883977471347276036333408655479759747789837967766005713111110033060964679504926625714653316561838667913623576111479278789921665689537320233873501544503907967020403780170075251373328800099138889176060093502463944135245485974322152004130514842503713857370078955418323989859787178646750414519266355398404315773556072128033859865896939744275729874492698301869175924527309215466909904072804980379883226621690421778752178519555153929888698970078384242746700043741016874855569157348384299712319870401087459691323573551841956178612824016467881920429518705149144882083286155902344622478911070243513713076800470344868641838342325419233240256676141458840734567952622459170475259478528703990476365931892094428212257013015065899560236533609665285187618801783247152053083482080482752560139794831785431883610361843692125941767030124389865233979665806128810530844567593700819124696509682718472123974799875047664586535245761526161538536074538706676668680398204663915136407935842199766204139376581975191044567239221095168900501532685679619404788366092989929408006343148236627528958308468029166976808152239315874855544230955216043527596208020404581140898153261199934002832111535327789457057733095544951528754059191617137627135115487741648952956341233270900101450134729413398711664313170090257232632408287098636450468485375310216060511835245594624501349529104581995334945217539463302787931575335241317390614482909682108812943374549499098691952995589367699908557654336976045274427475574306320674695923611097167489409101563843592751580514559648763628954956772825229797570044454671291127478748308785941313515823361318670714011314579928308073000452242083764364666962244872879374903633975352475034244483673688915367674529388714267163008602989326202644930057810352046294709936694002759414090793775794624123583434407222963441732334306177932315602039723045214029498366621456063735913854017421887842186923267698905868434684085073055541920388040411794324089829248027403875155946528018706685270352546818674818847686142581654808536927130124093938226191379075066384500442792053012083641378915028695789604449594259304582231496338438231377036153638739398994817987043067769355446566757368204899873373568886311755000813925847260208293559105643519731375420103399496620606828285652432619679732791973221453279301412289804479177377658363048305189505398055255283829359419044468778752971321799414774034197853367119499117236710297785698187656207767063710071574289342057577131444937665865611143449362027846713578412300851624605386440030577762812818459992630271724414510182331528671918405539393682721038737271657321790841072327611513332127928250383394555334849820825264356829777292353261310159186150815440325711557520495707624380272959015363589477947473140840038269811038163580432017164238365603628725533191401609551376697367637561627848137924020844551824615591464977152967080638383295663023156468181932522472837036312002383050274650990199886628061079164304588698779779908071458394233599865138981743747989999306734117933098599496096646676252591074063716874540325997145772000520212252609890854017634352590119611340809360906991202540743080455193845856973670194363834323548943874895623495542276740538846571568387586636946692962221165878600229335106456296075496144737549252843891290052292530866105304809539765837095142768280807788304045732736464028779501111762298324646728261810948853869763816520440888895102467711280099319356594753196956490083333491092623668725916950968249069422425212664923737822574914388038856244588998865860846690807823897046268816335400816455860430607882231005083243217130826190692984113624066116052915177043356160861051279768194808689820834321892584531324491408572290487722037612809528974086250018856563254863306235949243436054986805942724736564191122699324266121416621075328297363465826780072457525523970867466418040884345417255163320220776210992657136861441564400272282809404541264080571964576609619202623869902594510306166463340966805651332543037469909077325363463389070542007570251639525618062207988888645574899970459010795871153086488505484516242738033742031312929027232316853176068538321936993919879857687495837187537597405920592173068284602238547401167426976033801076643616504921346803157349966642073536817314177934725884307361702182105970919996478816986134835459203195417544601439834864567896590623929044883027346316510538519211546837258584100050102688730166019245952268854890982581018459082604152850765906660485031861824137585307614272026471383871342583631813336915688928020667088229201345273415646926743864686487666329209914397482790684042971554723573714240885713205025330968941503389999930233906062485105283974235442248162655648322883222822655301625309483520875449986582315372538540282866761273141561126947751110161081176284097299893725616030286326658364175002082477060375710371096964737889760906900663104941348771990866612348966765150561852942504511433859554661481923271745388796966863848937586773321771515255304846510871015306091645043726086537827678417022126730865880520691514889645832600583459782599158249647136252660307491484920967310452324569964335861553693811173540848169562173913470289187157521635333166884925462021050667484537517997255155969883255535391208410775558322146385667704937086008793441969267043759089077003320288874462271020534188007382647192418950174759485626596856797622725893024835840514838766210975910773005658330942824012270946213411722347618671418312954396720340457260651594597437364192654324837787917035649354550612945099098273466255792276382754132288698904744340348766361509464996916450840961834234978710746057448802436088603584043879143853535889029884856155148174403651189393602602941346583598064353399889528900979038824086124401267256625352207482857383615965755086237465873103176142765127027809220020071638603075103014100339652790899359693713452242360559117423015227987831227946289490611361378671595030972596944462212221309417198197929817392729195747358853763821934829029385594078051399616279293683795194335844173347544911103652863224673973395264907087869606328236795135691466719461078623541471956963743283157588673473474308547484702346681213643851594918403886213765770695476406514158137534930985217547329619178590837083498250275044827096225221502129359472355558407233695128997464687211434557866988679278314152692827969660500380886791628111248389155588622675930791365889707773608001383705607584110113827017554396871411981378100742043438421228131182014886876602991068259637393954842238854176651482286398847300689442589391115639850550356940036780610798342426045522957328877620716127691397689254195032735609756285235661825282978666194474766233387341743530237295436925157120454613864906201406268790957133449811001172506335763543472859644439113283958917490512043280237236975016177163958770655945058230777649245700400230833951558413694188041137420065022635607630906231309673499052464105699590522650227814847964001135031700989385753918377222306463801599145272225525189253896106310300975746008024555436922124406296522321440904808053445812553576339522964395731022189546071793778418657289043324677032178362286353446579472141656409247447361128158966398566790702734503615829809728705267706793502947834364371857029346556512146040447032279297230193388590173120841687891790301246544280158196231206591348559700261767514188235996183271662759365168919844494964898459841693777699142480145244680709833230313392863258726216388117656251357081967947417334139519159599497622769435503526344965833609203338270667750870463608810253180692452739704768619477060092383226478074534359625968793977618158419012884115628313525166493131958481340626220054765789254793028337848037625974599043937098841246684863475817175936379159141664634111128079347059612094473284786541756816347185527884168764762307192435501134724924787336534307402231893953331940115083269857441260362730488056017169361349644287181885777187733519009768802331999259690150315913932428202522181580982955565680289392216312130648364657389337662459445285031899178562173149069935973177464896579549489314237254297305212894167038299917947383490563970761376578218691115321097565363724600851359949451413197817151225934936219667123600586385528885035032860558709927907452774817427767249895193180598421003334275371691468189863165969841129655137365820813805875641350182818093152641929367521599505359271658932244262376016583800572246081170961681671029924057996563358094740793546825111415140194913215451502555789012819695996326731390800493451973116546780238470763675049700109258830496761279857445982918956964156271656123398817843258599953956446179804596675809098192609550154098340647349518672503114732234543764160566424838256352304562565744062741601018270266753373994360247990956011616893042762670251171137417270102987368098574711482681517217917045226882669920071746068129239610741413411364609254985909915095660954033228762067162051888507313923708689832652836428824503010548866114948505952424298731577884088498598737221825315061882190044184334950035525509722996610582760679706100016901306717596880496884622134930819870693293686729384056929771422165654153927885321506873895625076572970093157996913444784684183120934686450269830852924924869902179301611339280092959263485044791180586241363168121874117065731626564817626135198857590182835149720639761727156252302563232709291437392335738793107473222701178371213278720634560051247617216234538306526021946782665987948458056288114168926778819974409204033543389476514960235151507320097789590745099346088346806229924423088509561036603051609345985063853350700483501729833068688357794933921842530336283058447688142473370913878714985082910157090037870421072045007405745685117431296298859361780429004871013806302731597292560123741890609878938778404863150398631856357187255508986026166517997757472146060279639903655645783026703605141995250584583949807001349519890143031496790743670729399775486039701706144000064859026330471804603819407217330929728023554756202291058409575711397252258476424208012482434363940623725732671268850234989891099866146850376868717187256788865414828637243189815761191518512223492779116127115890919654909663129351761504803183867889110963381156206862914582224829934509279004382873791255080556312531021958505560573916920063725962653912007400372619506389887695415187022647181217987341121729899271629887509288930266586835878910015026118329474357471366192688626372149990876586079831164448996755155598826607433530983381732919363635130024068231123946771964957534689704717537574161756009886923484252238878351052574447769798255121775678545612905845063707676259457344566382666776620678049744894691857898012629210463076756115309793477859826841548939136150015145610013669584743120913817475795860206044187149187740957989133269433229545779234557119506461101147305708584584896709716468422216090816733878666687967603593905955432325532357217014833396516737442491601881591268992378294339682283330365837906979918255717067614817271580657595689621723805295170403037300329052035454965556554069693388776257955265760458794110028655163971211396729826886861606880496385563310756314334444428973429000266452662378103954541307626608566691756765957723059934451367745163403596929889555686930434770726214123182177645454376148225627804023295659833978122587659952214827324195143516104860172817917642897914995592460828187035916455320369793816373177463579976380332335186498040517046631743022693326780900597588886044302145263096443252510884791823724711147101822663776111652490175419965931821892567732327704383408991700897203199021794726032895569373163574129052602072132654630488084825290996823894473438137867302824381943337305705031297262625596765529657213355587764693036429568302384023103139287030504685697686855993909605167580956115348780273591823715661757651748391274716997747245868203384436124408842503270702172830802879269320130215430922585086765414496732002477155802850275432022177835641663271336809613553446303506931932992878694835377826221373138967587177836340549560654121121371036050040143427173069324195659899179077747577612842741997725446678705486052469928863844128146828923709446132623898734917393127315243940891867837407554075297875979200315773848826119247958512074877450410633252977754917637553516420157880215214295960758672203926310014041881877050518732173586789564456366747697507223960720050654989259180222801339171140417179780870503247689692121775901304654887646596352130439519508558062461320420932037613499578623820774510241440449969398021626727936130390809140458393641380248895234069338739435928884505021108243002640907542395015802681178604510885155819170824443666114453028355965185335210754555747817589011421213829796441125378153696734131551106772162812319302221799405353132060576296705170635018313030723002261989601769901788025567554759036047827684854252337167135308739062503406888181266113823535747948411649949185852385385472762614401995578284556298421180338196055338750074324639809388470267446525099159893773330363678620888909306553868881677764363221195822784252359728943562237821585668951377912364781813478879801907661421040585178377610387682260917153358274608390621613191500333166507118802043962054561251070511443129687431857201681034580781036411813372871352289837232407515529600173873232346734934211005548627475779964565206320118492865720404238257795747933965363244615576659894654041779399029060559845312959767369710212925098874298473209826884644906985604529715801254846637065814716549528975217291081899103429785154514899028962247055651215980333985377138786190573671435938461228488722430562709985963329857226639145265810697870066827322828339918143862134770706117528727493154205882792747200556026499545147483370930879163709450756062099543405062823943272518997784138228566391832921014824631995789529775129621818842714135603459721218546755211135192653484276798000300108771178805986378555547922052575994060570368071308814749321403249875590651027998383172380421208730724627665936433052271809212560252468928747254788735292945356636869817716476781056456970137214298315378417312135461014422754651204365150659665211848644571047690329739502250084008355119901886375662153684487585508618348734686820596213095650113957793946081668463993175616573196509111689531475970394400611482565140785137633978116972323377302342781230797319199331330044665185583419097922603160365140437136267268535756589604206999804570420833224039278052127380980410438812552407153682444989520316411437533912980573451971812554639413744790704843731252862185953043440787590747802422900735928122979398194325439717676201645382460019493947013428467415985396200483537945015710067801271621357087244900871736540216909327473971907678390986117343524375800774058929219493765690438088810167959605773157474277167669646592462720422147394877090597395490664553520831844776134532566356519469616246636407033463642264614927987479216660388054310567460628928949831907087423568042769262128626619723780616503566373765944674944513047992400031133921252932748047788052023457259335045074810663310276610630929029772226135576977554237969759500676121029429138802092704059751574639582250248305311874904531995875878564333821695597965678420334949118912678392757907331493143965731634435922770794451090752399942751484601328430431113859088041650212324633757543951269315174965016045765965120425309648526097201358958093737389201077996101050845785841280278236912427271048848797696610955168771293091502464097847382166931526996630455378640917676801171699175270923901335518902208190863268351577020973137469037668078012666192224430952666675543639564574173331743059271873979952376949141806433845489295640110115193341909537756540726294586245527825068304158876023062478994110471618429056288432913971855133424042217824629503012293650529061017588965399487329928591002067207775577276101798482063445249794475220006848785077117484874387541613918478230306748305331148116880521390995013998389434787912409579876254027028788321707649644105677601391758093825279000679037951085268722549476472586262233875773672860377695306792061359565091643494433095580277116167935222025133955493835603446179609789302034900944230740405298640487755021375971215221494222349458807746011227890080357543328445008177134556015737135989585777159506025042854902082173858956872039372638726881825682687768651776272451032689278085389451048803850886720676310347928118114403052041336546957693100898112841096763449321683863251977561555934970194049097786450397722209219369164587747199886347655955249914851145458166223341370756418488146755831674169636633579993590368006232621280197290378508468816092243049854938572070808711853134523220561170120307328610942112889061242690405504099062046471891581943962609263795354567733377726342488421452015125920344794883483164145376716432520486037995866162287139544302984654562834317998931120912305304320940737280285496583356439658179122987118949372558585766943959108766739774468768021121194711242749072929061515392428708729821791220501297625817165333306170314634189478565495391912765244890641824036193557586008188709725226305396949483782542425911996113380170392060054498925049518922862760202004455358390831301169094878375555261024125457371658786561414136710426640768494649612208750167123759093080309705687090058570699712732334769023844650906665427365468809173872221033063390316680093290989098415671857811637962436409859517882064891205878736382377243117675975135368039130036919468585527067822796406914899908324869459698986322808759944527189527351088665935018537008708472020740444143365466630450896530502065063944809974193985370769384280073175602474156120619620479399025603105832631115628817041760340571798111476687188216232823655403523849595049450876662586355953538067707188215892837607840134399976412499452715306247401982751236677570722209952407770993244714873685309380533503438140832883468750016479930917608549467886112567697133475367615201740364831609670758774148843882597963575183228053294026385502033240258603657829442140678820151665678275537325494103119431229313380793920843877754957642509317419482301585320215174109261792011516297509424486696290169640975824399366288465845367611352126557781082673811415302652053613356932623840464768841275502800426664625816890360053520648352370542250672157954936414433520096840546318938185909910985543036231933398133131781143779953948374113302804010701575246755783280613812794932004161728905420061980333538774718276449441864322674140055166196392774494628368016467960464243934755417591561121999466744572637751902771421849859528560610066722302487770011382900606994320059446635088930031968045194097711093850768933401717901020655994479356944189691421274825893315150340980332892712119590453086676926661429205595112647596270074695050555263742985911391534580624590653243000248577305460957970764923460230523058131666459548551668647510110499432236932576899245156948797056770390423842477670662429830849693459021463466688057015010601079271599124839948719459599676096540764503140611983795917835044217426342851518283181025956343039107409691391114993034005855626752954952289564327799436912870431480971513587003710713164674443555174836489314064077602582002513490580964668481460976894700331498232031849970079014871409737763148285820066774807722252875557458135774465687335579839195335389177435506089326078770461631021321506487557637234288897936411287809364612681437190468003165061876490691888277771631310373312352349977944801293492245481500403181572262054604785490824519945754148461814696212123511330804671766550623797998106465466587153108442550209348293656600057390229186050355584283008042222837429353718795452593755622903631655326176343941574816752288637119108848764695969007396264132762368270340283783289951810951326076242407822985771653840887227015307358067770597295782044402526007410352945468742354230934054339927770884717024272426943137069475649750580491404408666829386899751802126053463403401816280292644475228202360181857507786441637852836320293183217189768455193345949105255015741292221220746663164355079964003938090784248002706429744481117982496843509093518710514019378298307269249067427740292672211460347612056306742661015347455986138745535411634318532127684135114517733959338585302366301177916958545880420501280906200077628626349769199405622559819850597276440893996549348740149786832950453894047299992151682775892004293175817464298792271351889447296909118994695821002371931327329306419994803489220205767693465388398318429228808412535221751098228448726210295501249998971680424941935207675980351388202453737668541905295411999479571117115654216951845827837598106222955040925270136255699644637882026895541470066243766185246868308003909653395158857493281500520194361167970137406340010614569586799363910681402740662782350434117310320213117810516290469843159429292656918065185832721498421745306292680329403200605923236736999667484482080051895160499433222779996748187298995658885338854512275049806974867372389194599413543830683753074914540325347628625277433474350466932801886812699664957215802344015830847833533779852603967711341758594132962242219959427944521713267521059114105097796797729762517386749862727790603380336871900320426806509916749635434023750630732522390942698708066086447335104217142461709928139432043860787392882928646035183521015112391791442238068936470578399172170048060162764881829096328155007252628795481973948375723641903041186912719333795405370171453592061694472570746707227029203570741363371753898535987537173665111328510451773411138153796865109248527032937695366283517991107722628263014020229754052051282736923588887102026801211399019745036714621290454627546560037382462492757116277208289506124613917753647001316350014444892576280958859257754078909555795416131101531017841831715489898954218875741192040301018908334387124156893942407634375447497963530672549971603181598286095481285821127170940619488393820734071340443607988500817893876234711820616386542091238062331648901770048708972487094596509201964585199834416699575823083942176682515687444708099834232423713150067061994568611120835869731779611376779279840419637983638207591042494639651240214059166765092467470725280630210342172237769463838988888579914670108304822009861110666426283981066567907715731203715951376362566176444986776637435130628416354531833948148483686391806782780147969845844686266309845270500718579886768249844713272343146697829073110688824495459418593149768791560774624919306346948885593066166289533863338531143406316650331052624980469412999403269511223886670719112688194015590902466706685186536602308170425042790849103037079181022363039313899206965472222823879105896293022677440920746920133976314207305935910733854041468224462023757105782628004760871668330354072801567984484182724318186821959111679761775292968064054777880925462405740251096165247311646788523471264383589558942999398417173634328270636435059469973402676347445350901957896636881021594933303440459826126414077849627481730415207272751522741117890111462313582933348035717003526149007895348242478309219613640839037639223388348103635042704953261236895974189874224543023740369489755007325411706284764595038845727105395113762364315722799264948287427899883538785465562168779852696920499931800365343198770603897517729310606062771432865049525748468334934017953549900017199510982274078072872863266013339226655614877326618439187094051065116747238547341482108055494162306491033004456556691022413033369297659308674978707801948533171677485619368968417233881599676204341219728003133159197717346464729492297394711100529295496375888644082995473321676191817164917490409388677445746912310041302784424581437238937629335269419847462745531936858128136998242408650955474827683152379616006610742152604725702276625164996639683545627975618341650256243865071618545504648125080275499920133746046638838293729567998411353334266630913264996230578621080165469553054377530938788139771100427946173716222247900510727663463724588443901122446619533691088844570667579456001090474524024762286263068367045046483673179814435920123429145162340169901462805135721482158718776053700367805034721753487856979454118907553403695520398875010523024849287806400242272623409794316885555892825106056412273144197764111242754685909506769420136206262508845664940743773329095205917357731562955020535855667432416149390782921504273160227590761599407259144269648298837567018388958397998815184208278545212428112985391265112126444296591693432345434063079474252585699880391769882342548103335945931471991444404509465965461403147817010316595196126499288699935264360408409186989918342393873186403589566155624591414771462394078170436310800354471995633603934063998515826533765935987709894980647286032750177946533994618136088412735891467048045630284425909661647806110378977605989414279632347538448282224266069204963385269895923239410831566111358149286296327731051874134692591044726369827491401014528600694054833257982730356572520759787503193192816618120446899581471830331762999510749645642608777735168809641874635697179317080668755342570811694098504844545107037772319587336550298373904710414318639408640852506258244431913145983615062222539805721011350694136118925091202404115066534349084494179954463486957557478985017024779031378057400984590883027109272752558251216825498145497763586390854647754152491020672419902132214941389062253794801940551440370027640087096430066989241668478347242817303420887377561480371015411682440924881025201481605555493212698888748153515111170167015191947329594356654806747000378141601281667391991248571812234546173278375059705617071151338792431312057024024255921319454879453947019864756734226762981140916983476058155544000273754381956529499806696552858751412929437096633163212980981732202017264343507544218585977239685640392885673492360804959935959095996516364600160499331310483389004072564069114398889137345639884397406668793922815671360650539059455275766006977741384599121997586103732841870330448494180126406932956891864501654253310160162743921800712887988997898331141144765220773882045583704557491536528653131121273474794327002070172643758497779261583610752385275652327888659462101288744535291713837031275083564616375519547502966385759170323225609739906257359382024197372264818731945586933262876650789130976563448223213368947312805708149814883635634997871877201891778346486399064364120927149505999646936650279906816722155811322920616784796218979188518965776394969313874547270713202972539289843334111298948472706608819150192385988248919901101410717117856680032561136058423636621224036216728543955024451289029616716424009744559020381799738401837013223228399969223798883430588493752128827075696914954653972472065678471265190156780268538876043113116458839849325648938896099105388317221815433065841788685041350314139295562435058755673392709328351435084394764754159040391366616375331719386234460921228108896044073749087678162866549463450987765641729477690769114774092906746177873641341919613778492970650805833341680059718308749604180151285383309496158669457164133613770960821703285220840784356891576817080795380072939250480912547980400465125982070750712351298374952818542802317241444421626467560882652284387822706568686018294277644868763643835403894747728073340389904805709009103530005509124755637175061789252699128866783676101822928929295147794870653669346308558623270976682439250827022652093936990192417063103542277325080594434344560738791714278704313637198843216841511448341645364919874078616389143875016804358539028133021624459905255856514962009112117789561874392961197255615141732145614052720519267602886908714312254489210042777801065364003560926635616341511412881975865142309750597402198342404293813476923847820332688396178714433797929545109220683108995281362850006990829037253719508690975299350433161516349635389201054391668964861328296805866108039263688109843988134554041454689761953299625157322098788013025316658501607125827636253226666789299913468893746888594319890120025733366194998461159216604874029121253380355961370213219376562480612530898023705962331515381439258463385765759577378579245923704742870488538327465938596822471557261256947682710999406186144397470684998807777369499588354975020650000279604998524094513084276947075622856031955022190913620421780983727219480612849428090043127924314036401720261620610784727659740445896482297719150681187706296375603982801641580264934986672952395035581408671154898838005217947508867847349582271403352551030391460305814706317545822339646871476553748602493813222935300171366602581567711753289230111883701663091726776286943048699936346597453011628060223790474584621873212586818060278616142639834757035387180152413594084850425382616344725767417921139718447771180136170344230596149486953653346140260043305682991887508739976582540830698192684031935173730873286484773146362494557011573535633779086928265919772027260130958901785743938331422398844872231378751554046031506801706386011047792166182595072842301951320410592447568209015839428427440552446255881512794375948324799262458258363858241972391119292155592505503501633705421504429309148091588410258990124932403117359380293351312808290619556534347969949263606751354081030641280416199587861067671358090080813425232415320706002010601625710111833556912014797792982523796987236091299771993238659253456648992890885085955497364378657488167379728255623364810439051896084306791734204483801316752030662965732189197518804670790201107216797566383431595937107404307622317472762458860773648780630192417815779123977860072110363423027670750679743159765863019866801082398860270313783835429059379916107926251061976337430143667975767037926982277446906546448013101512707736792202458133909066626616398726226148603684697215693369090422438686627077212255078150318000875589505000632325629867993837824520868117006735497179214139015118242741731272699500315048623382823061639964060500380855925694812539726901767506101636414253473678831523015299682158158623096040364104825645332782228576750815784700914958764128312592433045978599361492174234351522288273722528382786252648283999204835345077594876535643296897648812363819815334203248896921401754073841457690338548965512722860462341112906574855880760064141190412381302586252611845100129420936429626137368748407720262761084694679668721334301178061203854683389919526659096144949536362478555003331716878985053704029688902428283607506201151332191483211412774534861939706473816769463313993158635882236781868186314623516712935555963656766921979563885300446622338252614090848069609357290005703668061104747044228784773292639870591337558590853061048504529542913028219155746269080378027748031461354904009101885068851750892112768313052987408259402919787486789588085070386905363910981128398403966345321344415279489001664725966034208227555142293211059511983913495080686663480186860998148592672162476003098844041438716551703761833954367112215047649117060999992693295677566739438237824959800555640469757164668086640209274400815801170906321069102538535886424145546893639092728668952141385450277080836946771510980315478012123370576122881851927245496934860023707265589616856986808733882546375764862239069321694642003743677605130883936201982292298034191500141644550027651380167670204090133922202446993018020463902279983189149351489874007499983763068200892020130503532353893614266524305506432635475840158636476804645674286255436909027392520783634054713158914334906286141918198844927809465263454998064958141964428983925880130390466500206244734905689111737673504305011288537635271488920341091360983949864778991962201662210933990390573874640767298836964236009520522612804025284488150273460391258521056621491946387012599018070551251900017382247482419481880384230354716949081018534619887987959513223130165041159498963872406898397233098336104743341165645251101674221738985851064469056620399840017767860190941673756468821299860706709095854655884534905730201116036457650500982489467588238620913534667034426449754226543324594580488624584373913825255689478469030974092331288792669633942663255236813861258749614290160130254805512562293229293693851817227604617859080278662284988844306363653439900172990938270844180104251454316736834176518479742391796813980476347461956308617993333966841814534386408190097472068453717903964794077167397991513575986607814910772549609223674248480412006518909415457093820905948588796073139938961706084768826394408119536165096195169890243375711701857276399940635971983076100135734288335527025263530812466454338157728347059783361859604788113888179245142033615513857112233864074346113646409244867284398099466356579409471303834625375657386142965310168530384534461881883516345597210347979018772168868682357051006098152558645490949039702662139749670480771735260176649785178412607780035077834841510260547147127936266018041654338107120310842457608650064447902627739218631522325766584203530431003419805346899020461682910171542341714495725143533400523270671058877275759994349246232420297604199447897524441772039729809256724371797553420102742856425028366105911223932482349841872088100961489962215289393073366545702206794864311807202371749308030495165752648463433784849161737617881229528396458131098077512898618441100100466929500667015166944363918891404437554279489447605606996483070323400144366444794364155396253898529335542804663386882460998656698674758445284915334869808485865104303084213434403448818257605451604764585444850516152695063153502693980583652306519889446978915800560219446407856652084111394290554061440735181010828880369184518929383271479866013382087526190532130021583128736790292438204678017089579254779369532605255521210732512053044052759756037604960269563850128881808292803310552694812959128832348664489814444000021538478941030651336258058416360149712201349361174364974581752713779563819739683068823239178534040211281920069932291803134466634294836068219896673180005466432480017704236134103158485998645881590683664095852883508422851524856508203273756037999834662262290899001832389249354292968323509442807871509677894185299740631752175962483335156832274771122698124878530576096993770214019763542261578095047000263484501986171788784143481896079465329573289527745616894109343138244354606744843902168967433171354042339549887350498601120335183148513852941212327217218999473454037340410774601440246274684323081016093604609533094249437746215665757412368377611452689558786553248923199092491552897840372132836977195898414726277720636550199992793728217763527196483491376733250484792256193525083840569575430141550701528045740185356763799607435105621110749722016083035608878486758455914861530558513168454065825725473526230160738962060031900014849563241787943500035199158594570517744461303648220006782692548199726714452184615422430889269958117479649515915032616816386867399257856420568764088120672592242757758840458453716939860390627058776774281216080726067375346964721427270439639629114900761565883224006096729246295159011171299436397797689067660623141500418578942154170224281040145218988294920278396648352239874078055373238019332939296961836118031761816189338602660660479963214597930680589716804465460731687536019667538317488040902251069415425683354174595695927516006278019546179072395336213190709169267700854561781922735579405058296740813434318532726569627638501850213616268876401610689287292422013456828647610290429823861295265047527007958478255049917201244014139495220810505790542825759057186112295355967998521130811943381831870092237356806072602966082682901020472988201408203677752937973405166328163340085741827180146983927872650072515683771247628679386824078816215624639026278052089672376287156264632306286480167160341132683120196913966906996378403356097036870011937540962688559376393378938122744863629833960674143866085911258954052871818994267231175212174356899917298954001081196181433078163278226025140571308872926840724557077383800646658394175327107634021991305324550473130766033693791025525177711107952931022619117118948850302731065656504164595866249274764758880689270905465111112470164954487901044280807335679228332319840077445913028909587492053009313367047333043564250956463938288483801762312196378341195954874828893087786587557661080538950884724404220966969685526497279807274924574872463365423561616875247295286853076419572764225804249165295540292708303694489386505265836842903912058673300172663100975970238794496795362882914540849929429901218438201975944800909332997867629262335880728061341977410900013773622135219813405546784245810432086526799977735706235344600163011149077868041053545195547997049957947189602402330334382513888556866843545659758161095729335652019458957102735756343192567082746896943359325177204023625132788261917693971335749243276429825498289701100965277676974147336993834250548118621275598476385998481143213720347537701460241711835636702370882645843113972210586991038443367927638151710249065858988885322193234832468891427544440805066834646060553106757523883834363416571164349091472230105954528816283758948337248690978261810242323619473384100719154860800966453237245613912980983422362863555280435728648797064994591039668634416515275025909570160839950012845918024834163510741697589998684257499427595941046897463032824659656288477925390244348170866113124996502028689275397301556888030597526070938936226489845230281186524717992885103898444360241707358131838354252137205874972417591196456436861072328112865288950221954208209820810791330974929169787051562071664256922733452031082051421793371366010555380447409188002711913567122127970467493462298504615453580450878238206405972641464356176517960708384785275804003681341131828061016067462195227930336359644513510559508961840100041973217372806288812212277215269631268229729419885846505938895663107563386227864155154401337676669421671655823625718998708847411848529043333496678347087375547835706512738748525978805859983472896886598959027317465639355956507162231605639159225791548291066307447567534297313761388010307203023303291548216143364159760017066491222657316963553814943650394020113327397275882088714666295701833734876011955012127544461995344006826677072812198292050618554293881993299673440659268219355401448214607673020561663504412140055566769579549237861353668353385904464107740429182259337807059950372369575353680084733684273125649608372971580545871684763021381374741783090190241624919460274223438803698437047209215427238630691441830066559726385628608747845675712439934232954981879103536403280842968000439181439600319056184587243907626005909795558569508622018504343689916710208418643493658628377738916286784873356038361684950788139816081840870427123094710426114119898332067892817521828623548623558360974442886380592170777180333744433893712086417355069264731388542119661940339803341126654577556047188931640090282912491665864466981705854993065138690861669148269523739957430342444120797794542239529205574515614451489943963044907004018986245659094628762631706687776015093263899456450484318608509010237854149147712485321336945456019003851201910549950255816344151337311905819302199183049877721383694461841628036017563754246802453402981982679228144610743744601276423045499915491695987904337126825885919647356899368697496164275516168027890255249325266606172218080672815708913491527915301801444874705313611671142957095751237596200603217719600061659066065847618984303996778123396059290251268582819669252304828701088941164051202238684061794091296656417339559733563759019409058861875101020068358153835046933853768758069058566307957729136230802748788000733362861345608837592330486626147637794800134370936235731533561564193115135836439300875443874541250349760521998176670714972083294133861222473264025206038050649226058257334078142421808552796034457436664352785081107302706394538183919310361794430121911402368831766838392312114660693684649495886724426801909595716509077776220403958594324324900164639699228470286448324005059714936372220361984920726012096516435517533615746866246839869609310878633129453343916516764131218090014809835433025397469585481319652543785843211070497873681260263568786853723585507947142247752178782536677622752004727829340440277489965905804943928003610219702736458516108609439138696127458753185117019702912715172147751352516621327807744371494897152787795277320448787030023430467289482017420549165246184383577709436728230509281816708476451416642672036880854997004352588838922874131506107935351248593318010060035831971271089194278710432417405394948586351980054536227278904428545570631376590450528998308266630308977870763808947387762929189496028753406258691825895037509034029860798979075729720737525650059260237986844595295300318749759246025143416863720940160105632762351950652066021978552953784440970476714743266842435578344558631060814531381021133429468982478986424364099883825184908425815930577306511898803050482710303412392684737335231907312363008244675929838845982231487393963598482029700728388186007897890347098235494377424227538546387205719336947864947010952575543052875393519187793487825497750693834056227615311101961055185374286875500599611301209398925805430091351603291364414651372370866806227452613678796949104345967370761111520436209724976309512749762022754964698271167566383704666669253540670479285617932857110630766394694136101069493012031722361171276186440139984195695259752597327498705390353904610272167731031392496484859821490373549489238065822266192020420001772354985063582881980909819260228071452518031718989311394403449495021388284146293502150999547476228779941429984915791805309569014865100471596534825278080394719833779307737065467858806903899408998018279197682385921527309285675820801916931801612850547806874122109476600530052404942395045944468112248421031692709257615477469596340407985837185488199703174822838107139571744277756526833237648752009777584396971657612679085770804927327031761180825882407754914295304826539067916657299104203239228402593408141533498543090535070215413447362480862984652831630076752189636587688726974964175610109332190790286813437520171742492020731020737991537438135444927853861454137230928410256336144576025850365460946562927281616645167916811016726744626365711153695269136845137136328336214471468671053883941268077205316711763656763567052301238556526694536989000707863112408442038520022147269943438153281910854906871565620158305078173216284255092284440609645408163423620512363513367905822334051411649896278737401850285933496451364774143415771871827642472640029448175638295461041923580251869161630262003217421199800937217537063260731041138416523383454720697211625584651872027682473655219990874330616579315422323725551319795756441113635482132887392035992765258279721738599415256692856860993449201921986692498361910222163378698968058511626099109618443726737419901643072945448588163486350470113880437979830733639477855917821022030431241323986150517007425649864571971641145412165828928982331624427112652243364341662868174176913680782913068375898233157441782584183357128157430699087939614986496617047948741573434024905316562950600036071477661304810732576411402844287016302064144881794907529035825733087726529790541597151946140201637727120521334288746243369724857540254808542677484049587313217603782510534319082693087537429591683867558221215085825219736384238163825524867138951145008690398410963939398873987577228303535950761080131677111891761648923891103714344934031346070972264478553282261980044648091350118110513746295193465489964301265951901335177299247425001576638961808791806443481584538674850957414917320090996041539380541497141668272444069870585155122206648235280970933759263211316405961460958408190438553955807426213966699482704765869846228130525388240432968369144915635579088663301839637764253069740233736851536066994828493541452405901688216816642576628257946464779448455276131444067240092530812930133274599740085082185730345908872822431345617987508163697336513183888402645665568258438341998380443379779745800999634426453564537144552614249948504212189393273857488066344442663227829139151858450096359443398515182283350967725452504533530237156337107735782892111463722218508191103768003466425731036705388267910323477893709881038762448258747617608262030289460940066908969005887021854651808989514413472665322372513581158091092585253878995895462895118152787168908509630145554234273917156280142118334711444600210842128081050126548430374601153223874175451568944962601799344106192230309580296991812896143464655317747189279160876650590029496421705747503545223569386703846168235916754579848214417681597751335238973614061270719733225010203790165156306420584984037540610607428295083964358053630293760695063456747839635703411830589979933336584562837503509601863856933404188727529404123131545356878617369491280446241516831656297359844295213330247114958247617454105409960798534029601588228027875982087831027839287749958199806024162521136940454122953345380391637497714336803574644879715518491303924101772056933806101008513157169381289370109069451436768567867729630126869956159114447039555420884606728781925764836138526621620580038568103189316680163988946179242930473698123216549969531623969353646565226597467222876695866393531974252203545542737620030707585509308053323981250397882797040405155131122051201523388208584130287828640354572061567167753524514738125839689977144253924873413686292010403606566332543183803578043947396142390470605388240391368359613391467997555709130302235334779350822471399486697150828571130650325766607506275447763990030384211318068946693122984077999495732073675404308200446405261827910868092724163824841195338282806903677014605589812534439242749769451832421237375341510938542931559336801331169268797557336098988597008092863113369539650246614601738203749049648678724257965334938054883738143386963892651189437305648621458550867759608911122697035091993049460274779217804073598092859609480703834770939186140746556560209163343850744704583855235598639829645863515486832041924821080552177715616134517880156629720093910469428496156432348703223446520175154199608576683374622071682819966250406402987899277395428219317828911381560202172766528060967744907666710683855234821311249399051457505713654904081714605762596829485339569577472365569926988081254659574233036633342586474174028623385405384276718594148312624206527129752698419758784682420702702747418197773769209320524326202489850232419697377550194121220690876283940277469556822596455621592971990548358455456547935065178801141657399931708001178994428143675350455749271437457329528650867519133539660545289386869410645491977467360300396798561731192740198752209634446505371898307604543204112915193011294578005425458798280704222137105860256356981629138303106951663655493773310282176185927218994491515928715551080842107275499163777920418658008137974828751969707159054274615980236121898016660585334517951298568922469856306436189204459729992407936622887011538803462760702908487088167321209803881376726891627487686343490220087626160427298225338020976476236603850600594623258587678926627038349752546144609661109652317064052377156568200374018093639850809027025154414320110137808881593706842571411998259521869458324178399161684883157500521714754354229324251728557277747684770783821713615169514882755094433235399255651749251917876692715478917403396260135710971386395405578435962550888564610395393180708778590854544064244765469598214279202231640840530071340515479421473255908134782930451265656768645971096510550681133952824850641166494229652128829592214415902179949780683853673703634176905117840077414320664616646091286802723581676005982419188974964521427390840840953863807485196261317231499084997882561528507637693980135696803104646912806323891340034074776068198275060364534458130016146771731424231175976177827223097550429994187983993585575619410886369612895517909711608937570592398921171776771634149329120518219940475311229790954785850894679392849630996379330826820504685227702434305477376275132222104213924883279164189463239467736125269717258909268775349188183887631336097417721629293999939475550719199958058940821844270380759471071642984156950232681017568225248699907900061894721615913650565347200640628536016105817892104128362660986163258443670070336679769115050187792874821606591423295763882375351833536146276214029006969994485517927710054526465525215529610086628636251774083014456747454070072120255879566127645285338808152294422535765253576826134830092716881535251714178852849192206076021884738667767183121811735104563813886118379491948622566878213991964296331103643365219155469638443359306434647410846481233569462847326176057823838777078235986167174275847753597574753779369522310544112423593954143049070181379216426860906352480176462054890992249218137647806938685944896671194095539198407195538303942077148101573048936002095631209437317220670472494494588083909147098064872715693649448189885390226137532473517045398419503232351821590560657298479907347978765273634341757236007218730496122848151605121869811957377965284085281801103174110091101138220332130651772925191093324188418882737092330727415754779309388926436512456401386699176959165435734047830326910278595887145663788324476825964324315109797189980967954728856319819790540137496949061638753304300104015082146699948495544248641509904051076274183834614375709115399861157949628912029134464313637911343380452242752578512893068984466906434795096245445770631223646178255410857764356714616306088751954623976323215235663671022432603950574581285989187033595816176183391301270849729671168169048006901991385137653429826982194255792499017797092153499626418197593793234974030004871720315400545272470598460242726690643325262697999046878308124986916070519376384881393471041421434262473364164734259463759896081264937023719539637550246921714929044800694938708091268924316477284370278587195784925105289881525839812862600558013315846882153479834285985264384613082158809635603425403783291228487249761794164432901725215344706361965458082778698183119331885493056881951383074547289948152002443645716228406174907955350337319567220806323729333849961368061921024240109788234367802772582352908862646667655719390585928551605671624294847106022755281552799027569530335478608578762645000499729268833778741594521111890875635298788118894956675988061587780741313073322488156669315568592586557236888434965084096507477608837067442261373307929894592885280729397474208000816553522883829371371572816197829437128944464325558825606528062040730985152995637324463105815343926891470381639359500661637554039927974547943008858794868693266806584857027923114533247869042070624211215613290278150922024406907980229912909946661167178173836851614441430726440011980570397439438444200749299601625178165820484528009288488382973800128122158303325226120844224750044199806930428967426946001722311289517198813562146536519675781809933295836312190913771574958259675297445059521143819254942881547459226670428873045544824038008811182759198194443878478718599689793076161810200055281880994601687862762040838593647360385768039946290235259133441025300891212281934488879675730714348843216402703824442864653473237596364548632002811336769125570508488577501907576111454496523809050760543614407030896099910911947210873448506810103055649458315169835147643877423638152867921401213482317942385975954712347913381880123664860149382731523478291933557440264706043822904968326573291745014992687437860098343834656824192659822850070710447593339046933731865071081593713680642015020978347193498047854835385466259999871421447346129569753075243522177521816176921230197617926505784685586105491838300583336554408879898533074686151542484889357837398770247362028841918411022310066971458494923366195251234890637818986485085791529958684200569156757926284755572440949365065110629643128697406958970660798408317931037411399636614279796117020549155106373839051623490808790630769812267676217850199934028781945527077594970412792619720299245528050407450790280191708310569239582807006308565704236917330658011045531091674322258065051553703474978832576570563883429194248763624847818945499495632518170455830825409269361760592619782017048394568074387204853683863185749229672893924831173365786838236765626143289541764021766231547253274886402730483756696657383783004190394464647462542006159604781356019964837959878780441205464404234360133345881351690487906287383728719114601332856849634491338557122850792961078849187137666783368987647115579550655914173326972479442452133910155880171152002540355078823643014788677628250571458610730545774980731871602349234479976578003554453154799231017244296342161838446257388075486507177143334605597564527991464099009477492550681146074143560728908127186794747260207445463747359665295777864061238534883382593803172003121945111383127377800714112635182948198110911503451853181683535120909805398367172164684199429376437563542454724029771587696125468162754411416772196429202613063517915558364768958661447725694287218252634478921207315321209346905944153092178757066768370198435365564652682333495035611925371607803836470734655498455783198468884509393292491977977012758634784246230635943299057418434742270887548620590636934717100167652562061282315827780423698559115148561687861306270873092231210746719852235040895201626750564815057976603197838240918536299622222700542190903978151721041765092757663205876061687523077749877786121455382946988918229766097957639417087583984743020151994007993588041755972917449906143788815047133549189238820647973205362889421193978357645553258997275976238872368752316923479595850832366572036843499985581840935382729800879309751762731838851884220025752317877075959038638370347226448504320749342796486015703019945528020693769180470874593895179382936662552668216389785062186359482353831932991374116727301263136436363183262012457874333888842181560260824873287852771738340815495427384852912901550165082598000332046609652467964169428137344774359313573767080801086311297140832126745991413944424502338707848682997082339162182056744454758724638523871363346205976240682318579826861844706008344703062250475418461043957204274395508076421198214742378837884996070692039622051981312157692326790446652254815412489950958179010193559540139332326912232917364326504946490470542173058224920746823222172425460262700565550640210414966092800092386791405438451845048626360089289103549086686219762230133456665541557255125666957829778524363864499523178715393830192753812701660581945711766210581946690620242804426970876645394197966530599998367523750152201474880100920577890507906977665450906917699350549161834590523775209881990297980481351123550742737977460642425167270419975883020904166923230845805792606624289909025919457582819182560276287364365619172697685927878401677245609872974516622843668163202297708385534379891674513855349112194588878881283740597760757882669788898692646157112961531704074257116167902406599304403868752753038468750380976386837013754702296037639286756441581540225484437154680722842308426436377984939752232790066759010007335275570628932046183816447222049362050494450829242675989331137686922627834750418303373075322799863782784102813381105412899441275634006369619513411923982276084710969592897256990223419395654248681948334604897650998994768270805611386474811993062257430223214379912918248569534877111750095047474618068005374475294599080355964069053750842309201644435184292829517546145943813467772755698833781991840745318652114351233048481629950805221241248377819136347068626314402911108777221908024665548402163053841026494704299263584195123289722880345005045176037883787695347327529509292372703908988576800431928888780902535296508825009913391685800406895854282631338872908281123517918840926240569383466996846474882744791818103095826107913862303646409347400815295531443237395078083254287946178703805283624164014876583052271207766252536071787722877647010250798269338152617695108288826021616185721951795641648917793423429925131780610422707184925015669557911041096908150281421606280137162375589035874199624601065815029678701261848770582077003386268582789457338080495495338790880283571767359629881334348075746256155589315848757849901811546462283454129933720580992209369417080240622926051804057868501725884115883260150103682797186300237415127635738453723517776829134044749397728579487914211681157426401052358731331825859331588954159332647132207745926909295098386196356020141061804244713749098422823559082350610863594214790600026639479010904520001720178321607024575237506374981118850261251199881962560265472280720886264023206453195927227020027984958176722804041570791494844140453356233728753169629930384027356437344497521468226222627194110093768430834096074061859228739798186803239256155879744632901274684583701648675483745611596660600238200641470531530380687509833918791412014122204181990956858451076208497322842218187086566179349797164294072820487647206272541473254457306763592388874826945049992319175577475305700306058036258821805642183507166347647871455763990187195291634772113735546188500493935511967988808356702945344087187989137294305356519754673938253130920785631870482164677742391829687007656342885577707846969319061079445960028930726820140374526081075551892991955168014163765441686083894973476487335508129196868136374420043535522998152257977268967857016662345047052426059216080450704994745655136325545342267304606968019795336581268129291836776266152219864865055948150018284501139600406864286413952221897606067489122178242220262384754066742120818605934986049231929900874202803274290583070690609851612206832928396513522258731919354062538522860614910955166727691993220971945135687463582948561360496286820781342637625358578350897885426289042964941604264059876623113560494962060117273690084645049292753468038114373421753045875092922456915938385040595851793399196666432968839224483256877529221769386630590291910408781509940329852850309232946436680080750361496679651824195922893544726877178944387186135054153885827957307980215109864638006048472869973129273447693332623095238360901002633097691631344163749099415531593297260579001547544549944403620485685137048242577359526120176078745217802317785020765410788612863897374294966267815075079244212001934290629417781636402203248824880363852053205640816636990977473171045083880325245393035843788552988748077636214365148792290280858860114984207022704266116909941843073692938062807758170288799934153689218061091777416703905121110459062245059755956392012364046779348371453207241358689518353190878735971776446780489383800157174134966986723165629795340238211707387766942481330208029239411794173751084829303834409335453188002652143349326586443601629989791183221629969093263435923511636573845120017740493162110573108703421939105010567547627313991384653921484571533152597740149916993472787844651572282809012656438455107576352879801464595237022291122496540647957459384480533949842614857593489492845201461356128939815414850993332854393731867310208971575354810344639588856699650357658223906602402430811634554020970209582920419880913606856881051935631146089390299923371470095329297626615435517097086504123230572703541557027096927930656603599465894420046795215611758099849006334414345196074387623185788378764308110338731457155615086585095416716191613357967974949406392207443120315314704022480257510667796134827793668789831856491619806982582621767271743182854380005745792844559407021691490122246513886248563758601073210065735766761937854721909066108070526006033464601201627268453317654364787642105958449928069144233763411325060597517477612312968143248017986427623921540385694045730850227755013696006576288885028561507118943126008731994886643687536568093189122231562023994259023752566190632256381556709440672830836353425066837102411235663814600099745271312031481435060870109551270321754046167388410166673050873627569926196137482834316427450570039327064863987575367076112018249393625501357995534561573623140146564626410801169003750169078165078502915287084010296809830651463796557286915023474221710725330846661303015722279349667327624075733426351076749724649110686942261476480119841513009796455421823823199419530218319947577717934438586937815810395962211268663112182171999399530337013199091147949760227895181090377656299094464163722549765228917212465486151682890637092759254498353613263229007967318862115439771361143911664217115874233444953596620320989235730804232918201250214739534818639980435613864847281160060627959524424656914510425722591854381554852036032617915201552160305321016223614712688226220873958729680190242451688961289074383893403612386263758748264122213346582032822152996118895076719720253092083774561233612947151981544204750136456919190072982566094738846584851500927019379080561524753789165833365503247949522107036685937257351761577164121754132574612689907107693815179300797120008991963260895401882891284210322299861703000191189956623336737357646465197198897274228717271406428712354522112638259148021477470464541401857287675670536549363626553363616811250510072976128261957951623464434832993230262345621183702300028181939227448818714115493147457209273846400757003671665958098866907717003634850609086157166657384332061539046185825019724096914919555305225625638055691430833201286097563755933858310888099152885411459930921187800550989110574072105945225779338442034004781839400706021352336345263597045915128185677851073213975184596090702732907944604367847013032285622341788775384797083985076655639764143327127857886797334854821345800663254692387015918643268760798222022426304674530012306146306082175548347432371155390544853157811406917030818676134164976706273882573403134833263216773284497470170394992781903828670259360938591251975761497026258710784537261411329249306535615230309045375268140371014946827433291077207835178698790729296894062063155138234709609715041466307497284824319707074472451109883194200229971933862265395066709705681092818744765714557120360666434384166104300941382177639482110264434009324088514309182947536716569496899430744566013935575812200975085502554456933011954509704297578389116325775406458249602004505769332219420039266833929141585844092357169959106586130069314991733351980048824334672706747711202641708763367495869611522934000921110415580359192675239364108216832365738778775653590315968312015133434737072164712170760059535424822831614627123553445159032884624126728647069994538836059196947307461193456758484341510836739075446591050924912158781725943605523746567076075165120844816763507997932209610105087338113385530379435674581408426359318082852109573193808495884066931716477321786017105539906534735475116119850833121581512526997963849442999676683911829790646609737250268066484727429546413542359311829481054642709978850991565093795320160100027398545987744870959793890752003219058753699752759178420315781974607083698626989525750435121932267014158935593489795690142693351169239044215921571410296781046792736846222187165333242551857983448888360297542979974739699192946358600218073477580525700902985874255234130469744692625403391419165898149498647042260458721543564379239624266346679885448717618572698594210188611909469333345461107970542363002308005200877366356469170842242575748208095631594417581302069582286088043359302305865586869803072699909980082644676483495288364202456287992287400548161483686530018503084470843606801251699479560256356799929806776014241829557242055436917268579238329196259496548665950755684248842539707887921416469332645000589480431023601558760242273927341179738354142370710491915358778852736715353545213405558739289774644598865157568747130080267322033918305308358564590549252260563257613381968465178802574036496496913729985975068980350039154130176890998631431546878693630446056545651483575784731480338391092685881982874930084947039316314771958179295011984834755668058616031215725452415760914421560003534662518421544816427153020572338870123438248254840001835815219169509448223025015093815068374214262621792842370616684847277545661727041705956289023992502847926143082542608991825557572036884493781855382073520866249243514623802646545517813230585956732351049815480023703720536966248881513655563080143297585583628323784830939818796514596605089518298218155509487707914939364892187650587076986471976481652850001255405213276881283550175088723219094404483376473159077593326417546397710421230873617627970960499019614566987884915519107610206398946644972376941965170780885615902585344948515250879982828993184271728801568461112188113085646430609387850221564004395333899797941189061187947599441865906373485701743968039111394769877835444335817152388327141531116606040835194607253235085613401057034764257947788520350054293047010881663625680005795317975159655411166733981844627607301741487893436128642248752039666621650589659066051959517432594317538882090168307291296749859995237431493993660446503554560762864928298889848784053833826081265449139056365475782564752411635637608389464833842767856950167095540625805319888666895121808129692667100107796473281220753718154739771879036831247468678791136898481061352211590169721338088528262225542184819447489461486937166844806089384469181940839181326347971590368920906552625402206159809708314093126561514755969533363294944824433374413232544926620020147263352057948972827129638875570961705805544283265759966514252021843857768741055309246205992309644859523163297488570539839566147021201063536861132398970482311628457714163327123318214091588126096231910514544741999025757405741054359153041420705525126996417455636369431925389878180511110408064750018323404682861610467306131066411423326704360447045331444715722199706219227313628466475069659794099263107597217116609068951438015452663961369315128800825218300959372447105460179742013957584441904509858117220727828911405288881413422383632790235349122641138920649028067331252724016262915457397489166080938993559685127591647878009605925162799639687823828351257120945466921686771037320067183329849131207475721315213998831669576942662458203680769794920382749346672887880843615209181072321195306036504732621078213689829681892738774025670198739981903834223836255698546233115491312903604834994177910060591828233661135542225430929971384118089019184715632720959471953495512491334623613703392509111768224327463297224530383634712107885533565716700202928018287867099692201123945808351765707845964493703104537068857996472702739720080873337890604010716684797644093645824875224939727284570580724248101681608706189938027985012144315419450760872356608135485634961482645045423235427240368500732036746024896864053248396227696518635253021085176432902945079158278833522331750862698580721962857761323662929363603711178458496559236154603884349873996662645638332307638634338610476090307615922593574126518500722296052967676588667300995896163460107433103423750861975685633827939821988690760060300499269629398652998123968906308975347757897832169184704425179727915715132458013259851377466213203369774724620835696442303395658025764744478690032765678963900326144574421976894909547576656146634247113589047484279932082033786746818493542867824798005805397537432136709706989831047840596968885537425751760101233151840874607913822685539977487600798944806017791014357691249573739096853851399490544524362781386626422260543861362278172778827253421874198930427259073867134432567457749193712151053534187053740087188607502115230073527138440870635242018526933194871426852537918051943003885991724956621436556129820038599916048739195707069954972518350210965315971177763117979262267828402125628783746824389987066994925801230470117983905532175812694902590700638203344389797693305717716457718087054874482738660482700999215147820916950303702744197933481092037887059973291422712559849912079726102671995162066521830800515730960938801591004380910693795324404823531542804854784675030145642815768899474525892148285032883126409612944368158854785336616898069619253307858505624685398700536017985908897192230984476195750230588606296019519173603480052120341568423313954270753944001532036760543173358595939671227249016023789379855328802213369315243833121700712722685546139111101194216714117797843995775083212130931816607804544330389905461699306366364481160629478759523063814043881982093955221046892670585032835800772893157544531102481224589942872019992238923454251295119117581555804783707113154756001180654591123803477223362384054649877611747455695200330218238487458709453832788952207186987514822393441366865341992357784891906336860258999229799896772511220590576802345603024564624891023684134718596706520587461650503584663820319610675427698288023578130542652970330349907638170422105157594617395185333331952850193258142600400327504903730280258375161960077954207667574711554624838352319244929783248271394231344652214185564833487779751447071657155561890642571829548752336506357266741230470494933675631903505995489119796031992897264645101118197320812635037495327621123062728546236900656097692746705564314179003849691721780436537655140494053954524896974869413631689619754821633839801340704020102255722530071693781359825562519853802935693288148308632415175831314995258568975570921597932213250315288698777446420809756725085777039499301011717567263596070283691181082263353350197776405047612830943620688646861564824460568183063158239073958012714902136164149748519570597806424812068745339512340271893724910657601671796411141774450906191629650740681475813466198839791159572881221980432198057564604583464064895517362359689455199688450469624219273311484769881039877406989183418661032705558348999915959524326748253914240792211175594320007267675884467133570591426061975824670848260097309948737138705846921155057783294159983183455079218161901982113129028736382829903065520241464744637483775946566126722140545809179538835602124660704933104265716428063869931670922567872923157034479818723995541823608723922075507462077704757938624504118627940579935362425363283039520353174912172744865660678187505357788868452168435755549309225328739634301651128905432579866116137156251996862688425786186848676863451829901716169599537329671792423040605132684902325956451181925357422173553548035622762926581933373891117760620224778069176864517109935050035647245128453904126344737144227700982741117963420636504045676546691304156310025263459811639305611307551102484725914763092456764922667611392831209510890318052823789072465152047880017507091969352202845403409513421198257018002062392414021707714729056059293437442394492692929267458745238947889758867297682815454051709898753962726936017483039045851529058756264052846294543325013274568158565078000215116953956394241310902843316212208326604620406470145945696209776322007111861726476649014331559163386471276834206433982129449934307738619286458163757047876407841513773047815212413542263718367606877757944082878861816368539490278329710372397431520541436986761133780173885103569538275171581815874436832668811138501252479314779017291576969495615550613562751795305597165627704712045025612800891498394142462040283600806037370969131101696444389634616636440602493067477643620025189150244548890398482988355617948815100921486040614205934908735773661962680247522379457963341446001973344563467824647660917116695494701317813041627082529444848833530275794926711484827970137773437646931975180010249253894108070190769800797585299772804080161212422381017154892731659161714861191137514602960873433428548962258035013220353902382911476361511256798071493190564783677036300858373453658625390415061318974703430220704420550387041018117920024875189270329595347975032151183340835116614680527891086577049197901977045051537410566030152095268923874529779902457606962936880615023369297158246295211603252133029445837777645713477224845220591117210634719224643066778970847262901909790991211395575837826776467796847601612997432079927695517873052964154660178031031595861906678984850581176601511584324827659629159256559396024958448883349554814578824718831342909168436414833025105281297068791230971845362341255514202390990989106850998283840319492767908974432814992514452706411970987965508174443878173992567424670672615484297315414389987761364562698649710771190678703457383900060163088160690684792951309399135344058388696565911118447084322418727282982215015709807802810297821689096364577054289547285241159994924470946814019731265906118032514517106794021514568926742021421650387688576344883867179770235720692586009882900238779281222801756046984743102988382393732853707911710846650530376600620266822404764647020774300439010480502710413557921643567931479766807549352450439750207795304546413312520906044849248240246633134077224090213974442119947658737629611457839517631189829175675274697540513007225474090504422260557450858067603974519257253430967466291617482160713902539936383213609886441262346892945152929064051619254187300210733400987450059807774595920065081228193628622678458722139621711564979446903844192516820401822250814010028423964233963067813153642063228304638630898108331674649206776580187878490336832641478756222301390462756609359180946102339612323405799275584356301140766081121561165465009027801857829156744458893764847501357851809024131347229028494496641617644186251594758109645728476279259378260519758647899981672346810363618791909815179408429637477731900757245510066595529297853500088593441758250899550466335930307418191147026712489829140982393526497709659425565385848604177616492912425188172797912486421602602365289546838131618684210677763796622617962748972610127655016124076371203427155244019610308872154720283338814722761726106070130214062261021202344313644472611913518712633958193870887213718340894000550195154350094582651577006313627226270243703253938401483060457345201781215081530698567954036542624944874726894227757899256815625691842002112516673778839922146708464180518910635325723619940072114164095143728293257067949646286413208193482245483682932516936095985722015792082416131284679593593814024300668235753894578422437964178120035129263406040654265456609753420273795968034228047395512665270892398245726123024477412026643112778186456172797011617163833415684630768237846408563262867087262441622987865044953628496177886653636006351512300617763457563747873907975816856572326769555713429945927747615801663820511461168755629916714768249728698814784083390610201408751325884279181676193735412110559655113511768641880780543074265407790396771057471670104843862162112254969937777452753171778855210275424072637708168041304839370394200658945805591794212128936770758403459948800800636466335614535625021146338302375852689781714686329335284702533717439429795186868262978262142767431107263061650927847543315749169493340191505773872394975719813548805905823739171610648502911887536436956773682391587517206808955232309726690438019648407645742153174639537469493363203002731776511749941237378957823899596126933689085724551365346818295007198885946577932959424667351327293647403949684029105224757129750642668260948539517045112463721087815198089488258127221020001892754549352479088082950925592135899631082492628842968448347795427377380318372823706134510346486356509910029698664635871982442249133212120270354398987619155413409048141690588575282611151272343230577873182719748786407379750596719011578575920178302531878039857820664793639844209560539820246136012820063761478549843131535877936354641728263407412595117574658401431988913987611732350841701035910081129252969243687304914573992197829203392705120289986278461285589989655419767890922229521107556907969231137136092000596043465391601637937971344453368234203214979522297416055817271599551774159146269245364125158076014049365073344226612895473874601853484876025319661814497570636386327211823917747689502466215901323164344786894330491775840671910883010651017244556806124070661871678761418124145221561142695751269707771703687996066666365254856233677675006792940944938047462827558340846658987560152125254533735558823817728828744846696658751763317793567522395896139617734548241312657162072807529717421337032381208383792735713272091171453213966174735700992624704702046704349418534814732278487662007249133339847012520958919363459660070439956460430217606568231159920460184768282851847774669605862966549708253654164792794097937395259093210700623741955513367807833186238676095023264045307141241417455179357669136968749223865335561732394539539691314506577074590512072679900074246989335240190119400050726650836279652851284427723638339927936799220629901300166047230789324819302276134577662791505020224089566709746843148690212290982142606401922855705310735466129277282198322862610865814995790241313453495552397815561862765588171371099716220053093641740307296676698576959738421212873710189816987081839382456425212809323695725393437216370792085666881848200161870808385752638609050116849426210167648250498126914495367207749650996078829577245768295210835970681514948953009105011309265700666634963933142244332330151544113951603398036871084889856560384125013813732619845912048092142561888396961639100822100406342920513204926554173430421033040979384685937177900764397166702006143630738635075369271035570827025015022050410620764403913286230155921509816631581755294930802347173914342599958249308168555875875700711516533146596863900936411172861998964481014558855431734572235023684937497151402606523390624399745177751762739935812044580499629903250022694991753050296727462994348369192502637736457919592201794364781882551528685379663206828732617392553721867227700734168389232949430422422065057878502194092193129759928005602656306575958226573006195256514650942697447510157367350633900705151027156975645367589991150370328793575545122170518441526413892131531765494018657142212758100149159725720612224153111827146322055632218912906068384049951920301168527825579779612540198061507026098392525902273620704466267531941449240368456495734509274061724488924369253329382251457586918545087568184884103007803942414938555528983298680755805032276608097305751462110592122963835284353139386716303621347813105091071111293963474595721707664355782649392565350346610872060083123602399829872334480482656249738931652540375444618196995411031145848693462834813598553253162315518549330756421532505132422350089127353416273188748345258842266903355679154827000859648548829486484151613754192601857692232477548910425289142662452187466983545679968932260358219023880176666214250259500187788387514883597469567357774766295169786034788213614553387751250318206263640328180971608084609904134255866395902141663131389776042743585366269982763849502988008122654719322618467704339164030747717213582233906383479392635613470771727995773705319773650660142659856022308838365840133103592688008044079291375330103218157036999790239426753677576266967985466382551548032198860668417600901698536449435269694813031992385091893733929122316591994520693689951781749684610467741786208495152965321246692982441232746950281330937237888803021750660641055804578084766285810391834319817536891621743682479999833778165997187106886951819785766461622799320525651858338747155523271178027821176247763141487492071477643988751773216076555372136188694173304573263482702181732450942508477136045237858953021065237718664830021243662598423758463178867028584443415395463620585166356434116222967895195723413237236640776225356096656853361536529449469483465851920608565764407748888036800827593251940807576752757256652499459433733133955138764960829956595772369408651486108661628386952493639039816909486433963087074796766703400515878822139147620420188380845038458152398141121919120749985152440106823507150653287189201879452374939073785912194836201302692129761265835414323706400729199969190616121971403556878888610968999338381037599407483828857479714882129762299632378619147302016356348312889758033815579807810163582136399559169018915577146908727597105276023815402434273755199913392811476315712748234128694657393562392612442016879775843033784162170756252852780771993736620580356475144784354240173210579677337554732217649286205325687438254862435429297909044046029645943146147394835859705412288036405470727024993537038769623584375015847173309741924039517777961798795417904958771493949154967056216852095647041441437034277310056718835297219831156833285693271209844343283005545787318787121568608478874770777119340469198351696060066583443229457181958736760169017153544274474023385688837817264449220472287677357135442791190261257586574711100779963239839511265228460750492140660220332272344936250625751329230122149107761631877366384925174265448943555190319128378714680333804700251407613118309097660797730730018449792967423469909518821770506430822840762616264210191609270071796015354208943772092253787813039834400565087401327834058184116521685745638873156679299334977734437632148195597344487141952954475328289225388217995980242609802809368640355281558502615217759336676633619566171975472023631779192063426300616758378370585145413025188526488166541228861337941331673330751851780829124514665879331250005170448608975723938720942783773219984433208805098719668915412913773990214008384381158719432361572515357573493830905461906210614085923291831071498611865101393154819919354820263277231127294362063353119973725242559805253535661789416133052811135394295386523589962375003497399391533154822838697144740552469858958800458269162603898106264868758519891948896660255405444794485112787035008233810452792070125723098318655769042120742987206442954969384533417123406813368070121943599934356545398244343612143583019362937012789583719357499174284437011705638343411784201745134676870785912219520963047573751809224976309376611033281126021867602883904037695689443956709314604579027531281180988615786984469922197826353636627644767219066091980263649575972787952698845228605868738930149014920777645309390219657963505957855392980179448929667736950172220094318966506369048608264339433681030228782242829541512695533000140376083592951691420342377558223343851843890610405239710708816444947136141968753644296598744862103759079087979500710026486875738446775928247752701489530425766076546794132327964806407678477993119547924813219818261835203614572931055660379797036702047064173269318247183319198055921979979929589297495650205799326655721553764695934952085643352273933408024517276524629513302532068114871856240871132056027857700924224684591034315294644404110963114937355377010276573179502263252887249257121914746485218333015680395156269240758612415231467521867658350580896548101174389663067400574422152545178957960062022263194490391762381749616440821644401926878817438780685482991988641284042144071614662671020917685076557493428095480116205309715610816935113581260134405861257952320062865616496551336566692578929872621046684839747374730220703714301204212208009946815267791998085858525615192307037579229773964063306706746367018364362028273202522015113885317698625841204923682853620297477718119949583257210053966186072176019941349237400358317223735169228597733137987983868406491461481046355007882550102774570644140408263875310865706442998027574316179405168378078552577781979547974743774909617895618652160354588329630400040201000707420544010720658554963908923435989434808324429629930813755006510876801111832317317267626197513592630097721180703660222626503478916948975907195175899691772195524648806203368991130058643235216820928584852917706990658949683434849342958281419055818127344084290135171099563446439667781779235791438866809816387509053267800203616128410480218726943521284721945671289334917185442824256635819067840318818501952432018662599490815231852236970161583804768491706905125308873548702374301739035631867842216265136526487068103969291656233374454150957413083154689579007794602234418853832289152762901498487707709862984176895572205802008291941525048557477087575520513349492554930547849774229913045744868919357078423734038071195006577396576173277643517488102328619223828398006175406077148474058658500700719567957514288536258884232317354515474483508250844247163009051383421652468815529265066654335551008893579025674743717576486707733387364420279160219418733657655654892984262813758927280285491804981683747071309643933352216991517476709804129245920100188804756378428279387441168926704273753792780386270644258492624978202489854996507816223931108321866533177027995570219488688086153305199379525430138346818563120925446140535234622143869263457982143233929787532368439845605997590362026768867390465221502588873286581680217385938123626401226758654652511938730993181742214913316654526848956639305594050414538935688121890570985309064823172285492993888909398735344519005935107753228514227987899314473306146514112751658918454486506616424811407456515090955693237011524471577199905317041791425040047791149989461174890338419976689229737440827776637899464281915614243462758407358828921039017379046519133085232116859971355101855305828494039160027042595105272498781085908773651419618467033441062975030134958459444327241385479782218458422879726428006899495220888204002377209877292429561106777793556317765369031936304901773659982878971532034457200712274995487356673245186751296016386335706157522570667215432002042726148362502914993143786996413325675542002399810734486303974455871594774292411398211645371074170494224498373029515335697673208227334223628846050687354926955761668093054061306569351678997497183244968005677924446043556803585500405131564818015874351234447878183896542517799119210756696394666496651800607291709781214352138920629648264989619335411643400204468552085849996453436641549852854487235085161350107925671569543024150555047996047261029561536401682447491019336169235611982071268813032311055983673405534549226605939981255589331413502359785480761988536304315673575329623879165225545542855587130779157984770309824373601555466224513799081470767761475316364094151064905060690898823285819873175373763554083301135969651881996094703221942457872808371377576563703578334571695623632866441250378555637226881534543899558901809275016762253128961597988966051038178048700108313112195394375345334361819103281138701672393251786459165339800538542478909054931366421510015765313321913080828514482628294220576554317239698309297419341364301491000550176233950854850392378443889906168132363219336855446346086993537372252586315384705018984363662359439534761775942310950952084440001654626878278424782188338812356138983912641276114403400731143944071719941890160028964272113893368787450679896838512281568741915747295769556773583016085551720795057717223021665354941010560445752641089903632473328454448156968579467268828749807426131124529755510515202067290450698161044342394698851338516321896297607150359570813465640207593806551347729002871831570667752774762307742218466515202023466543690684480861657021243896238986218310638076255762927584957689020522464270263301177552938857722038526734256605970491873177787109788138374543055425918265762455987503279137812979225641435493183651447129556034431128586723408618184445046619016487106967321928508402446870879780227464349817134950776036360633889599483653698929159869313976405472893460819336668181673304067262745750541210832784463833640502988284078424436417258314513917658399059934943357723575281660354727637075207101079774683656628713894433964742693292946222827171532765330606339526467199545702132486359715265844415410455545576014883861134088103275751284350523921911190407550718732786689705835478028064254824950066183772652693376849468747826828109057183550134717220442700266383941643182296084473675726917317969493030281827654850977911637553048177628334460018562290767438249983186171108826204305629623672344252239102794025808136145142877427865579896030185366820187469311841483496766101814123754759401562487852256510615141005858979239835710129866227571134176783099954830061792173596520020265508210855125114619992688849157820355361211998795893541142351853998530096877196912099675131832446872096010692214937973638328285214230295935390902814398881915289743540125033485084390658149527120621896012905379731152754124478290159545110279288877588542907293640440909006152208153352713393490673982115201628699683992158794376415617248767929122974267522705429189206676344740626043339645053624274560543186990938889979708219321483124346190828980908246849732210638207156339501496771396566851246751935917030563029066008482132083160526271463890690329430756191653610808679780713752441162149851418308312148592742363426479615369760715554612063497312758079082879115309583498094537829212971004874881121207825971792144516581994914659889409709427524408593061020580079690412882495838089884342075904502402725979918817502640345643285682979308241798780322202390148638090088012370002569116195933074837478927602699623665667364329974978945985337302308721474827599222517664502514667947854842562050196673917984811603560334001904763731295016688980362192477893778776898595619790778388574363861044908297123387789365848380092248788454905808197047443886441256836120429110651589901852422728819410117012445758430092239499822271106534421872287695172872462542275736596979234637446542769074451809341484829788427531102096133685520546398609464298090000315452978797352265671823378163460625017197126124477503295245819235853175353045917847643575371550273037664376677902949979742656139369357902555516280261016314652236857176972995093245061140000789868147279660200811789249030173549635727589183925310709885966009415386276689270720964116746480758234548813259751756450818790568148502452115507693875981742772778305936374029558534209791260480945130968431414976395947606398269975254568194244168592640858675040057614556686460811167373676481048655913084968388484668141360148142757011527508780326393479809712877071882526105975517189495951258937453864799739581038239046165607709089287321131396693677726935157834748324920478161428301343706911677099954568872089566894219727447425002938008478075156165289595641259731978621264516043012083700291930190481400532729417433962273304279853195646231875366386956127418218849959859212345531025553471604094911915585946879712941449983093592359419118188499664359380245704993492310971415758679108974629129248490211678547176587315789921677042771388417071788082912384421337378912977433153514168246298898896979869734672506000392323308113881434878609635094886904209286742238047018660737902120087228009571450483959751754726395536511299327620392718547178748335604636958816646041110261575011703007975606761863834294161787380248060619090277764166960695618109515279854779774222575563144600483889161402279540828948381830910059772244907836121144195906050813838800210657223363301094598848767523721503661575018410562152929101908479021790754703570573160531716953169297397805626105715462886730539979778474635567465168245978218108989040453527220256673190410545497018167228063963753168210090076015122193997664546297410696258400399919869424284493812817993150833107080251905526100169410691709859235994947291108038911350948569471654760625999432369390975143766062113600818906259853073171099340876882729875312660845926233645660215345793394897508702861313612535694700554992963433410787552697007318475923573387088640660875945694058593563527712469070248345098078743485675950241403233684047820340397627417238221341104513137057057483838688251756101462791386443626826099189943134357912256454268179682769172040139882873075347648945545300274405948659374510415371850366034441688199610106263683092359164255321166826299186762802472037352808889901627277256921157261162011247959910796033993295681599059851753242359741624834583183645300057136097830304785480312739716436364760326679733811800729461591593654866872152561942099504981371381083368726249923294223648023568823093875740987375573310997587613162950074962155498318989682065813388041599501143810296910438512234219091623908522157042832739988275691619399556402371232919434323513842196791309829395072632786693693966657134747657827256545905237624898147411003605797739474149750160906198088844705096877848600788710378802892466435395744425754305462894419593512302552095259635142593873130820912776731111377484789438547952085221874084258905847646750233689897891519230379850146998376240579388450197241849823990390189212383318709233766367810063908620025617502605747515525682837421158515540801933731432206742430813724997218090019397400313957530844630092786202219819201471057392886582744237215394579413120553040367972097100639287139142236715571531941629923520424803398104205835870339012835263065363685121063662198390488457002715106826538283713062129925213726883180521001185453232272493841595830487138230367673948837115643523176331369371857488053749507553420721123644882390936152280574023093240483637156655642945129170439212577839775599249141144879280770047973176815190902651279390317652522205235281032435408916737857782082258020803395538204805519208432408240888282274137686367684797225384246883708324566343148585519553008643482102859862008201113989677424636055795899430435579921169938752008010292098124611871764210113035889136739264445473480134824046757393825494609605536023555574894899666898584239452202678970347682813763378566144476648984136222236748547056289190164949748538815070855658772766491843138820045494100274893683121571794756706310702521268655262642724639182580222817543678398922334537620559228016667869984057228849981838767430185436819946209669112986797177970881102475056219919796146619080825387671530885405633057301473036080607630582442010860261943318221619195200067112100181240518036445324010432921423782971749944782165719241887123841198116936552793300987429380864458541409648226355798735402629913325597364575002020587180186243042767992359085105758842338388825561775143570157436231067929591330215786182941895136606976185083948511960014590984868829282801074631950950893481623228082968904164933257833905482743196592444702190705362175944847281987257296444450585749682117492534927978062768991988537230248438687883997686732629466247105796678289560995289049295421684593623031418725186554415065852879889272912811427712924840025923426057032758710437765144913666214330776270389441276907980795401233515105914866073297736902164510608149203747398517983764367737110156553911303733919967222243930119751578264551764977073614695971849240866543138890277127378608961408376010914234973340013612718634435651866899292316417246899870667212370100357788474345694726371552171360394650859661644776801276747270828685183215765779275093016273154176700852828855132350096379371732989818641882938341128847366355139577373346392315070155897253933658684658796165743090815682388188131165893519809197198223839466031100233297962357791328391207134267888511903368809843882189179671834871535214725145661078607032472593652370258860866493980108893318193027880201929689404938663739544449646586040135902980084493611745763535539766751690305000037584221754017388496106500753667128888254212067870724010407150593596945510942736861926473974240234287597890874020041538745706501007329549311457298713647626405030582172774307475590050642473058440972039379584219475876179527381083438088309499229651820176507567642564769372420860734986099935769095843957372178510805561114226184092860378520482865082562089469348971887880517150023671506301567027596815649184722501597861155557530524685468246436559231616552873849382585810401699271863097117011212120992647991804770356433496335575750736613270485165596930608366966513969083242095196277684699009928192132404515186035863537218892122655143945373815453127709444407809163024266652219598996353903678985294580989164018141845297825941361175490820450705263605180881212943090862171475335371072661306674701000601507163570993664152530333174513405764869862963134831229148302458441604693159877861346073567348000415698061188608526462083167015200314755901344034421221508768577156006450603918207417256253595887895066754332372054126286835819510678967273145438744453432673097272046635542466196990527388121955591620173673926414668586169631759075239880960024641627464210953612472649491242171561283260781041242009924713943405232073695179766565061396117317459474809524430063025544578686494728690973261350783861441712628155721111178221398177204390575267964014877857550568460508991090845133498559653168592431671377170160816893991815100771225538292019624764328771939914788585701014520972323407508073566716308402716130358542542468525510068572291913485947086870001044901025752582579065855294759964470155395521914633611063042028528317441306116442970407203014212927600616119947541478954990662751595366008027392265385485859801324603523588357950628189559883410211761544497757469378859655688420395226549370286258174777384524972735728293618486922127189198880349898652174963756786279241979083659934795819980814679719682861807889605180984127080170369684897117957395098744469163816190372074243306599136480591085559929213294907798489375759942019760283786036012184398070152468852952404665537523606940474948138554189729915729274406079829103526602484069566994858356324446800493928263464020682464393815046043941267324141354386337041132320742265025989337584565594791825497058571387895024855971876637854220779803437579048914990484199158930752046956197680940232261537519248383361457693840298973736786940389149362455343443944232696064867295387382593388526326632224292936710075170816216814818132403430968843017566244070529400019626913522036900970524476637315003102070884417534837030468833280376905658070476818667585228952930290370923793809032509062094473430341748976624891295097890455163336097604392841660552720156343431289683063260994932688451177431653995466231320447138584376294280761653658181115251467050118759435389149429705842862145350855813525756162226234016780212098561450237025827100044484480608529085805049828166374556367978758123458859753450576319687907739837581870495917757622749261478834731130766193713365044972212445809414909344738184656504374637288603689057821193959203494222818136883652729848741038793681561448646672325770889076456326727406157592697917579274953027734837501202434015356774283251093700291062382232619057821755501989026182198136664841027261063835810099424477458999635209486420326774233452421050133913390110928804464971728119986521362980597056280742263228764368035929740871352179576702607722295481181820554296887036079091617646953991479248765612917002804338079821324596486680956475368722238130869270605014370864306332982397173860218355340493752675291513949034041423295319974290074696383406002385899609485801933983766687727283940586791630722823323806543901819408327431519143868582681651591991558835362174966597125081872995862368987306182234694671562365043622662776257636150578063702032121215750639685619234072123643841049490026946965597558847622783616019556212424190099679353527689178617262501741485646548660310257611894857401032611214336853016947213859594036917305867798930225777144374743814986514992562024216938904271976867176078336975258904751545378123936278751717506064711852005687288193793599445896114702338077928104484831390450788985837082511522466676993181870157879245514146060481660246672995693281804194634194280232882683966708774315236643000901542716049224757813011715203527121069693665835267490056520084976912290078137148806383041039646993005404553411259280574077926773773934662905338426874860719962125180805321022405493278361895874049568819166006501960018432579349018189625533789546311548025919544787793338495755785328006853444479142231880496025262023037834838121912786668296915851827531292710780152338894494416915034167391602891205414825402703704237218457919588251732819825190137672573501353759061700401763113677309458555149281997298716814091305554691718067588145587739446061141545859295837247535972150468843514952543453791441681440022612676797168214596234342237868787166334597043458821849157633285003164537208884224489407216047033609830487046046373699304326024093322414616777819272000875428304873414673140604872555662375050291551686468436803468539047874178134418611168714398058592636077727371229727300071347382231490585685229247787568665334721554841669692839964122543092705835760773662883062138743594040591360468026093808518889090968605818202859729192620025218039960536171028831514902998921585242715486438179235192604122516212986028205526310499196827501393881526849321159570280517824712416405060286610371105154243828208768043166956859686820229834838240381576360754176759262922405354420807325020864899375829430054960604877476419172041688540136165643162240916606910289493801713736603797768470578861036205313479098916562719302583294637611554356490098659375155318309527713802467848580281978275518235140144187689446805788879073943513498085001865869429053666480131690657052893184987402256362745020462855290911678012272856346627617532666777530992855668104053660995357075641459030998758921465469180195271235744410095291987888597232576149308340353810128743654226093349648918527650483088251225701868138461482609607969811913867744020752611639741320977949243443548307260648698289920743310869423396215352137730500101157478741238894939404227510686371304941062694462519377615648274467683285485598845352211440215095839155096526597254777157112235116845386149899387895388015085313970859753750964669277261383714055233749422935397358211668611582740651447762245962326093258580264766789485610883325897561314852087689889000349989103346209578205808026296704326531449169933835760631183687137361885241377601121143009915449317285256433504185694011113067928007531756895629433565026688101805125453869958688667984124614682648612610041550581676992294302519941525950515586954267128596503815108685065368672473881885890382248989605015351277668930616455909785946185933768985770066160274243797085856272008467498393065371456879390111367351556437061380725754643186345009179027334197236971718833387485516285033473841113343070545326954840389024556516319841067042857901754167280929529640217883315165314301442087004182965430425830611212127155532874730702707812939231223306252615814681884150085694375930066027463572845986357799626044676732274458598753744534037748775352187578039092130955619322124379232680096397594556808249638574854477529132245822203044109854346864111301756572736056731215368649909061785931091328436482979853510328474820086683070304116709030860055776659760468214078535179652284259734368177351574173411317505629114721797409139230926302845759894060164145189761769566963404697496280787057138713769038638398704714103552122539335014197112034865955972979841603733531660739596252638819812175462750932457837054974433626781401486657727655957588573856199478685147594855982692576180311301537104626765550597279451380002528972077766492616073086668469137220771460743332895241405534638892879795972797685388465330245981224512668674261240509125765126616456351406237631882568879865943620826621143418720599754754393615983560596863566998465432107228919592574679117165330940700330675269143949500181246280645758215043361131166753111415590055084874019026915956001295814133316544046369315850947921629448603518530687692485737014499297469497380925041002261656133634758630295681342321028137998206683819712942067495589536557311787689961031091782143925831788203553718319554554230417871052843490784757047701159722960990720895885561965344916222496292874626379416735267795643557301240343103685259926236272103782650456455140102350188925425009014295030934061341808580742273690480342447679557961431710418816781817726138673334583194092783760157565977918671128326701113960286338415709238415537231022248372077413133820375072848619975268309890736946475560098105874601174889204501060173104531190596744977548855037926635683428726451088891733699648488893823220145986261354773069380101886293328619010603605097028344920446240578781623615503697807736638584720435910603287307874159461412268355205559922743219752761560285080271904659563904669473209834294486997697587244524359690548022111323021621042409727506181114040507700346634209127693184632304373036027341929367418843948945244532827078856026529563158094122124123595344618017177155429314117763015606833780257213526033420642159952362246020613496819098033782350277864197369990819933091154402384365329498056080998787048339509982604247428622962917926856698273120842947941677222865595908503662713413687024191698375050991872883146828356088317506715251396682373917443905106493531545851903393407175345235198014538356370786714219641371761203059045015837573826011037953357765767040334943499443884618947030267416914697531317946548410257822222952362633531844902370559626974275240189063315219865152130672212000629604837270451369171429226078510097801852192772786837799230330159154973358348809619879027852095510557149138902637195606368584324844228396491548208622318216630967394135835049742540529276276322240089872529051607963066115612532559046600895976184881916762445392642978481202493660454448439144588599222481798984173790299552989960139551747875954375686883111823214409852961046779996001165150569957897399770358654532472095094447601835767728224107233219647242050506126830143684252478500764579236430678338578024419024580370529033339022583915303837045106246141128762439160712003450237858814768550069545080956413757417897859152414478183094623556296736126413551507564978534006576093097988770511762181112149088552902552271145889681525734759145568615259673735328016148364149070176127133942497707845672184447575808942755832998254478093228355037039042045080608455267074273034414062600975034027914763443091783493732944729441442710084864293877799868211673353683751867979338745573206127556219364511571567849235636991239956588916310138355690249593789358960081931267586062022735512779554957805522083294094168936060120827955767120743631686246803070386204163311598756574634800701023522811424668293677066050515381527762205965654114993160354380491394681943116208495659109313742463091692833464011358017176762968203837618963958480952452798874769807930498233033920841451372096897905094038508503934595614432641687191864836606354364470944151032054119843166354876399170268274770385200662229075917691721531732593075060966912849606643821516762060186597296348197820917996519419091536210262357154448261454361943858250212624449793031735519260300801884463978710300073283939212039544474408383538553138630497800336179192981948058065997427641028673271295056262184540546755752771852006074557118550008128391975442483563798395073686255104120642682966897375322537206665072750280447533356424048872630377380960499476975790389947087130123570687062679381141980124714263521892376276292004247408812970855764399169315572822995325656665626693694183148306989248805824642261308718014764777937288112289182644847214590528341336180704464800158390098796758170119884720078373798567415769695639419080605883975314507413925482736475198591986371708717709043452725976905021046502634487344865033104062165940230028083994406283858443408434623546578136594091411254676423783521565259921413607602568729524835083398333507498992311090936455180108554219817111329072770669090625834074224709625339212427045179693994016318146381655087519260437669288002765303041513409528647989765560723284962083158099805631074012095842358386737778825601089217765611178309914845048546538493235874857333698225688212463228626766000465451624289310018852843436297425346028178775051862405970991051655826720124500746617314007174316029377731932910080984737779385978421554819896837362346920665601581345665991895552284857886607727865156444053499511274618756952283017228789394406624837706051463411611288989201169893284238464311356589494562480101585999127296966172353805782065820244931663357234252904831461420778251708175337040903385061924004218144804886394088190846677059423115051519266953222275383733693341065140797647532715922300726126522166891530594378539546931760259253105003456206295730654267649564923790369294741706136712314218927397663776857192936551291215326944682287736775800575815791031179707427646329131223106001142272298600184664117768558873453752770431189470699454729300508588296309655659950315083678584817980212968846101356794202839491239690284539254224895044238239251274985444576046802412462896412306541568137855513838330794884936253162449581122023694799624860210174908699490891657671937855866436791361596469628667520299751559585645479931174815967405560518456630257697833293494565446683875552824588273953086137157666982825188381318401280571120867163729485742259177600661653205460986195172216747525279941349683997180388699271217524199324309347248079012814888587349347054039369897135001861796954063401547441267564474685210055558264556734439825505471506291401467808290596541001683445796196637991842999911863137367002620643292825411949316462145706242253731693783010354220948125067238671778356898451690135030846578904909352929592195131097288550900561383704713179781973562684499150126786308011655923731767257924638045354673340585533509491879457720508400699046303099601321216329620990663138560802514086858306920395396562741749042128294188939311604191235996181760831332819810445331116607485647290601282055310082247881011836922793787751708113653723732748374041340601108707130108496833133180410692804297316668035329360790337995035576863061219921291588298288638146127908219344896174150800850948176126388037275462080688513016565741667074570243098355277622327454638228841428736632990500290389363322898829420907765383356731043345702451879189257455395854147129134510721704934867258543781567519644790616761321948880902387824038073544149779721109914081361955415099463644634406531061889815400329139401804721795930917379834823833731942584681272751541357244511124596763470050175167340018480620812912724542990014056829088135381840763762003877206135639921045743672903490857553282398675772934167823308063015026069249556125631959133135340569683261807245930315940039161738260542304734225449642315673245267745974059418638916033399187013132453278560362525704400602027652181747353290158592052114718770820958792604534695111100656605651654974184898903092732487205637628370170064493072381184250219423984691440911859043877227320074739735233401224999230902337346597396860308580379215726805402487073114668580320994022913460477818238704177035531551239353405759380401426248506884445106915689289461087504958018629854957808390145595256738437034546322491601632675810520642392138401587809295066172661867615836526660181025504936403156529947563442450128174704978308343030046733803232386660826764146732068059885752640414906889635329340916711197771179888238070315867683940233478245963304215266246521808623912797367371835138748167238742899034725920339504222521805085076015732133323809896061121469372955682934084542481645987957603372395763637762629699351399943747847227476915871822108959550402757317081680503966501194381347108878261722502824287263918801300603861106926056717560830742546220206692505058415584600737017056757338301082871985936835912877821680309304624040951442718884311549109116543739158242835902726887631697167019516804296613056148914902778677723747598702259885397065796566890330364251653518439874497487581501016231768617454302408678911825263119072464716328067215964838161910579010774815732213008497596146978257319285467497132778501224416463806301948615072878071691897448916404992977973989735934871265539969611115711796586695580877502953947705312904182800715778899930412930709474315925659336913435193308879444673936112283121803835062573839239300572053118217325172106334718539914221140255513866793992203129927983730612925111828433685224866305673594321076381241605556978722896579378219809078837110608826723574855279078654514240859253324256165347069062383850421643957930271738356612764559932259309656166995778815802522704253209730848097872786984257476565052488154574175268660570713384546221272194757092798987167305748352491394434835997318162305852354023974013820288603788511407245405251481444339946330884649474370986535506888299990134715119476026995967084989906672316183533899307664606303557548027813736605925513642244897880933798341661280798689761209617825093887791129700267992087511297206323179859129130054081475633467142956708932277447668719962193805765686948935902207589895031473752593838515434957566381371566524549104713006361731497684386475762728499111880241046438486207501638735639057798093753075706117187835285523476460080533768166767116600404615538109954952941985603889525906111199328751605114337067808287041183430667497876022903399307534700857529960202445947770793140755396663696558549731519878433877985036648117142183736031785926234430229167789077527108230070712845662497228494960434443795553624193655540044174279362288538836985784089892921792756663160655835078294797985519363085662866148872388109970721780275736355805849850077511236905806870395336337459607800001714769153229544590589683530272285578069895294308260669749459685347253162479983003064881400165069286948658966758388979334059344532547179820189577971036827909543956387634432335959811254526376199014801784516278139729756725511122234028669909383408027087950294665779845971813941793862850090365023932769959514139993472659600190161326088026690405561192589889327495432550414234756506863176959470134272122214681039466355798517230667498508681676698994454365998370261798821669273655311665399796925754574847883554597026345473868270226576086664938432124019067406516461748141340905661028306299866277285024826649459540219282286231448065837337069482055084859555915651174293924423109183604938217558345780401970123167421398020087399558131611236995820248025794239311535308459225162960219430500052533068338251471138627701254136765919184012777857703909428029377265946014285622493966288979356509607897299350149595557669544356478886850856875186568326091090551744746874074120455621546873598161112714970519888461039476577207060749299140830198448658434827313308846084553391872537867456150546491193787459115935134991471475306841173708801918291363072419902051951235216986653076496303610872729739463680970437089999547008146184275682571803103081186254162572149077464444031030347243743419411112393908679616215109893357643054765988860034422662317318918900289058783577635761175583078721114310426420530400836928879045646754414171004620468918039585273902386385016152586322852992129017435558574479218280978951726844312635405211755421307412179680479782255010750023911751861105700420959925369163777741140923430452492739409895623566568160849023947919003936988505143257304124097425543270997467166949796969937771667243751034649492958678232093645340756264914544051236627361433185720545273862430780164361907409333706122965101183254745646647287536729258614463858497420432193710057314975050451569799109339711673636880397594493356643054071194438014601615188549039506610068260861840478095070930504672493149065332016932940499706289145872893063140397189210192521548609556171088380342386452052750950740278723965790049456931241743102026174933632581951836445648196698420368220653134255184895485157479694612296545255216044799428034167835586818826952839349335243176870104808662637309013528472042852055547596111776428787593276242821040764931706551131741859216870027925905105556145801596780724912926193680407042022711497483531598439884614177120295512366724054309965700469804215590092338197517659371101309391373397195338758162371064205430248605531357403839409752164673189021324423203023408926092616710060705436159506517108469221880449097543630186610994563136988311839144229488970696140792736751309117118518911685642296411124252321424434861285550296531784183577583293538242734169667413746001168427529242962856553598503868239395592886800682382851489849704231189046114605353965969416110970890495147189130415747115494983224991413942770016706728435424162290389256663307286470865386674117445177039925547344063152632945988541326973756045732165586129801802307100814699692139234987866648362001003517057886319616859322361462204417368224160269038545969033815769490737488390995186866073123757790849752531899114054161134284276077477760205486450143222621944354455100642336830617811178205989728962749303756234251679264105495589475270317174184462921003933413690004153602348737736423957985294014853589266052033514481321929530675508485464126668718063434358410806669112555844453940370858886334514115349882430991629589121578025346146293705505675690227208231262188247888469441650810874047832478157148607668899543978487354702190883251303502599973356029255873990207632235965557956312601007062667549597123804249161150687191903419049295891393666469074972925792227415713640284255805433078631062832949125330778320248103617876278119599997018876911592100892115701709551125404382986745135170608142346138902993611795140662117384604102167225515235919264598453945576735216923678248932590364982681753892541214469116695273490066357487038147788306078674238500537008014521969513336825420048010655856998354321782546302168437312252381639300543959652092711721098252010777951915278274634980326368774215567410703061749334495080769656928152082708791608100461559122838282946515837528691511807022807192358575513244086203203722200130815832382698296971722301977413436953244255817108936922869770973856062492911706496439355894527985196329302117136485646389098931590138298352844172367496922706290485414796461607560059393120656960420197526727247746423057087970664562854998127995212937375043919055010681628205220659107366217776648963481264274668989456518004236181452334250909227539760279267709677515504805082266395191481821349191139332123279985452928447645075952525781885174187453895264787732807266152913173800588232736606443076305769232106132674231239913358159989212872170710458165125692553364158955288516533724767332169445953355016806329831716410556620414904036577186640484998527130189329716233570940467696341961976164507260747977730360719197650938496642612337713913618018091458209725859611240291651094913067395922276083572743813894729412292294172126690529228919359249923729168365604551824671376032814037187522504511731239193825035545644208722213802551163166765381985417756872831256285427599620912575959922887722639917849600692735626186360099421895877038616101689882139550011563706919684910643998332445395224784070572764180315451877287987053777468583376458916828524874548786239220256893725844160170182507448463462587377949638677099535249055775483336084338959327959475167818964218363636497659645875985446966897905592500727305445802392866288311246075450519701586745329606938534969577827009700287925367880631002048257376180360644766685314251910888757335655950939132210787514686433968994862194914594742347158161409899533360760494106078395548779974257235653658814570046708073977491546093022710732134637822154751120435314076972140844636453250172556043853831237830955204165666751291790207871100688138636198726212030515114376966419059875194152414571102839581815769805433031102336685988233269275735900624636857027851668852068043043230228710043228668503099230569418393239783337922027719812386177434233997416527341513417934932612374678587310820616855203767090906653759846056550086917484806359052522706155539204521476033295318759367091894870728506887817966827796270026726274262628380725393912975687806037040520477116198719595788106789805838280696046151100082641192435069330922850006279006139024709792646359415738244454336879678884827423598831844295171798124598303291495700350236350933318269419759013386555652907659280245986894784346743276328423478289171447324506802447754943029064492548296325836458923403089423190424512693058585351485819028525662620732829727100398758437499676883765288626576431852872234758757728253023775512324843820628822367140722806583608793211916811934440205850893694148126459612633624981528035233538481176977603096964935392431656760908987729975527700403327532212241079456045299288580201507700253727526060402184002883914349624468669709066862265548747436662901378588508700949893521446383607198485684877214207650910281669016048578532411777897412687747791427854084995655001197451309131672856650782049914438822197531136634928507818113306723808717555464192921822273336721550609857861571526843186275586848987434793173209557967224720957674959911036987167595875747721996097613047588658038929565608935810787958082844680114964842952258581460228848808383893479806421468164537611540460245461266858816071768706536917980336801730456532117238910152518983165423058383714313257721581429367271486104124338752331814633540341450027040091589160686575211813137105936333105231299569532445677907257429993545151139197420961421576975482879160460030935391805690221395460028661563338371603602448412219775584710985295068660772535643746607250785586058674753439892105141888941967900152308628400825396455165765876894398789535148720847095076933315671674347445915785071988230205688865773799803484733239987159530035985850181747486987688948966913982652444361421687753863357996197552614719648036966283568152774668707068748287745982889391793286470340772665070799138924540846224231528475155383741821318407521354333192734768557658600496747785653054759254590950926675451130980173234813172001321564359077357950224556973576545381952360287830598756156242778684743281159556273091805535317185165919296864220146996654778095057276447586586208335652083279712102167599054119781330433713403152039329943247426328760945512692996250130377468461964974512651949394044875995019214869858164686957488013432636239910352105768764318070697544359135761447831238150512738770066669596147766610504171925616890117489635663061001898550916556259438717158081567387014823187884996067240659912486291444953150266406762685801358530451524911263434480094424192606983145307152769699515475234700194893460296885422757946075393492630079615907665441333588278920681306647612784685068359207973609571288764918282783985265041292501145362103309980673359587213602560442941115466029297609948888398533551085658541140403824360482583170992381113185032173954954198610213945787646880658099119021062663197202835489914432010929996682927825530362217961620705263611065751470660830090259383153779920167508920005540968370853160984254842187872220713350262439227612961144791271129576709602489093794303908543563465724623391264309528891524822736348466279021634492092658904230307992802632653526228950843471826322496681369369346829792328940818238592129881560758839867908036423859161442538540601875267483643953216490995648728828062671612184772134824288387395123411298784646460426994230894605062592078574648557141790446442882652757557356129464461273410097535533482264215510917584828254103381065624735868008223091364438124187620994388953809418177238548154155578463635269171807538673107322736940242539731730002260763751065367079372295640322003947848213933343028884047532138280005927713700495876088814328779438112224647744189050659569954969772395290724802415881936298030296089502553631002011668865432316980876972656678371211722631164718109890890947401966057812294737951634252441322229504705220282342078398037109871442851132029363920580730058323930871958664995856429013111505032467609711855347359734106572992223014229401725157275148228956187599275813952598924757573322790280297238144006635915515923816297484571312085361438120542484732797757399924996560253622533628307627320453704140217512786143168213569749084543030368893912755080178983595510438071581636084370932254154700374746848007099911117196231108766639206036772268548033270180665920370215470725166765289535785561635723035438419860042495683518840391070177959787645873929782112908847234497913880918773085633259982766376413412704003935526099439287495450175972530860945473540641000943623625464777638285033877656462217083922888204876333457802661326942732002183775707704210073368027117011130046522030828937937673911010887324492287504802514025809015895149872506725745844570743776293160734368421318638022555122692959950253955703555241463167879753876503700585774520111853262296933180762937739123023736466743914351696373274985648131335103451798261254981329926882019313767522109990729401773890536127738169851557574026976731115769701829569161364678724542618423147814871423456539318631236335651696393343320182953514316428424305177833359981071738547215625501296229758138569225294218831286423812851079118564668061172977458579577194276249138953407420951482488928040309343538563190895660770640819949154477103132974173773970626304040713327942058331295768963949420404484206074347180785392470547190660396586756407399425117082022505410452917760567298076294838773138941364102541659761646993877294072797544423282967157908112423684170895271326496165552482740285243713960128359459601719900504853347792111205734946531909470112051000146500915948739182234033861481125162570451292798927617407626057440924359323865356005058508153406534509208740539386801280467999343641893109120357316737390103163588842211150463429379483889489396882298449527120398980550435204407576398543014300544791619688153853336478993553784580210865257320509018144413127316064907287635770421777043077038623197591087103757626693400260057109574695231441479964372895234480733840071652535874346945302750987136708182825184232875905510957407802658221940175673113008967246083358045060557492867247162794451742435331136929518143220764186941272803508135794032385256190708697706201659266273552630065431820123723060504281502026742423766861739468320988650658595145401163613068120888492716141443377648075768768922552766550184645322432972775079320124056947317765110599751033733227859172219862162530961064120316176893994130937495427015416896339535041977324487437913444569258196283666653618024482171614001854485983646341268217443409323432433556943274175450098130372536984226405523382492183090060906003029892180778862785793507858200847412443649340773591345926653123550892269348059730828166980648560858236456772199375584494165102760203172088187921305427714783606768636430688640800158959704559640386045104590638889335052715223177337258442849379000916604160277928115422348176152238667577469794326993882027232344448870219334334237515699477324989014287468845535879464752150147722674921096172703564347425287340738485492516320970665494212978347358346650729130875956342511497489070912899792127463706361611121453614458919476153966840652979174278544988242461841036933112468208543403439904800789836001121499615665409590823313346266804363542098510286036703102346447584368025712297463848349172207844565605884853267223442661055534950981754197676096076837953336285273067549424412322519408125502297880942823765986535989664849369236970778838816787021080379573789587029650624080861717262194238424964448262857518417842508550702702607309815412078517764487473966622075258813606866738651731913359002786502859231093545377318682376378770849503799075727934598043855253290449116502904349601711873328370164608497928536849709216141681346415088528760186144387715748010985652505224186705442272415660285325331034031405973624228442048019741175532656635379129899074901461656913166479386560600961652773183061141486091932162144333693248808970191273601993412769052342942377692801702480364482415310352379663974734350427103722251722458006595105306851530635527770111254947538966086612407663718224966032837843300912777075698582707213118583442325600567325742373443791473890417812036380200335777157486689138497415058667779906043885349546735428860564162144882972225543259071914232739995071390032230012616309483407283464985311212019502936476539307224976646307924090492209421475944294542766179605723437728875917975751818806200005602372159130868617358992931828467590227382051774648679822799033659361085772414989352626108175057685552022965534164035839235289296522307458003087811546837627253825985315953279642609791771138210067169210737634399116850502327253989527455738273693612046675591254089426406049830195917700598098769913140148009280492754147912554595717529262080626732168914926919666159976674096032062174591223584329554343528431605076116517240470511332615745698062400186590031581019210935493922257624972667704152478423308084024692275327748413382878611631413605788987496196942227640405328564245096234461671268786300007496611069738406913923122966289939127660126089007955538824925097952661442178108710483201898263909751404719937887202891627818926482450282241219929054246829311605490652831923933220406946646770520467144554867661541832995665749341997259958741394387274003010689335279908686952198777150236956046012397583521190115206664588331197490520578246816519240610553066202508490632791115987178241552340769710817572124377044333559799684938514474317280909145662092746381600266026399900423116248175311383827795582656074718453659896280674881003010674483934102957280728794078295820551017815124210784172607635861759740577170214429572192706984057721630749146038477461629955572941209559856681291688043032427850821081440905188566562206195575167327791596920110156828417323381308175280591246430959089288337459414306262529044815119369537419154095719876996209332385184332634106428716515140941420614368596711099909867098418827463439634009751232385043096005785619790195350724535040449620928747891549735072128633938551708570573401302234202716344814464722790202766101740684629841970727417756028375100151067949216353631854654596850845059386935243035538234300719559477929933227391485356209157942799937570464968977755642867305797788649191562157502564991946880388647588908468808756846264983833349646102319337814398670975560823240688251925798177600493463998528323911559535747584509596741148144425226039659949835951810109972354143481821350137113514264502469582052373395369699443457420032317595468415251041889858677631683181011317234823537507502197995530035583946013140245880974274448781373266894778734270549422380154491859350061252948739419336928013177711217424389870444848857654008334531663279934102685104956599675324705667310438388877749846549991539217695427805397815100085268809579257811778685670593037736127456228925181550004140355326016190439961480680432413931138855617112584961564872691825807239614214797955798296468550017689859952756491457765755448663165882057263335106980678514520484652452043293823422860166770730129467252053145760877168765742916468514673695555007074857322797705867361019079950424433368070889620990416706268999481793777123195752697859712842425368639546991946452510458943825903267552275228090575668434646777848656253852771728290008408867339702947082871367852005867390274117726481310379460571908914504435809033606640555018448914698731097253046791202529434312970464659935624154306583897156244637710479287560094234049670732154312181997458173873135635499713312746316921277322341453762170257225110968743224183260785509765271813662361792541589750141664642066005329709732632006561492468898094143270058483362154285017013579242895122761385709686843002763665197625237307233208768297186224628066175146086389810446773963368772145400933846644617887210443781431870919177698708273448130218506844090758568558907498862743760601005885022122540335585401940910634311889815056033894306591560313303163851853814053854458180611708186826617160970627877547508981005115439611390762045674798319688273587612183346452351506969537528457928376602785456015127426740762665465465577891387229028727830322969150106476397984689867566943064909699952443785542882852468940388796262279014297960585264677331671948634963435729452257744529911618593200162362826001572429125208488341401116759277570529139613431214532473525824666108017036399688382595629101018762987477061801903916730267080444697271828769663550358785530262859342496808402513252710156262126176851220181278525021818866656690053256412217530280676800637454562140471946565993211638431536125602396702155005283983709062769881591755420435027668507338972681850891533502087706162125278721739364904509225183275116460589629514986541571894308720012859338304482909945997764622188886919226461468215912749773437917972648643861838666380270186105871258883185299628570114334707999811846786435398794983040092945568867938526774055922101371932867811976766688121581302856503269354802308096924918073405616284707365897990089399588695175450387959894588658713540789072359398378755280315107334665623774607411581512271105331961369383875686254205309773002898158476012061888756418028411061009857208176958081409068501431099400251095724559693895462433034434615252766436547798866435876197247836186549034981809898559836318452385693048778974634227110367462901697671387600678903986591233615175014875625716943317946379193762955658061689863187187841662284343053031043065857944561093226461480225880039094244893368587381756986760907928024078342275131600225060554345923035126322099005412906131560590504621923430227418485402238561363685339890930744003929736069874425664134504992648322260780248941823825371870014324158802701453772284667955512588752008077469250810767317630256888492673893217648996538455206808926499914702261387290919252614841779231674480473210542536374429600729268451835734935234326650846014742096362214936919875119406614035248598944081480743310066041463672466367197011428811925192680376373674536014383051818572296850768674770013857214896096290706224481767972271042789643549342040532130585868016180316226623077342012074748876932346957054292473383822554963162248784733915412077621076691329859000858176740568126369747177274345122089081322496327296281319241187604740831453233303037378892480056992635522333565632552274312358096768967257406942178314757578510741102766445576206218105502639197521074629428943796737752209988051027471640518074249071554780783969535867984423156780971843194371358911198541514927018942260102028138286879774242282357155005550092229113719402641965267572327782527552980071678993663099022910125196063485039999771878780608082107498801386541220446846046953338102221982553681604386242209454565908514158599072752139121321271824290279929210452355136402494664513062542630952780353261078182565503416650971488793402065758340837596982290637791025510794392719655573023177739459993890026110749143354094363974118011714213786639886348565448353811675798926113203127340789449644043576195271431115567588725961503704443350451013076618922354262154175474962484674101899042478688632132231746258266929063303644082010007348628259745649907383883704123802006708753098296069194254859161229892778153902782357935679542429563393163341855766598300744878691596999732346003859192731484962654566933413812121051010298347136652616223535309528318236703438882606566470910411363343916154688700638986682972378717042987439496607117325148142944843748296111021776304480158136516695180068505169969153130284894705918186405164017724996100872892274775838006585583196587843434798960677444901768117360972633053627742245999090333965226105152755951744481870330923825925527296657416260125578083059012253774528314315948308371492636216119159072385261461390264021624854057128477906125399984939212753624095293980518701549624665869710037014328661675725044239511108900453371747601881926493991426757507359938895993321602816625337085482604711855207738537921399427588273729320061696390854776444742004281711482114806153159343685068703997652347685593382782527563289225518029539292573513004522061455867387278394290854241810009900361503958119435395448434787245360822066981954696377928228116170443099973969404536973669651762022196648552284323797565724556183594751834961415057643333272367484992957632227835950695505791630100246583957718476896422559316991749980136983923985001596625724432951249913794045821065973318245199444252224872277952850841369343180183522406085987357125478032842280969515752019473908939144692585610004291090225484401123788009748264294931284781676199355716131622145355501363619526646686449170515704813360326065981744733185567563419293395120643813592522388885485960687507795329952480261000193704807471662695034182106245419428446169929280088873206346565724185281611874731866842122173298103669139664058171106070802388107732527842952733462104813795297145901276018637098774744960851452951613796379909286934149829176135448942356291516721787897691472230497937408908398691296019275545705868946528191412049186869001584821022172059715996815073472532341323435817675505036438298838565659356788135290522955005047986175998787163091262943029819187909835058835297114666941494432719107061911850436392656548429230605185594907055017122641535508771047454414837642102983636741501756273878062512322291573054897754969780634360673536075578289599728304661385464889463886357923759949212417145813682388981186934256525695237190039435540269476010953849464889983273731530884889408388458402663786500882695271537775969943163248753778067534770223268466309895852471833944610036541560102244826481565774178109415422814113884843899684488851133505413799985882206415468213892470214905905217020979918182671162949117365361608289210315958648684239420376925396300788978774396919377511712983533855315389254136926510581327742583166505726737784673807950679083652974943329102244337902497840730245318705286722876145056110280982641988085901361563286949946893010683270226801611699089992845819088226670490050706149586270397186880541315944818727544780222939214488454522379491985490378226597426288442853616275924588622407493116082615124692192964332933316184682025823780114657691498781894660461754739352209510779790745162508151628772778420223637199317134750306486271167737690919630305448341193334848012824776257927900941919065828192349856272388806897689629367857625515970861588933078074632814802270835909676924327016113251005482790309610567464971636926437280182307162059190159554639451438965969840797860089961857406814579615693124846452528636486914051541565044894547137369843982948412416407869455595981825587272909981152625055818833642206240537549500680680221975116310277983928447210801419082446561317368202116938912211605968165691150314490287938755486119326718028538027765696690550144477405188397748951600659876449511436245565313442866588741388822906649793768470526264467559056586351372657081278358423265232079323670707231003253258982848891809624031671570534548984736067945172360998486763963185984718970180769686766693664092785496425866050414901052684523947205439842613292200800306997822013746348743047843080345966784623665585147346334460333805098942135319862320277196711399856376251169723163801976181934403322518650177703756619940793121807047676567233650570854774642241073489293210088965831227665172595183775054277835481119554229053155395342594218118898542531214227667315009203678896841531488179453554647999926645571680240920476393674028012440380925970500613234392032643405784462203830524065871500646342549700824108362455958375957478089435947179702580779288730907257810491207021780914089402903528520593788937734998748474995731884136916023403231093186632228209172424784642484676877196936711112999689160919795151214461207142371788076546891480729609651697113647103448144499846095572091001617728232742804917757241388857997381255446215643124958304127889418910763113075008890875942000585327648896563004432692352215500434296256490161152942619517403002709371084195502491506696888363471666036445487514346216109237683436120501196976268629424204479410296753883350399164941434487933227329822174369377588860085864863034384010154533950335897312283655746870261215572489806402672495724806071692261952883909541786404271691857240471580082567752759691958565001544727000110569499349358137892706600838696339976213887919053694864011593351219720169842088508419762307907389741305910174257521361480036010863409319048336883629114919085411538694391677983104365331833051872950839900430939793852237022470765441892624637678872470851914978911474900956353249472733912163689206804977402437557783706209976249452993836925299318759847666050027658418475988491027959540958137407655582471602192833930305749827700103948087944602305155701630467205220099634855327774744781921532784301161848022684097638886713529112587408547687090272587487111218889840229097753057129369420841105857604208742042919626071456074605659329100277054287183500630123749982357815706825175913310439171533064438687355205719923765747304182484470752276594258003406912480296472610039995522188590920096320432778620362950396855481600034375896253171551115521964763155649226497365763437164020506754186716394401387709165120888668139649287674960016191701614687092156360118848794805392818253598800256711297032390103929543886430347268378529192488906478059471660033016274215028941642070445931569933022242889492458889548366954474631148395612990236454981859347457569715518161505567525524814937293129138304402511807977373951660940049474627698820181113085803935571652350336256773758463889453885776727591587938037559959329258545555591611236540352007058198598515399669143479542293316281784878868192250333973098210765773271900856408419649140622667003809462693263465482133900877910779521787203925966969398267554800302059485437035970794718174637859289423540895794638379977727938469729087625021324999152361391456558044307715753647312829046230482468392632122691198665137230706822961969714098691225166252142355491235975777145593223533058632068092652887332984324800443759729742857992778435956255953160492958793822984011024377235091065732876637314335318804557912441057700170417819828332018761332855787469332429535446453492879110747603615234810092106959214154030658041215093067813203027854401493676058108677282791797171204597588379726587154726566234993339352331128446635405271460336630705788053012012473464664950078642864585687796478965409689927663146164214871341873213724373084861251239685532240079636834711331570535216021961834503246016902304544535267147327754325008068494340719839833685258686212148399426559841453864474822130919929231618881050296089926250125688098176180917165715840160683415620145335598143179284399942308119199872943574040176764791626982219749458959266105621321019752979948066485161979364507886977226791629024873526258569593244727681422239265340737359302800049757525151854385977888294920063561028581720015676600315788065077053511768656695264787730333598456834758134955676883825245954846748046992926375252905992282334575458029008480909527391771633606419629460857803046571036029327873893030477953559562542625817050104220923957170677736441543557499495864024385434743413013032657986024509442208915673086650633228754354161822182526324934364480941050884261845160295298546973606121014759107855632055858120456045774076853575527406524222728774927100596263621319398634233227360076947966634984606005415377588821217915277096665612792276875238273037936791326119728727907513472894765512466953213671414339326839851701425751710959264417306175287332869582477607637634095195029751967946185854667626178274955202579953517465113137043777364965050715830301442879306044307976988818608274440027588700457913815456217268291313344138110104197943067149609503286713505601590867811624042191241830753097753711651348135475765010237027672441267923803669606333441711282837533801764743342725446063438297420977567892889751385617119350607498658251790869462385754262208394232648288920838013035588672649315325820345756402241045294964407162207437673576122595054613259531705069446210711366521449112235892296526686587571958358691769720440225113244313813427941681502006658510832848697347091088787118666620454756252898697390012440920504360441345897696768295695769706167704099037509850597439214356003863045069417090233294225336468080381756930797093067840868700431543944072441735071362020526168474033633255156336571010035051672187779408031993599948311218179759164092080876715518327930027332633596729981944447546054464636354206210589785540773071962575445546155853182768904364348218009325240957397783883603899258603005481525014314357157704621151582186011639891345915798119567395939184681747103051085845665052901070491327903011294574573593057297461761711663536943700967787879055256723663076199411604807691559129953301459479800802151285961370489348300172439111694710713533274429953080458941997514263277797089071862417063055068557241788311903444365644677044000582502122661833143079140493196720010656511596902854032818030976478831936798449210881510871793671800772457420779731286283226817759466964116333019345410714968772390328211894104869389050533060667454585675048680425139781924634275178071017225089067084815379934176600547487564575346904187991695635853937815056729611112184835229516364817705545257099426902084492647938029333248578732840330093624909890958775889778040339022881050251940908006830033786125724305272527182009654341330377788021161495718687507143754943810969240838734957644933517532442920123071134749890452483497153134480279878556483430497048084165847153192545797844032092585528664786562934721350567911197408494859108055308688025552797117924383346448952669590034723409286533443852199873251770931126842953530963277366089950159610856487955892135412056778632296420518077659498941285189968777110509269854956655498157643577512692952938441408708720187247676134930240699028189709872712643482830342643915749597164175602927415443078002487761217524225630417953234285175873758202343468047534550613819021125895884705453272722275607029272280434654098083006750683611642284026849797677632815610391846902573635669208078251643280919896813811261269046622086262011943730052373052926464007561052246793990040592733820837446835581545891471497690628304027824748480112676517662109766113353375290228685027008979880430635201548942389193373676651635121379514375186307594895829641940797644532351359676163908731079798134235861212141311197821380485302878388226962019347877948837775722291987346531512293691357903434194629347348705114088926101862893440597458171648671123346213639223023981429448658269984885127544086631317889720536631306710148324169496831879775308116989031946319612268223095420798405372673835345040658102963341593181622228950254062639822867115948835304417523019548850997821327606202325575857668784780033164841879843686697390899451975850982408631508695144159406242594249318728469323784536187651971684180137599503997076583529408344709091017137122922477816594960421526639310837926360746896622811245701688987271685546004558877722877899494023693622243421228349568143651643919886884089678039562281248970687921483510658381121430906306010190409538081898258394961604817227885727193727273521821766178728683574231858310941197024337197888678372636850577643175132190402934209981804502410937142977492847303359173080710165581753128038928785161679431279412290346830633597069752718338089431074372497584607457088519663933738104766147919723106116885733924853087441260656631331996781618336392373183185625599171691990118818311000076468464900732893961524300534373235544358186027097340954199423293753472478270482676982954801410928297786907198296793348584222906288551975434640401433248972102814126089381179632866712736806729263165256974146947584294597082837763048331057442892798176505665758479680728684514390716328519780999736170628834926690599368052138800582907742017341903550290998540551281113404670658746232784511611620625880148397978652670724439097799913500015066821547265670577941838853624615555254942952631590328650574469227402461532062932348167947048412693335350534334355411918897672176904963061487718167313821391165232103036557574183466426925250357008757864434826066932775062696394940605593873295031633420865917904917970746398758272207916640349799966596761509674031142625771891949572693259459084552972733296960142412917878845517165023567430754901874809090399075883338508994533901756229187642463790224130771244552112621263744533904576863247340679897247455316304868538447412426934370238521907730202365390494195345769692109416576974690464081418022678656251774174976668622709396671122250809916334047048680171923774537703777104000904340396518530940023756003437158070379258744404563964587337091247856477597428380800848863022064887294929519079142497289925781553386917766377040617875398417577886966542265175541660290740568328214061719628388702160977479492315582737733956725288831055061368463547243086871639903663046428536640588561391558091870262104473002369254467196014213839258569088689925692257814926957680793926979177417402361621383037822859273008015363747804166926248730902072134742453177944162024459474621039212275110295258849170656898117417553921024046963692068280595574438370607999670525982431032844530905522911174040558172789508097638363136832849732108138658150980267991742224547267251885890057186239698884328205208426641667770819478588597531815289390089939324661309881430203650583906376697349031636927377903060544185934354366685189689468676354726102162684421449396266636651360466735673912610381021993898466819798752441032476876959820141953863696735860502995900331432089538926035928359062467292538617760401478196205843233377161916162654479049745516835976331110219999397167135472460651914049016477467993587510433224111079969678308408370190485360889861408669609588110481469597747501631044910479356345071266828932163849773222551981413546478876590482752255083440488080803383256473766461954036260961191701187535641843929627192273323866491741076223591146342822771592490556099906516030589580976921874354476778299995439958587928121087738327705195216669154577949455109688801410679569748830335359899985324634709159780350364182578838418378383946634776553976710968331885633752185668182572666566063974343277603621399234872058600682877490412091752901311027159099390222271955263229334459019115276218025994276106638850143247804628517505080034362364786126831217014401070434199494427806412030490320523162561699431064289922163963481608592922433866125812919720450452582861432822708063265368155987971364681762689536510388765789684679852046503334831425645963501341234694173451902266771623403679883965418491898240474297525045354370026235319647353177445807078924698746090528221252039561282670906644470491252245368955692316991395145980203128879127424385114204926570874226306758863056163615335211351346917731584871472576238831411790299908462728866870678703208781797738105279787423297187150682906693504699530110147721979368699863764036711960317376895407601334662378615086536064625882874702986980158186815124153145520963744655864771421358967667312077364456400708424085794474828846518538994663088672890855766442550729633926814674518649543828956085962326792218696964072373108202969818083525857005328152914174900775738801788222771017749141342734033354589927339770313602134614727208144975495862905500806060311578066562684857353047469914673059226729639606742476140483506811516152049436342515703665385990159950475318842158176464049574152227531756409187789848469280129490706281682471996807235338905615917148994203567504042703673639383203006010228172385669704717843371936219622455276744773802714582423901746555687484963856805078317474618841311948293839118955350108239209562737191180647366059689659105048078066909107160500782982133407284535655162571715846222476148878022904228782510883881770320286937338565281372951380646890035142764213954908892220671385269134338439501722411094782531714336904980272905515326250961513646195483184453859802219635482729775070304009147067500042064231768709640387621697766951635874321766911583067184201211132474660320134456698868315399146265863813677638446876580475550476451460038531482132071049053918277068515790781206480808874629264574088261397389679047447880133860438927713603483054015979601846826733059929098651746234910403386394733887113971199781928124757077384049863481960205252880577027911575654310479228948196092135326451109285985662033238833012944256643114736061231629366023098908815462883357850078135017493452722216587803737905019501830213741718973619449036850078420144912020991352348778282960197089639529986488121418521485694251346712730605323419015212823963227841356967274867833526883858385482221968776326773051813397912687099278927499162197482911775969958653466402732361443700103202196380455122730528214236353863998359274552431054764054404258009228543359224590685254870037216636791043092068308042031187233091585282069621463495108448701537836534644767025600732590849274089522298548962268744868000202676652370902341586148988817353060944355019995538823825056762747714607730472880672940292142962366905767710475791959329522326156212821832727370949712073311439070609899903214365314096011144572259934445897466543061716466745666498506187219414676110867475896100256447669476171128442911443511303760685766990720023463035513119072039024401159583063110719822954077239607751112763080730400477439629394966493133245279764903968585234588632541386732299511930373298694184587615128284186542651716949995486472221525048016972794862883747578324863771174841343789930429295208338978259818764555739666578293207584700417733628707160128263084309534846861498941761273902118873131694608659823281667999104654382543936540995737951943218304070818587118572249371852587240681687771402566453268307842299103213257181056344470176540351456807162708469049523201894565879759925623917700676470871490272284786816369251067295501858479439383465996708093957524114715416397462237604958053712043353251030728534242430913084973823612421016182266750808275526323061933992238053746779477858535863563247945240342691223926101551083637443171232218938476394534176653593493728897245902388187514799378519893244315460878414634551533244789426337849080113423641482828885660712457006963800683647106587976114156760512678498177881292936966773317687393293468719752843694493092607141387393799155432061760048089537125765193538596472364209144147356365854803681256027421646200966633888337637827738481666862526944923760160520833271729558274067005551260787765899555883996368757676148359983428122809575941631246293004619074263982691556895677900848721723122530602726310475242818504241040685908404272105531610061742525530040746072377884843076336118070410553479086712114752336030296319889477597692378985623243148866965716621440693697823248213843418256149757808535056244937610470465397915200046833833714347192100360095105783111307311451339625870765036618514807155658200434508698994591340889534784090127131045071971037541252354330597619084021035838382707675572157142558302921079583967545292480001501235202966883848286675501048706347630764591570806722749272967480178888796345119645638624329095231208320664697570230197264274088159905697981962577738271818568082750928755729153533150180691720910520791936912974625852235902757141652313238082957210332248416624502202136791249496194090445325911849923577315202920799313097660900019034847358906295739461927021485964197559086369094610157722150410954458862363507052823535180525675131426336980208969689392986508480011607658601314637473410432357908742054388267007300755212841706882830917239137484170560778349086409044440275424121657892128780558748865384901190601514157030883318943980232520511775603164708382277700948765655301760081554137735791514834280381005091013926030770244364677658512360569929305730815346048620928564547672916790707337054481396740382051334370804817688653119853823262835718243605548053804639326027112194806198341117759003408134374850110491362640682553885058670484566066069921405491925290880847293315912202007826432041751547296348142057745411159222606815875703073174297533678765514476596310530662402573930987709716678253383748084124906788473446118342422261993381592485492172978669212988217850261017950786077449057743348593503199354475623274696371705138618959224006944530520199167975983285422025443172800740508386345417268837288472941484962814712447738916759035443621063440597602659815019817919596950797538345201667112842212040004836765641368493209143034254091327486613449989225715475033047561537145309337649490636693932624441483046847570397652683676807236323364915056289616168506446135638983763010261396460503358951568465227501960321805496324700635075533059026022071086552145316307441337450870471561731679206824919606415577763835011618898315521717702402027265930506540879471232691339496655142898170698296333586139650673265945137297258115017575414089951421644563544285381210885152770299355727068416882911109088045475386843524419538770944610491497435520270422329271593396212829085105448300101317251696514810581155980391824919915906237462789069006454471353395525960359020402206971585395657205919854080819908964885609592525173113370415445036173245602401888017217974688103051215620210550596839609545545865493202511833627533326244642760050812196428598522778865663092404331890071286767936084667840776424526358322578449084178925386869325949898360637513260867751438512697143105923313370574151764903019831095830550352622968596741001220360029060343867305938246407203860643625781518594967558946479856287168399568088521337619184498833205842313302416255445584942949268574070664082251997754349588458007474858528026893546535373070672210170501492675103461812692904302261639583561591442172966616103658902485523507845413817859713709054799187237322504402888942665706159649967214068634188485298762161035971652618335913544475115797357593405002517140520751855947380900848651140327406630641435665350231122283708763103158108069773479093545869042655212569249267852392978142238184593014096040660292832689181530823333486399744061190803874108708341996773579812378424721922710301234801490705719502632964251363085036092375952322526406250417320725532319925765577298579186364128917574708184732979766829168583415571077491722780622684187437993605132133916865457316038261187871273214190859757920688618893897350646655665127166483172554148050557043023658528934320234385455269834335969472381190657400841758022987255496964082499281961049732064352506286934776732041080324889220569826063579742652514172791408933822794263054634343908323810593429461550092066786110845952779271256892281524525440098536021818417583818800328934930835671247325605370113159600356443892631966787536301917490356973773479144588968341900399766905871814435622862684318236632973374573040179111415899275834731949697227759528558432069181594432210821440367397907260025312581939168506793547698630881818621672455910903500606001838378914783663659597239842332336042901150959499313210130095094300676560447384460022333781685451638878233959383186967378199561032928339676778414344761550626146838700400855557919099242074885101699566228965622005010651391722450691901284471018683236169136252173373969224641130349771915059759562672326130207053480808948674401508354659279061019723357315283428945089764002188880976096773051035980853902406391483036106701343229348356175385319425154280280505615108480066706773922956786924991600280165283562745102824639358265429238393013570617184166361861740444507695646039130189616606976647075667218755577696976525809325527651935019015218260854296880854724449125921050314437631383435114524459583516089871058037599906807340500386637428771869183175864242585186407643066833834364041561948371354393973327555580599314690697142707816730270686102596603090713983826781409373897645529460937382827839025553337698347893644789346540175700640941647318093613925223699478047818282746746014973636141903317123317699724950386919477082183786842484213552274099044645832506232430198503343048390673784298937891813432577962578157920561512119436489191098981418055550705134592163117530433804320973754187425293478496872843623400634181092356824443762487492617180373937316482338209351006245696578924651678857915847858602145741024899132576092950528504435754561845917015862246709136637979260774930994636215189387863222152846983693967666468248071910373541963184090203055665090216186607209952241110552933691595897839436530378545286847499166858077072660950813807570141887811126147975290375297029533142770550928967085768198161536346713342215579131729843194044728497074469672407967504400424745238444652943922414599833259452845616954494200639412974727046364409308107893706118106218978008255746850503468332801657978007807633580284830172330466674124832336175077710633695138218684579358956941207850057580804352362218232788713987163284273216751074646430862674970844429772338394865521157018471924737851091310736189082947891105665706105804951069563373743541298131653618525648841664027698123717499431988973608669211165871903768905603481702676505736452558040108275571542783840205523457553760966537597944284132709134216508603579619152109927753922032614761798254556023336697836661079783192074083092173281683032297939745845702614068957448620704583141592009312424623918678496520906468863765363501487328812849035340025850858408251948661778345630761449829254401352783467149555075734884505965144381644013714341009776618720406337357178546337184441556783268472891811659449603255177966358414580923962450161122417458359934312956013381607451621889517223822659523101089518552722255490315757581271917756276001162197445883110852188506615267995541328512773455102838390712275688871232029180524492597813615415201756210283458092152221810276912255285172035628216325499519703257895577387429363148677821730461515150527953976092137345871021492955752950580849335587134474784743625306000451474449913095782345465876435666132096022426120063265485796820449381531778763796047104570599369377565713796982112290457189178317854718046413805147731464819296869379976346462744307779371540672871189766750846556265627324524490104048168477045645911132079131222714103457757832556709483784216065145611928553817761292600440644499133843581690560363409902707412751031348509012416877155316674063317276599381423746559810135368875679560782190661247378029275676159763564983689826273494571262358754366030224700615061516443173772197140835356186598565894610423273884119832482476409887205143293057401649247323338169152863425897328308358268108146673080891211773699926234100702359817699603332287198169880779688646301837092292362738781673249484935874914787719026838465717558773209639079595913848857904128117045438131310953864599167358544448096438285523625912250920803516316369739134650311253258226180359335669015325172136102479712724245602624038577044395555154173254857585780785677163378724974413869472554095407333318358800368102075098436159420703885661911564087292718435528313144031324422508122453519954143187861572926735916762843466040898909991777362756053306741249974199997819377153147942051060955474654832927852444009910265125265509352322838940769360553574256163962823395081793862191814535111924723189656425675712461743445377766274773772725928411587638325605990039386035975212924675213881563739568756541534185533268694904578199773987925845878180276470711534755297260817202044238490643006298084935784525195941952864812820404801904829278748657570673197401733166338142586853882915113036389054854598759322138280743654449427748116637479902615676325683348844347495612057201477430329687322615381759096635544728312515372122352545230964152960481237258700984850543255857909450741018508967018215367074395641869395982888709540571907764671152286977483966181621445311745675285518368054389422270168129216289997046545423643300714359038404978654370285787833017382140612966129398025864004402668750685018662017148953807898032036618536836706625037086795920817659366064603422162044858237108315027841205214313756977129006956159060865965596104685427086652762800758652213574481058599338409475789013199170682188085027104660832067293135406770856515426743374966487042430977693332512786377740154051645013641478652595577753244122493216563831327963570070822647135273068352052693997801010505839893909389552213048998458109581039140485472847612361614136068704910144819842636756860269050098848759855577902594556122421489750966759746837016128129206879653871870538698247801410025504257864275272137741585700836345851403248642091100210785464570570240201445013005324274681359053299375684438303816161579076751492485569907620160090047404501653262206654908387253972476991133711437057622282503994993575536124641321534749053672457724423039179773473827002577369220670334188018328036513088428290313875370816574600042019320898415634663870420738160530707861944987688283278537611102487526789858998927682672540269437520719265095508011467035604116129636271008167355887627815861380670738161600433802434783942695897726223225519595071293456125987363092438389837719821946125722164034964618233577582245909076886163180638384860889097571090064937259385116017166661164182732553683664698563334756850308392200802356130136746019711203326162368419627758357930962972224360193928665072026354478281706336646567339139077243282927113256634301319713298538354464270867556833516310600344472642100335420844468227722955450271477706265787347028311231930116518522802608033593307364152372962979662869028285148134525369821309878538505833800800723502310857965482521735141015368762161724726502176853325687247785805268444404955003282984935666763938111056974337398689635630990911200260158523286225581328846773479120429409960081295419175729238292255585922027457407529780472192619630423148013328924854896746186754278452022845820106822998654121792993011963137478043612690290342565722543018563793781832593177567259447056923681854280268262033219199001717631409604416097964949944670341476507346076860546360860447058289878871235346015609769933122849419067781412699376716086662857587470682720421982471107155759118190592104514288740836117777338115442740022232009512230207471825403361437865662379887273468258564991389973257233219074104975356082778320499549539173086671621569938152130794580769377832594501775891011772110374907899854360998120835784238008271252195213952401810353630405237914987211516337195446398378499913017432717011106741091462990256638675034681741902238493875443380492057464366079740370044228671585547222348841963244227925682347006071921888848173216413379909268680854575254972989721962603957448246343319300960286870299987789181313158031784746978979695194247991985156985363823279504817580704975023189828280260586923645319096863751922100740116592934877017695781916151957213798848591510599130829255933427831234883561985825557679956472501296664584147786133869826715295540526623030785869132336013286844012360943435531182580410667814777080200267659861836638797419286126120764500663786353513834634471356934015639679234258090538049720774915288325254128629160885513396031845187075868430700783098324956150487763120747073684830448335280479697420977455183765444593901503000928217060623841800698241817711956287232576558451532928980168893187158320424321543035120644149895567008552714559187944292635326292807736832665645637522317109614074172792915681897855242029929730545646078073493361617894896936527692334377191414633083859759234253741958390482063730215355218346666850578753422275846055771710758055806591031762223126229944375686910300373618866318243914137966335543325151304316509157117938519411034470638103531528371246965166585051984518924193021715612632843410531737116432785997133376126012961695624211609704192841744700961690289198974638811923520386783354823489458560562095888927949749328126479911140294228034163731211666531159186615393912055690728679990042424444552341074655101001805138027252918821037999947491189080571482528156956612929760315232981467718807303611904205776133352754513833033457758116432512629089201520373178734494868220317988789492820568499557451061712777330158921225699381970790053492358306021484067689444291952084354952332299591779192600823642115707040886772791738613857027981900005003506821164861059596769342665367129242421345965767999144740730122409073320424418429850850919298833382959997993188875879632795280240438884752083158055750233467491285221065366393848487510151988449450962722186681758854936669018514021900951279503860136841199385060109773827400426055431833027771527814805578426852328873516232418838591364618881430208403828067734622415799856228343327579434439865254453629493767666818633234947312304969076797500444385999788404974109072327462623546191297155564889872567399014778995330661835123052897564641670613404931096827684652574531843926981871004080189450512261621990446620959964243388327897552319682924192826907350806008320596885550126082230275056315770066189883766126547585345133394858742024220116014334076166630779404926252117517610108446698406231298780723614455799489196094895328881545642052242848927459611160623278889813930724227725049073732764955380724837796340731065722764546610725271984270896938487727522789110179353920008879104179944421800033027589690133294946518077799220416996244866619887247359165731511320223189125577486372145123261309709966500715366504625089337904722007063915414726408897399940633826645448274450585686396177452152300552346420706729959538221333854682550258574287998607567161331721424605275125204710134668078593997390796697658360103323609437358038671025897186135407911972317623349834805717457783003021450238638219932480831582041642709718232164998761824052512547485256093574906863844229095814324878889479041727527068626906112619837825390092068364160395999364422172486029462849774191889673042674575303927204779231079603351243041637788744148027657996431514501950524073276239027898090670438911045614606387903677248576106036022241287315712312079973033201779714906216507050989899399031629964483508469181710742423652272163994487000914274044094200259856238191083144675144125331448503626268727153913666501006514123862108286523490235971669402915889131959801753987908883143530711543168022081779255628600777545064669123253207543084675410428587702031787929095780340991439360376840916506815740295118552091785213219616142565422555370186652178332637948441619068132073223366503089560741210069421630314775265509467771807487173953438443546225753038929157272083297401954232260043763792072886100404610627570708723908096590914439200732788788848817119280380319001966612305737703607704027198338375416924040006471094087576179270862071753575992009256710291735207421165468945914764060191429562373065109197632704400948129750337316025277540342317615498467313806430545216616121718043125634903468469848586390588404611065363742120978610696201389174086457047692271789337779855774101658250510297778314786380645473260534514721476128764389388932246345115837371399327251365091959164867254970167833436793947100288763278191729220724318059648933813326251943345873967367745392403195376319393759888560740847748857102854640470907862193331653677252801189394786773717813602532448902138734916632726969340060195548577604381384887898883423136482661594292981620145952257708878371248354180492593583312287694087175407760434260223111226915947931048144014120308740551402160347707064189144606523281392102156276203577512150589191607711766264452182508731716243785718787136119717297451091509986008164914060187485420109627349899542580278349986921073684072057183663389881456547534472080767041511663848554598326204242830691059737493874425350755100200412342332627220989259756464010937982324622671652950732032007900556756979576558532329583527856321319830302670141993581684120682795440267785485961495454801482652450574331447334492654798497676135658138333831187749620166906354701996243247184683423307070934925294840108438855326233467983515254346059957099178522271761673105815701373418381338993159936829097519019583797243451247729219358831578254572010081149907537689472536520943688532337066518032932997314115801835643373992443494371766353082002286524749268575265606349678972834950036605708522718353371214307500216341495193146485145989492557258431500409620481202400512572181048042950696549036569244970035844567472990033997063720926624394753548112082919594851306066871701278600888023684779745259718387102748348602649325813049707284292691336770092720180165885276328325526956842586384043063785943103293346121662610593755757289269816025856697396731039156134680276079003537042967027575613499324553122897300909265190282104242294423529699928220199639213324436674973054889355602543658385431300693155200438728525245507677963091601075924366326718067673744816017772214471594025211256755738241687770884508446978074668154132996400951944649092438998134682339084241741330169740221409656598659001473129699793428087359055579135507741511944105393788850596380199086052367449737023345729902067069111404525193209935727332160896951619364873436903081125293721916386837029449502192688961884623690533680285588772171852200724581801037644466561693225544744159688514851929762311798170964492003594279799575413970498789128980996721019251308665886008033006187749821187861499891316748155941811570581427740419210364553340366804615204970920505967403166113516983975106167857303272202902751779369627610049296196981746963535447798147163873607787738906341788709490414199343835907299126584131066251488705170166105554959111532433698421457082481697989995943074943486531671120140544455160570004892979518239190422431187534050561931395126834803344745572252786619889851372934580911696629570093357322385787620131659503652850857889475578368384956401288165081246947340762390100377091116346805472039653723999168729054030947406936120174561500388233335938702466394692558277781797207451696619450211897272901665504167671437050500460018293958774442393802019346134774625298789343734533945464222716134587764603245088188554961025831676184262264224353851796541013998107985105349330182632283551916896592354775764607299430187251536208075322293913634337322077249431355634069033606086677198607704077356087839845743884535291558173645688001521429978838226886098644332127866379906677231209655379521376914412060244705964092401591499365123752007118967942291605407423409804155015085894749187672057468401606922946270611472169513733089707277934624640103680042765553652085236177357446900361546935496520158407070763459830973758248926504650377343578069050082632024246625060026034690747953134945819850773491952288904751238508136206788767392080054622872267256899135406252441543027209518325675289246081976802510395564948603955223370274737819086193253122502021420075780840622202075126415521127432279595822413422432963484409129422184643193216180672908404892061549034674006402812825988756508303690110266289349361490889432010047598998793180193739070010001014838912155057125165371747042169637559762160063129390649432670207285721936846935898442448933158311145063197082523996553334694957115812434879426923621191838373708622460190180222950005734126534751480656562907618077768244067442105103641858329519248021048454902606428390255442202394011072454012350744084453169423559235870311965992948772122374360798338571401180812238929021232654444397220231212141910012952402524236254696953570203174636988070081262491195345928730114656273661479260284074362993448101609595008936286089712169182685487323862859227927939384843933256591009142960768243534349474070931190135985198089946967672235243409545928036227834900029260590232114729196589550819325794051865068058479372357706412009023259651892453648334134972798061079972348390308008951138747723784004037944623650240771179229001558474557701610422712097062520797224639310767404814507707322110761068442460330389354684137568335567066971773885910518783533742204144366464505041660243233566571273199231104042874793711038512188434349747032710992320845726659518256518382279149327149593975491255487613293725175749995749185167962446728417754380735742224700890721433717683497010952960992951192478660405408891259146045328460558552063322547543321218060140874557098528666062128821396573341610028993866338023456066772268813097137923543907465234858691902105876752298755774645476114712383665494266691307246378227939023821319183594737306676770938081543875272369700096198569866902464191285269402958075023393740289790855838679204195816018860037134515679524150191160374994454040723885029824336412569278478645387642414938235957591487745567443521162705049084419278330034785993794492690979827673082134835314667261905272686827282152772188545943360041087085281787811740372798177593083218045622648061502554331569438519183176980130564957861814878909501476948189959847100473363385116121891994797881460617467047196584740283353025827126821660256472512750678982636792627832071359232693835253649571648448042814082472178492473595772471818617752215022410671362968051498592999789264923486345206210645661400074792164537736133978009422899260740076994509357257885162683517605679979450147669023906068200783327785154676261934002961202234474548387248719746658059604355269873792980143183813917404149919804468510758167278510107384426059243811348356379200121546491882955270881169648594774549293547640339243066935333450463837991895002253018976890763575437309788733250820519335692302939515130167309681824133799375558200519768172845281056206663166660527167423271232749472938862988898557893221017532036675759433340419552231249727257906998045067209854742344005100887085857295438656267919510080300197152014862143442371175289868470753346641487344703387770076740503263421067219798169140773291618888562610275566053910027482944697571330618908257587819594782718006514736967179326957845106261108757150056594854256177883744161722255298778566689591330210488757318786908293449309706730235249463616214212151404801581960478626328418367047288940571095562945254659579724392143639433878565992855515278191425688856338627265637467142039183874276842623998783161840912025791120276383975858149832978151666014771901710026442663050796917433170175939413866878117245881301023194048604223165136805846605593960851162053157262300337220484506125646568822029378253465087890467541929445161290510624017254250425773723490991090903217450760181420126092454390192763346999111838390890752803117849033028254411371409726302535420472358841342973193004225273367169843945898344388900273435654881137458424767204515759066055499425256729975764574173429601522555845485305796612879917203575791017292329773080845207635888854067890084056753555268233139141312367877018639771646910790294755764559362721435511573952780800241101041019461280426571978746167686388921547822487666621160290397926393894882173746094827648395096701486458382108603054181645602447369082592765648334690470982808483528754652704469350721483552658943485688121977457469259811746993544248584193992924961280137143333702776631885120570855042701725618872645552099108096436965087826935195744838556929471551622737868002749917053188062366722292866324076620581115308160408200700450336887908056145268074188897154709690247131368294855283172825376743787152475447028818927376599419700153663905200980772638652571655822125886031079441392909879064555366512674473379996728389226018624211977256045582678206856099854965315397598937292891813300684101649585725943921241028085706786348297164907043337702423075132498507433284174696237857284620517248380494268220396803444451871544193220165658756694344166435788444893753410715136741010231885276586396821284140021738659401124169638154632777396904855629420019327575643154083586929927695891675998045822058702193165504030737024337775674360993253601247618176902161114495221263932009259577229715001841497450006226866643298780556437872200479208768393596515171492258988967612773435531476421229826676259793389237275293213445595091801892087323403077123916571748765414744350815599349699935663398858997489631901483903071730306575952410700459445496327077644038931124969851876874410492763994705624601195388318703430027610962642886638054686159258642300835598589750434162165923193497941403622922355973446715550250149548386623602713043315993369503931808541818054100691124735603272981950024407614361057831143964679912810352912999627025878790066628286707373471282074501583072709306449823964321205015194921177273957474461437310130076830629445284884480691880670670696573937886626720179895258839355572714713689878617116289066963374207239651615455967552373278745640317020482097562306372923379831755678840106626258385913007052760375618883849680297187481084805354733298461403251164261744837044426628629163365107963318725984057641458304115834521683121212130196015965279099571944800943442156268335826185809550042763785966865296120597964027830857338184317173756913638017114799732294098334256949637517464904466131321906982312238564395587957151643284581519872806700883301709974691745304022136697729113600917897114348776598558085871617082185893483873842032169471540587054168848930032262711605020967575510016271845476328202699161328210697442147998368399626857920435965241945654057266827826818869892857813488776004959860965646356559939940619808406155222919625835916360233166694073804600558349747219716455198357528648516995322041945360735644909035053106864045890935578964015050059586796406602284151939712717437547096229353476213027601787828651245422138149281151060048868988519092715912039139791240794444803107870664165190969843715167389574699251306587659740458313920182696767087778225970622901724582174135932020562843110801367576560027419819734087520673238442694518809900475027444422165327555537050821118418176945151375004455581917663895805438349273529283815160040493468066491305496136070521940392805477669790958331104560197753891130234786916573098629554288771041359778476200906846822807916268849069701481085137450132918135425266504278411267368976255620931765342868939363018642286565095432235971830063780507306080298685013607008063606024374730252665678202658390421549467032394561987303308514140118710818146479988568458043590420445967900243676027054527618414727900200654751110360709748682343487556289190434136002961859537173945255689446936533934848173414895176340017715498952912681088813844677314321459101216104781444010752412521694383709257086473506096470128300491406971488047502196903447889004128833609650071320911841064726925302352460285514332075994079753335177677740698538262184462957228307199767460302772132650007496783278333249837200570942151497699498299470393556232840654619676221689521538716894249307326616809253017153056115998638106223903640282641743683036107487965516458149641630727441418641553471635642538934319687706159432867021751235355846749177703472283780309429619613220966378091659367947694911820156059994072287438687202559283197616577643936626696959159765494522775160130714149634682012801029274368520099336964745408110173839669308136008403192079009543512535493563702686977704186177105459801922833251856439818642024976570206048394347967157593481479911757342620419922635330274035791251221514929907260833125086578147240257797794841039304213294590808169894294712807841630679370358446836281479231520221022947609981867228133550473503231975460896103138502402779388468092368207471214346587159689482854570779000993692690926825795399215254362757115159660677717854037322180474733225985925667995894904876867434514157873158489808723836683781335731322843827702298288636905502543721262868632833574805950484881624245288017974490397802290871023989166463417633014444066972756505457403993849816901034604712747770353635428755466773326901334982855904975045426072168914606175513535920478251727502489283467832947977275827938391063214280308974324430223078408286459468224784580509203065634025070866582762382576492691075301191141222856770580241269004336663753774009124252067413292549442734240129865019179932890374054481492970451593376872781144577937892276415238638781543673493432380265497825408432420269762386286045332972065202974209980333000558750470989309092098335555406371053310478176159385055473216948325261296034369876721712741416705153862367980901792653712102640095071326146187743832214164268171320219756180477868662422491868402772938435664670222012252372599607648852576504126193969298057765378393879347060195584030306404849574730305833825331009954859312067850748292578785503718539503876225081803573620404810556464421756305646206558829730716525459609350878154338601654285718466577000822339269547723615441489641368761634676476309720313216909091367347202226144846273549590455776099669578166944751398033266741507128151858591618065428713818237864210575055718274857686765479411928018534331286174588343612270906708871395292213405151598196462805979444637136204787816801291539528068127013255880775435341575200715830410701592945429118885564340325150470399165740472466329504488696033425152475695067957813357629128496643379606566991427207759922315776980526767785347638256581494794491905197082762821225088434302395981339839154867327639364151644940734574412383353983633281871957238570778355423306018049871090616984114261649913277273699514897163388775770996944887194998385258181927767146422957251916398931931052025726122664557989716711091028760667354199550923377726226924740896523380254252731784271137924792781561623230961987902219067778426792132815413420816638437527329762512351050779906082352687563278048686299573074480323004942506172973423244410052445782684890955502010346366322274028790604598949857529659018145166502884179661271332018931791735993976059236182844847887475697916368445942353063791719164071321257651386337968298413386899655772586170375427025678724244415142473997120786757659359324754122422682848352025650877463635412520372844054286908881016020246567467070654146301743308883205298619327428183380444128415165785737521508469850422553551009235874303348445144038706038017568048069144900010779961675333030343839900976103494733662713425572596790317745988553969250736630642335003701717861617142931221667009921685347523904636137584941054215972990167354493943765002064625565386252412542086641102945706665826117213348799779244535246272757929340462733126418754328735565764446131531768618912522002580976820256592098177443944018678990346951059835832212647623883012115373219268555203949595502236196537534178108995950767016681130100804692675556098475882354633996264364514819924242554519860063418582274716822976002501731752744099939198275140931138742815145957825420915745638138823889696767776682572750098050923224807028436026333329667548941991306775043245492373648123184525806077291722806560564441961411295114025510396534752699263110771585615153280040641941869762344169869338196744025198438287788150181353807890479694615265093955206108833098913279564698390794883896194829706280583877819243826604073933855755773377287442405260960549178171256254001263110306295139932323308232021712401640246232859839482458531518125509169531765827514705539548219684292858750352116969842988096142638542162326359975406654093024614843774914639194828714503343295604880204861875313434772025324351675959056291344050837455756335855220243640667009423914925341609015034286682610496542788851624129252541848236564166726979784252009159965256805980027335120524149909251805600544489067484719152129469289141678051555934959408475897243112177706896438264844755158127600902207827402958395073029593871398851800447437832023695741878282234715664615636368483704892427797918216687549286387610926688465923686567884838782737860764782420379484106815238191526148622836953406464891527865551649650525371751296894741173921968894518671257129081763300813353045666938907665196605645069880925559481649791438433892847309767009303713842313865775773518688709900164114502377928418710471131400246489934610558628873836536004416725033763003203082498135235266210651567805128229662468695795498259616481172971187202827706904568713585540387828865171262248069910821288592719830216580809354471574350976191423932631431477982289051022498495212247270842888106499995799738814316704721348441794369060406665997843355070313306553693273250095485941489402601876787568530217615340005271522535986898432561146168534416605001286228256879664703144298389777837180881354955932765871400715520673648080124484643867726486464723774273857588885897480545056114789817262154352149449650454192195477178564315105630049265164760976442785029566972279712359684529511964648115584400728603038500845487884939950693488262248929131716394306688624161223174312768538090170254479248206456960932074895415516102438990220902765000691622326436102781709004041975884858654156772912410943517542194800060885707979307216937496497966134429759998427333329505487609057092009029633829299537999986179798484709695495360568318529665071793567538375725754188518872672407840243869089135627879498742499954999750471988581196425822574171337965559880665044477032605586453751233783579197978381049101240459009847333791376484666538586054604852223548625839156962974572916563006790935333780473576818971523177418740545378749066213883587116762908344071054411389768159376749428196515007754524507923329190637165749864806564779766213108140636114861178173640893601458971049945849269009337758222676038262028831935139786629358963522383080895177174618319275558414039610132411308016666054580369883033344771065413207381118006752993453491026058674879422675257733659062743653297088983698218923193310263416107312552375254800081609876761700116925722608202902322174198358993303510573441161933015451552311889426987150552975788888822288961309531003824317887002964649840716901569186323852535659494812889699564597668221400725748494234295720306122523554091639553989627406378948365743870140860845410259013530341067483385958622329819031719328772162300411033269045745613947226235177974190694857127426398298407611571652692163861157478881882934764648912058153349779656031193309502987103752206736107455429201892269930667621648891750743277115517037227666496931813493903683038407858233740943030714714224945102306954621409326038109495496289788625464703079038034222937160436102021762166570631963350188026430835443266944415403671298251995551110978096179898950725787747694606713139259291645675281598780769740206588557687047764678523107960240469094989385596323098254798824342757834236150039635151666605599881592958666361172478058858526906069518942339092263823295659768877396478251813365546262557982844693935893059271096628079712901922747925771369460950200495199292082876146533828373434680441977783955713610143561888618263710921763653063090542266225753932316289407278617691402678026308649964532142265588463376227414342312457089841842326891903820554685114308153004334106266620221651753013444785768725327572935605248715457504054017540104133807341113338509731565154258605486146853758633024075063830677709786965702874696315584701309779525015831193122815973005104726014465893501832111049287726347827852884683496437108268099913332575359322628312190265671585027848836522907532305095449236339492313533015674926647479556429712623005770791063943003788864767206907954202027095900848780635471099169072240131292291499317356777693386837922518501161666003804230394867289661739182170117292292342875904531163068924847392543535389711155900453563446793806519182402022540520688821622727738607377234215925147338442776728343982804038393781990527614990389876437396724655057936922956299887547577346557060360022742037924787099604514511841363094188563289636632048005857927760823207723486343192077375358707186600890820530605251541510665517360099004134433300214076128215252967827412131190101022111530927322751057546914668938480907878516672664999362176304044437675511425476295268754936199717342294517692368118472034083045033432228403504555543559637200554153659264167664511143238467971719212216896100301920428196322789973805729659289848732068406582842302494783813792425159537250594646604793021959616954363819221402415567190893045157309418524687966755675602249293548363141855303552418515272085238038626708543007200853316473376059185457382350284733089254401722127108673563433957928622089062060982709444489456155271550801926868701093793248292537409157664360057286957122574976423638760373108219864380950295047014130999647951686911773109134074652062455258887842845267604200535920685049306840956147634308952614973292402091444035220714580950289777939451533654939740706839422665778841093851631010973668476378096640453319897483932937724411422444099309765997180036296542925836930233669795654891667934820145654181327330098278569310489468125268549535584157122232161619582084902369826385153769290004593875155620134312133679218642286505606569392133190688644372682151718874345877677319860385303052203586645757894838315557915572203249280549288253858436990140195855448909555192621146124077451435904786346280243463989419267471660224049666434304847979480099001213215996188905014059107822016117106813421494040938188863581359253287115388057706371579556714386497134544237779212327706934373525703981583930475511340469248837171954281885197127985537665429918036108412770635829572546073496408394297857708385825700388575410844286907137019348613726035260776495865482808085682522613724648522019858605010767315359481800409569973354946010220601997472915819081605938943397845559939875711621603227571980105589412302442267257268566346199581494942095895021588935572939406309219025970033966227735163370365229039049918100856901267764804588235533962619128530739755098505069063663857051282876292621973591071228833495811203268975451274121447982017621434466092770764884901994821630249825715643775487275144584492856012647673492976033347542614057972083172444495272943895971636749576010591154839557380379666031943547965777020124065464274618158345575416228184204666837470726633111354651559014031624902347326578493609094802485662297869955599257710438785675282123195635746762388531509958879077871833624354753225878665121206311021955547899873589240164994571504392106839290849102892258062878027475942020705832396538380754201350046418687787520247359003169479874049855590443862933767417355055447878310239612565410977971161527623222626872540175908810605651954231169400837987970486336255051548055922732411735769125612344532808908398050650747197835712175069639325230577053587585062804826209576742512178658242534600683610306957332253593599626016543583344940370385030469321863725123636452867292121595719174849047368502844662287394714437019234226108042401455919435371639592022511634341996239768170016252356149220732393592150833037963074769936812070232809765770423170763761944042968627058056666344884758555273585682687736143295139596549276870049963597372529678233199716717439846478543519576327090177971602497924916370474058641509922264460072344408464288344321543887449070045719478878226912641157629902813390735558040319910342157910265300931743131655180778271149563444613100953943855067755335133586351248751586128942670852886135014124274159370641520715574214054405936744606828983536109911264142957898840306421958812882020373935915710051191133627247966726640429978198948293657910220796615156863033433750880981864563474272582809794257645775535072218727007401617968109221869995048807843588235120141781954997052113463884053902281137568342231531384983376751998041457784923548682389407262627929796779076805919214432521273239988988884997091150614045081897077531702198137977776659526132916452159832568694893066907389193804106336447102534418048938958370892018307864982930085876871006616101081496179289289637082221867933627652129848434023726214790392966071052589680687339617007821957703408596056196890804982022246776763152086726751741545969165048404543162897379787620177734105392647638826543691089388375219731332057026879020665146718612322211376772921518696199597141897787378380000443134975065053999108323502124305211753984256765716831075354473610823195047726278498329958015148616424299635445493493835082446300814018310997049927937112039476747030337244625550870678420435430724847881088025276643034823850950401230941166943213354607813976785012953472325074308658289918096197943111228560708015860566801067115734820556186345430082544713569474251883143582555895421818677847378812683702156280077603175168839356475868899253516715496630322938833038170064034008662753786469282740231165658535842858136563665790053470149263434766931134994801285618133459583918488191316246601603882931427300059026050071119424512906786389021371548155764689907041825769084161319380233674533064401802079369471242288322743187543064970059976404871118950959619342583114884091505703583702170954912732642018618709658341608112150972442980777739822516088339839882503871697087670400421130480140571269635455654237214920550546306083227453798915403980176909420955332022102810687811517652936735870913035718098464454597564508971329919781414090441351597165561858837456171683952483376768996490350031143146000528337038148765654827267565314889035919671584863595387317127456276542708016306043698159703884760982909829189639861020570691715194944264551659726598727701960840801824224136218357925171151589269745949321318817605056277176919049383820352143191334645393288143719578798520827265199668009550942342703993419358191631858789172889477613072278718523482711527357609534081157044606818961100662712860244372736175765529251809194088440965234288188475158070845204691053967832466343665778334151019553363188416652474366481275774250357781965350559987838073216494616795173295560935697696880592844340577109627342915167760885035253089960411265179660744497372241601318652559137026463180220751926572098920776269783485161175764220596854443734258414693838186353622245403489099873916234219131297910701942752427916275893058740336523243019314811889656051927397217564065006628694640081703583731657214023956500481503712607390457256932479272398782425280125369197166250678953090773149149965675771371835350908540821116559625420414385028678091043818637021177522703067624997876206932412517299454263509663229414886738687189583630681636791598460655230132605909242192851896471844429796420277433372646244481329765481523445628526590656336418597612945179884424652850931379256470831632855277617268818052906136146950674754770927939055694962627361974940527741713918358825178463675580313038282638434398239971426521192413081217830803385454833340840900862371650356215195624721549981049630050855589890450533208047611267026641940186287081779994101970342381698455924563311827960700103144652998041066687583520906246938891524625803428506538769565957419626016629542701573410667768376780027612906638420735269221639932851664171092896751121774829706332800425114503199577472265595043289305486355466075338306956349751611690694570624883518883106456018572718267787482911531017120569533423144461458584269342992531142630345610335684887902665906251358184099058665132881942326954328546644517681791338165664896745566628933587487209354737605279637116225424692778849295211271525532461182378195813241081546559070034394715567192487257046515750376046170643588353348640732855242417215401004476548033691546574458689158614292701181149561917210604598660934006783637383514747033203826111864674314587126891824721393811313691616577845980718127575210647558746421795154374559429953345833072550393290450541225461198663138543337324646927561228511060340432628089276959572803097293116709337152667659616415821571614443281849299416679410001829853366743533634931029491358160595310606745671085795954283788770448395753783379159081874748000769283070354613572198205997857462591149831534529468589096745258522428469583389451272800197066942662641187117974545341599490450555552550108671942919885129739975410906910993272904909471901981216745272647658824570502613930457790487996943876367318564547619470800887925430875423348091020540075371537513974304457241697508031368684643030106047432213002564328063948216544483616414353577017106485754733447611535042499232061065203835487835385278850163932785108296431639620452520051993476185861037393974625791649371982806503613929918710949031037485378727790433000943737334516765442666237132261025440751147347962545634098591137658777731449556941373272675319827756374529325240986975236045076518561751119866330916698111007876106349093019386522427733815018915253331875496492487181255560732558019287181978708391326363143595613531275142225083280165059462749725582141765078003039242161763660162577148720910251597065730350793782379487251857442267722931472562381629395013453887002392988244963298733575287238543525339568432940843477013989589149078223691349291099730657660246684571040227167832976527172590782692663494866946823838890763118656319452028099966837767455896102097906134942261591675985232784274831400374096435678273763320156831245177463140108740211929446216328053890015143957303764217666135235006049672429026511258061103978964633550184702733675276591964344083482784901030573895107991142777991836626380910392484996120816361691362637301530640853552262841543113332480010463897767643068741702272427743599886812727847726013413530175548647922824805855421255627537816932261049211299566968438372464010208250530585148011420138324683231651626673487425346283580131322788400843805905343553753423021554408550105863415738161383244130182441792250724768302900486319859916316784995122642294449163172504550066347532744751308765949430340179675057207322651322865576520354616480944868731221195238319558177272017691796901320368605082266182747576581223011018085915874363365492176718796677063662943096494348202510659526080493959819100997245212278942525403362283502786040368815141218992851916121686975926796421632312487076462834208355368907025203242687161884871130246940256513712299342495002595215543398772089143387886050809872126759166154291585281011024703206219417735443917522631967447124528456899036731385451452289562483034938853192787191983432218686434641814869315816104663852558422363792866637673417294072904840990988279959766570661682516739109328166457760448913467140940137536087304423709376079893784956313415708106091705341909419986604078054704362873080693437605246317707579393054124950661849908223368533890559895109684216800028337312170339791400790210879642561157398029422523136838355193944766531644557427554405795480356662547418798335847017924302282691004017977543570237863971354261595895034626578065545284618896986973955741701189512094199729064033406734582304567180906056926922813492155496655712539498688954455412161897965785206587763046787954910374377243936114122118727218925214011996287708977682580458211301472567849970759252054058370265333112388237612850391008694767384056354989667648824325162225842370985610559226093944469142605315712236240751826398542711379623741428323198398512425817790390719657607097475438215166277255907507161176199968184050893783846416492279852068697127852284660748493453430692912142138557140741285817007173842186927759026791119302746750034171367762141734536927131709611611627168241032218095172034492490632203964375973165212704518629676297944836351955776556028594939486937863509777865419288485759125421243661010262996504502700426718383235189935756457465215750744340742152744207726005226344588997736276168690912021740901512445902075244911870964495998968549465871918408137363885607266406619561038584509908067944722343654332395687655040737667984528016802656415317706690877947793570715901931120115016260869105132642174734615839851942834191832576162277777029510456902420007820662121538681412710056235077749982681479663750029968727581507943464529212769232459978206274697914448607659196747355684750905157621304835113648498732462275829293274956551694604905214655873160827920856277650239970650127656813595781534233964155080016084805581480398691982792130628983977090731550089859107700190682051784470914353435319240747568145419187070638437939825293558079684539874051918940964659138699579281735478925027427696686882501742245420036864301842427235592083437606995054292471829917906523563465167999800470971426873911874339828880380606460145331427807477778171035063257379540554183784376542765082008640739002792053666165687158540822042997358582567854849284330300397691197689633093892755063299392470933156770235853739146252696834681503428668166308955219918940943949253246141930660859015783325600889372942127177391674004540624486261053524934652532509071238881292020712421750422993221888236953932316755184005712162747604855996480627649227308871212930059330926960889240670468004888389991308771670719445387281694877017157506527003261125406730432516797279458731748792131162690964784695391166432680404553897624291507095800805663166386036260498135853203683235756125806796673365832007926297725230428352675423593255822075225448702384866637966679133580719519282704883503197051669723302917001198866522574195337219983131947836710776019736946465626214575801547249157635551564673936723679059225274769663811002156643087089659027856716612364667937849932462474041098321143804820966221045654330617494367498071690677355387728907087022686987630577239545174550543020340421774416493334234785480761569910778166836220237034171869943839439636116171193251623201379030973195156957904167469479254872771423347581639450504256536892478901636708999003834025343144669961816271003103712947383765147146586070621567780970312315906774638490656360249817535060990545735042008293673671585214776957091104647570944383351992986651026339792937063533490821874233659932224993919274638205867253333451918358402272114762392711269605126705947744907765380533833728267382015367146687535378449084926173676761818538403953036371397592274675407992101381039207783853144157063662506167697333721650204473920481433610056372930110620521234859239896944577009895616584931190761501219235938179620390714710663473305834690055397394617990106529897425801347029122901747682240794873235641546831556057569228091621198075453536702478528149073072343155031346759102365908333037787624946043593634630302590411676862604364877622535836816178638515225235754971125865807193601628607690429895594671653143574447031348998782117514731675612486097038805644465532910891084870314533455885615481188333214088483012827102659089536049181699822722570713290399534959292453150743695983371863335005759207844508069438513610018355603417708442825024514206260641293624458560072731476622289034863425838986240512533056290920883247327945552404089525264832465440519751903291263393213877590705687316585010649601727046861770733178289278476362469670076877238594017314915603138224094188324707239273140444229951843368600179668229733975972273314168436668289913329275891741540618385247644435904759392788934258021854351818339074229470996139367409527369106916671426680259432444484042862832141035990863424931847144810382640418196402288324287182385667786940873359208777732702502626036854267168813777237564864762390915750795409393499879925709927317673722479444099500020328979463825998871799785405176595420232135205223834837037001229558692333669432976867828828951486497456827743003074805360478066390793653289682938948882653745001641007868367180544913097858774058870809093473678949911290442939731003278217245586873955368754774194840906672578859323123100856969935765681023200683457152418227849105799446506906024994528621828461482939415911706895295037632389350125822569834549672970811352133630614186422601384099881921340147434870797302396279099738628638405790217963950568812438396031140355229844066716258152364648503958522199722614416215161473128091509062305000628598684089891502304230101593803537751416065063058492094099273232276456143140679146397277261975811311980344205838668910261479283281845627538086925829506011872532068584850594034495692179021834992364324993053864359033202044404592554990690675279246201887114576055620615555382288079989798467352306914328605503262724289674019354167931190215123485500467576097686265086629780786187945349042586350252864900693743640658637374729117176388586967701130778548099282901436114782140953096323022319672231376673690840264310338696233657665982081746491929975088977941999031114005577888985061538213401573632071462984240275948303101990843442737742313108690319460488492628694614640138278888017086236433164300345301067008959994721077837825051568175496181877681325916646107962850138616931245379108589031447111274584249382926040194046310902560606050707577825965174792832427836932571702551699976286073954272992789431662925835877398305142579371038107608690289332480932973882788023707242329719603496118419351970172943973406608263190840729737768176885525849993731414514435340538566980953202773192760709908006216109763426225097344790484123882954978956956175617613843090591140216865443390112344066949297891402384823136013076901724615016757191075295060592090536309509215001734108341691689427130525222050952173447828374636275456769046710410846939147838686951603151727895226440038507547425373136592531413830852068683320562659576111908017125447599231201692130560583107422380127049154440127426925454944213861508051098120604093549043995396363224364935653591302192651774173676056044591542693719148968555697427707809092545869649043543000195596414909866816316275239433012684967147399881505690338326024808167597848454230763746501272852347129117322443975744186362243934326734955377553192558956459174932310022227199872129656029452621114921306708592777852228996475479746698402878015324446291515805976746683465271548051927861854086237188430517408067127497449565340100102257556840439119390348701005310762142835683738404030350839713046728383838939972820811706362204205263765637928343083064730313851614598203524640884633423222435538148638945275069167070099457440321195305532869015867367009936829209199096639767895233975705374836139031539707664328180180453558725785667336291315252839172263654081758884069691978059852061631209497936467121397334021458582465369732854334968592121138542795753977631167019812186062293537801154366455064007562226839050840858066392700550959803617055097790777636596051248726297968768418794519067925998341828787136071835360414534691507458172639081465342935733450682956231823726315866985395104896357719030297465052562824554514597282324317035575868352393266184121203255059847570287586711811363784979985550203544394684957171201732314359718184744830639974767318740684902301011140220298829046119924296540012437190522536256159530061924450252599200439479827540716216213614083616613095927164441868842788880909712369320744300637092808637311430554766752034003759012771139150539646132655633815508051436809099168914909237620238173276065778603397937223285384620659069469499132948182431217742527004461210675458700116172388387606025958501357749249857939579924042776131983694133916459982658501755301642872392559118646280914745060799888575283388684388171487646017779480745367545023096795849543952871463618321205411701318311446873578702524414848112555649851073046349355627172128772255378566078670883870228115761692573530523155472423631164155597235137347468651027389954837433360948261761837820830810141846847738494627256682086699371107372105323199963083592076374658480056391701599385981364321120186232397258603552488699942849774796228327878166491069069832077943027120312197863157579944727959713710564012276580068557029229021915119009877226855597703639202111959956214513980538784656724183139872388024959712774728061879171957835976037778412136058080057454611969292760550077428617998946986390161836056765832109900491299680172257629664687678867582236004672757448828413970330400152371436554390037802570994986676459448970486263388338626485394509225976586753039237761415800973543846332395422955380920728676622190382664498924748234118363633844169558395502613688387325086426565299624353610590596574857074701379129304924286050561762137193920010862422653448556212368925487659800003121453828853321042860780459771233643997561918817476231280440305631251950914103465345342879961166087604329012706703743572839643860205042035693312313847205804946443097602353403802413894376447694135839350896047209561737952750277885213148007784471991480587789799374566447655743580800077215229066428864585635835298199141672704772283333991986146134154810113366592240393990207232626793345831912635125225588655298097979978472078961419493037819928311190528814930707598550585360158542071067442831203904417493550766178464809984670740684650528210304359174242429672269039220615319693251708542939869774449953537413092862167558256923167968958997783868454241148787113932444415955452385596013300437647633326694239093592331415762370708673260969461711711105979296152499635281390583430175568462656274409614802799191891003527206867418295742385003172609123812345021925905607440648481637439124888388178730332722155078167897976118027003779902578388894155282367883055911272933833756215521404528091348041819872523364526787635908729041340210682543636987022369074352041839413767351788208093617841282815524135521951295338140150734596265441827185007900396837226862852385554979407080839894204254740471487026089724771391249994032263397865338117842092462446474657376012228020304362823395943147932413319585292884014502021551609473719003647382091811380985945667901452114905440664525751505954666542267955557488215679866307640033121262868220850278468355803330746239649026718226537531953272132518048500453135735352586811387242603596599350827423466733827642272883818878577372354083392820951967031731259974293487549083199517239657234588104537167879077055730662463398689152691190696944985635748045122101892478265801187554712205631061925121373827899510338670526223438216483261566658676130558104291034130209884629533991309024341268292253621616476868613291039960675949660682065277366110846725596366139668402878806457406867945489898093726319144315422808232889088246835244902969834246550370167787338390070302510550433158881944428651203659286519221120344288363110841303324681429227135669349191782724798992056081485313995044945622124255952506008310995263824692094214972065248574465158453160154098650040515696078147669403548593662208487041924806566890310617042134230510707425671566092569856247334007956567558788903959382568461283637675950903146482094466714727813278008175419644074385291756962856390337665113094707681365455250290817479324228317181991115002217026990717524380939594336288999371256260106643096381270871218683507863523080624179183745711804960451900054047420607596160939766475186016147325348597672538767007865070408541400150743116343863751347691759156761582139958332112311109759876970137105124183406011690982823943682981584549239529220871679914506004684182480438716659406030628191176798866168999308052658400975411419324841017475952372239783563762470273252420392547413225932993339708489552178117192470687691234793750876138036256773509387225749029170854344173072239056760609221900266274451712074398153312394751012332033907992525299009614382478049613043688718614113296020616631501375107702318816166579757289912913088557402705200745999146274193367174444173379464864577603591508924691401928924225573416537132384119584765305468553278808112217811177999636031226286788494090561887818161837536388034633867842940191006201311628492504853577025748692316727644132586082327507616304893955114080185705432556420744862699148814980714831330429195752611997320197230459253887257013597164835949572429408093046152560975837338899464080305448076422016912748723183932848024924175559823495042355380303495245076708854212741501800086298296205993715884701248647155005104905212602902917234065126755149276609455438888393202379782488057838782288292729949785124637590193315449523774714680479056878736802457704415186347721988261712761147692373857652290674945822916671753464419631518174397857458768577332612185938115318740636986801811318811598008183079482536391420330704908018737006025011670183879002258176684478007012242563917773924908401271611798803240311749352049079605332623357436265246215935243320917472804041168362763460627877354685934216269740318225001854650038347949328093931048610687551447006439409809176714526912918154427594871196307417355425654341727640353802196245461816017056687814687269281052960806115749435829764068125244078142707827652200700866914772879043006514987406814903087472803693077167014008072541273827979654520947900040793073680632433359191345498036660879015293678951253440683140371112298504640523040762983745421744948516054090170529842431793407880155873550254008352562752992529659791771056980863712273265242374936862954222509252331390292148288825033707257874502848678002397673915214773070234381899391951859118682524196717486440914454854869550749446093200664642429062486624116363075698499209636180445647434490490548402217483968255503248392457005222492389639861274807120228874049810767017281646441868067246408931274792362140577676710417380608837976359217262411428259108319898891150201890971190438814916126903155722914048397476549520671374363935550809049818910016316382968866918120390023002786986169753439818632935156572558099717885290076900243308515411739904865049620490354442855728700627355126619987229991236090251377279862691161900677225534832148248634166214627628691193967092034182485632535043884549195609938240409064562562853232656100188240262214740548331326973297921114782751120060985047425727094360864190287993999517537402671739878299842143661771816210792469580330609828436730925884741070516224783313994083896384598074728364281524926168364843688220585021481871309951242981450032313713651605613509704821214058292404409767987207583525529942357078064445161484735367738541318787945019072827168931075561276718844109634130944373389879830249095566191913135550800761865179889329543423724996756140732816385914005240310977627109540001745809174571099582153106384154035234767922279577705923291174863992387201809846318333418077251055201158141923004585697354542144762858660598298720176915467655238989443554205527979869375528730514484072205583661734084850860102574346600801981658686926289252905395195500092165289753093748433715077128229555273631878436076751012969516628517798414934000530122624892094568135540289585669377304371016547851951633766884140999844722536548404614310482473371854843228805741361111863495003432167310386574421580452934298715279129963342875710459219052152697454397522984991007674383520573721277485898513184994534863778610637212400199478189585001490020991535805542049629372814548260895136485503895390562480647037050671024067057014096191621853508333950618631466372905603987192266377653017725263849728476127644021547645201119386785341392493616232023807759172693843273406421661081221694495679031240059653978521477364172191020335860640829156514442109595363938391580431536111616191285814695868298519342303009146217578353295535850871266216970227003123805021630289147691267773972797253231928178645543486459817932118475422493794240856835643370926451963332759739884155051480400003128069339970897734670688726411079274066647898981942573900808142188304211687093176856481147719502522816467996531842916426883967598840887796176667485725401489428232350332878927171079769799448515250888571682438392631279996547320412685986704265140730350990593361582420897524154160496174605998904286206208064203571180953952171052222632281447968962942320435753595208101703568945413063256099731292400835087757072895401165280778688117005034659678743305312761748170864897200472302733401091572305030965834025080203107114540389842788552782573150791777471947342029020840131771860403854281798305004114427853797800988600678366990832789699680436026416851546763088911474356113491829383102132756813611340715517848321859371358563024731602450764013246299499024810045070821797835123917000795788637628264124052764444580364416949277420740205267747101868093402643731384269541811140489637685368905151316187864003378879964383603352106351614547507030272547105818141488423018559742230492587536150004330558577755521713712967961638260136420756060845044378395362743677146440949590276509099072440009826790747420142718841803650903888320053198611080250427337278321651292960408096617428878716390156819123504395701904677618064451877313735018198543460799187099836977094973799605222488724587428970382762840588940449776763981015303529225877111339153822752960421952161196135493740601529762516404321100436925637467853872479071577281617507038191025618366229410603135986827480017979744570487072137887087284676487439306888488494192295243021815152158182570958109113053334942154459191906719111997915121669882734263444925004108934763335318079425266385077310289493957032282746988604630407290305735135251851442415819197056667280682808788502936713889434260462938694136067642909896122196366617898866337359364092054889770517566992092083271301913234272383037687247474545754838065539950391317992027905872871740017409690419254012620400383980747257550627977103994109457177888178675735544324818373669894465877347226156329124441344362637255202371830290269618347964944403585806803789571818092826034064130837589177107775776363239254331939913336003364126866065644992458246922445036178595220699569075148575807664076686153512783683640212943193638991256610636125237483546332397874548127471388807642926556848672137216915625147882441067903452966557974075557381416422780363212382929660912748252309668472782059835093388471278358535068265377873880885733441568991599959547212035320661592303976535468386280204296330809037108301824813085548783123630594084450242745997809655084768463555995608408524360299058700773282384789428551129325465679480608163466850756177277248034902900829950496285074445905778329063940719328565526498248135484946174114818516232211742553391288866256077718401814102461752061200182006066338322666048285399774958999090423464925300625992833306671185567920162905603588097448084985417069250173588852473369846264236931597221195201797007051459465166431951208042285108255341258131135180084222470030505778525917068630135633816442110919432750133882308058405642240304335671560257504338498780770755643333840374829761726094219795302980181041117384799689202038717964631223918366752740325131646461661832759716094260513191594982921756449793010450331362579064832240031255576837515624109898805253254162119544379014906035971507780926830840945647031629351811686277373743371004058947296301771193653834240518075215362453756512111205422701961108324616360516620965086312325832539310054312202212720031636405601465410897914878482956618831905905942381802224790724156363984413387889393654059748895710463419082352140041606525612297962344893570740989310560525771488505659811610794355650078154796266121111957688621587766854477497369262352176305240915361839903186321000251144576332012427219045863936750774696791749194551669584936953606191933894082491148022715216653582170832421372093594253089507170314109799118319700433090413565633584337626054844297269963788485297088599106745233990410851782571264154360179917246298702663666665467381987217234850209188980749015876081870775177146024528627675261145094562341403383964780837830771589735267721039126470815704653416315566501203091826708209292143824812901128627028416951549509835352189241091401730902823362482582231248748431912326445764741429543717663687449128721974214353446004488963937144812800324256721394917945644461096486198004784418300182684725544247821943237003459072124859794358579543116804710264382556032159659772602679149064352514192710643128155554431243189282740997088919940415223946911603389080191287113563515775687653980778164933222748321381373546848126305465367986384168589978813504087428485013717046777408550006995917437451931593840802797769944339214768115400516906018077960119282619259126217988215167608139090958797107271356450060601436152406050482423516807369277974787221802802668031559632563798252969391671007038884244454526855770322570484279694754491846116372166284483804541439102930897738659423775011577445906462159540589130958865399984827080636642900652199641390386039907314680780659382905338793128113073936105646548469173872552359895889532133489516186354918720212859878940287503423638804379656711441224406616285625679554525039739271754923539840879026501730195124035201222428703303304352951141379903233645489812795958481599058133222370342220307219583554902920240390037822762581851611720517131285662082013556233059423804786325970625080366255144522398962396564550225285718052816833391797771638808580598647643658945333231710666044213635744581566490212696714070579092910721693601279688973994031438682386899940757815067869843704049858012886352973096255676076911049532694406973938537736128188549879050195152610879353763482091485016793988444084658141633609343293151451255998879971428163302938786239206928970912385779175599713692902742169381792115074257194579588165251521647920492980515642521306436047068457921732848616891147237467543321127144184318035474853798845503807852185559536722830419055892364217405223000870017764592630291038829359140830869981026261280920348163771698241745711892422936861629763778896672574536873754005730513658350530812962108867547419023674785004072356170153633717723708259095791535009349824557993187786708472113189232707228040029459546928778171669205920806292812093287499624562099195141207803596018387391834109871516287382440456716001145451766148310703787703647832748683971387563819980399432812342269479166099367339628204835918742619630446068422477583396910659775315786855824065706684513010445822811033973937610827634246830453711607833321096930331905513403124211627453548006558876332767716764645827209421005181988437707022337638038212151823415579244677558491097096156249136927353558114161848068598817825391308485744385259967208625284877908504160048380070540119490863460507066925777941557985576851016193835556126084827499370769405428031244120986482363235020379870067332581535620340691220352721721340280802967822808514361793905463084731568691237605348096694770803908341118167615972815619389620334684334485245981694123183053990454691767946696661188831377791165424218733463055802503965806279876070434144973107404660073191393861270877972071228137229888526121620554754187114796555133750573361563779915246326870596111098561288299162297583403783167931744044987385136768042317639811758206230076149856473048650490293446469706774494268910098476189308206370294315776766406994646576331926571872917399294675248468909187759540984352918688545739026362474791360730849380503222034640699993074658369033133724763267500929433498370223959897327605770175808798710680911322380363030040949299331551592043924334070538172848913460508316838778627064727809085806255415654979406468833916872199708602296219319323984488575595452780244993575270343966903021647259533553596064760339785058126036892433153185467439302348798979652172177809916815279369913530158509842086288050304366512961109994581253429293233384303549295661102991470059013477239683468990520915101429227750314381017493972393646400096580061092244025348639717092408023149693871090712350352499492834861744536606322821198871483907826502051921863225684036894071541853392704806667271658999628724197196404784583888405315233530685366059950333097490218424817098590379519229732916699230587508321265405987834151340625376607312102918850048767063607691569869841988940323344661070220504417913479028313232425337155865818550488596836791670340348248910923481394889653793346002967826635209680237565374605719368207458818578809172437445140188096744751649772679814084985008465417927230843659010366390801286610321175153078776154499785444554621162622161472099660172297877361434021574526160019146425286703032507615281824474574065738090714696151706587082854236091402129309298030005707105405004092763853104026128791719828444672613969920852220095289331979358490721536147378953858632616794439979200728908707469163718753831900118263253462517093662657253810557745580137121672224376336620352242852924391571330386205389995114685754863971214214518551262722207033058177491999680852983789849159372397477617979050651316492072529789844552230106437632516300621896297794297009730234265223088240447629703392924438925466644279318372514072912931240056873086524549349274928808107123465298727720776080745521807538165093380773585908814254736868859095926494828983016658778875901744552019963871576776219930924561752481786687966546691970571623606386377371998086214330378122795366247923276256471572748793241040278351960148092853058525800103130283225792712395979343728457855564250227713382702459533645206669632049401042444470222453681254335031363160255478301351964579892371595315231749753648924795923859596310475097603027674639322666506276094776669073251214231817258362150444593853663959411542753816494910814285508842490829686276122205205684038377904146757805237582306063756816299267740908875182863677340209585372281062287983638605183999493027545349879273864293293818123070038640136092010402385717307000677526940710442961036520615252620285391319248392238333329345099881536151748150343688289783614814447564630291331333224529116667236243059964622183657071001142388486877681380775310362498098868753802457498698541321177992554171481712409482692906131934984820020077136148600828756042319613198124359525188560134049004118857973892749187529722635065042204745674799166002049807838944889124506229864690260359889028818007422309306784769024664296610124473643905801250528995976359333363242995118620448701911422145148858131130456886136300371083176405782315490168167605114017217093084755700207639301962627691882592816217908774397971564054748137771483033963929081831621406027790958277530317900600046154912671610199230324769719562138033210686789660803779461099590538657834682174364208052667571341609046339378203657953430386454477334321335756048649631885440230574103828277992125571990393349705077446694090263161808378738524807532090845401737403301682714487228510475407903801371947609475965181064130009444163248902776205577694452123487011938739459124241249705656582230940601024722321313217127468859993277823928746060548709058567225727791273697701490417419162166841569220961088130503364791812817471511530783410331676925717250614983129349953926571593630480228334251877879353056417445577551628681521588466482553440229303277797489959959381154733558602991637953967479011868743253433105200992944924385221423855999800839079019699168504592182473785845087252945907401328230856776755334507244171424862611088169232882701146313265063432274937079140023225355973434278580033562902381085811149436913117869772748012893802060414863761093887416621859431994120085152919981442619732609543502851963154430635403789761684060275765146813860553414245146200454768415080214793974933703042324031171381417989509877642505443119093493150500570001490087451993966209314885885781326688303726665575646733913085833182810414057307776914269429101419436877583829482599519755379582712637102602333204607859500473421564983740813843263901219304475706896367001939780599682631724058042477883612178474236543242177291416120259098918803009716902029794853162131213963537428582474385481333417544375213741543430478381240324892030194544626991275058226090561429948630016021552691369775686808204969201054297193359737628435377776251129746031131162397202515837628603330955293495079339428075016234263381407064807888143657697885940160252126316519885920982002831267019178387022710525065898295720103854327723614918925454243285622117488595269454987495723980394417419651452209187176071460576941569772021574711277029911618568775391870957016530385200399927090660435207605094979527159910857128725318092790254500728456753877833604056217500395607267585033804460259830135848648115217462981629477292108970790299705862022966574802705258667115334613291790520629999058307746612764902214039475400258558500283722063488172783122809790630094489320884600946505224744093303168409837666645569951161865264157700559018031249622221800806390711989780052111184930430930664761549372965963212567016632124678188949180279891576291358856209443258346182115548785590490533476819777489469548307090392599246266298057539851862915219723939980404778182500728996966364220893439860995319495521772674770670453918427810088037947821985456218195566375844863160665263728992874220938452408194014886750230058694347055342849639932797949617757532800046896396651743121725985184809121255250804819616279316832945720789091638831165499053740617735792272319233094623707835669758698698450367020237777340272231619038767244912419828687764151766353022856312807882544760909173580460943767863709589324212512334936577075153396191808778941347701355552423048297982567750369675230697278436869254084305764228800862427432479347837392314172415504023634258077913585788441268369929452411729405609652151295065251096804598153862988776822091077271004225072667847974645370887518521333321992482151912517588834496374412909090493457450982100818330006131474651612965390260917915293699929121179681966536615647452613846408603223240453954280223925870745157721081299489253457250019276228244376822315823690538076453092373038656197958387494723564625806090575733220666622932500243120181017511914238956139443343806189976096855390741371391592291240409919219581751940356309293216465897106598561513406314629838503034684726149084695382518521479236376051730755314810717666650867819047068198524141296335642604005814345043640531259985036413265999357202546194366039277858836033058823099640113715266273741219902769971917274179823720916929507948407745561986651135494584184088256807847081743079585091540249590726951892178420381480600984049126999552011903957192580833967719417019642942942119789466919868835426443554712804825458083880830588059119774853255611199244087885012921005878441521553584156262719979475880127388301638684034646471707929540787608478592913652230443907127528244912982474723820071286814468347395735321991000133948160539343494590052620822863509292751416485107926772628613255351116512055516591138290529054757217853580101312842372235144123038730889721809045513549680483372810560524586106948857184569862766544067355397079126067537491835405668971574646136625616529555691037204074096822017433448287781316867625321014206919753520250709232798952953228207005835079382553671404774749355120038026705234214831000134550206052478414838956837850323291477287091785688222842543631509191747084428576387260201607719187354597497108439457434853787817319257613927870312139200011331021970331203004233480763977604031469384495016308880069329121634148390797332480679614643976709497567766590020891799204653818682745475671831899104878299324928655519414851715392141335593506845575863787212106498108913487003319093371465376707404429585981195551712554514115541325116320530897852982547603208621864812076622726111712148359424842101441451747727300573477167120053306861483233249625410915087164147782765922699945450284704455939346220357667815146037828379657159005828112888150624735728353207362448778697792638182252808477882101663186752757485808031204512479742215613728423801492324092805946443606374793843640893693504163588783322225494238302964980097786382603128500677332882520556261314895685206467778331088330668606950699290440628893509256782864717133837824390716468560174835335541741440151042777196764125407155973069165538116076025441448496941087887780673740538135871302510869679421529858105515668984654075985019554991856653084708870151439719141675531965332248500950013540443742609911217659941736376952085902548216564830370521301704866364154977107710687268516344769196274273123272635122405934264297923765336487042181298768539808210513983003702380761898783527345470048026156374924020013164935484774268527127123459654267586785420287817408057091836198099594475365736382983924563864969379049984270657372626905719566402780409137684196990801876609454773915332530468657323413668118777542646518137601631877118274435406363652129283577355377597450111364660779386680531386597801926506270915173596230418432692334882057641025842795626246620099934754322804149089572928758803820117482669540817499895453499978329042443330954991648091158521916941689827330687534734944014508176666336404668535710519204599214136235013169478988322431409792015651009149453453074427644051381062718411315468114013024838780751907914250976385095809626546673808409109645426330587842236068858329014852101009109707881394320838874108120844072187723318108298209477165733539234895220737340480058744570766479479910359374063554169724126373720220773393085603941714968497470104397555152405971214230505774609905368127828349900250391379318941839652663199768938552639965387491845793870104148406856461385915683720853443877339506083712199001266704018240329814637942431802639046664171990895430664280476310067243839364565323808138427474661535096340275126656591951454392252761802495131292020903672200666280363080294791931103036099969685091177560244978839943001688284261542067953278744349217688639582140099646070951404475326711672083261273337028931027386983067495271153642282688494643879892265131807835868005812254646574504422278466590312604661810518585552682611571395648611054912961737996303698602525265631905471053366024735578043071438602633004339486624492449123577732090001292022406642578771171955860161515646320193710012976761471991018654928361424424219311287178624135320300838784817739126120125853488161664284393978246363537984229749807928129407732403739547707885461248194087928851355670551387546318723567660246229410429652708219460620900604253579860136058672141790719486769430300158824219515979048182436674997300485303856788978508377295000149234833738500215729939800786706239625316248659325514629752328461192709248463794666713335254107089943457871305942462958348970789719555939247584694628234166064943060608152066415267743531644822607906684339317008744823085137774178419946692705378407648648505504520145397251417049698979512551969295705585252719565278376366542933415754954970420802854786098396357221208187278889993554751178821476082125705585873658825259232256278729610236278367197542282337383838786734778312747856592562776633414889776328305681579451399293140942405031462404240696329641732574449348502500537555341201727531248347663128111906727178755436293545390531276791934034923364889427640862600327670924534654848413059992292435366528959492737152742758506130536071056151269447582563985674566915980400850273192106068542058073701885747306729971788862755289973062614754244681363847485870992766889859012697837317361419523482510702319677051458031774762700083966409292088140101596676597977628987378808103086350363410761569029715224599569451037821330154472612457610265589920718890795435587912831507551144654691105958592633533929103347625447947379774067719784277791131929744078268718314245653736770129622849618789874394429358182348345348842998010991358436836430185364657929348664806092789372126700416141724587300973998555237852504035430385793760139573815086607144958594018899661731790759395035036670955174858981992532063849317034143458675447793290393026295478487356991177135805571726864102520348214891261756689426778644043399360552245841373374490802313471709393458930306447866865820962456713636318306977445426752401003646063575147077750220474340498419583270129512932990267230140292463313994251620194780960539606905597122796903847215563539136685233939270089323520323868253472979121687484435900643580931249665070352872201804900777022311988677864427780779831558792445313490318890253629055077726555811228100352362052511440100235186667301672974641588834782839548466988646026034532965371702568213934652234830673000574970759573785530325549481558338238585066806729848656093349142641019385322524612126709995313390603565431992510499688956965046368127643169162368238532247581987427789912368662994110328855226793754814819274985967490777242208537799845768592389435358579829050226917921879409421526762623413996494514192472978946794803368902081848808720229808913085564747825080987976334980901849984471160433432338470209519024327490430575467631125477170374822530786635546047662406933803093405346480502789226509802589937532810340041095702625933604729267657349506854528625773931927184290141711204800707248313101529772096969610079900237180534746376449726305915303314799872515240447419821707073309420692062751777654804421264237948008851974024858151607135174005267269022760923389477491201706585198218486376987558450793797096046619734212760638817737103468992786271783761152190003218872261737838604963468986107174441801491936322369490376257001910196280429706432045487290990373038549396216978804825263732867125281520351927402297032580461129632181719746471074230383619239890663370531880040117728663005123908183670061764526664799738418337044204128272741758028237948046733474995467348971062821071741651971836472265169224503761914324313620227836848709990852890228030876078257751738335855868623166355607082756908880157241507263790114612184545650478198297959749761664118592392284658194808745369923222693960141331706998072661263672656205951526338066038340252766141503579370942225054622350033660241017327150147554927768844266437425930961184382690254414051923209650643167669866150237974533614431902820145740203157027857738632631444241068808651792262366767458238698336521661278367382163001501971762477510618380999893981638498071400101669764380725333474691156084918727463426247744467128212711222229272025515595698625395498623618084582893493378864456835329550822970372452309586076648992883743883450746515595911828812597050285590230707714721593953713947709818539943276844420027350713658613311992081954844651829760704032531397071581293004776206676669086540000477755821308173577993052689014482685547214892832055881451580887593995375310387919895080250335032260305533522461984544702468465440058739527610302215552377583139722002394633608131404424723845103638496435666981847816961264051189061693951187911672447808215740246102805612066131306972157962518261082206586722088330493678145112921887846682067062541204566930745502977898731388658893064688544573127784893025392783237472788329762499931423065626512733173978636520309011901726910855232179845339164142336340944278929117521646172361375319196072015378031187171814516831297975093345326779653185495481399187466373669408268851629788000576105629692870394734951934262034534965384837667429622051469799172023071530775971121101474552564988783045630861309144714274010126719321884154892317233486490677639512403403069049814301897320173283684508010771838701375406453437735438725461570938580261774616619301552463711782079881046434955049846991526756225045447539429539672583058843739745113734393944579704203209023428659854064874951760624678001160637350967576218667752141440012790467126285616299707858241484166845928265932965219491812916732789614545046587734949109788219314214518362290256195241516862598407612104789515647137461062323564687577383163351568464927957203135973738981263447755920632529091647104593250043423166082989156050015386413326661281788246100526616216896725729219414554142870480175936323178651551639546099294725451649601183054107704632536192472871645522551086176674681436869704950544730578307375931294741991082942276114201298533091223881441795297794485483506835969236643215602215304177768497266564610615628451885347526328396465497526269270506965562844797461744962776805402325188047608897534120340367605379464294914134079868783015035027562056428122698062428269497456840377790111480380433018573307556403577110424884886705001208348241023185183179269321427085227162545630699722381995413716085209355419423096578714263212040037713321596800295415757464605326545031623340854161199014903593569879165968844583189533482048571551888693756301216499977666211541164793078124563195883185976132583415749035463162321135912982760436464187431033405644810577586982618771584797836459407656203212955599516113176537147572769348078195211645291105270638966956144800572084938645100383092075198972287321191767848403727653714505583373089713767336946453286156456571881081562291723008967068344093530414641246571588615929298769098352931263981517319688195819317029392597899888072134904315186135632484669492641087524001985754830567826592506768195178506620733126889302794497661636058077807245632038134239211720414941522911006087426459215169693719353145387584896813925793838276248550268829356779575661249750489611564511787586107923185572763433796279635549455265549143086674365084828337423575740642066223079917921847804780841892477747139033530533409696913030191579587872290918343052890408044529600688447730222751550194723817110414528560393020617856634814895670583989992964716409720170867808725911560632259727480785481597899134955191231860546183122980162927346788475843608364363772286758277814163095915761470439832791772663306766994230990444024597454757630663571111477117427960266263079609133891154470759420984804408637322717875556183197316452708739431974922631931293402819075315963555901839638560295604229750583196378228959069389272848440513383054305944969623880905712502940784142892162565612401343152364630808643978553450305784799002789078962178274655487639225403770586015300938267121070992663699733707482298767111807701293031752526442643985119610934571299775932110000402455717041720639167298470181176112811414671991194859860372420565507577746360154907008453047273734219119113486641956579102802559970886460601856629887450963923875480232623061140863161562604642593635340527566778252662875779852365930967429156873249643443366374724251372325032447099159934224585626892564047873439416452646247660975056778988045656623444158076065947093870198773935159709123881460820829301931512344833358966866315363511447676276947118171084968817351214341397069236892671416218480369873475484438575142365870542210969851948344406642037962681053181002252570561575605500974215007793956752662805490878105269938855597779106355615583908287677168470105214395236813004452788966259395290681996830685164733983138299001114184522559380840177314307445738978997112922502076156932475347552062294250863919174402468061312429163511237007214794227771373848598350050683261800385250345279056900786709349638714624320519845736588105229430760434677675079217511829113980632297532637834731179142991230148099973371878418092791753343669335515613167025734830869601171826444054123929073848100760861661031582583010906816993435652082721240229936483810014802922454342100565822678557473252052487976295523193352732682704139867607645491608182589462395113180857810243521817917114873235704270217335114610244963272114651805401047507962341012396315269209491074734430278147018579968477484952769926511730176405647630694493746777173618418314972602577194963128987111120783265165635462511778508069862515676288514762242269526530981716098544517028329914252004449968943857120724883195275956512247335326979385504987124110223933962086689210210822872369558858523846117214274351431198083060536967231496689281066693556359285459492205406634531923132201560715693842801930300458857399632543957406879794672422699502575215408026271768946361727046272630862786024259743344622564358501301115563840035686017824096362076900326434270856424970535357291284427956122118206225292302253262153600577663965560876333731841615895142044137904289941563236592443029904707992128805287625412102397506536989193536305890985503577627488304694613691167238130978416757723231920566567073158995805884017230928831016371705522792496478039851346061553945575517521089802019560116380765252496519480140363168550545580528861759966768838059310975441871214502854513823429301543658881861295246468825739240671184444100231778077335129386304192935488379139260130325369171432616543390771339827886442397241977867504077369591874605507393236343366999258287909564381470142942277765041598724542021843882388092601703892570249952045094548301763297601241900469219935457624580748121726105843908528541478581262344579823292584561488319787419748814213825602403776579479697885235789126689183244185911810820345135313526872209576796552467186142057166252187361041175097665042069511667111315522747524189000499305093126883795921394308017271163589575232200744153323857696453624677110674707479306719038722808009411042225872580438992809554766696972337468043010145590956783667070360976241392013778059546076902521419006727354747068079425439659278841977048244833627140238927714692061769053877579938053244662818862689767172429782154675067649040274366940733316828044971002971341623037477834630129076768694459061295347052744167351534358560669193230078745455833185158886007212628002848815524915016899243564496186880731876040669730265186969978881919234959995773985624135121059470597727409869483575179553478081343575173985289036198266914387876265309824459837283998930207596926502544911977173357822260196378686109412824800196877211697299923094302471899708091964957034563167426613480006751317235007233343378382654116708276672138657967065201633329561389491620606880172227349633878652426331194047827438610879898029435843996286485037593686697833114199184583153694685639807189686465183585950178603851194573044507690969870470661861290702484011814255115616513287789257690268079512269228419534826642173064114999039992811079733786914226050220980672394331048214026494827890745222986334089115332732645381324435150871351866228206697033537220141962221699355182456842820026295198430562237977178239467895173761485237242361135641598393380187242693018014518707810590640300745759703097609217735621627858286510831378332110395700108643677984287097294416952086049867962119900412964594843362233446951293669456026979757755194113411508084201672289797397496396091205357924564643512696436475754643219190654612644015049416707773851255514192195101019906273884008100022259755438729714084499388249217827684239910379239327210426513652667486570466998415885323613246226889317638534148769710156385827479676773865955545634109778200917780227182925662945470656431811686287085059394213965318723156678436973132952124764670490918535704983005866462469821530767554914062842057135334585178809470808482842535150506697034244802207681491562585527305918495899264840882548893578969163327210316338665363027247900434787717961640866940604062749145880210024675479065647155851438408277328702931885771027924538557614373347478922944997185232392594294486450666542244229831555453312795821568827452823613094109208736649556157861063962255958835461226096747173997940312143281969403667309354595214141391297458609884106028982361238173632706864732612385389788207727993620941489230715078909883281409104255848586420082348856527387243009187034720195746858189543692993064537713913468918223478889230519504570458482312629133798768674810236622052601662024882006616272447654428479156552590583006982241114362515256258142857734381298288052537324273937843784359949752467645409006940174430911472687456003915918286690933480619581120908228444900748197018841477999742786235930064859570369986335213798201464368532747250080267324438708066805007444549836027527565910145280642621322691650393742039038723705771758549370343207942907556752537361439787092898534068467609038074132672137449854218231641590343979234372169435321426862690686500656473614097757110798831113677751016723187499975735787099822858841906070377225938006477275432522969796421056782926899481701692558864601716929605827794961006764004736847475436597302054836192490718167375770317712849654156741761114124690389150124143392284566162978520338221209725196783283805091942371039774469478052620816359102188266651061283416993882652503729885959624169609786907527351137214136901462750431676212235628322248109337708221715682285493871797150377737664441225349831479602937205506402869950601887075215145110207840292783591017696414220707556721184985835997058367752969685404000311916086962153671268712282036607538151545066242548559174054339108618875291749416167692069778253841705204203033122531877730115589355576120444530186404081109636926870539283621742424401994695428760266446998445629758609732090102597357127648482886474778231409128552390364804816129342057459346292544907791013842684671380491078218384080046369149613230071363417371007310883494974499365541073056289727425737791077896826328243777146265660035991256793414303765925381103921805201620153833157533105016722462741833139121770013802371250295498538537971060414294306656456309593842596426275201245173065481643565971925590227639417657995613043260130994525710989403899945075075465155577594808765310383023665824013606998016244545591381062335604414689201352993922335478723641400525585864466526116706727700122697903895766639090729549676874053861128943038047934816594206154651770281514629191872905442060594401558646038497006345689833884908547697367993989747092151097898093788159340429398439729914677734877585989692548788441415356026654151795661040314324141283410524201076607156271825722355417143593407895075474423433065331524945682278389149593615970292664163667639938394796370578128410686260753284844289936139995950109542829682242494265550455120115480242875618156587164863139516399232685543120149633035029870065639468695436885993713500846864808030571493031829884959416198253344413378873605805138608853900449975302936232891801723152674259389919612672775195388575140955839253776205221335064453745518329470936753850919340022523494178566039816929444876840867064330617495241589587340497703109186163806646036437838095444208889963205379857669483287223918804220705256372143093328636261971362387750092978158469230648807104182229725764907828380661206689505719377737381200573974272445579621501865017494298619949125885787349636790376663957506903650424956441073470244091387032402427820053037717454359788648674705363815888862074985770218610438091229790080905794586673881896682193373374286347391670391540938935376387746425846012646920488418958660736908486738874253255630152104900088117922194251756765951538046326263684492688280831014656401159001631791743129880938002300279805583844698316326416674162553986947159071293481269319890364472661000408621074557830702605527170476568896741529297950459835930074768249226962898583419515307918692626347146770722541876039717146515271921871352720234861973239858256259911962061295305058163908190824099837614809115943471168149329988046309315651093544476560061672897821033718420971065022791604259924146408051936205763432720146280338993579487706706240073351875745043887627513655470813355562697191995594942777113289117237783895510440329973117236300036514502974406593308136959534011104684246333508952084380741285471085557017887565402028808544280777355035075576211790834690877439024461736132709828396880674262117220995950789014995053295080117191904128885107830349224591003568717551272323824738596431384800221114985533122663737928409254721390283426383558006036695389960778978977883378775202220371385830787273452983314367033815540545805346725820243414340018490417329593165380980723798091836352690900952368853884593640712510708049468255737035586319976372290568404961303645898468964774564035619655486630536808320171377201930366576191770601858317470886774589820339505820305031314310775527365664208249883351488169193352720475686034106112249106063948662092834402410247642408565100565709305748907971872137659481864639134744866043136946889606006175209439118420186075416462153000649505919689735036591379650187441409441952794139545844877776883882760016542221416914329651526104243168419779335914456765860312175446109391869745999677705556879263711190901916481588921430539214979888634153064782370439569619193167215288250828268245922464309303978313451849310680973250205680313775377426847488419374064747318749256543655437340556873168710152877054024371570497607844488215323825930042506443151283704254335298041705210535469945001701526200780368114199340800597440340178871987906435844678218467725300450846045601815725495463892633739981789824035911794944601541696208531148508569896606481866921236644806085574996462714994369238231600196301718732302963822542534083668446097893789595256900446207833236342188933113317421167080108916049443392417545821028164718290734904264040305989681518756643141997733836099917883727434132484642187651499082447702056734298670835705624504398634774003502061194988103684591808232364101827084059421992814171590610688424309312028907531374527979386413830505636162926181325582311465636352789898194734244525791524322686319893773381094790754648565869478465708702425741871226488336651885723585037182559426671287827612545900130092589758188530343822706903633716902343613994375492491362740376614564560651478151260723409754230951489465197688170754981942540528750847676541833434999539583748931224495591140095117555830596059976184546398987890663447609569592468240799639888647270182291949266687133728089275210225065483689738652720068398862999131565837045290993799812581132227517491064595193030637656093702286793524420147382574295553147387340182159250704907741258538336459050556611756333117374242374067408873617731977267384512480640751539594045973914726081577767755382936707881405815056109053955363108239216909240112584713460848691905482805615943833516980218101838730955001147962483044477956337744408052030045933052228963227739089616935989318044491088244135496028698782856806334997431760779203349837874098568617552707424396837434325742553950206711335203053491819108746594786290451306066806559013842798026421094922246099861007426927991372647493489862708351641482405288568927147514146270072078767957263997734930678450881641065994188014574918696275025150399079917678503403343659448767761446212052974543266356733759735283364314126623921490217598578530748153031826480498017275204255867269974063878782594390572820321416285482743668492903917884272081339298521447554526113984278264061033368999931739476962117194194490619022531539652086113983819490253823593573164813891987828127795283771353304688987870612473203959024070829709285737418125393155719247779497795971988318427994666708998707693890485486955535784317276710009012217499500129238850220832427228579848728969938833543824836143791015062778315083180903397989880096866409556030762268284576362707575938152343260124050255282371202120557948931020728175440648874743204253354484508144860227739911107492262828282764556402294749104899810213816917670161382206385734101887240773769577451704906724718035612957631403096675582151540475590036448307171004969950180722955110203767910239814976072806904103998061392162441473588119793380001028775763604142443574850541075640179292553224458355821943558059149083238218844679666638353348861165881147134935108158746703283471878692825526338688743320570017044242927244238633557473455428366662670237675967307209563676051975670128546719470430287362851128804427477489873648887975435655493707510329549014069007243124100226617996370632238203894244901925797365998534728479679088449894716329265667043683600189438549809776409237814218129592302270812931102524232498658830841700976749785149754008900882001504656926909683571907146647622294331094935294673056159329530991237412272387434661469377101573344099836794819377593215175363676339336519703776519863711465856200649386212748250672213544795502986144571511145696674757087640418129971072945981353437797933583356002666481665608726363392002783882312256419739697550975801865235626837080781139441203288259583881719394995369195681653466941200943910040147789449540000619363614294664817876533724713468110489018364831132431588086461638068552844659437092703537779870318453666530600461385628740122976879015293043633570648122249102078257662730585307074193282576166989974034385341921307585796578279461653325782262372501270983341854026379989240875313044044253197942909684933768577441329022656941746524259531702095149562091190234342469731460967498965979289237579717057163384764357508158143768791191404893907380853650870590738944367442993432291148756016022784011068694494639232226924658275023396327268513415241052275524579380060191422503199526071760491859974206240392819083931758287116930238980854480601015774416125337329129282310683687647203771985300630865455326308010864825255886392520630867351275885698303600176467767508052776662004219865381148557503745757808037866776157869194429900225260036676068550665733862382176826456715304059464603572695532246621080023664313494928716856409666498815485259391674908616914273899846658379376329555529776614277070870593008298728287637502334218289375733338446858880418146125689874365038002720565097247287214119456090836559542454800885460512948897242826311396321459280898746615922251554092760869692334411782064785594797441506877759619561308456883496220330154402498719375717189311865724341638845891092661728057938877038061486546696209126443648903354231167189616618324439575424474974313548467390537512454584538729474758205750117995566187526631349290912284466731542511602014077210730171138780580481701541131028294002184652912630756998440668492050459654287664108984636274016780805050625573349364988826213546375703497191499493875964794623205112113468366012005091358011038741007110030199230469417996103802748783012746726035809736650068901095575048954507570161662727016880307980101895131621943708204291089808610934196229872799255560782103433657518148952729952834193296824314130609866048738193839262201222576227419730019627540957178647433355418236902044550417380629074931819053221920184629035784592542532825140912031558434758939371530228728961192388576003629808904048567721474003476063285825009864346477734269249781022278213153521986554403323989845251597672132009519887408120710196108643407671060773085247661101428619575772369101188521940385175799193315470392794883352289571006746471284703366586722796652617416339085436368919217588092728233880706607763804497393859678192755256049532747259392967818181526973614559834922966158350196751721234224222153657017638412610560470321223887565766976363977675903271865357557163779813613223849721472346139637409661888393792980688861654859990164909849314248010125898597478449635088963707440405252958718975667591173292867906149011658348428115091626723206091637816616390377349813615269214522663181480452959283078278699951006973364553628950541751647168243602394696708040951521665845963052147106430206895312185941511106088460676119630389418892378538495529564837491040360299256332284862728907739313043443534150928803195092385241579314668279672823491192115553741811311285208454600557165008747804397257823757711688039721953356457244031747616302410894424967770457325752195086039662436714439870161632119803008235901241297375520020612581083752048954461801192894512383529063005198912540296310807236970442223954843860559564467669559022955809853744463338858765717159042928171783429639572323667485809028195701795007915671045729145094164718310807993466186672005220494030020891727832466889350679916113891538334651714643951782403926345671969175728489427310690546833630670637160853584252872001594088181325594431938882459216499493221758954360356765330734056704424585399481945945336413309814258878185798314854670646765376082507950720604365914352593227993010611198371022676338013887347563135203138164342470389173488186044140575560598756500793056558471772951468389442043596505038780704623726176068938001075419622804962419408719650290742915481502220758853040680522027924070577991891045006148027460094358662279466969550558074385693605644153423804837578063283244688719135934170024091670309816241227092981360762442318960542068682663779733853557785584416341622780861663301340216406112243213577514566043256439718486290413286613651212580913463361118465312573492410166428886809142800914615377589112817803984158033124538573950306210070298196929923646339644427876583574310083163250848518697795901403885057224765420444736780383673938201185078142094032302479884860006258815621401653759295613119736526577014471931696045407825515347143886088640705113961813128045994353184357744274156593267496611161886827476721433106659628072654627321501677220117970519916976775539395605680661066547571141877357680666118194449408663991218120757529360773529446546683946965349166208851710228314589744686551888659721209889400479394738497992213307992582014620846849122785122981247949507095643165326918264345547031446729413577982855033969406135926774350453756083933516553517201691326449885725725752627324063955693743381903591376092900282589513811894674486614144403955334170641578167434269105009177120299302828549445305855367919690343897362739907106022161797341088087882572914050090741353458108579666034833343425191546755855472034035791510042553516793725060868176592606931076036957127978785897124673435202265977756609653560460507339880672225995710169511004997426672404365444340604973146759416791591316539425829632177346229320967331764809228643357557191207034949515802497507983358411504917770713024946815229482184281418975109130126561027002355819104879908633593857702127501420848833197237785585716501291516026854595241654963664393918946151901293895801465872509957346954235949374055248220726806606926866424460717751099667047523860206587740633178040591633336854746439178316288262754513601272148565755598600131577823245963748487497334325430684230302857411817159376940844160037280532648110007787020377622239939218699892976344698079041581510755191846235246098905221287362000810444551438588712659183744112914689836227075751822228358096476359319016285291031112230424959871291356546495448721598773888134757834167626159899659566782641373209342227255996689420105701501652504007849585854863132221569488345314800119701507363353103762531080277013200413169222138350075353681256169378038178729424360930140320476692805048737693427456287150285540922349754400149904415116967711612247599325814064948639010396208570740897751854236660530071365110283709171420790813573790424862285433626297139118700886994435265120902648170190242166260195224363033178842564789652344695475010782589036297169814659323023522938959628176886689783554713152394289724387899482023913652581139455543761883335269272430218983509670312049942156753142317048060479678848882233339053320094527669197475613831464435408229285444027927963142473293780282188231446530046329234162446137624348061299991042573733320102122187567637995851684551021367850767156820168718969098919529451678764130951695569159132803663217403292233882357326447553794262891282117700150397231951848519583426453199328864962178554978172659200532285698821616993330671574250887625523651732735595273843194859393756142700501478041287101099943116663921843415004218033488100525508891744592262191776523936223321389644525724095301119393368623416738959918969334717543126199537081752547396025122091084015235323623607386796717089751615541318590886488495998627286504607934360005458113054922974890234329844355690062232928589542745762339596034025568382874223036107464099305111055760972101383822392291245081625564537900813427606512641220509581213900961153779634275710011999534910635415416700516310706149579545910600052100159643509453738771718166545571343620503473188087849051818468246736696345552737705479581996645930125480026025091270815161615245029095339823897767656961723057081458768526870559612467653371934147400469224123793852332987254190660713299233499358071452302631246661255801416281204893389577418859289945767358213343157318200839369145923931117902356263795221066220887858886007463005301631314186532130856531330042948432301225560047012552262048139298803090535628327546185050195033098054083283492197404017238138543276962039204576904116851099367822792716568039755129239391357122698540784862089600765030830182052743055144132077221326288803787836552469579020804018871400998534116509047230515038886822250428697227427042345786898077521280303025111758468808570509566420395877880269108642593952342610819009410662411607788853674631263314895735625705962006097314409086233620553580746658822026850507520854944789780650683492118216910887505441003653676069938182652867038567485013839227410774411896974581609437106953225686851150625804354386842025546989346320391411933760017284769353223353044698685540764402052962301197622859155606234180906333354994159778640834923729508496434300563056227054382995483261578078867103710308781913806560722224552237694041886678376973080373791942101589715310338559297246445142509282035516185709496246601677269428160298030411464371737024713344974712181117037071642563053716318310039730669790954944747029085932475632464069544918385925386801238614904354416815362325821216002793107614270049530939943285489938234874658823985974075075779828527927734791087184653256065592068719252049570182207876457444769294188103157972726226804166784801351267624050197270619810780077186057480869317413718302228706442775403629650876892522459026283815113667403771720501095600753364816021399404907166897750876783173901178230339682929478081512689422120389669740826772947453063363592762852837368752027518852165785756744720207013350865726570530906767333973559370265374341169176181587213226555978405224948368034505108095289757980298111118656858754247130982280988121412767864349120989552890409788798809361243945842804513784639818171050342856098108018046921289044004872248674535129124140990650818691868663067417109019291856471959395384206148252218879582463598272964470702774964869243492741928897314803975272506319899955235167744660765215586786815889976990107922997660719046517207589858770781886326713939906430011497513393578248851748593050294542593741163407813664307219722299422254390925517312422753561534129293856981659168570785032486963757508832433142576523278866966087537268322838910390505110144238313667285964423854565308466104141805491481028905325415916018559931577010786930834956807689309614296871175508478476829200390813231795338891025463753630015312949926310664470843847905075143570366941450173698548232190646315026005528268494974368988060621021642361260485364350077878771090177228176653725954116126374879797741795290344977422040946246838218947357307243198904953290482888135269005652779482569328968720212695647499164069249318334435867673178313948716228575795100416818715089372764650329537063676090947687409523596527893067502262749925022092647901318023575771217363946822854612982641997017305930641321621745960620483432222332207068298515211046029233760036298544772026589159840919005123800692585111765067293202960782343256339818313433522890369408388755615036333036100424456634368264485392464392896258800671109919307247776659528052056830708274645323919605688375316322529146544153060220049656422223591317321327905563541253417780966724389918746170184859560163139129027730758899787279996928024069135082800510322598083097184083209785382567012259805405094139649350620621454014267301273039690266073503493330282612251896238361844211190541432853198586564343114212441514229262758501891941225919636316410643454541566088565750488101575523151446947931090583452302954021046099644239250111697433033520692931063978828384380968379496891524832374766636208320803503805816380720220057819363805320536274937931755671485644003163041051101733978812868846002851498153368911287300758241574288657546752179946675040076185735097859466838528888481791998081522337934409785039482604394164315247190242688627360818179105841569522867013196450380147712058966099464436259013085257324873654873221049989982395635656293309070404067784247562163408039377884910655124805865893249209160378895886281087110437750827449313673049818917435796388223737399026633678986574660888841519079693403393661375233909474129539404214767860923064619231376662368256670781021631138110654523561230647352081900416566473502733472596055113684039348544835903459384974886934985941982893685324888447780234475929517412212872856535453854755672969441639027699004033378741118754770834186873196296882101637966207714758398821247272422619446452255857161930429365383086583517323678861864676312608116648366123359753559810503727797167413544563795103957109034618462372748610335489148824334948045101302692464648768543012707988901800960135164015540536627761274312443708125354029666450622203058485710133657600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m6.93s, Wall time 1m17.86s). '201.67.' ************** SAGE ***************** Host 201.67.83.116 (201.67.83.116) Time: Sun Jun 11 19:28:06 2006 Input: factorial(64000) #Hi, if you're reading this in a log, it's not just a "let's stress SAGE" stupid thing, it's a "let's compare SAGE to http://www.luschny.de/math/factorial/FastFactorialFunctions.htm :) Output: _3 = 297627904966797794176884172793492073280806390085755884871106568603373145274495769748176222797579055744138675901556159355621231045432140268851898693877506646312635061053057071719630673309259836801493779631216029271073767097075995578197674200111961870297290271535664761964760383901352311409243779735516808723437718355829049943303067434498555563349693190138431992231791177369321885693106770966558187111547177040945262474875652110149288645326832399746843012144338483292553103914350656740265676265527429925383065813647555124200509770300607409000961593476636462747407023260437355879811243221451525491188476083927979871510889146186494299611514378038984133095108765420804764667927901275240539070857867484019394901818217832373385139814213968981315451262906373539980397883548144583771332439248054425386932944764688229891040876411902081114444595615192700038423640444729080051774998049481488893024096875977417317487649153216312655035941205803688403926449140338606412756077820253050662668064720553238670262020295509326578254576326925362244567431260673852677105660146659079580720604941542931189550986997535169118768260961819444449297789063832687379432538226955003559811046931542152875466212898717916716144133779058889534011245055937682054588807442355948795069764462616133633882795741864242109358714011513662356128163715168121621446899052092399127135857359190556064511795580430073214722455785886716372602724506937591807759316969674414985086470563784388232633523269368715389576493745279845949901600963455927002896131325945437249306445730121741157976478972950594363259524285719256513539117047939288720217034873726695287609414380329137156296496168897854738128038003527566457208652504769198385938546216283466453322246780945105336293158810639632671105248121905643436624270164862956752686481844422425234923293727628795871258698008169459107711800994194289638296939559324376726530619274497363710669445405150485615864847075902202553469864711559333243344080968383452055012242187439929371489006136529452536341640468191954166986769564444253009716928822512556626759852777331383932786635989169581166937700523967063685806325093464281515153413739653165019754914634514852048754834537583733977548309016654624344849779565118962482463779843986764570889095327731658484614519529726500022412458324950771256607489724475396543015240796376530309174587846019968337906977573307398043990378358596914990385982587616920235298236496962668206655618404514659783199879804901178969210165298853537153884111085347724551095560512168318334942233060672060726283863619432465663077140230490255876630411927905170339619932351920824642749917680660285518538576803713790654593621019571248285881664572940859755148616407517696754743187853524551133730961453401209270340281922186563535888651095209334041139708703895659096610211485023990891377115953473840469642475177057886279107686478637143222641047714483544159860241740954772189239153461427911343990253526789116104783736690556031116005998995791125465512899930190898598158109919608283579798268226038704948215458132167150480817687710660674441881341157328215193853753338706207278109826145050802112380534531176793156652215533823024949649797559680988916491529163167707356391632036436148885570690558408268031436460004551622108795737565557807244547866057095486632874087661179530055273577887101301279740956981604022588864684471084799917808833537350927036343991189752216542975587808157396263754171756722400772254290177801788783877446583523513620614803859683026010010387234777104881200621157818044620248174968098811282998246077363620541107984630504985855640856134449485501486160533839121914560586788802441281212363260299863372901724100971350105969965646533611324457055867853785201817295625328777830605901746494455897005769861255013772952996715125796146177583510795118856291810211691240887144571201037681063456191435156155217669136673246184901278707892843250055918027826534651541509160920207195443033019374008262157640816277261670414703941694007656534705414603918368020667384064070709502692619416297481799587346805021483667857910519074329800541495776747924063203923992312126000547786151975251135587453329895831869181582613460236307564902420746386510412753155888196027711893547431451604112480469442504952623305533902950025697350693935256876193722796074031976807523547563663726142221982917621587922800049858747736771056695242812466472153690188191747121468171888955408618256123630039976885286533907481894386467252770913220476060930659124542776423767046026143089164143881347641240730920598434290112896492367635538666558883042403123713512270813229229989406864680188156428588947770283027753928632272126324521849080761574936885032336384876707406466300005728010984331441520955630789315310078259239962479928987214034120080657285216932729334228125958784314874642815865288867492696765911721135548900722682979388847758783983234969192785168444806773227803249902508495807414435204323029842725827325276694230459681745338877950276788277887644625721695388439586741698003192119141188165966533835510032649792903593997087840826480161928801642896806051466713690729422077012144639477165859432251803989659281453218213878839397353556295072815069381730172589253012750282924513541646686158781737182967071729760560270955129815511397933324865452867479058895791470604919988699044651763298133528201120009020120247033886571734592661306319809703625164725017114111538538915676196558647781562344075926527787780767866008737319179163026166468384995932069506511078282390447196085445278278302988991392237164835888911057648212327740401773459588172873762351818769000524328283334683351999219120290344550977474666100397912590197011284736864421118864265014438169836479365168983494804634532058124391629013888962179412495277577873808921794431410591931009481837178214822991626817125459304767464790938313283136513963936454068910316319638622282894781645948871565423765276026810177687878573903107458900390337345500819688047166476348981789276125141840417980355209619157397273838610452521970814637494554440564787349942402088572363827520904142215560040904493560574423808983089451594649227736895541893539178660874720965389331718629314475161259312849231340024025468137387584633601327432916563247697051745553385467421671047512933752575830565476411550972745431173312672346161759731072213007722885972521090422930050096078969623838048227295718897257790228885484821526335817473634982301878462275944880384172272818319152058938215362693926390930679792457377287554674831763636031904471638766643685846076130573316528833441645836427359702132644326200068134830006406217805617289289691926210305265053520695220369800986150137946622222545901053221802151958082302560824595140665834536690518893862708248994775584005772831257788931407779270097366866323374554029192137467294356350378931170784736150000475363913411771867515937314801623577768519059412227280550080129118302294811489517253924609920485621170876983316296818079165969953459578516317516592418538809875847134173927983699982019199543396864175830010130669402564054032811789423111830644668315452962088306832403663847260352544067838015466323700571632558000395732487732228737818149185129243493891722430618256781667645062395645516648379428433495350386085900950772853532826408805120059764231899107818824092298284479040450722870535911539955329642723373846095517746467700439084888036877429244736535410662703970404929444294798593710466894245933472745324133930403239315826368204102770295587895115071434528483516460235945866493370801724727382124719340284082006815421580818577670460177949477612090652057292244887585345252995418999490068635490787729885502553065836949455609869162852319164100537758447858525664152135091560916294992493312808858800832225255720113177933765160720863299725136236441969988634255077789037327556087233183186828714497095176887054376937352628894645248264629724356401803681003155468390737441622897494114883076542994912170043391758318981469770193823443155345092539677925569495723693964727198665713700706142645360776436161045072170128789002129531576853970221371674353536900878174126584404711626461763782205216606136074913666609719176313181396504194297616742376548942355083156507893330091416257750772297384820029913147943692724609822612504993505215459495248008195429629037103746879940518602037786705846983284107178067072420441568457579417135579018768462126899539772196961104466080923865810041207378537850415397217300194394901673237309069841856626414792200846288180201197926854783333215671349153382941085188304162331232630926155340143867869258651700370758384313512123321597301042631283442235073594647064870778416516962421158672411267415425500773217408042872689841365076095704188536173965607544249186294109462247530929125245710836619083933389707850957068332731422023195130812083681897824238285928275747124331292215568037946124093424575256006025115977217115209335729726861760487672289843650894593403765647414193224283111990317571767598254748747562212625040432882562553329144682947632821740566104781164504606634665845807838521488645848843425467730764341310313909749704500652626190637003427591930436980640125355184312687427746842632295870522478750514843789699078687640058853367179107190864604067119289267864373642247363928540101228197489319197743965348086445822965438832470306895489642356700962781486718319926925581482322864488619624129202981322171758755601621647248418021756806969064625435350067147643646360995930799857124469644581170698251400235098345811772167585406573845908322248461037191053000125704805179297327343053205709378493922054486087177088041142636655207511545612911274209337051121655314089953926064708490996611147430220182082349207747852415222407651271215917036004248861765325311817369700598065249711445723701978647318323901503477182839195539231647175694513203687065783758523890793060561861699736749417979992293164779752859747688492607309694687426874724027045541245788401850879859073559610635417244964292110391166894714684341962112597277006048100180309838013755985155230862295820347740758852423999973782057680667443520405744108833798092398237546861830338958859933627559225059161075968563000524558166696378892073710107962478066996134857535359312943108244338912879488511295629766527357385966094093225182309470865188778798289328163616847812618490181619172735284037491196714109993405876858663652511988101989908041361435756976554202053874027697976394525702678587943838503931238735502352273220202089181380465946339399132125039500147891354182041366028396347285260946440025340622499647559621570192158625399416765732956605451989642535245311323291563522786780724665818687659909136766996686880217436745446067823732006289353049450662304257736789451105406224296125790535392436987061158836232875831786735226190448057166684917318209316994544028894380518001229930872052343079674322013723709855316267254564771978407804436958578598968536510544823544971529208489741120451214058936660130783304594896015078475542100365328926445126208602992293068172228594928769433220881955267704269971053589455031693655077209610980413623747965873532984569393772382171875656720175429025079614443947223742398649166619769523382414084262705123277438397473761557097214249608973410417491725125502328165550572945709909126881908191555585697626331570526084462708242763457458601373051460556424202998909233980088286372523333703739565721055871139030546801562472133519203818318350065034017396243052581284636221543806005234071162201280031174405499046033681534868441163576638473706735113797525309903725192162940687491532654199232124215525903765154208235107830578269387990771465271891681167298707600451864699494044301298601492314607709077202197806374869146691970009537709472804020346680131799144579664431442409904136129084758164120509143361232076681518292027141564516302134570564117768831356301090322661290924042072003264509849275219537149924103034736969996382538654192902700979894541839358962259722665683903581840275718993738076204552015624426366262700864283437316140079174426309335025525930795841147562172611169375065255444251198665453090672130092339933850107268597560266073806100980548434846890705751713572279496686325761908777074747237870238957486236066486335524894714166185341186686513896902323786226830197072949762545658629661601756291703246087648209044172080460135506118117700323265604380609906402032860986377175041072380223612207813346405291781022786692769762069076920227611266047595544124523897762540349529038359518762028481455941082595984154004637700078938277549560550881822519695105112947174658281710528684494226110885235708042758951596808653166598974784873577592441789291712272673083976213616322240261193717258368563363629749348502185348241575947179397630740800100069688924415921364118910294369731371857702955481192967334130193927083085529091930129002468647014763784748252305480529595490504090234318980316478895412520663301752530425873487792779832687067439862424105045105492492336248681895528192232900749180650871583653403521675041423459057645081938994636284351887516410332752869057016474960353891482365256853480402054235427995592830375127451947576714525156750087931751031643148454451237345464307138989554127058419454380442177396153758854068605955796130018602211697916815527820059470649106133631045246532131856016027818806954395855334336950142619228611020862587406904331239135140249881031168983297308533642617364878186613716318377553462525460629075363921065040109945673583630425289131082294379655755092888915200592974891296795816273653073075272032963807323007092340726875783102331767012297009353150498336877540606399353633168688785237682925934661667036442069559918868281680542195085911116555330108447224302451792087017194590223717847887101371776456026379686946460850686029747999172045092176637792347930700327102706353872533842871430481360476739316359454399435431470533666093689847924546885949275574056774153646213152640137696509121885863029076023140630362035089051296200292064867624628891591529986624110283764946361393863864011457444244484285917515940151422395722713378715410615093302095935055555826338043234550739657687329752670593975522412969500416226357695864408183590048808246592095564155593004808217612340558346497312018781513214176901612512759469164500985392987089638261727864014317390114901048728330160188881164877564655198150979509018320673303309308302610206347545241814740491343914681176757628175634413846317414083356942551475282481341769322085327412384730521683644916438391005050564558602043999504821641359552544252818995073265688379345381544811384537387183527803083240163658225863078218846753600766210773931835184310209881198021986323217348325538370130362631446927775182277419084929990558601166220436551332186194425168000389269803674907255331221960880098848837837184603199748204609557758804128062608188806099893889332523435051387270371902715452640046715154022023972364833749796858393189644107979928733910226888430939399715264955789018509676918325277417962028488050854082149513856521225671211952365170261661416847145200983748112853164244813239020952415285537600401922183939984560223125709006161508304851902889635172935886565645583146457226448951613449374798609292183433493433237378704706476850841205268694291317002410184112651906674223864755325202607227902631900289258259832269630871911397372500190515172739574178001528740871488243968322650755597168207570682370482816801467488234619408647911016700576899813836407744122756043504867543484842114657599205002937264373475076623823040362280283989979248636951408969575894182150756711998661872159857221969015429716703463154623398687444579484689847133747467576917179072215186246311309376069838660382494279825848408593623130689785168868536646045345103053443737295769059830207564727405429946274385848072505546573023054656379879301130499324041340255549646817122214082233768575826035756000748807606385674100736664761640491674009197303054030960540498460451073993559963460578256213946542318768906354312147009265431590514791666030991267100665009584207890764480165815371886113529097340584294843644106270506976591001586200839353586383815149556023286007188775757051440694400157507971007272257722286248912097616228422308867217656297951014272507007402461931077306135378059993821709298227060089025781961247862341732210248676289555104881230781935091084543625040882244544228724464795232805171045366347421872410172764993867697381597507945652201529521323003552725411194386506183504941248671486674687054279190929472540278432190805481790516982185729689646101346907377462531360803168897469741595440326004249381258697964408247083972408020066805185894041230408458595402685200375877874179037302124063699646850518077196149674394617826151505024712057373589433364042572813665476441635307005060013948458329139268090142310363207398378603169924312191642837697667968035009808372646020874848028079213325750414406381331177493808662804861167698355221855729029226628843339370432385349855639947795057617602188769366102059303161749270512324926058098105733359246627551747487981261266517865070560271063473706712249312970622442572910452809937832943642739065071196683898487433901055712323546219536993176514015394949800726025297109066967014474880320174455587674317810550431629238030934529750033379522873559041351213046227612962329573519913655856387579406946902529194399456829932979578363910156679474842340964941324500951347386667778659997427103985123107441793403710931800508542800916674546927179613526424499631699615332033547252205890530597145054349958845292126652379343249322009721204441728604428967382967264887137081757713727291571324530197239605099194893280214850789901828980759230476378679182508419530845746275791637189420028925641130045092434038584176168913281473172777515561245830470068839725154836596996760326795932683093120521585548507005550076247733190884013755953081045423070970628234204241578587125596270913487559247864416279723647972254657305085907450698338378233265887327952798594422600182896130330385183596878878983671846410291975885001437666849237733083681756738811689367230403680700866415803422494686879206655909467341745909557135520753655622952647089070956598369722330154587420174120856901285917909386957013376573875201331458822332373691761386928223002335442304409459558645205142251270835549973226770393559897590878065329677502689316284056820474842162656676784318157246445392013945178480753137755845881784614278251939281971973895846450331547248878896611517253178141258497063961397889804405865496366361064461664857205344811895760238216636934993317266916727988782635450433606636355334870781587505431090977226702210851307473338026059737431007915352600971995230187492147774321171954061656088087586322871991572660194576423077587874116330682564709865042290229803043867535706704868236791625573902656975735890948938660386746951358079985757885731710671510218002933488409052071272146113068050068622818732408759303947843614119168560593142093616884274890117344088355574145718103442228291722176042057201043125891281696829706709439689592471110977152506729360540877943009900380833069398439472615169347327605781656551547776124928336429400299368480084796494490651048666759626046421557307450610797889115568014204215253374809478994173838576560556394447585458743500032125714168758242125939414006634209110909301813848859128861478489274299773871571193876305323691358882342513144983025606499884767896813467696205823279293014137297955204465738548245275170447807245227692888051418477746916399751642831279603969136907485320549235119964372098144563961575348514036721632865436174351881757627582426827157936097885941813041092744827452949968389121881402207838641769167245941334705832408178509706049943135568373968385042734574220307252172124205339882591188108861877180347800016216888406112772350201082022919542160226184900296063087598664573964166591505506123401141287324643296338367270276212236631175294222379661028629601681675890530628476658553395622565005715532025738077034013771269830400357117820807800682247564919263065247473577055948634807019199264003109168571117302902902788264647389159385608569660576122967993958678552708674023750824307354849000276998437850288881384359532362771326603968660038070064720952497701543238993125919698944144471593948148450934775713672294685797952209591145519315378320996201450623823685988190464184110106758595497123772356825514250554923879173143152128422112662922641759638204516946479649234342403785951881396813734850960849556838094183678903800797417476684065671994030673167473076618089695109229745660453918011569089593230226010698461592301328233158545500695679665712542552610460150655559635518401047173258347541819878188576311535821550462515011578813856265851170400648397287895337777249433792418662514042031251635471853032275694883363663096146861345804852694858361276849465328275820095801219892434797977543265122983741431635224169430071782010068711124234669545258680056041960879646541829136783141885540520392158705270302753113327626375759434252829425621011752079527886271654374409836512861863854018029627201214885544889685052116775456020726541017704120424502055144162044677346708546530443980665345094767126869624641896001331530350052592509913990598581159737394854436779900259725043678163924433651616408319976099464367848116379864772138982314813181154253871369182105869983520689111600313316813043046686320762839456444037069056181381303571541195397151388404973942028805939789418709184578065037922136823034681627117416019161581324362718564537261609191922721813762262296201767596142033644571866735137807750894681486427243673305108486744780562659493067169633598216146721659708051488366160241340771739961354173608275554470803380252100063564518465305117591410164149936483446359485446812122917743011018177022111851489003526790044682206211122557017069582509280460902540886773268377192703025931521506126717281366957816074537164437604895245309314477469516234676204242689942891820916591690831106570179843163301266622659759819784212614951528351373573901121012250004806099449631604945474274554619340970644937121704548936446128326165896451085635299377842152241244304565030505838505626017822937069567244443714232931036021509797530283401256585073729461457600972234966773474058870328190872177025836894620850405435210298086890595376036291480411292330689060218130511421414148236474470758794444831061120282721022241133968941799576047500373738302609103807599594672688823430559892624672675856575840937956543664544435668756110327387891653663361894325761657357726697042409551541527967705854973667494778503785625373540982387437344561634104237094767360928473214064396068272986459025169219750925064804939925073795492261527117244447316538354747332067045986720914855400529148160839832102701050499654619503045772244111741490845285879495058020155452937085498018491898444461903440754211795906786238092561809454919082878840277012128418553583389028319889589578017222678167034921338295003299232928662341510619431394136210527377563246146572221125528871679018135276470713553958734001913663476730448092767408347890138887706363238046901950073290546609530951732436759816922152867247562353594241859229995977279453239195376234404264094239060501787267117254861622304568094357805657057035307775630007841897567269697705078492804605243723524359647803679184716222674071353599586106048639433208596561049932385314738289996090201457138423716618409268399825458689659113985107858973672264010620839803805587176773636288809018787858951512026488177697890970270786270266293934219248410130761162259316600389500219084741620258456481629302601545233385172366503903651184218703273255033206921084407264768409420370067704045522565855854057710455833051168559367596612433045714322839918471292596095406447099861378113176040045030324562886010167481665561616551921075763124032618988313336065912064634286335803599171790963521432434347299727871627440817664871823005069594591865802669951855803180739713435033490056083299251087402131787751802546815912489453460104705218434208935847041451796239997223995426513385777932552860752184759945364777271710610842628167856703442300011940555963105374248751718128918842523395989259901237510702010595229303759379384144268253165627589966541919569229089815995286825271526700155512012339663474838393177245024542935507109906027816969475942805946982599293323131631920201018648845767124629381260899660730065977015011863379495682107341072408262009821953526875194993020198916843678547621148250786267134681266774133729920001827505649303593205674769675764045978778008870226927487338946771500846562599345995223847231751213292520714214399704588389429875799720506053026564426779213158217318018970660132403737803446369834868203938784073656795236632992931116827115942117471689341093073288185662497861340866597057542520664424838847739804130497542284406077498460353008374952612257074462052939159007924932264765118286536829373604183894635669292127166025906052873577555483443775271448646156493444034485262223835813230442352392920874999674158661582786995499182522645503075007865467674709013777734149186486669356351789395937798113568461718568042620680449458575705563903248619091276746933936273619444347383313877418763187109098806171361390291672981590806992886390745990922739927265547653458104543067914711172263218870281160609449555355095528211151060319930612253150908820231242449187702068830826295020314106716500863697562964487569414119426240902788674386871045072711379098255099864618558552101287597671372558630726187066289536401407652433867308863908783383304873246428834347539877530559220807590187280768656646511894699539208019151804074139049162792372093639523207107476293236601700986679006044851563810407261152739709737344006218709063111621330681563396152893102491179216794493401750769486883198228074919088998313076014137671509865881660789902821729025747994613132974345291160393353249385993824927846024547898711896806925192969943648653920626826824615788855539096811470047543865198617018424118885180783671854822996467367854752134801086760171706668028203728044803365231152587760572017983074733205718762553880989244291031847886730114905580934040469554445535729575847175313612953793713880569601329657825409190546672240951256132446497507196209193185495000149868922567631788485097246847402504000802910926623805406886316019914222027281276344414817002487732840575529568461606377964012098943682082810238101148837331533806314864649458468418338035284684310514172690240800390451277980231443149145920259919084146472845362474796897288071794099141895383054585908380379564854205119880921736251761564641448893894424137655723827362751119049253715941850335776454805697626614421206365469371038286230364324692242749283934989980078315214840169629875616178861638288982141869680334675611018307047890265274553683306315557972101087840469364105063315620312326789922390731286804001983489385455840457273193723669106955026045738175020270991037408037708962942562636207465059784161756805219226530247849579488026773928806191997976687163393935568412379610688336474667319725296994275575218770757316467734963882575118717515151611992470280397312357073249108962502926646290588236043230682129614734703769099904536605861778396653755611261424066963125820625917398351455787578701911869811921734301286853982633182593550863242973464182173768838811835775694016147426735918522163124792864555631696434597754253501217726844331704162609340735068522762870083556155276977710041343396569608987004291495094747666451395026260760468649632369163330989355410521936955523765420720979055365456703062967144114125354053612979321791190150573448716177587680968153551410432329635298116502749149354812155806769521080657367704908027810318259507582616486452460652573269084002146997050800747120221646824091031119571202800642116127288340815908951626637095807158953724045022487620726092143619881250997918344671775107645576037397657633646057758416908074851325164726344299086381945871754674821738168077364530388161088448970777775026238778807001726640613051230969508097920327152608955076129371438976318446399889690332680153011174865350875785189986020577648135388996294290544446704382193569856775864624979254235513756769979027938032229233118590933219201315949189673858421422641582040646670921862055518782723085006420561206694425222446882263576936601744454920729399824166958556002584389768557577369084415909316575107328084187967045942156314602171625093614970157187335088402183712482528289298539122713622359303699934156427310383776548435570256245227400141872806615046661064377517432733075832892119901826197882395428272333958911087225134620045624550431637485905072614358200240437329833813676731148146812379612831654997026096830164832456589832172476744694056411695144741938905981148932623902821169995820063294848687750218934850050358419543442908162633761151951762547816486411762788412977716566953149260937881882728409041683143708238445256659063717260735169860796851988338393192919801075235903603792876754763581493321331860383055481110879171058354778142104166621605102014815141586915118035161342697263775196289516751153750681539185564260549418433220640614336097218000034523824570202393153234429913058503274132807618690546266378827496432544242653016129043213579553535003583243606384992247337638826616675781344925120216510157449895425729531005699585908635264355009979448496420609441086295100182616093551876271060697604291311733425873541925933656249741243917757133428772672070669509337322855077910241686102600472212286738398611377905201508019675428497023160451390658870037659813764277631254457515947324646486184359747836015100333203267100584134030622554665296930964008047554273837638262982429931161957394310966923061260713084428268446341508650690836116209009285843309146930486753246996593554978923084342878600192566111786881127070697411837519135362909480811343120779291950754884329506148834783694053745379524162015083261930926284584229684304681173614235319557065399633788235065934321873923683878435372313809703515911013872018278136240858176632708025127726740814481316842348613504464229186374399905828005349820243670862090102967620237572943784274219168097438565472583432908776294664985832611796361743663993049033906193874968996048281745092437138784860250308282608011520616640097903908934417403244110658944452707635137217224147576190194995348193265577444811318707565469073134390363891077605218941690836482520405165742540569835821144716520387708919080152016532733181436497843389692511412022939026790938528943904445639744420847160815767021209019528054830566363741316622131191838116177587722074686945118437278186669306158720028816121290623484218106145165116938038223830874967236075205691841414706612389329980585288965980502543104838483184131700862811371201046219726049719791534079928439720367777445646541948222648931617918398887165542780110169606024058236457813108954862965899616401209745661376236848879117394060051826772047118785817918652389367818910499678412639030787938333548086157488623418381094196853822459712798413463067121029728562924974690447958131191092703194244862155417309101876206679904228479864645277338693413512039890549784939128800889873608515970471623498865334739857805489814376789415021153952042197484181672172388004243910112202043749431293574781300235392307796015287111607685793474489444806744170791829770873123998888550047848524183041749640638084262428954863818089787609597937512906218777757411945087249792658928190744971669158556191889700773252158350486921037760135097686754100857415523291698323006990461863979584399483315588303440191856103606872550814491292220313285578042276680386741474686797858895815817487127615576734582310399194390680204365346397669836664332683180116963070915103675241240815991661092048215440204509050832532512584214993699457307427760200222987225268774265146974992115575464824486492174003390525564245333801190523261662680947454239648626805101654514866160461802636764249916083169873483912571614335215487750807450167906489979957286526367924578873536266907053111357030572376501644826133640934091955512639004596943727492365447832935081420340411123280185217089670396757933261136548646078755137389812527233818012099380443153538235000984811662194919555226265497702017273059386205992630023595792144598314554820765860086261068918974691427417901101869070695013643444183599521194887176704235678608838473186274672478654243153560775011225966089118891139219024045702135327866529297512690439153130052144501795055065944972639850336644062534372764548475831438570370310122426075772067496784497867818507295812088572025388770532147278675838416822811149626810163328311464576589437918296139359306381451349940446400866865899991159666002965784291770272286391079640150476873555289740176740870689591343556931397859113194922396329449955379834291217785218509803031244844090162595514029179206519171748270808731635704440813276674905154720788967982789365888185190366197295538026447971005444565028647712245074872902995618734996485473629521061381283100859022732358590942500755767544518608971571684117924364700356036530913956936546935517798001964456559641948906436405165960244921702684027405706118227479465458082530290809905145965004992491433277472342213019319453259309859160997509718356201252556592009528525251357774013990547494592332973014127246373055247348561123258215098349796155787786978693481441481213445334778679880372043720685235834914547648217474556356802554091898540123882135226332077205844274966181351031828844886390840859613079857497464320385835943760973849532552988988479098836916481527327105526827823311337157272810513654351160799292486440408843586869477612768256658523051981572581508924874044083670091410884071892615625741676719700059379015061680547885007533676628090548720547695625134161725035541710868009765654206509969052368322997911256916485810490797285028439161328858523044370405431422532701804036199032864354345490195732221530266038732072399081708444936499285979205681873942071044721790586450988394755179948131962837507797383343000280548013663570852547745396087377042873207157124252879748678479238185420358536282088576547852665103286345115837447333183923243877128458562283919565997758373237328285905895160410549002574658747592494835041639119723342917761688125014678956617681678564489942893959214760455910421667709909519656321391816029613054536928784828962468810636507554421985847636883881103708072290684290252589505431743849053115514972280317935338196911637831863809579449823789471835658403041397842215760928032985491532414349508878193282086648235642385721416083541390461684048735558996643570531971337850723474434164602874583301181692162337878984173731571739357555513777225647942808258972090011117859267906990490913318763706314610443772336029731350151670854461379955537183299441432074545620897369641100047231393867431961639309716288456956147164584629594472082888620311258704808507033894317770894857265382780957576061867568837257832692861754062475025025346191621396509006127385276220029308212039297054782614015257198838323230522074606922700319042882972806970451490008171410241480267132511106480344998969932619322928775751919346600179532364049248292804742169747526451105453331125245008735166946683276082648869439066472470664638299118702696631630319767763921095177819493830372683988199665616719880609461098846777797008347565395293117726600252184174841572628794402624895497110823739311610176625090142616011615340363956811886650334796780681561324272637572150395522452760899721176855361036358547529698123437395643016595120005144310454887931738599409851619442373849202193592605935742420077566362837864554144233624442672744775857420262789599623282198903613184808260675913690217920127988253030869881886585914372539864932722701753933124067617354737608726133418851427378582374160920278393742015474139705092170555275184821093460654774216470866191582607484497967969104476251014272169492308132020191136101774716644796317665786598658784275729431483941952098455695585862081767023925483891538108587926522616047565711183408230028720781443721029113339033442031558077853648885618127122361546064529130600403047109061442429606986360757424617761992920535913194510274579363645528817624157762772958937216937339785083307702384730293336337582059024313225222575522449346170648570056542061299970435708781666817574562260935249925281506723365212303451176867631076051022828827948850350449362760637157816899614860331407269062222220449717128584139334778627075944600166605724251008542235831371273128984434810317251703873553214078533725645324527563670506053241968327719837215074704598935623705371444816043589653514764471013211677030208495017174469476235994827335857581171448319689586718391077957979510267009901276627265641868364519246395927870993084944450105095483297224082434127933064071287621862340559095983579092444721616656641030318666547605845635462769002773747815994044250874568875719763201140970798764468028867281026981940056109940424578250509323473934389391257879026354318163968990709672864122780504619496980856666432061014762605064770902950483443748053153914928965881343030790684323521946245380917919280696315605832364386781739589060390500687086607123582802928348641556320310769689273154467022568038689799780386376115028915616706075211333413128723017811918581263535101199573192122386922007889167656402290771215224122744300135483326528755867900753044896748508273180458729153013584850227771265363681110145768485917663010673089412443416646153997017710738962940262488716174271830678319564590900084788775004032423719837959259645994692907976259212797315896229964975058847333117624655550948623696380587701570252351388800876652855985575556969363681647593506136933070251433727405624128956886463226021172827409407909424009062204767657276784103823008552293944898830769456541292765850459444634506573396304490538746226333204974419613498216817387157319730120745969886989934202823885433493449204347894438998247535937038793238318292165336031390948357862392818075755728806613730779744830726941825131435470848493693012939234569355850683607444841907650918789810151873330382022234131198828399626145582320304808238768235302398292672673925669709289930748119830662492694098016495821094537988997137887494425883818927283274514257959059240818296255068874422431329578299510743827211341988277280959105822683936824447544806232360036298068078784723188024510617175058619881202195972124913834347492683652598950921949658042045847494407170029231900979602484891962685759920384341529648156955022653843964820096989410564558939619682798587569618457880583531601269209466988822420084447938706334876346236681099932593114599535462549530391626365903166325109027280286083358250252815030760429503511145452009990645204231231242899599110922049478769337278436473242494454448476630021352178904162112236764684439227314982346960579974674986807031675068198078392935039081317777902457422410522013787201402669138668755103369047840466650472352853211265933508591315350637934498991249989897569699989830600567120162577319294719901598902565283780171377171218499472979987236623244947003467802418020187409863871108788522476791903342768772636851126494346023691748442821773985517039490670113021614592404935536848724984700639420281527029323846129333645519078987310710102709502765841084282957224839561044426188797637312417878994052274646415222189118771020828657544433987818427075509072974714346020624416787157781175316449269883926782323050401740860775253204130703788414644023212367269629765120907371864849915211222952733925112486741189225972864308845108453124621818709154120001480049558145621080133329302139225613210544275542119216182409889271464520003767171760634612326762759928868297963941785539618310399625318212285907700260193044821320467295530712577929650134504914329243014630277797632462152993554996145023442373478268704054268638737399526813140745182332534536808223065630100656734542563934882569896555958758301545472493193906735223541650876517753117294861292894014639292208548469927556480559482470656649909306576451629097756204559667842306059953366879765035328356456562215919860559374471808142541034433134226507997610955494953889556093772550501053521763373827974786796376340767247306583494332532963629140556273431808552639636441672707815743776578392562915043226059299120249744997303697419718349947245307089125101444817121144270401140042280762803602983097779066762172731366819773098228271971608357358920712671800296965156984630599510949878812187122084468860024181457347138263679266521252364925634101294775705605886186548529815997946381578922124760490935622013330590127813274773472771434175101819391125896146071125884595723136756012389916714187010728245085415054725512026753902992101782863559831474340517286720830488349051560033282238452764227539416232564709140612418814718494503672038860161756299010537689862875782721719735051299385849208313684326275012571954557575814528738080901485637452751761406829572276323710850804250844532106862569433690385580044201237048129332132779821476401224389063723593952855477452428889892344006627250686095336994552418164081477918138465393043699357057858324621771745222596433165374177139264901884771598728060665870453384388562598209847988515921763251589038549161191408006202032141788264004951631190510001691301797472154667144377894224908879591966141497605185602204034300483886941641381210183334471582690466408845065191328717780416521155739029352889556109223897551883983344435843458651061051478757576831669766169237588698379138290757122361766742116466634683904900445287313470261722852246633688042166825988002875149639225353380517284176466590390455011629447821534458844348623072511783504435875914869097556329337818342416879179231879937428774493992852177719739942876708923338146508100085535863377200531230069876790315507268994914780742070722351829598840221817831294080375853746688562485021877317441958858488766689342155673330730092112214197887832905632761618519362816123774412486904402323114614320336583707417280778450061341115137598367420282245423391356328223480706339735296848451195232737282826727235271324781282452955290582503132828355947737065273441960454102337688146405257696063588555296600892650967170588112261397191698337124231286738804344714069013249387589613593147140928950336461567063871638430986622557466577812523258575787987771025032453936429535355189084051537750628278764061941134617084881639305803163415973854256960494607631517417272876106425330381005287315600527717578781992702997217499725299305132700087563864690464282430608349424904721165270636219782499875676756640789944270874024905136538142127514369711480698506306330776246870904210307243055847158141079146757040541166954408779627362475977053205469068341695865711539260034954761582341280493497099089508573844944461567426044664225393988570786076430948736518316639808119617573154976092303219957247434612525583516656414635439722369454219913121015334023121366600245317254230342497334128356449564239172788968117911244804652923986700874457585971469040908486634902757489732385426886946203625234163749036048482245412116773561732407840839979405682956768920873569410788148353487748370599895176147719801261580553408360767704549567709855707441126442512439282654207065621055524304283971611713034051091651737874054021885116114861921315204207973436806811398230243241294157227179832096991263669862701422686441783330405547539334941301802726018970332175802441917397660852872993642328091473194973003026480646609855195551996428407493286572870138626132709591588433947423646127271713463633117167476734787192794569036826252195567522209282438050584699451713607060835443666669052295571314979575745054055399902051102991106187450734036260877593412222275027190660982189302737272109688696003121661122670445515573530335685140001035684115919148711295113021167553925721980824449896589205460063056419575775327479551099872431711462096159485807541741237658380953030639163323996637754691876727578328686092591908051154796966332490266553700974396503540714099596475679852724851335058372944669240315515744290118382788106216437529129595739322617007162230419697200608185146055068934339397621237239480472525113215390330003140652648056660082282100303899100143104797947696659564743901039691468391997352182877540860590067360072662219877533277695942055122941748643824171938550820961177857551556225769914830816105249346287659185054903515751539550719165820771956272073659516175833965132773806724796984062787423016245455635020009284418874608641410836120400333088164510721142934558266749835465261161002702041400374699717042564751245795940842645122192766359257122132459058847567275413567804005676885369913256978983284367574881635812650372028473817393421346289277601742741816698607918744779644894490492865348871757769479150790592321703860698503215853897151006903673995371687208436405425202300296348735076726667762590583887792202853189303337251471517596999131664428924729605784343085815235393017868414021177444884288435258536773450557050650488662315802370407213465504196336745372451033816087598586282753471371270197863525186859552925396248453670134141331970190560151226545267940512857913823368204710730147474743193548627035104579927471597029654836468528129188964134883344969995704334251267848638642847231743188797036692446494619702746058319892578331491716076462644852347785741731819339011298504586577351064088807057012707847960413103083538837231425236492131686858239539349273003418256437804859489879820152797124439975947866342892714083468002913715605233094344875727737180318882455245981304915220836143712452359615524831809011839225648359691699097690345962903204042272101519742221296212487227738302843733829938501324911139341500703819341593714042472178167995851105839006907779478223247033764350055074237093180341508405066863364621222953240007866917345950675593902433082274361485407807657486668709502166121403670768281897564856635132865609845869511555372632432575921000736177002132193493591439357177993743542040011525705351453922274959171266741386963773834158914700319191758028345617329436692127410538194574070550950923993823362765888464482873243161897574626008589005425515256352366963191036008627835778059364360786530469504612508614925556487676964230635085543819240144985222904901510891655941748302829654385080551454940850638565405808193399600521828144880323312354235163659480454761958202533878409881180047856097008900896531563663998327445349143000108496916518481883768542747993659437404261012801453551915172553128671228145267028137422055989540932114790251874908738425782758657594882411925556796447484775440202790090087238841098824560515392525673091360641377538840858254596968006901948831496028268270661294771741169062344230293002526380690331599835994173675522041506576650005747403713156036157757532817343722672177942475310792500040976675483228543736044834671540643974073532218166083478345276634836619352305580225996099933140129718988752116146496039358265263522956899359024814923479125391062162262282584048034716731528535257145536828346251500247401441976036349299682572810939263247283720342658398402959971493137770457100939787561027276966023574282354304240083255978642170407479837143986624853426927207926282048395561836892857708849491550965119360469515599385876497187116746841176588624393262725823865393242323817853491473232226835159824632129307163342050134904631163121464018706561296076675255539459512349065562274057605874717468443559199330108411930406139008808580801509008698526659793947340251487334596723502452454861640595889100862055078334052254037123574416097234192694340737023183518931306734243067177228041908985539309823627191355722421082737527602072169415677500056990522542285167685115974248586116920371620341877595819516050155787430783028248339482439014572145505586844436134491481462180806124289742405168743960331910701163600777898476716261932192408542683535199999679416504114218922408009306126244840627875663251728949004399020809803564697094458309267596443060319988792224986798990879034274976902762562032284273002411944661276511580780654036261450921320671437916573614348963927061957448446767299094807620788914103667259797348487429012310921836794594544871882708244556252494874672926214853469005488728457875321534190145648884724662115499167542432261244230185506149009987902201770685206076369330204951149332115186436451500953967454053512648465158972763643305940633846172557534865317451216449736270407833102117359495299668458707175948777737446238294724056310437747224308361716601664671992676612583964236114399278564001567380531623788179323615969072593491139250500555232520709796854950610825975296794112295964425217847312419310981110320043568020403609370651892662390021630522263234385447166527675063395880512342645760995021771156048112920192542347144850782541296697094820487285778896749686426789049378830547363543496217115823635037645260070576173793165520382851351960705077135938600386223358735228844714499541437565950284378569794012746703776383639956302811613816677276521019675119179406626898194465338838328623770451064706910149808013582471814192636245626917358156531361714925252303512173360042322706496345434766942059274871579059229335667930546159344261791762729020014956395700255552222922414175427641511162259061526587808334456933613029646197201277506691459195856403235309469880255727315683911797060436694739230924835700207697870373464542470545504013956944877555894099348610536375903566227571089336338594735100271412428285711085623050453599080258177643424098424901506191538069294880021562641026956163920302132459314272601429607072109972886604147957626552072715423561139486913582132343393155076637982099129192125986662585218936762256643578393104079070354287493489030363759953480642478284899952728783871569819627774154453160696858474126002892863027248565880344357797892884810508527695320657778234599540241709955163678201135899228603615111522831326242829475410992419909108272895462434422535205356502066277965601415607731952466804871796828572046620939109974140633649601540261224286100857087309388274384515829737417899513805129579341016866451629128123622288950667683266267550506172583500841695411198363928399302444711673129420564260833841707096649804294655862204890672378242796084489333208098882006284939452027962258896393083673409551049027378992646497226966602589530991335611197111588081356958322613161334757838134122222248388508609156281610242578671750529632051087142483905585264005274407778784216669859042690564267921931002848755124179409615957660013197389622107078110848630511081341305071073917552186783904113479104948753899190811779441268161335390935135505254765099589816351239041683448122458358393033212167699655440230666837626525010830033846003428367774289695466802401752874033810803384138399120678476415860404827014278959159923557147310342416065598506551221282921057566245049223791055224555535598812634259333651857496262931873079529582657400674357694562280823019937275128023251787416355390421025928484566171552905692987344154703601354719622393886219853136767965448400513856188561264293947562981647313435441255433068951073440978575044659792408197199559879748503174985874280512893880242726199192522638475440216108817408247860795615231981256396952327741309168472149843214759313805272372152250248875004050856126579325170628180644920824888746215010395937291455916154208702701229422542022494408101853990867633920081929059823670025084757679656860713121570475704890356186128504889512115021548587799629327694274319281551425797912245981209332673234599970512974356940738455486276448968706117051838229081574328409732173252115651374897471007337566424966230348481972534620369149015578779249959486419852237770016329559094872806020067040027223195792296591527464648325717108470796934793842676383725624239276443819859393801878667380837272976797862170620006844602737522520043257950821059801068528477918056851444300199170817506848292041707165072732056427259410555953828271906682772617213409796137162472532544974370040221533850259623233578373846064866783086825917893150832045644297703241857825074765485887075390929141442278215078588338133402755631703595232188961767966356752646527217418951085015962712507013357066148088277901861982312877780495408562416528481353362138236876197119452815704731569450638542350544446807881339924220354690988663988166805520861927413295438210911039069796116690959211245846307564752643985578392541218654011974315204222114556102990518142555902209707416853452423488727940301877131187630064370743504975129359856140653630400986631790164743305256583175966722519309892087533068507422229916890201763130536355234881595552070661247385867746977178151254884360482294627207816995431083294241368091786108619245536643732382894161190625370820127618425373815014195406482436025544453573579846693934339824204967971854020568564351133247050900869334516366566684258922363945409653317092731874536565380210104767185541739766070304039615895181790453845530561869827199227159310006801048516171687208828798674794554639739485781706869767246037242628519843012558027120890453715516943762943069474246057051691348379419000449709164544746069759359240109507355502143224995841839986387718653237060849189170220997911008349578598687120819874254515396165109225909862827666930458647751984358192014417977619185147491665923972276345994074114606653608168805915072454340255694323292970732595341350261137032458174373241182968061146088157669455239442598101884113053443415677006013202343689400859485905301762876417002428791237481004067931450112604283862414815146277533547406343315764880224532208768167166855774570388039434859307850989068190840280942594491854705983954571773925193218482877095796327319120753596346632955940992248468051776340102235324533361107008703101566883353717202616482379180389149039961101596123386304352480298413352662496147613399030582195345597392564445960950814219656573047379792113911197181982860854770302742313513804825024158701847977446911043479108474462219196484068102368040551963662744178409274544614187996353979894465684310385409720729546781025045468045267082446233275042574725000057145540469290325356782037650269650395376338976751825930967886681463757540007956035586982221920353571978685615978057987482497409178454083990834924983934402286687383286709976455961665434403502825141530552456136367403525526356142222484252906390805279638151540169705954559943655199878120420265011709338310340710504544871983397226958736227827986666795572143512049026189303043702002209351274194654474880962135615502369522725151294872444394264424596548207199977314032668889153520269201134565417075332718508098973538585939092039799281922412170099373600926968014543365369831108362964822488725350564358728149215577078851383229612276564528687045467971111505613371257757423574498603718042430376191363848889939818222645767768184192001256375668831688373692021586409006323380547690112993398591200806190905438006055528515019721078950190906344945843114603742147308706280740553615296672373508875086691343065259012324986877743081293692131565692825602163480939063496218089984463637629352224005382628726836522917441468870701154006979792102042310932916462235719765212310391286447186838195234168738422582401614268079430218596029979087202096485653233841317192179712522570887076146003486358700370757288550561305002222758403105705334427372315969686357725238208837834820963905516289072405142083701162956285019096403200369697351236289611137875673573353455859617189888154432201415394211940263063643187409919370698928461650612233782214164984085261938270550035226642628037375331913182128851038028688725801127573702794797173856372630336119031537684549868201913719368241449995956648090103635491250103473065594309636635360716764024094174374490112299128966474417216474702805252787987413982011378262805502487301789287402656842921924526166220069030302026522968052808134316235485233419826696617239922666767213654229799917277415645000037932264035907490165681751271310243666527283243545889413202941422836621800169758113108092116622292278319026785459937416335934182044435567269118504986199472570571260227652201607603023354245443270141837336550183216185078133719721236395926258420518274427365171261659261485567742488536381797950966704491766299112803333827316092358235610988508209917294740211273559297268225983046404752225354402933318968493413253047370583094190445960066528815699786070573814086048702109722762390085937272177817309587236616517004757669335631001764880040471980161110411965969777485550893448167424099360230991536745959167482435994219519065251174212403248449131930698213951192124240128981878488996341166120243785388070438857757408660770164313950559422217000425731934138158190089989522591716970122991235345288814500240706868258786673447288115991321897892651029252531760965887647569982437784417003835977140332453196785491650808339420921659288960818933756202143576569750891915856566838622798125813958252520334272324005275387426531771849505403772127920962066804898467047506021891424757834088994245031248189275782103618997568576807421571247440018197641929801372007710710137940379549731107742000821430498297452283562417829602823954626794596649707949446460728495333228036641911427643177180154847673373742428900143225679835878257147725236531885436344683977297047991968292891840667411547570988088916721134270078522465402852790517438772244516056373131044825996963348949610160365925068444395301858969812368364622312699557973150302368352174421647578297395603547550267899215270616099606070510161216890685758782069147916138170550647364077767594793587245811565776411948402063727043930082989768120394040538084557300935143023643258729442999293193009011799295126846528919183750845119609325960725159769896949392235561362945695755207844550166787150917551314067204975456340677131947102076266647057014154126947179486734408150073937802255692581842872324462285285497613543799092550439866263020867948599462421968006644315593482968043896547310115315429615579650499294167388757008885657803826367606646602865274936284538905870270472119490064467361455196564553433775372891544851875090709963669798830730620537352083680737673741790873088112601678450196804369594421197214682657443043914232331518469227958910811264963945425035291905517192900811236602381848628597304878007544362445656649785360646018927704199855187776889531602568758045870844017420788384401967221020707114622544177550513426641881059657745392169819472266219779089731116519206097562961034133808483410387016588475566687457906805790302665807001340412599281851490167388741392930411755593340570420900282652588943759408393597779254705345333014069221453176036338952013127129238909199242207780754142817867677473272157020257956914072894613759808987901535074069685805703688538225218060285910458712783685603795216656889225320408487921136013503901464244340109906032550419532181727863901869133037374861026622239791359074977561141913653296064350788357884299525741980089142805449793570363057854502186572384625231036380296393743577482159758776834705870991690737462799622106811947559867871969221176248899145702332635615128785069592261697571117447884649324527460293649223432485166689660360811399597575898240332011689220168987821271007811617874719410907293823004066679948156272107069173104510519272057848877171522943118189463507462110216686382301127519255785768341454105428832718252428098970294822297885894463791409879348592524874421208314489177733933147385047260443498267244217849173372194625754005033109086593870439742009939738781357615734070534785822509488632085577872148290119759419113437020797645099575814972206765020710806276407255294411884468111888456481739735615760685893211929134413256076484509662547031654373679993284416846319239632024207998735920421257379759145577710697011045799599689599904776370204532213761282222567650547646331021748547631297230935939817088837379699836043923144096815697317383595514444937139299651436224666892419179452775179890435012341309231692665200894070506197085778354956430592755273857232698824325443983066275096182726081473189571577907946762096220558390019996196745886591455688183236496251900955752093872616766220921228629212269237501066379296162022984427720168378661155431446440060460072587571614085849797393387558422565247490655882252204154623201183642463421332642395205563019983159086926762369290543337490955952382385551089735588327971334475488899001922947117362613573468954681434512744566873858453991421780798673581990380048292278801433846066023341466719753806380750113096536567860928909623140289661712101432375908624145360091176428015615121440852044352245003365186288577309753718452605796131369810680230354904284088095108829986247798864843141636269488247081516670777640456194494403845796852340635953011847307764478533739635725597670585090908738553885882131373397540906990271998001707055151478540626588095285192915437944325309014722435371044330068564097742262840303763664712975575405752522845841798822386714937092971026728375584321918767837723406681862894094622263577776070746003824647613243165973052839037635748478725140119381303433023048689158482806761629312478815681064815713141205776319888649466340795131165607423747140974242185950809031943291807795580381233776875970004948162001890912819342026961126911400448612381446700131918039098362893933252299407146548023003320769683164876988593917859817558588279661783396281575127816130261868233962783953475006150675118748896852118399597038041356293579876982826005389097620559369931904970242960643475553347463809935194288624527262520791779209151871443008005539504904220685046999942631742744693768387486636925655423680141081418887473865067909066343825649437508086793131317235001012814935222572815786949027857279010994085502578549375314369784491723666021861154591240864971406581380191935258118147681799529812545600125917354863653532766519130550944548419697436496931404131210441865319220466474126258708019272116010574052155293454697593783353455871721981315825095259833069155707585063674096243404551322090597868004957632225817533262439076981628872601728046626150436016336355481824254929594532430282147641636880594672877779943278285664966352492461247625428012124145460041046901969408219172259735475741946385490778151218608055387570849174230412166622254694445780114954213541020417375547641603624909236736144881848204648002777708327342736112603219788481502606234510655696655387476828715803098366245654244663409696545623167035978184726250768652941317240903352281323466804152547614301495691609476200483922846616843284604998759519647085527761919083431831225073996218291986388298082580304820708127656330981416932825800126252458070500900244045624962110679393433516504335976833117014185240747529822298594408790234287837879415281164121183622094650871873781102586356874443484128554830816297426288669617491852211872121782117195809142439984673897877097141608356178805141052888224080254013079157105577316834760985081582147707935491710005003060712402566328674934842666019234705988910843162413853017528113855424665541853438140612904720132854398736861563609720845145589912444482296692310892749500499937463738941451669427336478547861380134033532398237195757016379495359396638277812568375694238712369795564372421555421492358059970186681317464165595587211756044579682652872843266095491903668229851064688046638641733942241972564541636361550011072947756533943812952291300845100567893856304992524937185227490302756056748941256532372546779251170502334719385690977601123012842942428791508190084321934618023506671947534386223210591730463102760280618346416622193711130028705530697237535160484712350681571500035175038256669076235993816369557360415037339617081006556124245250862167446945862244294359373925207728521056580847016514503312832266181374829053263943205366809415851191598464648565292447198625794706725181898587205084867840014175932079365377308415037366094472726555112479310265883182284721411408214314649969922600141826256183605253225773704190611234117980067508603380940957064425488021269787323237732593897884857122849511574680397619560765845501333081167794433879150612125648001631071279661471875295188151215753533780007691190219315650090779781552096677347461053872318488674492157910869988708307513649749204795692505630752466974204414631755457613325049140597057406678060736897260533373338105215017583060760071559817232599400261099646135215418271193598631189992103460706340953082444595281974015672838066698604284102146978251198502112758600735645321506109258481549132723835287394429023536168183222811284763140292522765430704944226497547624227419232124024901238944389809862226886938565928270061811595776058065146242638759930730061667298421670634846711965753949534085945342238194426179809309806867688093987055343954685552659547602963033526025196589847403372691531754441130573361610282983531708182370124829843086139982414494799283293990999797055190376781487721928958416335616779722510273406200818867496587856439622060340851073712386578952288793916843375616550971732155168686440324288319585373231397964641841632921246127468808434833404449226492151195278316423905082830783957592535981053618783681458340080311761644103540660560596028497547141366238984436979831790215511602703712838005052706086677756196433845810594541698224266843811887164666055112109613587942573866235535847921137434175588554332903765463110871929054672484601383966270393432159078422590788195147601839742951682456979677574317375343833921647049452569195929176038782401845312832889204386308462645431660896109820781852687642337245287298809651841309121022238576739289134229043015388685888699007177666823726277845922581787397157784772884046372237669732634749587248158139156524410358326054869455939551269772350237323933740245857570132825696189227530962644320293966846349965850855986999334756083357828946770301018793701865389546161862462568595731851357435698075136666429198766341181306972873095842460016975933439929878652998487282627605100291019400344292254460770322183460648175032373998667786072739987668300894658670628032941113818315242843166322630121554613957347448172645798616445962063591172299946156113519625909404745173648451018376849688798964514019232043858758821890869556485129056268997174055611308571577558474818277837120834204191175086392391489900749328372432653432276811374050376381692309622338023971333837051325352940269807938645655826327013848453544974966228649569464729546574286470112100771129018761255615600184516837356228900089155951380169332787735679051116538228162333114129975742433621370996685252506400092190497002745231575822138760881511322717082991894144475992080788880666627737545935632445346885210966165149029659227501508256748476490942181964555371141052386275306818857792241236193047127097478628415797660171614709042487457372085372860289269632951621452698176145605771974425643036427803511087424739581467282290596147670348817212640582209252340335491473734434341795590323570047470276787214079379336120891647227732258354477916439781593916084607190205157706231201986525585383730093869947597835046665437254209154350120347689673761505831035643253697113205616896282123189542490748784027517883629440958903557302665671343468333875283794061384993076391038525262794705057624474316317230435396202674470016769510167623360934091340223303976142425334436389027476748953457675765868801299138847392142493407984359075467801927562835565589906228895768984094242483184440565230310636584194916673062111568820583696840725223144218085001121032525498347211183883762166386066449913361828563631552907075272706739603218556380465735247977217148578824893802832989142283061420168506392397934873448538270528667353314662893360705647360402832647422098490091154288277939253813478929387464691615713643660869053339921349497100360310819726197629140470992364713581353852370125046973493085726531912347214645819336144777853833760289447811667973411436053260793546361412404302474146061489692833591991053940870174569749511862563343158381519584915461498842602396033766458322239321794706292840530154110393032611121444270133368434752688613578460919207598872555374886087403443803323879700039808681678198444921853819343534746173401923589399714782315171888040069578676301285640492514227220353197464140288297838792510072229527092206312736955572206052671231310249973140481854350073427934733953744928759760937797376196384547939106264866211686824935814684785632643237516366602705947269127626847347965966430763689916828397615805712337354053436913427872951508834512020858050163815878792504925814686619337618529222905652253040311701527551438974288186522291187718414406694164627036059541645679818799468514891169044218635372778519146752245574480219557964161019569472631561510766836889820988371670874376584973609853315960797824061896001456646355126263570322462397012586566972467786273588637607100090268089186643619663209300356186989254032107374981295514453514783941471561113918580380769905103430408597361480354856381954068587846099649100371853421058328574230595996056116057774962183672281700765158190297355836673032166653015695470912854553818917918691878651351146270366064636141715929918658152264833758072509639693166445505421637203657150416956677849227769678582624209011526555263234496456224421438025218340421606113874162911217622369267920047497903848316083109295187415391914432195259578529986768254131556682549501671977042872212203569659089593617268842988679861974625733122813868775135334796111071648621876543716131781493309435866932230062965051396603642169526856477196335916910656344019240704259790053346630722639885527610123769595277407119958264332319457435740049310676850084778581059835345091863920781602875898689402614108055679913958718561437763167155672606725341217738132443570140549134452352188649777085676788084620007540813306238082047898989429941312637968552850458658339690577788234613453161741016466165582103310341399304670900085512673191430533760765670972940612541367709532666709939374126581321304121937073971873673899945989001082615241731253821847839599709249440766613992549988277638261860117653707055718570889218262723117550153185047049415166677063058106559051592045397523891290245127508432929779750528663872162187386968454524979824532092782810060057628497260696574131986308627783015149645941726241481561831166399717411785618875306929985646145864035389464730684636877960205743918449277659152497201792288848848085472617787923404410452091737465770086333488439340878228413274115032874207311722799162418027372152879591713074945629861381824550585585000098857448374968371213826259213486639617212963527528551980892581162082055353148790878828512049496847895262683998282916035363646747689507941904211305143314924523134822187978379899947844007639616087979039674439424674647396827412110283021673479830173383579692801322629151280556070611694378162871044033660422204303941294049077154676571097327613807876418904332354150356679721367171995997557842306897642596768572701661419975809622429907698416534004426904908981407271809393166924560766801104629574269972466956143593348231794752141306150796658884508043246633893980204667694711881967739687574039072614928674443480559045674803004788442143466484917317961295171784060647257661978831152585435516456836635792931090846601673087387801291731425379946152666842813537012180487598652485963125156395825753770880965309804504299348868677142859665252868496050864338241886015869910879347937024742745076766580866935103195702211294086989925119922159888793292383114307675670900237389353932137310147889140789753634257356214101273210960676654400446581087984312491762932670993303434813339157790141188564693479650071369236439638590794666508460817699703207404554238578018738235356430008024247691781171478626755288626889119657102406698751006415357912115643745582709904887605111762202800605856625073193629481773209585616305706411181739765896949824627285091759511017252023328679467662259916375220592383418500274583467953711332745643431913782581577475409640273525781409376584505684637968037642088837212632269596426975135079640118923475789952241454842528833322369239997639257120536647311359087158427896437410150671488170185891415559597719656161282038558458439640418598653830614456177448229768600153293147783620570704168073958690262010983738485251418000756579161324266393153520903154141498683182905981113789173065587482662364852539709023431569577129183472727948271822655681195955147996623137772268102802779508887541100383877539064521169944578972684720227662474905842431504061054155319951851887868289816245408196857015854869534713238802244167650768617065984569107930213851052428965543950480127391893447452884202194789864392623615394646669842939514303539197211500323803346711108726778436649767442302362073429118002745821838009083006849922582181008267943538558841895330715592358505466616736962659794050385499726791622071292860452775622236877386046468025390162644054829531157834479773116243878761971028240670384096759109095075642321730770075674822155656678563327349300747466710508167109595850254351923288963072789657530682447079121822220719709903030537511129299447231832291748072916328516456033361844763781144732533172858792917916420555672266329872687566725316133161556625880102534313162889766520635189450722213221976378215581170092949878760415456245622428250830513431050518584491325821282967558794703716343093548546393275646746850358121281331980116787597959100557668798165555725783160283049928608653783621259512412463050920245360021131933198665904944858304862649886420379004222360730316877891597912768568617032919643654317977589901552206657756399017803573758716734416830112420270588789572969275928905397779127236060804101982580442933056674261095298074385343785115563833126524634174747553962334672470745025503042993692735446199919524585846486112080497208357453864594312161405178992031815129534191567845218945975588402133447587011667217076217484490014840911146986206234513508070431922204097805174600525142635815168834611371265619431728302545159089403664946156231306314402738038799364700472573018396291003088942671554063134706972979316892467704973249769670240353482481094385640294368492523466730501066044085315429957038032536175050333842991156193014104591569194914792080720005267586816419310101820512023957836949651542653366515869491620149480091656096966760107067099102829703928541796445716716036841935893137714461802006947163688440980831810901286364613327999885274699387347111107263150514078149506142937607011391081955092694353089858442545453428892383470949688422203981158318810111752386892819847036879590907747672625797269471918494403279847534727194479538479915695950564250825487617843456326425070244308752563511594995362900023652220506288611959816156955981211708489493099432603662593966536055125150548042203158069503321193299151712218159632742297548841764484648207117487915413531910753186808597480498561345361744247498929347628957325897136583488843778309909312172018328206158503906870030030678936687407108908187322274922664787711720354172203009418897703896840437376057985332892766268046397189324892171835388145785742673789338491613430157138694995470775834342049308533239235501067521638306706650309181283333042894238833596987304406032291968813868635953807028862660275602613912758216304308542810564131689274380366959149943029627593072780933312703280646257405471027925841261761152476362087133892819670413970808030763679748056879248933213567299591940134455079439062377847949549091625192348676911737014008071521706274710874285669944782713225242596273963913577712675288106415829530128785542592676360993108026124488067123425658647858456618662895248109808564331782206747518994516178033835708675079476252463483086936460224413210183797591209149153832471138308363819102683640969887945620651668429589266630905614203158556895789491721203225651661488015068147641799949077336526618196115200326733869404542908710119651498196105504921274972193730391061871635194039715990614265854750240065387914969165414903243210644912417898245024913309578268605016014733418138880877977913051826504475527195328701748696430563935166351847228754285884848618440511161686930903672398610791043608588090923437386488795798792988369867268852899759084537715994652393248948877337771748951534428855378209972159834538185119781905037394854896765018226410467921746398641182332588960521198852420296246480825592901824634015498959802528923586641676369562568676313699633196723871388940615071913726223170461833964665267555316159061002358438029574344576899603563090922187352217531941930655883466418868396263891609231644782757164232788094732889372268753291802550139499866608773593536594420309171868104829374840936350716700659062418675459639334446813925412743824534571501155656152847699794801077161683887290558969227421127486395799608907302708839052378985602181818803750196515408883459871561022731457674068307264042494625794546919486296341818585297229571303524162833099854714084111999252884997785277928048063829971897390722767452435490142718488171916779237265866717659604328283759544161800878267403188482686127409884374596446987362783842784243314111960837424076730480247807165171321054709318353479372880616780913862966475890453660582758263614654993462434186648901423886962127011737231837643295353440519677157370602385876819881610634370918849448156195556207656302912841395881150497118189285044641005634199202822946385149337531280090440950047158687455510917853580612266053135812943237704998006597017055055674271260515075087681860365754273135986944180748578215109821230496668286880031510933937321098353492092578903445832746669505836564077810512757454464931377087249740043632716719320675926279672366701830274589215188146668407823570560308444390394804515634587170122531081831961406070905494903112618355865185208671152599382142319255119770693938223288243335390518262393148536505050603450030024812143945551940686466335632599787369735607280760234993441899137608421775984255097086319633659762252848036688272285328088430523835717702050526927998749968193679916270195564070139814700410935934560737166441982463985437999949697921966456113593631553776741108790912371835454323107713073095994554118805072181657373631318243881438729513189353062658511332140163465398831154923713526547854414801259194420747699011658014688993799550398205526846862311587692719433042069283894192569804978459924021090206708227558882690008133840084235705411388655229237908422359315347093928143436092510274162242975769376874606084883245813155963316619602481447549492137719066678915929692005107529404382398232690265860416310433554457895791082775238889858712860283650847205177822284239237787732494127249890757222941932358529771738929025968637471353452382397215412445254626569048761225286520145166482298224002207627591548216713854822402543804261886597367400371642682517500855132375708317059637979529345429434951749770160033262219368896562188890424389159777619198168590607760937989241261692507214211048792568970834012777205694819653929710009450878755172291349583389252149832393128012177171152889715145627667345906771714266383802502001341401233440622131459261708401879911075772498238422009982421158253765952886553704976049859600610138514461337622233443966762209585765927533303495246399643663310590753180524163168827786413587246624040571550809778541176819775307145191821642514718225703093346039901303564035813928829982305760753671005430169259600366537344148803140777042735277214465583474169592231634383344796050494718092781981049240421215833966035510371659884720548793967071269058227111139675126467155031310976686026756155055914177185644098106979492074249016583342203565238255126221029622926294565021018593591245160990326073449280949529207926200151860438588301040753376903738289888767361392415390701121600042066995162907366302392125152372015331644089965738798853293911401449943686702354083159519129539221748986504713938083339438990621788634174003683025572242539098507795268391252267518028802571760158930838237707328331838038007668606676827243512041830808167125808836331923337242360666570630250317590423728633454401722296305371040080891167150040291747283614014941133080379106311727275718758077073753503288686696233731078361227385094263012061127227536190917063877967614726629439665034126959178744231142299230228602681945444539554734371541902925851092472480488009681991058276915269772378654093596689671709784268419087712868343698535840475708761418769032298571632884197750899947001375636579836459245370118363429419349835465006275261933869165268831737789710454404825461414614466147018445657815306784401113769655618794600585985040092029464108792118511507546423043086265213093435702912433450769848842148268497341226404184678446481826510975682198367596306886092998861177154444578172140192478658850441930856034285874308921432798611015402727298129627167607172267011471760195026558352316847931916888776062533496802396135777353320695153931582699255383928751829255909498721340864634223150475497196058151751632185188885704394481359916868721756663083063505933678367576005058531830874535099652623822216928602523209791780532366779917517323155880871770152534608274103614061115410652926600453052906026563944467964925636673940015880057165342910188181897551033301128930572579974188536241335276288884450895410108124551934099397189428132946744325587943613902034442902278706953486719521714013598105997058881083295374283628547872305713727886411485966941918056308327003993047296331266901044986384732469605973740807315522364517538488282385151204040143302304211253198066656296716468703093959079026612141800787255353176313604918440540613793710877231833430676536251011357664794510728437047201538092423513260172745068552288273742597829219863465383945395644382185355409479731286116082324010644974665174197734953973365254375252012298093485340222761351427348883857669240223423497950330739413443610082033992372137001143800109584106057424302786570157509884863765964095485946976100705710652619632054074250290264996535039001717231206012451594027183872469702494372627657831966392363850983076381307676296954599641407196522526644205362017879419004861720514910844184594271741826818066179616057096914002351132489840346524561308141725575435082137877410081964642240929583310595064133231269122465804311524881314733831965860113474317816629852844591603611629121826249055785202360636729696614782118985175942639738277651088359309269394092234116577506177692730623331794105594087938638115067415093746938681233205751941561142395290235638115219665240732418199128283453346343678485066789936258814720942562238289273353602270179796384630527981004609967072796063976400940462642290317812760563026969134159723557248129053580881306524273850344514732729963118904693706392892885780840273512568221451313697402985864372864829024792095380427256594122088837295715322706185507144999438151553224170438057851044537634095599448233814921927019540018514315793886266572290029784322782589813240888628277152130911487924997077021857280805517225757323913406418195873047987064810249878800835968031239961432580748396683460591429223382810244463259397001373393083919491928603756761416712283601042981870557795922912560640427043797018708332805416424695047677891695448677319441377138740127717741955005066431076152297995537820959953624374422153929510353801295687794432812860394100761974321162896779926107982935788865559342867187088967581839029801783513873024347751109720675593248540492246994640141648045017009084723472079064129792064931769398315524147467640660288504555445428705055006935079091672834937942439004170441287022558138871820225030852918832814242228130694835862229861738379893827285521187724200314093032950020066690852457680001096639007900476368018396029677822432051471944811859532554026791134809997898009857970811172698971048550086569035443924523952451503266851503643737286167102102601556957916669309573742630745290207795693330305467363018077554290876882032020693617617861271004645130520562739022929731070494513152817278510990615133978583846489990385375785764878969859276073704438145085033968370088714124275210138553896728036871131063612027157276898665459873670440171787013952856271057351879318904529273047890090083649532262541257615624907322013250285470853391162765831992274179991424806401846821589296259213530722746046792724199189257017472965264120462485898274119334293013793550505197131873089466726153980215569904513408390665418916613143538685125658707525973974021804657062559837910565420537856519354598082563723869983713450187094571430294937798245353686558917289272192704421246361201046459146153393896656849931046566296557230990943092315589998820326470219884584305075342129054874462277445290281186594533508077586930789423791610149549879104204556826183396625760911739650953716101953730201719877559165334674492835594816536346485293734555745305435913990367505153815333936293641677556520555954474709318198396855178880728240264016104528312596524913580241606947601611064246144640706016411669362996136343611551327944651309124727100059626756751039361670512557322489676969302477456020695258112795446500652857777001028417195330001007026687117856245735824306738173545347661206589508412615126423032583355656422624261463821289536044908762760226649922998431585066923779610147881323329263605584223793365455933715439226633306031645341069934673883498397222929377001737195643704243016587864045578889547787474188613695462973246917212683478035498882425177394628924828808687158489797331597272374845687849069328712576097416303433938498770297243328616444105900059610918768397496521135452867349682957546919510199252800127837504597064218827447576868718919861672781993814165985202895073193948028741820803469740802254975277977872321254208333536029826388752495630325962401553642072350771487610122644277794917133662932627801948406404558864869350043745545775686178453056948541019968818755519724781107551513599175861070549285254955678756913835552719810158624062924565605235210963745833560693695955140165262766862606614753458172125736630244785379639105533567906183718534870889251994701472089625429887051757403231937675159869966691741878450312132084987817297623260046567348464235189163071918416984209054893264760116513169273266518112683027984951157603635154130769446516660300761125012736208095464369518455811054615275286086783946525114724377142066236301893908472139637943451066595765538335701615997120305354546924982993381608273197367707361773763665547539422197825550593746957692088202115488597624888609358677094732670211824253937197759565917813758236287100408236292971003834375093245211891013240561849667335239933043593848681559266661116569630900108796710630869841468203515940418953409074416829021622311808403589606677422214834910622023302327466247298545037685640638272521853922530873619319619235410958829780219849579972144950988218625359987369574021905453533399364836234818523528856822387268429184188991604045508656905293817205493927810123895210457407470542135126554762214125949512304365089331023386125658681213946763406899841241512741837605393863858335769122951971372265949819178551223825703658486382907401508061956079607399731346682076508320987599920728070103829710056034478790897458736558581126526706305765485926248731044523782808555933187611573768823050486404718777999594904582419080520230404808670430509248413637073228486670410093760923477238861483306774027791694710455019299999777397125178247313372354910438530996148586457761610130626435293600740026367883151904992151200087671365008810268935337170421243776562901882266889537844014975738336572201557688157588533747773775789406637251996409818631504406161191130856562858942366567470276531867691452986779175381479528260042554989486714728523847852856835918847193275569669519996706812645628571673085101276546288199619856083101022736597239242023145134571412236190378566727558295683102979235624741122295741067896399570609348027582108221789754660314390965610466747614848852150135551031829535924485308283440882079840562663888315690825912814332743917997025339918641506424159053256658038489777048828594479763576615605883770495025774000013036540887139736549228409154387329271317192283747911363521520102631502675856960451357401336068073842526386690031685702749855092143013101500472354187917866268721143797893571560802145948897932553342182684729104653618280342459092177638757324980446957058349943173576458447829615270814505505818094793460014607736684418756865766987885121067571003914783248709606726259201369837319223172633751752930781011946474498784624284752037997126673010592974848433994937752441285268694559962945367637927845989790848048164225036857437458741753355280870408745814449256312669065760766187253569426629658259392616208015580477268337173387682537666208863158029110029157981160104246375645620623818218271854608791814759684192101527677636542166153480037843973423985148236014062165759746199256211131796964551509298433416658915082040768257598068956659514793921908265893349987811946104914180562947341995881289901122161501812920727390452954545419943278881267979066724982940977863702037488819967245262453961259758167451033777081672043898179899841633726276339964147302247682882958402426587805340583934445844539923701286569983790656558065219635356508227858008476737733675778527009036887141954280558350480872042394640822215710021742716873575714971940799019575094583532660746453013000390934755073441773959954417558310932436519524445263819101996614867450604302606417223828656197955167185602066414535982272031186903807702347866521085876766896517822293163020873441011560388143952514902707976537953674582396684852569673274644178780589803667283107840645761760438564055236556368861507675596245938102648352629287509661992943164846645914746937634967223301195118666920050198204376954939938121564038327211021452076628362179491363872546866713375484252399761538944540241277954268758425758382670827053641384216018277314610796461097164247473900139510177693988154821366174808557416719738991115720982727973433298220831624305766283541593199649862997421092334343252023495765786415678843490794121642919409154613744009932789840643592711235858824938237419759134677460092218248285063285060769114245097418532573956674076137693252820919062009998091868556644313136256655001014167327627459352121362412385991544983387509248130181185067700705943637055968655540805868282731471825456745510118809357867416948012090645208044530178485307758371071631076335366673603706585259489822702253594380972854517702690002595164613406357780385817221863855526906810368195848382400468982626915095985063227457353040478939004440883631012368835638188107712847901673617614688085857624906935372653067884240043857308023131252799486085303596305041899807501326891190541369899688063613285484117061438255290699421558563580766122895559426586906444558883134533869097252346694828131787114127382632554135377378462278558574389455710275223026016162570928636000204211283633377905083916936619695638458378351894901831621358870066153473065453180871328774221581118876560490718366418128740123741813995264157582507414462455559487282807393166110401616846836822371818275428510143902537649878714187462663518206250893329560883359283788921913276890024146178363323172094845922890548754242085004518337534710327222522768179985899385379173496341898268600576272378347252765959484538992521686003462922671858481245212970209919673039871128422429226473709819993254973471791560398656076872281212829679525820307935645906447222757750634737687407282506370098140138108807911403443816384699431537364996799231783679076028971103239160522747342507110411235066612174256771844173455444446385742097512612543110285892672416065404115712044757090333272498942441903174451851062966491634100358647928974578659937724311043376580314927454982130275000120270903175691030397790349101424415452903383583591526175655668844526809689159839971223062268501423274323622998985750969070135204653875603977426921076494233714688330068059749466051828411688688574747207734886581904817479086610647076960162805387484481990710437432732679764624603960727315264381193783763476166767443113327137833155869900198316427405056775820663013713509668547719158980999801615805464225077912441413780471541850166037941955031847825891265094849013593456615366975730044127959631443754095723310919235154421673731669169322244527222331472883635056045765415061059470470471819675619521846553156294529898635189193060605610339756398139597468499503167371363513998896423021905785899409755607220632517459742065015453355066507971276907312323420880860384443281490991280497958166054883730856299717356884098169014112034264160933626273090339986873240376131390668095367759321251862512365251910000347473450091619672995327911180522131802102864586196165654074039910705021668455212480672747697162770369537204727209721931010699273517009485800567822913407662950702463642171237603894962100899935410026895358093335129551268751271692333760691078001029677658238147145788861727424444093005141365518867396261076877107251004989499088887793268966514621951220592884907447827105972106650473272214690409541658536714541990602343976897197729997930796003971583627181327191756165387822474227020558702486337260092299374809629548682641390631055037968689446144620077422102233793609223019964423895290073177135242583539100482631290559486858173989569072164210554750801316308037930544813490905836066323299233060604263537799790637412893925427499970972989349394618140591145408544527335516336377412662218784744441177315574601723910449225382559004071961891872394941471105026367536131262792097333950021423012236962961067428493371715662472199295472336659683382869145519131904550542573400286751680134110514946447852184604537590266239646779748039908099835815478126392574068703935105618442850153316724729856890501165126741626613045918157734397352557341868660809893795380414894425224445655873033708322778624382950066339523189967773428306357342304076558045072287606478513510352593534897463249224027890964636294665057607896328796104480166511507844504947393138460393484000287457550004670609353787824628514238671584822808417681783046982557478200186877688698158972829497059097406929847377594096056713583585554189823458141919736848562462576311563064279859566605546930484103884468322547190752021703541561727822076685726259222129741743680638981147324240844036320901491988500037470665774113585844466047871407111553008816755107533253208526035761895059752939735971676436437437367711983196515113298762086857973383310158960582427328182123894048425477355335863175294094444423538687947783187475672748917176653909036042286095328825427501548266337565577011005985559524467727829180951606452674836752608435060069415322122875129548227408524264801990102019352408748144085104217627591518125803437707712893430004296101261617660963769374052542518614836385294558315343401477803968122872589196516354007068362768240386583730452580896118409707294917854886566889577873913709695788601048056653339778707280479951308233430585116399761837033038364823761430740112476306623692013570075765559877147503816876738647129910358575790358970626001385204214900376554377745797998683872495670636459071274529894054528985098804212139950817752049233544613853339264248692193556302957481030561945803466327358082422010736494521244569588320856728592915658603958848143319010489013036765756343298348306946458841618852343477980901343997750927892976880555906487927784437311188595096916968673788085068377660894817242434115377213631089030573929017156770119020387349316237104586588142262431311138941385092655480185241575824889877959619862553660570072863639609880806695242985894631873478293364537368493868843934332440838228946729784211299777557233965213049867698776331943893948864623277240108747240892064002854673296499636000741648802394239823844575769108723525628729672933943752327024433217255576352285698418211727200175014330183959906866927875525494659718993105297280508064964810587374309234122004358032075335561604589393400865632484003502591372448886421351028823130064284407811097052987036207126587504930551162050222945625052756267448626954846575787582887082408383570246021576769334110118950554788414597809100801532510180872937806080741153740357206330025077775474440896945754178466763306922614172036759702227044865599963650877480280882956428263623387996139461473323219003328300567877591275172501055801513173653845754087877545692563680633622028908792393329201332101912504459034227668151374171024336589750126013349770618822228999119093465553652932015430194483808889767951943273502365670756250683121824799910245084106039706975744772402385357939202690745474640319468951621602631746801935065198347606097710582209306740950804115620705809809637012965686764432348546705529045182414793876746810404614310533739891478060955957934921091513171962633894794788498467279783242842947950131864106928417220091984655550400277781660552911428919001833686016475192191029360429685157003575532352566397844442671765149989103320388997369124735918636220768714021263838401761491358572981655454008633758464653458731830195578392376986563641492831537827601152161525657229914364906663307507381359010864328347092807707563621311105607390795622706850970162152042144711721124441507554071945588987811421891749555009508154095076093548213088446424584957756706188564312395214807547023266825657026528535222547849260695874987249860169415837252185679904697183094630998946437211791539115357660186821822050895336867936707751704240669342002640949172352414780495866894492006822991350412397567396847352100342524607574709668465004702954038639379730930690827638162186371726195454818597776621524579527785399122631435105346853444770253444238807640457667120207823042254140147765978542338983595436559001075879576881507383482999578301549665558854841736033489737622554968375974394170992313286146101853518389011659620223565158778890862014786690043342227562523643635919981942438080431182591361682033478611034902173852418743474425614335161130622322839172028052417604652751677305434444329762625711915264190836358076071125495138938918430073951631135806981257166913299752775571301778540567527180706127786999969071042995500326412443432082881594515900478031953423056970728033475760056749136747250077446869850462227448911991044953336491074341774777822883240946129685201258116768468585012732647579601194995643622840929453434057844478133539341667336629115122122134666942645661837321765007589966723889163849305214564185392179975418175717935853370714316054736021122322562187550868088867805681048551257810475016947254633462609894759980697492739061932645876893837321687998540535522998615737420279416440173995539929859071431857469744528318767610515370772224944640266265575209049091045561649065631194917425895303158099471572388304124547588444942361583030158009343494127921280873480953105633595082327768691705632795113821142892907930376702711520569889589353354022458453701232708203113641571973081129153152631780566013466915795279882693263191827140189376603716797016708031482499457538773100915307748016423532428904368899608105909628565885336133089631448881409952129913132775842067223714763815172237772824438730338797086903395779556459115504678079810040242437229834242198237478530403117607421312741381996915391206940826255886401847631111442294824562900903727213303974406614358576730103114808320287706956106354731317051037012524915046264510839530770663500019960593048035849420698353741917532199676022655257367334617045146183644976809212159945822908159972204330518536636160135549996928799346409376701620033827740301292241861086208359429632559733185139929084682214286168029667168225528497281126010256554149913678224033488884826710694189999931227458815521245829657376788112977730990047271628080854839316907360541931279870516621499741742385972078248101204034499114255518939897111260304994554512636513008202383485148686384677075536759933362754859180193842496355645815633461392760888345942914806221614505634557634766522948290161701045242712173608358833705388301336022811489911850824574048870824319583761504620367050192628844465115415487388500492853764592231723939283600722073075864727512211817246459453716646632366889745448410995180501144165698626917354495626642870764652244558070828555027894692312524099057663706960570344653882892890297270858601270154512945987614729426207713018112430505289171742521248663052069220572912107921325140447732484031160100538533855964446231089792071655812220817628666126329637662827262578442628112724935167380558288817900375001213038432736897921132922250034842871498746651127441221223884860623381722489035343070311432853076288260348301381359385500832811328672101910124848434626610572524643331597627644744252119697454734250838698468770058832785454883964769917911235326582380883432703995199665983992126725243753569113232064104064352869208286815376648184064133357657893735850021529254428881155194503473043628205023821049985978616762665911156821862788174653871476657166616085279508302343412348011651889533733462702062007790848272175339445766948894049778080864644615415228639484375199132478111333598698149228592113391064309207528876262125504971595912532831695599970283729359660425186979709640170123059720052570143508670600807736595050901275057980286243385235066857484205671297429664762069597189679231735848026655698029454320980433547333956583645665161505364043251168068619158960976392558686809704648318215805010117262691353773528522400707256042049407320126920910903219153272761224491896339118935269727671661839663192460174799882203327813543839302050696753548160665836778230362597649560503703082741879947950371366817727484831347569209103380885338817425914493664756987094935885828941710257890801639381770338481408035120237733589937659389229134671045214187866585278855141825225926249446896147873077970094419515238384001353864950504048890525945902039811139950073680793203318768516346863003086794177792832691328424083805703259806136594593624001573571376307751669827141447119633639523523855728274386603959180862287203147960327748745944081569366077744087226824003073474591582456429974294398133184103133687647662052304917929887191165575989235021623466507060228715907903100758612534713757834113459448452917793509523688159891062420782845260635275494094959876331219959331872496194996343585765703653957238301775837599368620375479057983568055313680015899382842034290686263058548893862354225570066550777464495180933127176235344911119551018287761566988856936350089230714549792352131300578892517051516458561557131503867328720607740213308677628931259723560247685891869320894322789636461219465145208913859938554810736546546385713295591960207819841306532239495819021722163765203716936941030723217186333934707500456216499391217737570529310316579239927593921442293700581097610871432331926069555945183463843397599465683117553620662264994930188463572790950921351143984477032302257763148318063374620738224956568859385345879909713601102360379716842772359235579123541767332852060922144665981163941134815872938073219121031453344251078841375263169464871694163279336672221547045669482216835886335870596283111120535824890864068630671595365020024028404882962347930495954549050186609884455625967842966124952172578040618537421592347312950142179032337829440956243090049332133656473328011572477964758075122949127684239631479560658217455638842226126846701679924332283200220682472746956275697282506003613623558940566379411902039779727261960089726061728399463529314130157337571254342439437313143880300894835826604204596965431580849955096531202859207336549557678334261727367973947002327849319001926099514164907255409496183641034622311888678744121825429521930959370050277649174024924715973192243665121067144623842394791386311133512316248918645290430041005011308360027242684034597081114032478720975493046699465970779588901058493909930506204469649555633895314404124316912396208053045920765135624763241295500434969516671406207491039103787366932379051747041646674914472107762314847278181009435854889437751147714021725114429713257539227016541616159761367671575592053383811383250294675169244595676598589057376502319331727384527964374089462385527093963590302339098531909383920336220140277357745098767024302004162612643132471305851424626733441178385642782568810350748255172922284411737883176152424727604921497503233246071675860722450050844129191942930509278652212633234245572274171382163392739422649987884069949163983924266898397294518504103402149980203571237067040985646060294697438317222063519966723551644850263536410908941364355232982007945835894270944541489726976517549908516591896051088896923573521388640047678385288656815333193810234658474966136201555502119033962114475082102176205709204635126268646178096600496422114065325478838830266749580725021678162030878255664669886974303336737615550842487724975944719061998908463318804351270463553859538645989802922260131815321413458599395024155450504228170295662780165550637394708854928269289533717986038552287417543600591308296545268140258250603650991966406409776871158374261803667350363529513920633829355933938070058567825420167213615465656829178650174178666595929658630338232740738369077182422325195658326618018562809927650925055208028760142632650753104643643189019420067633481875625357095468997821449544477249799815130700325914522420786914645763297225309048534332846086377021418694935005231564132647699510249633300549736413904312864051985114492463442039275503563329694524329844952031674720678247652397455851599164273945823945132615592255409372653939382208347789553207581691531271829864045756538383400593786947698753365350882243573283992156787074703915010178710316643185873524889241916579800846193522115411736312223893036086581098644698682269249157656108541205142434474673269842566387614688722250869979795942242816885405609251304765745134579942715021766431147352504003906498115923062025549700873653732781514873455966824127639475409424610359975888119077330467530491120360336667781191389720394915469221625075399073219834449745279270671647251376898502228291549918234824046487924435604571791532937315455672436615147483325170664814851445601817484024410913222001380506593246205121847053767759746605848172925975252121817729630745104807502688962023703108758569897909584369913448658959368964401717544170590873215609203020772883021058033529374748481367894893995238282543452957564377690645159510147000278780471177096369591425464763606683269410044419683006707360184722792923101665575921230453008912203572996667772362795717018712274542455630223529529051271840866881103501570556184489537239429170879730869961291879158422399005529783515523261793342800446726967053516705897853467402785770497047552561415964007039086098453844390959173464649382275311274492622157792221988129134108935015532479452944418036528023496957951635337334642263631044630117020518018280575678014005806841528341370822321516773825964705313674548254317242279952628549064539234957778192407107121120830021422533473237733482103486792626446254664436295250741176577423684612211935383249364852597252745437950462438198564644413263311473256685976303312877973205801697634466855465898580109490843917353700511576838874378713146860006230408391363253206165704177826918984241281066414499786393334680373151755303902204664311101332674027985055275033843865477945457553825884524313367220709572952057794074717741051073677428182065128475245066175610389816021558296221757873345425887386516340477937653101386201510165164191722944502572829684446961009948945830994586351799410896597061318779391205718046574117343913142712656154232240460566469568500978997403507916192209376778728205671175993499863791327842179388511928032499076676258702574087493921485127692602923016422977749503537987251500892106763461004320086504392741563265706100539351516390189694932709291982604926510566192154422830751806114834244896011892359840533681901872183034314046887625837508026641886124756403422153401449978021736659131000309529359092104297192947399166289794746710489054354702527002420657343181110125280003743619066330512546977906009412439346181607354329544387879724635944977216560668979657256420575595655788334767816474176318758750889705003765519654552210705751256811251298323605231433729182972702771669874550719158910515546573416190775056798342262919355863543710931361369580147789158068007841055369424899540348915634336315728790598522949583967015105911670045129318477731794775957278829240460177240668935487036771107466159148920578435954533133930194074629240604842567876215681192111811615784048334979117347959094639570761059069877073149051507835686699832258876640332180638799220580231804817466311358932622944553360727517421301753872781423817179369053104434170740651713851799058406105173065793564025116887166533141040127575206440681627788281723724483474295742268950784506128483281457454296702174973063968857141498286667793196081727777721139103358876802575428835619227831866612959684924171770349518195977128003782409281961872386691139909187243763834764085480048091532313229924891472726167612572148557447940063110787174440268724947302242449658563230404998848767790639600255417960788682368866627571705423202361841023965411299274452506266533280338097860557145633178223426852682255939443554898334519992581181532500088502332932030517848596709975233261036794971171911612953647778739907061911720866285098649557986003034931860230978005120636902505340409216955095730708179245369418099567538481849585444297275183955489156246957959324201194931947650794301422731259199005273295175672405870930913294204806408507784334390902434785496862954177024697208445778587074478489049132633848306858345014508707418057252329106221696812885450480283687913919848231503843614448838637261590978886426892340456826108539097201640615020360367608120240347584243997277459592684939078125587731323659287268400931622724467058224168975113807054330231053993465652493207036222214514277109254653982416087854973565885207824208548973823000556996760800038676887486120773471396793700958775689799523514172312042721112773488593825460062666551240520975665387679975325215492981010169291346941132066383988012047876834892423611900198257662064264454066957306912904316885533419081217956056765450270028447614692540115329661422997374177439238830301065602788282385107969815609191517143673232701249705015186562774949191185174645170574782423959129854441443067740066872667890134743106557018138549869508467228882901269673145783414395746955049595785404277406053279451634555238701145476410482299633443065713335928522914598537643212838938248492938939507824817180555781893238077259168051601315473322197330497939108469361203893827323902325379452577164992383810584001641227075734401604136119398441304595587633034703919230364666589586836186547755684247989274350532023545707718349219321394294703582009402727690197579664517959758308807872369866096232889776476257858544222467698830657078726737785394230764145976295194930499082720218258724958385705528697440744159341545271143795665064126420370415364842670117446217250374888817222923581238894661663995258171847510004228321156299765144140889740293008083981865120789432145599546654584511406871572930954259513306824143773587298449578773740173514700498061225465328730896376657624856947956012196238278181546066789018125186650713732434803421540306461106459795253397786771400943649649489208722558607153275397804282216683995109456917862001041903149237169718113426402474046597139613614190760673011938634406414510344583908391638006426717081422430495723824831634698433931769632907033235977205175350539326626023532398429972919473975372644988710897249815643854812431905622855649554754695702877819712244157544893181702083374252274867000549539333023465963125998913290782166317028254418067733231559289732583424671590923456326509257673866438736410070322493796048511167262822503670683304061216419304738333710660586662664556090165227222047450164301947337946571425395252188349574021908991799327632044421695386765615692144406741498258010529590865208554223417798962827357559547495091015623698478583612462266841519570174325945189881742360187420731154885529168279003103102207106172492206537202237712697438956461444664972722831924452429029051014197443973431337863455011854605348480176943296829830842099203209011559016750238510728158423261247149301792637059664542806197818956745184874774595750746942283138415320957651416514419520455659952912937497353047987177145914480219416097436896423650466093381479637667018002523296378932068941222751311496268516126137964678205953011756710683415244472750548597720137325117046703604513186743611290864847271832080708715583725316676052706439684599946433829486942745039383621268763391583624318238589306181199381874853928039098066670771761512569044213551112457313839457308680917501816137886946301310445309735983267799319211742748545477209177343754950422200185001499598676850818103902198419784144853309359951840205650063142437307305946746183768018923421938831626335743204167948295602688112237213412434294313252958885562181160434591281313980557692297590280094170156579213260615499065811961349237422099836762871854388386504371564601885937957415458460899047002090196642105933023992391363224263918391067558990850034277984061904601589603550155937323821405654323864498069294978435872653808157754833634329262348801297749920147858432765312154801881491499347172954498113738371614944935667952309231940527369637345462849072695770687464566012139156173509282361390762116866765087085235237032970627951381493348238110101572922466445155158962034337252938185935449677064894628280879689795895352750274974584593894923171922229821706304038595392145675853209901149294528761350679135856166867987856930069738550762795072665374204610271945806661180865867172726133843189721763615662680675451314901292889530925168392267235305049281606183150873745934155432804311363904656540084110394396416143241197815531833928762380515676326230522994134196043459299615040755056170775668655062254097375907383593707989609030709058620663097944791275745627428549695138514168868242777925833021903981854447632106936160410402328122541897368385727871082434694483181300559468792122635692804268429634593427096842028168769190567659081870170776750383747525522454340217849944631855247082832313624306837381691573879618748542913111834917625831941012111889742296630466609514439647861597397733240710015922808958807320469092465426454399057785222192389468730699981903972199413234399764021492222539932610502868057875295667550460503225423738821210711213741926701537212755653353148046916217584960741117859868635682852432593788250001126185630560126649976139449578290351131371154775110464366594836782126375381390000306437277283274373686010539819671568545687919571456403149235710431602834896878865730317455939062564859495565207293828405786635854959741018993368417420577953815372369398134992038672241290040308526283585809013291351909730298056535529396966531330032428194629082204872515036571839807792664336652760649877620222570507029157968885043045676044765092553565728884896422758981978909811725277200450247281584532961685655960644847894869334357619066428995988773624551111598721041204838655906093784925079324231408826318584455394077361878815699755759540861233671221681321152067343324519668026980573911304740514833772375666236313260968977550776623944548854540741816097024935736693875765887019597406739152653281472464631323026866773707363383043672669106584912381134434504943312916385051223813873758355967090323669940583627626123576407174134455815993462069157224667069367151635492454680227030514488998960466792784028962966836846642951556746020650679677120321529761615402097719919241922255763276271089761126011517675124021819871320531035657471096706859362824682995028470767493619549225438522393943974303530338573420266540120527902690806142320507279741949111031873010735252955732186083849114441307958474958102527306370200460041676948851810408894523378716171969693008342519211318255553258308051416140551926129103257151772521415508142273369370582472460192874785145808085530693368543511825024877706460138205242903972585231097946012251921545748534246470609846071576246974132398286807431750705578364237942890614809002350849951784210738927109103759842506836043074567703672738624151938929362357760067966134037330358783240752304153404248662465494492242291538131181223408110783888944191083018454494943017252353774079953140855635869860100805178403785993418665334863086487898785929348632441650111671020504410652254492772307820185234263416407266117210133397573828936203355365160508182340615959463045404989978327427909971930950962978066941855452023312556425632193022392436369159603246644804220852768597972801727086545588556346626835003680358577842748130165067905220404902517133463964532456379899904933877211441935580883191059067667234061907335767711400831090975084316885420319349067426863627149468412434520366091167157910274852141453131954776687200500354712021760749336605410628205280843796942268351279568708970159906344240326672034341497218157715506709044346246568142745584881834188492205210056627641557558692447024738710636336239787427723742732969702989521999223214665206878389183451077843579220314266307987758871270379254003789680248039180077692011250348096408557942871184587347810003495696691925678341541517431904995293173565826274874038333189322011856231328767989611116307200958808862551155780751368764956652066179366096737644200578103643049734005193733933249924834845244630303585832001711845619534137304767854045729084527847662395924042693760377282335595963874774296748892403965458423335457611594317579922905036692292809005701004874200676222641339154916085532210867700395049899921299747447316720801695876951228672437657968517635061889773576794141957369110228768938397636308705753851072464840402981289724306870353435398290351436193710510312842304270998771111812179928309144769919650037890583398184347528417942395914058611824937730196815651175668046289658324173697987059349332492090148322508498654676789158743714309859782520462127955594779426002662382333725212035795326123065671389613504165530653523856322850696617042188185652154941218311407475405024872978867246213631398918002341663249472861811254442624977429069238931708587521556947832177489703182449295019700515479591101526378786191655194333400915136506741395855841673627120186956697993782485126878867787709132214379204009632102844354216428812364797367278994761889694615654433476871914093312050942764224192904601693651415399651105057945104763226238753489522910572707052106710433731856271993014362493797552892802860364338244258241820295006922926331528683147796055735431805878889929667962256623721832362773873107147582698101217020704470342631585881855529558321163488824677148369452194635937631192747071853005251827906463314032682894758445659759350533540756064482434588551893135323132880380129890204150353680066170668669178350794145769787675030543138133346034060264360430801131879044688399668376325592754974709193355000971853048327822201640290056401160620755839706242467145440000436556369631472955908274390732639579283727771225462093770785836321708332035049137367306775053407040876957348755166657151660253992206501479657260578732057188238798060822443718107354815368790564717020382026984197766324321622362827774495351506293587421422289740384105364224613282227110335923230554412129719353816025127015973303665306217011218581989853115670379749677311177453566752830368694939659627224830482067821633302514440065346834905054493116705230656291393732666413930089996249927233881207106940721001432980810061377500893824462224474848648395646742192593482000154271469852546772290777026465044312208472099403760544101790235040661681155022795414253170998473699612742662268258247190645592632882393261736636128456363162888853323273475729386857341266137752087560800000404347995805363417757251107647057980189917545287165661230501954571284955722360417904166873924477031375250411318567986380531942855995885892124909837268615443225262552928176165806464056487555809242224663758926539349998730722162339418029817334801842789439070249889826498907923372160609671557740558645584436209565826941012041825161311036405476881882485390472554416137229110172741012167361764042189010178381415540239341297156245750064749710971491420480117005100211689827699887263824115845250569468163788362370201185775730761894257231482052431117382518149174953096150823314889464448572517501676521056196234375764441209474664662651667528710436284962986303567974688572201413450348426742955597844409297891372430175252216401311308108068420162039646386613412842971285422962737498057162729931974743167270797120454907717321683466321282719006144844783978305406633179517691625372329138935944192232471280401274767174195108712055529621542662079162324481755266130597451631030721040653185275849921102366965181787391717358111354161121355430617515126239250766950718565759674003098464671353816519453983585478982929644376172323429170700719784976807552424520750003275693429681841089638091935004134903598958876363811399118592229886234402118680797004789907596905285413758221631400935177511285129184014158488958744261278853833317696375275990587425120734079442601721331475166982316687313715103115680163639654746872021999934737094326201814740896865224139977142656726378217125081995963062101321530997899975593336859571812562917356445878991036474321578315165477399814572162829857206971420602554508172279719051446572313861640688771495358907003582691196673908851453787262758638461503265909639721360554861352221728103593057146631065135179758466935355543284439894481690992182411888739150406417381308268762549024946705694272300650447052228722828497462389872076098548541484468575152795149307669926792961694988242448919690387898446206717347996266908471212728963159923906396576605765297932877472657736124239487532948319555157505495797275790733771978677509000386546816369694384929660277105936947713943176997413475258109284139874381910955466260704793555773400302813240536020870015300985613857328513936672986986509214659451888164922070086321049228289891407420922954178338985236179239663871310881465297115042569961827471748719280558216917427637832823089677087453403960650682659215216251026963539574030204341391875207904443802184744062956975469079307219391753842117810230345652517384181030772643136604450417237919464526788655381886307430500596986668450820117179969943251949971898764253234998458796889189269216990995437938860824862755824611586641491676939945822900277174231210917560564342357028565277760448856195181768084205529184377385489146365886862272557661063208251659842490631205093913218429605008792374536937415121804623760624095378541492148787639992751724070184548137889605514319878336755519916568370837821244137645188736001944697808566109452069486966207417381959734494597484603875289487217790517287969089448379937821708290141901792840121282789179671054440476942299533451022410107278143462898131240152101442354282347606052055508226753369072977490001241789304986645920292817654885235599064912112649008160220516752984043758312767878508329420021232313458879384311619052110437089813314998831916781602343779313347591903426734615952802675543350842331313094717129571326433022680807524230303391458857949683036264639715199328926542447296989157343460489186985491835813449257168127671693931225505989334734311377225496629240493074595665770523258938021229091016577353981261584538516984406416266871335211135601120583300325014199118120839218427351198939872529718772802128355238109616158765494469183004674618384832998825242498591873048196152320538858240917721374913714972676527352927196508624933792844523333843214042239721199595121679325220787951946966419226639038853127189898761459968609410524781632985599109467474858573785230685611140473382306079607596932589599674017518080574054211681762731630086386761226479653785651678029112970506757256375564120075687572373536891007242017253086428717365735854620203946155335953634713615587286653744986530441293233655585076283261252026778914068305886182094218949219229653076908717505140440142864927123392324870884536509571648059645864510509299994210742943233444005181117112402125048292325296223257095700819383019341415496400551773214831108920111702202009731145313403687246807339369656953351656021502858073138918644981974580713884006661957761928642545352429743213659597389257039525289826099508687634022058655993355333834961139616360447892782095584909724943121994481494875814789404139697491265431038131928680808325304274054745652279169519593277775641469968703465123108684890345665744521097389029149495352354134232897862923745034310828966147154473564157105423327606395970688329863833229136241535067829441008624563371564336297783177817480974949022486988675332263118939279888469232339053733878192724155712280765186381766002557417079401187191798235864586812154433193218778798284188477997337137341054641911417090120791630308198414027056411600872471106221844874912435933489168323380932116533829178330505303762532590919435397626377754818373714492026293971512022664525916178973158160882511586209734194402080506231992414725179088192816757022243192284758998681081827247644428710670983294331089940862257780576463032480790989110549759703446799105609520917300458338130540940187254250859601310368898730376260968097126740125213028341095323993652064499325368942115833509968324441246527188337067868301974156945905018623034885111775397951343237542769879784461749006992976725558200362611977223104778995035758149040928205097234283919823651836817799274075807783115945604449798540026993477095930318804127993222779246566932453817191504789073420857137762767581654216188864681982099316001673287984083494239218199068280564106357407796793959889781507872509516670894486585440655311003894614504826086285165642001017171234652559653794754391712838969668484104696328580997438805637580006810001389306027371342013333329267542751520028866836066085757524587700456420858783349014159232337202073662066203702204397559902982785239206279650333933763582594627258377810085418149503537322695127547851144748607758801676025945463971070207096624817838092471532641915242956462638402167170433085747232675159861097248228725681520744478314905176581387169044547464359480166596152277970760048969395814410206303085244520958328782310610051186613596813306532232619632502662703361536832260425695655209060633991782489154735351308668025662019380588501145437707728568005197856008727703205586594959315831546055324120521863312217266827658629283081333833682272783234983843063356431309583771855403542319816272234930772180807324931208833521344121158068490279583494134558381609705398709375557273477727560497157808530547474291180750865889205557573403284142793630889580718597775146449571471556743774183070296417295380773700105707255439377096998669418644903287585307206043217526190353968572457498418807587890943892323940444302530721409959411202946432409560097712627422458979132211720470190024482153672193467784288625402508981766960868397078677814214527300081827379657342237978560473490205786771768991125687693728931844272216765054206880662802993512075901232928271025521997994044054412947841061603376002444869612483956713026728455173656493123509031165549076213015188793165730292735285396403372274763085364230537730540799874333082117527556413520995240172162149645310953848047543036628878217555690953614726131234434780055693517008454168358426736554235582589563664254857121369794573028016806451267496996955333956362184505390498956969984781811867159955071954338877685447692676316578566003892080687652974090315942388197885051062535273873040169228051882915817699758263557130448976916363702101836732382704740469927691235192878124796014578638176466025460957226846670489950971926780027725019493015305987444708229038213073961298169462228081467340744719750699940636461499974502006336633043477237121842549780490922624874459753994569625826995434042989831180530817594192973361846472334568906405267701002101671905446026822257659085931092149816819418698693120094291360473405612897631761235553537799396001143231922422711856221310157935559052706126244406030505188524647869842610586852940683879170484432864277809754466944197011564576980553904116272184450884720539399901492564969210206035770054700668376643883567456201033057622535871508664125500663637630662774009446101571546109187645841376456868342497881697435844226107112549236844366251012329786488886329804254911976987907840671994793342494871343775445344903474863392968070271324542761988344244634399452427885529163262937138965984305093562527594234960869760306562515175170317773339739065368551328647635823323312924633185481586576389435357897969949437174016625316012907807821518402963253721039075572039919438126196139423088511837478371489916345557210992444025849495154002559132809154509166674429487888129896893334701265452826557366113564474152419432610084319011562740382421619442629301276007416557171948026505049257624108126678042999091521466939080707783790983283502602712232164652341383253904784919231730713995718251605603513209834547792906745514140425456252323473154834986253446462284651848548057361774537004433632941407237998994808168708374190935035179956670874402097836865916952121374386636358052052226937667935160583286967245564249950592953387970641647544872479777475949270317677063250020469957108119514822451998184960142010444234641059168970937421081168432894255434386083345544900431544469182894867109664702873924529545688381809814894156036872870489066087293572582182039519402669997532446730459803682452772478401059644418034079439312760456289191350602365716927790064790844313655422244927588470250070753330301775230300277603286661218766025453787432215994520694027219128752716724443831706942315173376034787833564843709953255576003104788088222929290688534743850600192950899772840985818606580162571559850794121454102261120198450796133655944998024043996101709852571461586596457157037797772001115528885937923936339842763338577092233578091508450410491697223532468203976134771451433123911172295328190659017303349898916012732780297551583699800236359349884340748470248579212088543456904098401553162843002765280107411610989198270653750681606947762250873359145580405395620683991901281153771846827366736907947039141460211558306733659636738707091066065065068175114545336910710776244619740992512362242314965496244164112380011018781114496137118496387498827955136000782230159228342988701494677023947927115954770110211167780500591237724469661601324794042936687873113765962197914980011882104461967855253312130136291556866955543946939222010293972892217897198285432692029840186519873015580164223124495897925735762158567503934321725281179712251183468684098889256504476583992847209301952566934781590595471283314531871948443125506753503787581084827855324584709803941813582951917043081531270343573968141121854252583672065894088532746057875422084758288547378280326750984715773093722122363182595354113312469890332904590577866446927317197562984963710744913394993366487078454840862864617328366611422883197393826527901826915867451510325483292983168914687554119877381725528458032237003263419079726575374964105830891355892918186337016195761224651566025020926347642926793725207166100681358128912222680196496675357380453329640385353267994583976896418424371065419207542854916703097795532669287472596915477231841470382617072151334328136411241083016280526630417923497375039955688365747505197431238953486459015766691489871903957453561715025208404952055036018706031386807854455715759812575381164631608719486260049200226181431557106351675058114310721042143662576767714848628419563003097179611311613577437996865335502834655399879427242745034046596144107804088047859791959623208598710249687991554701525711985571211015873545973208072501998656329049697200132550809773385625076351540751193834524061064220813659668884551915518755863093620124911654946608075240594070902456332897495050166593169873729242382618142488484603786553311751986913805571836906805797334140476319217541766230614260322775542459186135373255318093438638038423723452697269851552843436446822225595098619464979803289909181683401829761886266415352939175642848784941370029353579092989423950866076121137412282056522768936119748141971892807422040341693106879422403051622825387938654361447497385924875725952309798782237155251403336670135244410050896533594523711637518792706700859489898514751830242350481300110653746964596233486774311266734463590929451797330732255856946774512397826864133751869185525481603760961807505562249343761309004152716653575413061656312141000580388428605539964490840579954689961628240209417413526451492484510548189178642000373005557230139256014074990803755575236425103356466307927861559293793892918605748191961826575363395215356846368737442507113312088211085824140675878347140278511105517822262204965904614618769477835856434063706848267382641798815161865947971375185388132001533520020708413450974184377999609516252589645431613042073878777776783726317838815190091624858829060752112140847792276831826968782419531291660452846502355653187897033813043729687198476421815868131483835495291535296076259236296395503077086497754477497679443549100288866371291078519318730027361651784997814690606598862429542401124839442219934462388658985218668928904616923339025076786178556341213078278597738477265569155620804086247215797031376192096877188453969447712759594027532267234947363947325532668148269869412276251253071328529137899561155388058787720433080022099507328547622585692739933772647922366068836802755050541085430526272292847948904396796060046015192754658259066795439777663198462095321563847500322284660389680236724512989594123558628558549478614748098622246646578639159400778031330750038716550367046987387455162832247179224516678417190019912754932118168258700939981057311410495351240102702454237285973444666688747971469992023489132125245676362203893689794766659783957035409337886544583096898291449066593411060291347021081391138355784615807843545746594465982317167319404679972904280579668574778004579465707274709598473091461013203266851687849318948769065606490002680025129060970786511194660985743255013688491969238833426233484070255836359229460545083949307883412795949286624166929401963439094116575156597738744941347633878091975016661127990633522236762780200584118208133973303081826275796211478367464998809259931739815450120667879649261740714389228394536641790733302617910245740322200121472517881169486364324424434454134118472017047470279914877260002767112057915708079930592390548444888570009777433204311073784021899463789538901284169219764229105904113916098562446893469542581941576975725469817307271952607163455163057149413569248771601486662589033081610672760766459604755806151351422615920541583338353100083692487151181643374733055303047721851509963181559584607233873973524910187281915114086303872476026835362518675979353653090282945940792246050028332238388491172135021402527955560394606677008328006312247358980438753377159158907379845250258199829811546962011840536995716602767538981377203124700402667074068578982303305804903657773424759530970552663680200057459469960105198101277614643676406081895818349901153413680574236808969388523289804835173938339757111466003989038474582014347655010611005928734469497018481174294559839698281222414634943656490249359769377942807335050208583472421878372627587159978187336491303540205731019854166198927412290522902129231224825133727372629169596847531323347221627865414271171205205165887778085091481924809519612161391027332180903798009021147033774872091527441195839121971238515903384198879066648692831740461767959518885124877595664728914263557626575080845753921525340962611250461428824038651954264915829004589514623728964187680312781902607346987403120874656103461015508581308973888396691119313917693322713953233585330645509149527152699348633179068723322689912082627884815728330501769806005674680276694565129336829058363797433368542228420555662719001532445206139195600249211171399628620391020311597623069423096834726746217729000190635105792126661023469291618780896225427277669280887647162466731564294110257038834609965743945031938033345708119710474800674432358240269527715714176214012406302728958815254254703562352797310925004146623487319385563553308653943557504461296235646587927598489487022605453643134299611131545646001888780797553764333279152591404732979311467071290082683970665330494391168683142901968353740909744998359825653586758312946283279641762412957889772932019844260070882414590822593481626856135632214377843363442090741159444384804256427355265347685590998934978356865592281004533288066621291916297034370154457867745124798111629367111324882366297047906206424043057759841787206362972746543034197612400781022578773002462158575180508916603135137739700585894469568760744568011923037537010810477580913143937591869981648422625364900603014522390295887213778697238906999162611191385424409050243133572068503218915932659512757115489578544229574785257128832522724236409126426192209473232722039370616829928091740895949018340619026769611141768760924126837358707681985484804712009248799929515562652964620013355155872404336883272986285824349502670795440022263680372252660806566405442924735170664651720277352746280844182013734780441251442146960418494668054222200603502306863920991168413890100896758933687565683555239466558684435394609916470755795553156970095327145293587188455785250378825011097832049245900193110155380554137263754341521138767587686240700985526901702467275425459553596879866171678127513889200800469220468090825873248268561821219597991972126995875543084816478031458508153531821555948835636954743528578155119864012993819335434785888288082204548677484865978036652068959041210549649982526209680612312090567355187375070062915186056444337338369777170552056179172632831540150105884127938554689929144936545633906198952006666687115446896679028463862548336374543619075161965288043423765549006674032537576231928079370022486670598745584016651691015565358934596832308353965996439705091067899680301312151825429610058998725668510681921423188167036093300496080105959425768178784745179594776610184532653699247581525005291320845193873351564894519201015801306498627463649196716335198990851356360703387256534233816023735765978091817874602433662464981331798308721705090826099494026153738057290516183282851477829498924261080238164551346832231273340915760325757773380512384354070440039251790630085898733529950211133161454731074111942818085788408606523230232168766519604607013797728368691865081921807436866584324860207456490842233463183345219108343888494996632173423089708663439122382575613579541935255376096380099757261379038158268983907477827193881816280639515823295368265333950425619551038162642383154130505513678914302952906804668375133135293739774062250046030183156923371471272473939742509163896017236226748298953562132998581404066849188954453635100884035668588467367629208894289372380148375643872470390479434456686828941377924962730066710239072429676438025445550022424998141885588460499951110561703667534375090316123514336728372509616102143854648648185156910242036084442960742897069149023923495785819639500272163736143306244336089456540088419355195223588777453019087101260201887500087548464802178900273441102219116107339272323577864514109932602127850726166946576705604292711183293269486728437326830712131749621802078740210488439380153656936669518259424741831164492360430500553248839599413183843876568722336354284520771631791349018586998302258214692284792310500127485436036147098247757081117442250604874727791311231933173516319048501937292101245957925644689754297657409135801205746270607268280384886488607162176466263912869207228151495954262089581702464774399653735102587851104017551855219082410381043054783854541191783549538316070088572022477073994593863624986231636002926424289321076832498684738757454564413296413063007775045434762269433810524691126345667460335300871449952333335429100394296802143396415568737197018433015748943815237328179426276642751678565585967106534530856304195515929837603248253318822837984612379414659984800614167633271069934961383957561499346758062157033809632976914604870740830183174773775792608546773638639256649417084631301826875934647163400364716304753842247237707874781775420825264105295390625367459339680969447485257737747275906338997144074766483644383366173399047341784830238221318935357409581454593025109144742950594325617518675618037440851581159184772150085111092322034882260009533919799377832255913417101865437055813278416555478096729227242416469995814381947640114502678714120826037726794528519491647842629617199783398815410235800699540702957021221376825745649380293083518008019623288057687234991548428120912724008923873470233151385735780054326276469051598796877559776835123931013603524036580820961361017073380206570224279345616673045051712596900231064968140915542893289988863858108986278855752392008405175150943618486709247129728770757892867454411530459802315488850136898826874531852261902282865625201022696055769721435673396420690325446450585887557386146252552128164855005922678120536168847376532121840590927180068014090657187203068601875753270612659887784564860328382345181206983905296568900523508088143117100702863609571661644307269881895127996711091565195383479581749762604375130657341118564719260747935550189450304934938282374458702751655774313727597546736159168266077367781321282165784479539903974836610854416864448834622635731415818275002661020060979085595735637890660804702376318131628922564946467842817853379250728998873184897819811026157651325255408904122638187240464804230529413110982463127156510024015070119780698075132162913345978075243378575704764499999695060655158226142190008751090610028124042928928883090856830557958764783906645287546462881972832327553247070138677128671143477252443373048361508701704837937971856157768871694129465374307653290699930489062836913727440580177640434399806453001138225629438336877907828904496203091468435066754561304206429155105320937354126158223185303143175855682982598841809130175533625395715546945568633766441026191661993820330199478381017439240163331135481767685524817922440322905485491408373246019024543777493113428549908957257177769199479406732125260566070694668553186253825662130896165227121847050311889564382258695966209482764812775198055973167326600583414477751053345971502673560157264322626864662165433277212746904631247645054899203909424455177022655680583731919388008189640517219770837589090437959034846436765232808496089524223305404251317424993243825833970871232176530314912188424998919615004071209005804009140146051186207953337709191664475345631357740165184790512855147914309325858993778353353281378251200286249710196091500902734637064957500569710352321659499662581621079593367536592258198727126063674732950171859456263084522348836331436329467008102065290130223793127296858619119069956274736779287315087095390295446385117340027006782360438984983133208930162160004546766254162930844440871721482155577525172978499926164121114791053021138583977997613152741703511362498412492679685209899645218021423855186277066567741807853884194570867346431253599455285909808610449069927335486987114105701313953920003179585883499981622288331034835913592750986888046311553474612634835455797771468840783509831211478301872200724679547654460041492137199851093660135823443862957851706677045130868996291658569449705082129980631958965952186453889668063514819386347046329912414261289111897136914379339925478742444760066120477523655653315725261248371859323011034581711847858404302708496583579202938174661975308518136682777358385773976242204200482021329519170239442167479208487968816974410445586666511475605029569719060066438169225759504580923537793741059120793542161565990342795828784470329531077438871383961633212607872356788849732984483845443729607159334409599371752980612041518727270691017106767217212068038001257976540210139750911438449134168840876422302249586875045835057022076055360144869946099081497194352803070886460304699280579100103944080412855929033007691411616972418010862449740651821172443078199289722956726290204788941566883271112733970458098107863878973046224977185411747299052415846770627331319449874186798776416588512592290487088079244460286705874611215067986665890135743398041213229491357259980579642294540411479217699119237892033214994403985681530895557514097860061870351013380630183628700808054190262543244653022803927050724836905040368590210526580203559258470280485811204753097860764925344606865674844419774408864257178216005985064870761949140207192647434918553228805566594468702402466793489782449692784919200988638184503647496607246051307679947036600596409183905874459340738778491619219691603435580727544820247365440966505757999492307101924671409481439484401802956123176428775958445235540650957004323810855385335506307029132796047359887012717189947970020644601284212454733399548189702385856023338146115970573380365073205212922728533272796779657176640565615218305591081468605770088829499672893427619450190036314182866686867638943176008813672023351867054471347976112881659370088198299472337393469666452679187241398953659199002825929587103497390232731168535785083403414288537354766131008026426088777848847550426240786033472206500275899344889204503950425678076335601310599324320912601930468778202940849365561287686114589494540084983696836202100975057838067735081985826680266061465597191956000323628798297297194930729883541122158490724718012153441206377255487171777187169774737177322503417716103370380364406928198471180792828953059378990001317894011051981112180811900688645386026548618334600263174532134455350757848313170916750628031912996707329228391789383564552212723184360605414821238402795034053367948842444518995611289563254848289895802403502381244893223155669539154004089282435356420454327219082163766914993001668367796354702282080408307746705502002287093281651065252964886637663222805315648003920566530530224269189583036872771424119485153069813592432180710532258605988468054736034464498903951073648671023670205519259163845875315089097696387379082962958195529953447975172232670636723838653707429445418031100150219489403044119145849937868040487349588375713218610197495876882949691500476283286985513635204824709706407216363505784416370617992840640235165930492792740502760465365672177969944492972881282644280769386147380559514107529891984381438896578086900659875251138874193879794630325458395225367074573442387480910468466268651213537144794881048679240158382642730988182750301414862809543678167024679718240159169547316293855564927583274328250057040232957376722071604819955252319750951258100933033937550492283655444310824964603566732827367180611177395805277206468684535837258394475412418094682407627360471470838989951632367267476378902156062067701893202996504899333424357118770743339202972060673739400314765813614017775012401449672374322609281581322474271067306417155897184824627593825635095931182100444506922296320727393714234032594717903356481344862549143830285774357978616761153083893459368447480234589265409177816798709857127983530080695059507219067938329139616334891727500066773028950504885432165139182198513092739673101113225664539542215834260870010059308853302643589032382261790565387730613259132324490505132966873838932300181209627008414635507835371039245583586575356297796093732134294860940009672122234547141325752988138086408223282229485850100337313686359900766855700238835871869888961527122165282272996048746688043904806510378677456746085247603046159748558348861265626251386200063436707056269043810011432596395698613717165103478822841078176243560206697969701025378038172360941593163946111467706979217000988499221449127154203158127304033231521990444219589739190951056542074128774614794544496010920342744658729985681056819028025957281613465316714000242574869471829239123020172194923873720787617957345835400979346893327455448415308988706598288064635874515565351340755847764313115618406270535076709148210994190527894948467882997217747059806321362307308338887508812533011731835812301857292120320234773179787163308852080626227526725082916499176530200588816536757016381675176995484909852117910724006615023528573388089148290900196640747691754877129373232312629678930678837509968140275815198781093011887857558076771511959066547907806420791961039891304859846556124334221173781654311307578901571496084623105363766088113762392781690029102717984421898391610946412668295123027558799441589462743601537915105589346449218057764433683390757173279244714317863752310657866399150454772694931095402237081118070719247710685080614328241332362599975569680873304054956407086143887748892266384564271985246975104056284041933630245268511818576402953143614672034901019700979937132910457431327400446331435756597019345020551344553283579844043202655183123799831372143449143682915150329345931268561256221752952532742791775732493782373012580833785997361636858946984553532999961831483841588922131745299026688035595021469820297034486226537656036722960716946757407858831649825258613439394216555406493415154671565591799138491745397026784573859270981619763939188828133036980974584904702117107423774117704353096173197074415428398330719565020063228066010917084093689642901756842758989434980790903827990463193100405287867184420940882446585817497680892034039871083860766544341450259769342047011149877189096597794200761001897652803130939955781613729601505321163680428431899021609166095571871135340894964864900384705670911026029001651397894771206044074587595673537948922248027971449098012501646755212805204341400893076750156450711007819267355511298714093807192080552780085053212725781541837286396566673133597409165462751981184389873793925761973440975580634945699863045305413015492307301936993189016357482535868329432850765003608097528142859036022870314613313131271063009919682719559071292579274681230049081036693367312859299618940591900752739034501813599817826005358753546796394496525484834516540447198284321596909414197046313745113061206676716487167848265352021510306507990402741149873170536167677308373863005179324223898215713824935851108951241534535925964104720169642283324111512518432085130177337235359590539501559519728441431239914465981584237220673168451730685505338518011396928704316936145703235870060943300790957919285842500954858649288403553969067203606652528872327307349127953641294270039822865452138803943147231006151893701330084877704066675259038044721676915769442971964996030305280454625023287400024813858518244333406217268959978509010375926248892233066656438633996567304212535734809463096673286515648739153831432585718750199402121241968329096325720027227369117177583057817002126972201006796858494029603624023343003280322469338242199635461215493718668764591155983625437694998992299266211045228083875095398109648203210725500635075814517300094332103946345745788012696052032077804990888668946982862177271930368970436739052804807926029255690424000583332842267693611077140673606586696508256875516212957790118333449955580509427487853330958940485449987618786735855308117994419885523731148561313511132280366476848388992332106476238556709102268890993850389350042202670994872319302526977503699694118861152938329704823702176935404150482916350538175735155007815907986724460831503012281363730088831083049908994245044745533523232290950202598823540007872540334585207299396707942544350006049718948351773586205885792321224196589485460297475538785110116258802046481550627517969052866772654120456924493553417001728970731233186006865345933273634772388620654608878154485928539373060701946593176433955855399859460581312111589928915412347365983112563252925948542513030957288031937382281083702450893837693843374608604231459990776355151771044741195129912700126560585654280862878666678331953635671007259667879807085537816807224240997143133310009269274234027299094366152821887159338534151467530685722819527446313991466144914246033303087867599774676956686008476020969070534779401837226906587802520369348913686188017865620620507575797980124550060636099817642643656071503498404677768578992986082779493690598671171498655520327257428001064559888490992110416565805494272628888125012706158308966933784586637091547000699585218703060683311278913709738001828131416217776091711141433217780687068192943690775935651170284406653356987064974950276899969998396821875405844844062451872640819518707068422709328472257651434305327434217601347201015145689374122189297188221423015999203332498039720250040177479317645778118371979885048257962868291764478800579186630484028031359951119695298454439702908027965735477798325867055232090050124640685607617463049636754753238038409718623548782680294620100972866094433432218485037159938602623706443030709884640001147588368321390266533305192361393564083918246882320551884948675475174104282974783655921841097364806579312328390564640640512463301303643825572081211124103553892031156553362595630633660575033876348326168111829196783797341342850832498283254834590213854429156871518027508563260535564504447777130420750104881979901308148577566541013027920584613398442143163704388036482231233653247755179123490567515126908997815840664410485129668298591171366274631123187974626658610376187786226257689879414185096398911415995536177505111401462218763080027824056677636013042182736044442731471195758862739290047396839894478546601599943364448168026220769407957945356252162900783199315172159097117017039427412211517684518839786913917961235856837671758564205380978102704960927707374327700754465540265174746990279093123854373575089965356952410483262032583177922647819452916850902054985889591958034361006170923402917265946705849309388041822876016865496324203734567883132204948536029779383282241447458295203620356666532865899071961692375095690511610447971111207103324283423758410483820102018834744950632646215165965653953869559085289479694230422073628194049365021832376682839195315578552385574877387951793524137999777484500854713964846057958667516230350989893534363486052809041009605769543127950721714911093754928572795461768667138164972684121033406691334128194793507085415685639397474517563112792023248139603197368490889089744280321293820501634475953363407355523856550546251590434614915277503387576247621370367913262917149497150958243331154858638372421747142862844280335382646399841686996069287194289332070626822232054911887209842267259638323664066212016225300961996954971955392804752839937199435535883123560083501288471514803722828824697597155214795628176983606419211617548169175027130853751432628977368574185736472875388041969205035771049804918392719314487805907955556375745426789056867214470122320598800400852066851717098185924094513836342823245316846375008606839641819031259023339600544708429869884430102160948920034218807313245077133064135030995994194618124076976147981730408666175426840372248605418424600440478369913616188919488984272180905295499505956992398267829870762899474432119958958492783891845960655393711406440403207308014950522451112990608472347618589129967090613499422781660201456586723567378310058767749089457412502294010152543771121289364111824764337245329702272873880021161013259718098446483765393681814228744122064802815174953509566658646202683024595219073806851690027358452049038530078719982464012709481205253428191529960076013852359512913154802411743926906768545840111789593241384503665367151567597704171110541990089406949064747440555697766960291772470997014446313770845264669530657203169772438100273460598596343577608071862381578548291279000987360269419566540056895155930058677510822177803819013628844774416092572761164889717322075355521546280540269017247896680127333257443980044202993008898553532019531265283154149221007925539726918842020905563184390768040143158472858675498226533608061780969884696434424627409761523816466725880141067970002968078366296778129505208146985436018739696604616854021471084922129084297881526698010119057179415430175865547242254168131057181820606661829665820121394360507693590931797219552593678023793899730597244983034213705680040509077355439725370979097884826722398540263203808791134027555651090717231289016018579996029114125428034814321244725589181190659601251275023371928731905630160355742930745868179798705729393868741416950409699485054741826126460464540636562836896959093804589436329052666509404166575590963939185537253716444442972616593142754381528490875799642797044856955954409116063681309026664290707636172797451590579018317490845208687301523852909227933381083760574271944324947695223302862131122971275507018383920900522686854192182226536463782646019690621646225224664835832399704496704841439066903538608465799455159507304195125818259684577765590182253927665163496796493790293107773245131543865343636911872918371698204272449339122663485523394950431835867903578883125114176473103475308023335855138436904672698998769799342955826672867688811760644290742967397057927357951023205978782830353079850443625564917529058870253425042542602187567645672679615505575473209042249814316485471893930994472330189403167638483574833153883700178499043257943287488917212853279818149761091905902000594590626324612544795544215815496476080695629534135071354413879178705907507722139867620206290588881759207898603003855751219509093132112335554349510154384168641634004000897678202858082042262739173218459902597355525439181280472381503873424951350618544600277808336414088435447824107451402210606527262954327695857972928981850608238272781446979883577503044678052900993968161345183227871108526488510894875481690323694109418421812682675262241951468920515216822796800858445762021223119725127382379049415222925222399710002616269291479924456924847440566051392323511331468757037214698124033090084260516718678966092837517950986930240649277406080579959845903903904158354948524247594436360942871605835492837630073112498443183292334597194586977968951154436280115013261878837219982085853092486621652305517279352290877116279122454431242669698580156913780419456714425083217540983328956688888958175415227792110312059616582676179542103525662457741513017814956939378854339166679241672748100363888847381904015034852644133528039603518570001100230463738546889501822256471749374273866171388143713791932781969771442847820873545725458324682088025064493810842537742999977082463912197825650638873697842421452238156926818355664159806407007327509696502465649873739820131730344524537756452500202600717215626692524082370746459369351621390695752510334657916071377387953327267652193475408774637174658346748164401871163294763644727182809542774890045972163428593315764165276970286758979450548037856665408303424044410107847354547194861342371392665232905550133638928248607379348827419692954688001972376559119296058226017745979714217872847555420122770074944746670198475248053169798972679890919680786730854459194212616429089700256474324182170060621791496572362077532562110652028569854894644130419340083695870013226050755129337547284197199192148531887319778849969535416132655036060539681392737719361420013179325825502678552193869052434220868125432225720802502269322496030038910478297702798731419340465536743109642372824591347246699615631648218920639889223009278472887101420961010240759119486278590677875480645967969780433530106664613334026020662352929944538343575959028843564434067397426377918387309003210744845258364237771266910935503035322396007042184292862440007928395710182894903081619854041507123064270591593835150626079136397639710498518253721283482070303287665719700163743925011655070840633987710599047347794999370373152637093969002249872770961892034225031956824937555051173055371404745330503211834881658619096232858459952248579951213136913494601153107332138897261826593878008090687150271846874013262773700870832444488404520414508701790830328519809531843739025375346147750193288405699798479382257741695187875897556732124522213112375228804275459975476898052642359224167344005440013272395727790832274408213326299844115081730510453731800382222837557365727161801868462217469138782776518120380782569978797554379331453343270116004509102545092999207075288136233394221554666292470843269069931674754024684376458675859990474886289659869487486129852235575572669542659331363415556676638146813235465217237369970051179152487842020395829121230535082039827143495900103972148590325470085938338230792509883510735162513342646423551497162397594669137421366474284074803535580119293033783569478271127243272086511493176613338996764845108277265846627004097602339736920988998970681117592946221684874863295866019452434015736739224139075916573508453561586235230375759162010581282110100514341613134302047509098985310089369937035900777826160307758906419770970615650870514574625375834639596057588195325469423679517543252384660844297185521577062097396499442790430087984730297713188430305159042551949031857289330401522916462484277271548603299291256089977344807966778959288109104253076410198302612276851281508101579225055442507404109390701953894201321270860605843127369181838176794405925117317970012281780451793193580463483117299972074815348330932435761691491482241174586151318437136257002909409065575283067654191941944185458677703642401225374531719438681444932628201230568670154130970015605654416735559026294460866594334417579620717345018905090226598739081512808847615422345128758449386478619374690560191108082150288653812884610174143517111420916117980358567203557611631027803205442804061746685941118298054851492173127596393146065264399626728620118818134119308061914630702295997690126052872368731942162667788422329580904174708575314197920629189146243804916176473955408711838604545746495093384003031280314085753104657671863313848637809723360956997175479415406281363576740477409845162052765133276702999492920614198390777062458626274607349475557803889756336470398112217834789381721842930780426595462251728199870508333473995665317829528639215659277217022496358723642081883355039943386458527885477584280014984002418868538535840827670893140146019879919334697833802026708197119081976467543518009851081818033008738385745057039131259649358720515723022649539210016423034984849112659791368178217027403092714746569646971582195043802695893449959126850934103897803087213037880581568050777731255295583522372681473980443041119122650474951517677185714042120804986287509157005629280402162392606674706264390587464798176719358621103468699116635005520902548679707002485397020523698098427696077788173444735698833046377795502472610798562494691103876354998552567276963764302250308493381864692733038394224774686137463147624203846740394434478302299431711001102907267697776625190284554443918133118165769784115632812392811200423993246425269401057322628287499560717682339005760051064357529870931808715877634694346417078785259109447798148468948914324085768456315313561974847803709695939694121892501530016615867471652016762863981685561961028949727318522579154211179104972237531792319755916668051911167655658776007415775264176004432777677337914388592489160895992491132899619370854528300069853279036699396928209525089955215938124374584000941930231461379309307489415321764833640911536546995698447809786919907416765725037162764051659139050361754219228404601235462046278511072230146752114525153449422584243220725009987912040981435660252502279973951908247319714810790783465130292586924376256001809138975108635790510669135301136101325243634771789382811565798682769118794230012647534606278415333897884437890278318364916194645019819208016335526600407930444099490999991079201010899422878268393111329373333224972175084647856701423260568519730063646044101436493912972191547023309287244132810406155670211951883169737976417745974382171720631427484970636804523322878494408848927895544315453448797661720121609770204294434197352128653436824129937688532745021010773660319053457466010754801434314863497010397833971100595784042596135765517360538985207746800946209257612528306345345849146494023869735271637178996033308593007012982844225327198446565074311330380673034579394647051807264091061634147389407198852492115253687273663476692389545622262598316290079696213451668305753999693610023998095677773148337598608424862464078939948307680943816384637606850970980039669087733648094056901829397158140335949230455635780493061998336364108566793241145209055470258212911911923802855500642135015192606607110982470742353281772621351408766994982467901364998750167365134712833592257431367774120497161582116577687661647241997543124543847925759736688516127523676226519669535302191240227211542199006669379181929955030100457871570299084357075778917711325229023432958686247761257785041562642994322325616255190247220280203300435012816753441903491752720590918604724849268470979498673378048769962935419465975873573411889694177934866319742776448308640743469297494145256155161865411581391313217828693276431872152026395927138719220362999714535843577341204937223356066911859605290899895650844776571187671347339947186424288282511694945513327613559241132573192548774682495042332183649574132986986334513748168096275728736309699894210561889146394344965781361461755761666618498039296677566987165603048407989116415814490194218691944621159280282032005209170616691290227944541500362156620620335052337759189128648918501920182941776267295602440536349835061619625074107148877722352835006943059315210355219069032756032622881121242290755914874555497804337838544362595376646183541207014189169104571976261741158196075374266135502897132758327298403647184102088885854748777315041905272292160667109684427372002352870479241594619812549659965224741334709448431764708109142001358386130808571401586586473179745164461443808995058735829879035704964873337050906734236999308533209880096973145202541052427264990581469035212096753852568022022654041682653841908728801513271836515572335428799306727992223274275919719669080597215029335513961394691728088279788147377909798219576378117949016789261016177258893279593797024288643003931354253720630390060394928669684941900207772049405381395067478952798665751577736943409881147260140433092013179262516384915710470561227751561193062502956347708915531574514924014315268903089332233488782639498530368035168327738475146410689369515289856032896181039002839786955337191497804873148416864418234437910753397459453781689630694651124401963765364970522174997380312281527793166896748415766793168176670363438411437891050012720752366382236450184290201686401807585245517707062638823060959362202020409549327712528832667041768270126530538992968281686991802500897204359612752964948499394609256636833296115635938861330158606162161916750347028364219907588138305197607184708903634093790392760087576960879775878145904372393168962751255050598913109951587990218139063905384998367502855456462205993991228579660080562809222431507582511551572289531766724650794875904566922063427941467343044339300177247624406613905944901844638263043217143902704738255674911076373897509944152136702212417414039415163744922107307621105400749836128250791239454731168163238887174197336697147414126873928302767274275477306900238766010815648239293358446350097437382907783195469220534390051414348282595213828472868945543537021002604629675859077170085984629334215372361803161422900939451812933904869317740133655344590289258326519634185902716418858000974678043365604762615885296858403371212286885631403951301225764910567664720959801390454012667559126072875293713976505591639965423941146272843231592586245585726980195593298648620280758636543025102489142932081912485738544401474850220678731293524015639607880747847320845616289566053749388105244568867325618596351097112635029916939741363595885441503750686750581499599240889310782328039469106559326453246410753878497497018769536984719515249402012906924976384203833132617612047373713216457269912807842058927753202926480433524990748865385230321482007522293094376743285946473057518281612211593708038331169406079864738483051113934983936744954513288660881787352656545747160559629661612609982664597127367965606792179707316814963988305094380695502143268998021892458813953856543319041393601845887105176183136246492661510509200322036354497981218009835841098257132742954135638046104160850011071217225957122349724116684569557747669079935317847926071860510809626944727501354000033625385790108151703411252051747427394161057441412063897774726327323169725128259338493534926322305306775932220964496356864464151391199096037463824404681616683603622624475419997320143084067271089147460249213250346211910247579094567073759117629039981353571254636521289638959562607880814528692155682786537395043579559394646349562032808719448310881952333814911923479694267413396871509850506021254595880627940676023604806203670887519351479133130963464211723789301390773266621921432316208774161231686304744765714966582376944694946702356305863032911862167055378564525753284388954559746571565613451924741017928376795287940404024656021538073545789022403381430381112458731289094485911161765451532783668275761845787048958940771347407993242284395521449988728736111951897587804346191320007315588377244677410881078812846041062425468340941716055611816135407656642186310563883462888608236340409778220892480312990572590548137728577298321788496739798361328839316234650660845721567687208202488554997760845899710273316657362269349652217189579056745454592741103429760024829065035407120198626961391904156348776153227179533033568314514484025317678096852004695274127321156569690767932347289367912793992842570077948626851801316834825390294276860960701585312556628286132836036871861488380411620155985618913726215276911793300189015231493449612305103947856096554871963269974608556519373634393196203330977571667751663628838689053288106871524336065602067509431496676821096546460800947582688518634979208389391866558305636241646944782957604130204047192734159578501976391559046949209067516920530356574298415998078734371115692243630104166489922293800610876814426353261913420170047825173944709257542560410529563663142835942585783092882166866621135190599969327131485589199169012601832174429329906133353814682209221794963166904392136085622576547765202487070444806571939340837315083579758339069575919616081632565511502938886567025658117230313481308149084981598949391042980722429867938560536671612262656717209952477180247361635264017242775173172707454935924184223994576102278305077331855059824197575750290206512028164611934779636243082043159113938837236852281257371461167843687838753879841403986393939836210822436609552158136306716974577027769864285837426531740427780966163198409606489606383731330877472833390225492741571112462218458345785138747017548270909773462258531629744341738366835798431498584182050041502287885997402584461675713779499074622510984174036837529043122661909592468804435902197430463910897833259297045036601230471330484638575690470354552281876476528975773732120845745721464127313901362928433250283308078757367100170868742296111527958572035135222374402694019273350358981131563559115988436047264252429821800228617079967336304882381449271970940160105758421663266399976839035116623011629640077610352790772894725657436729902108523324619101198244945920662032882990572606611845412365914878770699404309479529841813342864827219047713724911238642404823241784055189422510273980386991895784752342524461393195095780419396336047155542890465289152210912172610590812587915761665177431016324300177120770189882589979652961904035015141802496517463495210143067491173156634234134058282039881746861097483803002845853396476305895388637259479453287559632457222753945138931743399677865896270324418010793618181397200992172201871766936835202367473812120567234553162012846945663334347451397488098108307493385399919467237539912197366945224593555479817771979910449077308397258900867901781940419682537097462755568107124940454182772855013245547426071756117098090311233056464319922640492301871436626747802880794715968561524711937579974455928883128980206386045595417945896592456822526925256526844840011025044793872845940931848369948280033402326300309375477974422591642761616328723702784803330177221690982937730042265343915876192875126718699655740042873344444225600411105488176621142892292079129630424902063990362092706111307686467314061800990275601588639821818644635246706078844380985202015991006675655627388750684385266732026292230375964511334433147268799010052991930243211800359539655616294330055084767424443482524723224954805001745874350539699326154804093214634251867813075160042993571035059961989793774030725873371349324351936826621037562357672657364422774507733011474735537891445868649780733624958100204021869527877234969914835200550088275378802694259568325607503162866352838493478386390970534199556031277282250749152818764329713929928533881972369891234683413605392840457506106030141768114797158129366373436478691358926794248276121666536219008714990848227070733585781410035819934792944057220513352010677635493137922684778756762165844307057555453658687367811487235590003459327081381818404218369573572159493365223920284150108111681278672284817742852874676482686479533808744723672664404663182318039355801374359550218663940290455768605816605421138637442023294857265167202558029798967933828214575711428183635150877321492334103539266068213479081036428534199443128241690830216200508946894750469472883166254427394460805807390354211693251030904443108165733953275660991135611696748322900444837353736076743294812759967710644266669182055218365035325766881687573619639986861898903410436664532840797431989390757389401191317066909350127872663795378052207494221409361221999519165845445936419027853008356699662426373095543082505586862912158957028041199719308626831081513420131266374069167014427229106752994439278374237904659810900254831353697266264271565576616203933616439401857162541393379422299239318878757641876033339858548618711145620905960871897597096415732931838857772892552528507606179253265932135440254497749796375347019730652569412986868037550134993119637075168986005042063255431086515886579843850242827997981335102703280680386927086242326202756957557497733323625030716365401236929427318541362269610561842994630061243112505959014172603792407801288035081557828291097366072795074596349352254969223674117829466170188686140357650945624840699470126071242641206603856503865679984462821652958853752671218987357407228948023286921430212554361159245819589554267777913902426214842588300175439659597071277647716739139150180344579595137400300939318213472378740689479651766571088208857462645940380272468129240348991104434069846442070031251725520632930745254234537548919000150665190248950385418233675697866771805981585358523837526600409165250098037155497057216148822096365558177135018149167726405095795886700235308582132800557656768084200595755656660387659626625750621652494759199860098976414443899215141954120608408460184274086696863154223362341935832011770974432194066728487197750032310459357167528868208212219074925750079856188005188918205822449483922337268026178053253677160358454846672290763364458105876173255754807762215244456977027365384567571565433953774903076971682389091548830949614245237219153522234818336584033061376291368326351448433311661303341298057029953545503855310301809157505530198614917373577543435123367180911808071309322673530867618864622043919014209109179828290938204128817355378692997612823634860012886523313084923610596710813543932938631665383526512574816693393697912249459611455424747175042639091164237888987476691868807254213463299770384013369782584727381671931377272307056175356399680846641715874919332383496228316427073776245911407269580877098874145056571095007480490995582447081550504166643381053119264253872179152202434449436346653457364051249592458949552913973171254155910804081713877446348895776246743659235715076309195801140946487173950821745568352173934378429272056012272670993132731922922636218803172988671189423183767099361306791326215014206863124067284865951623887444755956902631325795813217808671489119347316720310414653884321383098663907253219285926353676900998397486581700106699370887807357184442188757036228209565116327068060352867396250396202332106135202484542855023635928242263949700216912084251115128441769069812163460396571121064739185731892555811951365782764839170214762268010252347902530456377077676929354727617405210894841584238390897639633850676672001006425186838320484877629775207539067618625393453173025501806801228165142500570044333118276071172480376820120218067624617110333197597106109840695144884790526225250468192685220853981333053637557977688034772588259133736876837952202362805386433368968029845592635293250795414271805765356014796117906161397154820909749911533645545857074297223673352047211074216614113375911173712915737971332667711403539776867801153860644228856124221178171880553609104932890248674582276726544564065920381330350896944948737343348751615060323071713906977389613901439924244207068473886601661471976203565597119614104852618140805173952760078641057576661732343066128512586709802280919579172942041251623566418871366648037232085600466822977733155213346202240011919627546915012648766959894735304624867368556798445084221283608072155311103091436011652701792696188756305010622475002269933431652255672026216758228583107236703287375248210804687026258628919519253401051405954330287367518270120500972579572102044355345776767230690241072095050604249463819931536233834536231759536429295504971903040114840029762608258824735137331340578214113283046711698812660753401575743511178493694155256642056526146482445491048113445470670285103134658031692177959131443979398399068017976479640965974863149659695358344268193235374321098523799962369007982269131762049369893605991008851775958636790267290204904968585849128482827636014586936756792456111032053806011742930804764546386482896881554563285244127232132435650873630377619239201748211314825679097942969599795498464667839501098869893928073595730371880373668590644024600997249306857415566411140716727906726155131357701467959775112323938812433083224057529924667598782695338088395492828357757344018342039550162374962641633687699395561130949321039500212909709020298932939849102733487981680731188705675599914392727866728790330839371692167720432411409133906160720149811318140207668332784300295892200801171317184292306957085874840949157865003213258133318377512878931218431637811778372257571524498338242895176204478865072384925958247530450654613236112049908759730841794878802215784753855573492894109266027031702079772970158771166201101010333944570981413385636228378139776307376045745035476499057325776662501925597621332569829413978376652901450697111973479985174912544584681715478652605774941564480585324540504678467817109681332841801198154375251201069449395975071549709160898568244529946203259394753220283120732135882595493269578088946089162624887986567546149940660020946009285063963903890706737996321519442477116257511738727475111474650713400683182579737055403497922803349704420711136409074668904174427034962828948505535362054584188505237231248039892361400632094243410185116405775093212566519926686222999724245284065550062361320601812904561180855577784721422367352094650248347764986666777327027085068548477292963665934027218281967330886053130304989345666670809831969834865546560589230787682171295950994018695648526596403864603640037996877903614266632206826648244988030164034716797853766854797703488977382443257698770477094813223685846458447877482749455948642430139517073881984234179229187515375135489152745242958769745126275320560727105305536186085503397031849891206972454324885534330321718438497248456242491279172262436490069241001409812803232280943169577054166777205074940688863095881825616303603128805747603661900262379209782761634282284077508927229532803651783159313379299890020638404404753909217371217089031190909506847260659019710962112165357061930204864465096731155540153099934593556404380307544461294511831170038510869230654173276533629392518744002858774208727973504450017312429047876210490980948737101309334886449001543708061375482889936265448961190873549920152725253703506021347988898377005999118880238219065521970997838158089866007793581741813866313242235755791823315412455227257295012664131171428719208630977415815876123151680801445508423724748553941342959719183001458061036853966140171377599602970307536697865817917151514544088059912936283238779747602591949805238496832517563744192940074053029694149795287942909021579741430069462033838636279837932276951604646812515336665220236860342792367334065081844218502832420706183275582057304637266285478661373452180998087070248901755152905419879572285075411733335165366230362657167977540043871979676567228782266834389835708578806070919390528560714834035365072166632712010060987604900571058292224007440752587400794255519086718975477683777699224259479526081572936059535551664251554873845086927898829161349361206519429805004907825029857156790865026796958245332489638955399518499392008814997377484932557358475442648396903222119027588376509724758325507657998269394261181690722579481798752314057144558504331096912448214996671115979910847528897725722611348104212321702627949371795202751256681094125390106853610558771543061811658844812087195730442260595771510803015528444584279868970828560086368425267721969764302412245203786357936746691751675577286550740132995519321824236017802098237199289694712964384170990161888939131145679825706599433577777481558703360144439380824976786774173006152652986710686969400648005603707578578791570094298557885370578893219206866235215509446259736823752427029531675574048617602817005155638597211657210022723977811420239582018148204544753900288104884678472732760801764082663583115060146221778382557418026149592297979901069285265539165305988669650782758188861926305818278177778572229781224537779649090798305972800332633256194254625501101498390187443437664938305389160189165819455577159863016434542436651227331212878902653262897328274166861128287792968871919371029420011476625948485109159212065049905212487748999364463778234122608848600398566323697516843262991419708281204063994276743699332872937391814235164634235849194626730966094496565315091463226812681903968251676537268174263341803529121155683032899726217287156209142163856200748014677252709626575613147807384085143808620099003197739484591052356766913495228783455902533129617187872761208592759577338689703782401264703674675124323285807907499238214443179301238830483024346467650295423209680664990265205324554321727059970291841956404601368354025743272366655119365698100526647761483980626548718580470175274890509511558541834969859408855672330413410456247804036337262109307437440732129816634276242231783663008367177484537975876068965685210350780600757909871358627417973307876075442072331411931735267981508995399732499088286171007112260049161645888350980392759940679323466791006670756963221846397862573403318987714797327645299598331613473397725414198901465296996564092386572049062910882295116388092983366144630505219481531727900338360880161755772244891067235467267408617103747159299452382536281922298860251615035355733707703919701165538913380951145575207273022356459399785875484656575111879111495878630568351868008935151635449147389444590253444081815099695514788733436115759950351893182304183907908317413896137119487906659324879812909922141164194584576245942641372086642920761659900435468756051092074578139759108412278873854901578236414830803506306250282647439172918275944592911278275063620257206382639980673420492691874307690408122079257174816800695303123019460081818492989714428192982557614205188829019183126800761733336102185962109640121643085355117743645020115181309118922092114662411804901348708443529325223692530738969920829231994124095073095260495323312333259522556618005553538513022654660729620667864703353294011587251438555673749689249970358480487309684094873124635256189834488548041950714816665369464684602783996279111152852539483004497885440098985002638904066827524896067198007224314883952213009552173201197939976921407951402504530236805586406545090220885490037229428414641565231791773009013374670823013988630801637434804540074599260102834028851239134606383516532856652261897849914803338774496670770083281878900019315939579355750774170827820140349729173404825453855454753749970503925389775877352495144094259255524097912345865598279073252273087580190153482779195933404856904632161669288610423893344733649932857539806200181612023187148133097689570113982446447091649496668366539545465364822462955885645423618891462881902538239221951906795469763253420915510331921248799485162418014166536669592075713093421872066724776179386978874135315797206684813803274033578851507836832732598429066370032894513393908693215302927134436518613982761141177581847398412809986084318025568883293362889665827108723423221312920076612787649014084579285117202423676885327019472451856225899491459756749852917238185269398260083344329483778484783018825268533738534341335994735044190604522819463423686925989360638643307467038344189297059931078024967810790261852093292365272627198966419570030543628021712309398614040243419838400016273115412787529493740241193016871707317429116425409804469309080428777492210974412885632152803559945048331641759877879304731046471590310009567899813352731432565473660499982519047115241819448803483995993797466441709014151338697706388864517530899747948280792595457276357341374462104538278398963924803645329913389663856266771321972910573976725856735556641234305362602128661665703517717379290057293708841441726450221509806057269462917839376521147095051697325117992581986931063180238214401405431363321933542279851667073716009348264060145146491869129430285235642465295951861583539604556495735052072783914513685965644316737676234796880274913783148270403016547242067345139244882155023467200439158726933401099011461315683698869235889780733384107950685910056921736940843741512217329160370153512999239995817791213736255080061697634688943364434234596065494532615585123026385362557038301254616693608699250802896651874053886409225899931161274038219959744996566955160163380002248732127403599458137168586143263966956602018990571790139416480310664100551174882474763849388457441389279027069687084667700637503409423870984131180605600832244755695321203708349461828814041591534276188168270003456294349897910901814899263577305158545655115573039928127942427520833177059295028580574041590646725361538127409413920656677960731257709976158314373933064208938075993652564769797980161145611116153641368528357445521768986899446799248355679806781697000672045529045571913073702550105100332498480597405805474428329576262266639416662079673647601105470572170590617649259868836934623341067697076686019827621496632652545410008428494864487599728466762551737772057551054401942243909503738685684675861710568096053650633456605969357295961090150618231494609457182701440851684048282219836639149576422613139581594451760839714062875453078061636102781744559482565104665920994813167017351546825132632038160294126827016805507157115968936582898639923976384022361646083593094003564155200280698304055999301754037037641068616426348038593171834759774742520558418532106477349154204561232617350903201647741605963301590604335508371656826699664479414498553920666588751291206055640621916062665730866509446707868388301757843993612186110563298453017162989919920860121754744931081592929577220645630369758413706283293723447098051015709972100581277765403563801403164862384638093915074445463939855035685693605552001685956078855192878919182745313777365873866044671314228055366767674592070998078374138007310857666149449219973241091707737642469428821391273084580160696256736916956892002157731149484926076497081973734029065245159196331128047118430729902671569029017705645379569227299056532916346100840656798767639607230025749025839049663486617823101182305787856828484251432186355547239185244326408608213836054419632259658484917392960229128905156589636752131739310710006157060814971399260666022350519987614185227540593990225674689779897561881468617898514112729190517142361808492569671994547288277935920909337061296329379104426025245753808900203948315508875654857716297695841748931295648202210743282011247282885185570060456837520152640002167772007193845311128885516592920900288844378866470433928460879480575852970197936436295809464143430337549917876188036231838965657521045297384572903096327432284680709393177264903756735088975023164300173170557075883210495207605538179498044729414103655470315203897548260285924119145945107222194887481935875367680162875944350495773084395576222379301370052689088516030476395569004620997667248555477444196101501651499579610281811612827948439379626703296159064754099608151835312893000331393868441362394195736896923583897788754040022363177781713507256862321984124738989138648262055789560112057097976387873836934962269110538099843072224141206562315916474329918232360209143573123237771772965359781017372262989535824904188543768829247929613768916379890968021529494401169666716813422841957743256739203586288940324818065125847302478310766516700260810761151903372907987215545161496706908624122533690219392510747550748738458231873374389525194659136905751095101146392092761476770813183599539796370348461342340812972887291091692636556657466725690559666641007691922403697164459070131661786307430488550939492502107479016706062294971052884932235357074979727970091908513603421493853305026449011399809170256120979718707635280706915756659294603904369974874520204117370056563176560488153238877547501211847765612489334462155096051042712973916862870846653272767344821111974614009723494156248037263946864829290384745677860859532430128098522519433119538494158505362505014753923735571336710059564845362566874485146497446518661376351660825328430483352773341899591118217512877405710551979703534510899110882418548047550956270262747926961427545924162758488877289042684516226316556397263309364077638163768048771472574281055968337514911225097964810242517984804311658104173647883822708070476753340445616524435104297473991783635782155853546088138367426230409400751521293899490349441120886046771391455685865399669474358790657677143806497908178987907673602548800638649122033136654438522042728211820106709328933643625590892056267854200558546128587459604885380717978241755787682685698982118829009782676816655904270866814467411633043375530771290289719695188125657152994344127454959777063496906132057921415865424471525563397390743518366796515646851843845448129407045249429954997694106793122432869879805028924329725861578817110283909690272398472874261677793847238727393273473855794265388449032371731578802879337018968428661355818324243329216937581336285684508990861512944971161824357434084916222192660292368281896584357800131583255402716087723454369532543893907973494482509125099218958421163346904620357095951808144180600277702471420050719245441842617167677328269694570585636029930564556771866792443055965773958088512188766460240784948381730630108631132553395326171811157182233093898854637280783020770728130397114738290686745790337730946519937709143281562484252973018316875805487956729441925050866560623674512400935010478041499529685479467936743244990529059229505632208342554542280073479197361428069665241229500689863153007892053049810068533619718450786212089891706251745562442789405482984172755666084270000346140028703147409381030587856213312487394116890363907517523229148972659922498310313082464824695631941339152232391418719424316230557993383939552972250125846721093095113152614329704539774948801849452574242854099606630404125617118719141801934259921128368929514599610925260369335786815462810920569221202941709038874258328726225727808503832540870168381210467992082328920371249220616986466367069859886551787680726062997342880438352620951156327520753269993102042451097832815089543707809691493920017460927349039139763982355376345638167733030196189935386949568497940655906765659077990208429750126299621985096469775951106872574688390285649052907975482328115887713063279923371844902111635363017155292597409725977126130213143316196993818228534533554808985057997011247681616893598662692807388619627824691626731931368116250686964335752047979962352830328391716156311422277941375097689082026172729609758363633232741580381776039446271344671408747309460869907401118236558507001156000491596218803004458375094636913076431646051459864770639239822253334846637288415637782926031377385279163720323125851596651446631219277260847950943069460953317780651824114676022864948287208117085587292449185709725254403311430297365405622863764242364295874721463110891707015094915788397430837076331413287074085218516021374281981067609650494187928716403250487159365829506854671336072446162110959915603328603424779485544522510163783318968656989796620710599773103339311919120145826721388108573678964193367549692710657931162882745483638081568890835272480222720330255101107320019369131864212312097844037914278499406025376265392229248750744015753554993481848548801256096197081684471290394372822099781811436361223598618622786134102465672428915177556811079578768899682374263123415202866415210173225023906623711949508934289804768109779846065962351528266168781042258023508511448704680404445495733723458101100510167196676147035625833564322645249877871559492178590636995649029447596060957628002606293937068955642930019417293681866813226729252887651334430635269361182159621230978836578603359609995970225755347440367859136047175657176591745230708846592331159195063663941419113427228408275777030736380833816059518092950788926570780960908194580003553498182661152590712985398337870412653367126057434009101772412861093173550132060928010632122638567158561393202215207067670941556750774626816676425603949618211404429126506997567639240702928226135437317465218512578460580056107351606688390292251222338546096816738934354237931732426124330555674905519914996296116177744251601599010384134281349216672428149190771709592877318960797064688248518940186967872170896178121582318813046268630129206006697412924659823759406954561607074329018672002056341745383175602518434250460111982144595556921717732322316919842515927142265195230809162640134187015706360087750265429444500675175274824933225532484963138584098930077367648489116753462781025677036731096726071858296779786011750913720014481766255067196903251228033531983583201617289296713821532193399664253856733683425154864172467718793421098975544609741419476404541830582394986216366799415694400651110504449762512506701037697443275632299922957309291190091975747992115115222341290714653598127376497361919410042831412004302632007680668932105051518447864603497225133266353765404212549471025719150327107013888415943579423763428811960576301832590102009551982222118486339077782953275811705446363164198001506483073021315466770723056405761095113916774009698740731096530090203134859320836611445550157524353032763500609387521397875358610910526044845985625160735203339974966888749623929972521784878478010304799063890581073045751209289472354366307123374574237545520697366350806671765270306349245922555702955211679949784759984671266741404098376597553622346558721592301531045414750452612302786580581205285164505159488838482482665237656217008288875997575594750236603374977326379098306428842487304362357911571334735058467777200953211057685524576407966490370817803269551810747722301296681234038162045084683770628664301279643670357596877900081762540149482474461896322714749402577649133190269152444266662679761752363363836065219266755094271241738354561917173271815514707481237276091615856864598501691962387057516073325470215864089724126121802028838507711710020813822753523587813617968924684621868984395002217194791969059357416453579518349234371329673738913050893539408462494726998162207784468910055292576239804548751616119152776766092613182483219727779666779135402150528543140611994136263215177709573817831203078652346188720454635273616957430828184752822304307389819178592870567460351702591969271709576876438694861303844750989858722832679254541657892066339677861057586498669774903076019663841782309326366844278811278913653822888579111300066614215746914489190224214915048325058994054412364136538343669359382710168217056391275017142347909159976466453612173892167285701377941092787433575536168333946804318706122861275134148837879697926131681953562500122889667360476723209957812229656869689228937446940361718883057416832182316575085647085981258272677568287974048862221995829049249295855247974335361615368216344477623860380601956999254405346123739891238190322629357459404567718188494896127467367044140191142271740685430543229519103237167361563185938510519145493955091622430310545817795496550191813233534451942082075636816377795131462136191594316886481496338079466156415435499817637897286281372835205604752975458122310259471132459525049039770394650295435230180403092324757141448237995666511558647481533937021501995077529899424048445794628131462982889255642759134620375813944963452788577301771756831336966463699096206283157403219197672452380859514919787280958056239460513237528782663498719488023620699501101831398442049254483346299927937487684351152659898872166069329757593157391448266430013767427882526372748280327446651299909220602376407561195745603257846315416503986701320551228903968666568384497118513783331859730803275285977697762294554937951607194225875443396814857414254674699897056457975815458475278416300230496901770705125572212101454399280358543904127782743829990490466470522622842034051654889864227726563355272124445599784217363501513321676807273479690063471763784158787965528982792879724021922343341520785148341217342265079867136048617808615392554679780950966949689014284835883741619293828635954659547666304886828569531464195222809263074426813537217477232650616547503972647860360168627097562884946730619108649941776220920519297199115347979549512187393176168295072010105851649782362626566744901152785844701409652491922045292993169309145456204197631268621081309172053971561643746820837446558726095645784159445993317444632522860914847890043613601195577654759733322952637501847669172483463050042854853681856319126749808112814523144797002048888049573907377471741393221394037374940517632827456673514801172764918793887894011358593241954781255577525519846221730958416125561100632209008268648195685960209021406226225114965698116105479586132308915534317761581405674550776201338937404225336386187609485689674962460357192433981649426025542487509283001468327075928573755543134824840078966103841061638616764826074050955780632011208915320253168326313625139743857161148509499292122561330176687067846274277982917992280442604515381950882793930519894697530552958832152870832578450787017239010196952631926433979635397621937757763717432728277386829417740253084962142893170932134630433887657336301058633339378889049129186049273609570329412838342000038920783997614748257333355077214184347962978167734030207806990530680776880637592282098988306779009292427306243683471058151503952170655697025965095131634538001239551355109338400728994635653837497042500094982353223968371184606543460263560594254350678125365868350975413799564910164787871939535026192583179864874552660834202198881876356450637444370130494103418052212639844702482984623430245431638148073871438365610166457918325114044079650404496531771175272032539065306657367730019228997976929617789350743342426825752830280917011988958756862916620272971828983464737341070464105263928784899400330898709513895314114784839364770971078916285879533610370441877794645913210943685155394087462438707187639140827180557471944067712368731027302018689416666071356844841928684093915169302429335398815057386553501943609391091922969101512322724694362244717233404920348739725109855685128406222617884212533591679559480910024715742186546569497787542229035835568959243597708113225001871778105804389148441539159735661340756765671710042048567706661468676621085235715627919682869944103285462384805421525751193142203589571123447587741652173560025523434789519211958578204515718800801659153825362269247201582993782257476351605560915678788079477370113712573450022895615862177216365543621718826615336259176047962159865546465052459872223864189547103097150490799430637952585507862760879143449960672415135061503432078609486747391206762867925200889198166841108402551299122085234286818611719684429133054047929147769433033387122196064097019029376308745570826323777149959867215635646709971710682713420443952764267522316878032593588417967850601238579985353932579892938479577899700376822131840541893038693414522221336560907640899735533629549830584707378863675656202816231587230289473038054545357442494441418603165451285408086994129701141867283200095683956263978259940160929862331480404354205303593107951461351571622007620412857642830765346669255824028580536732742835350214520494937274455255747007874809631623940864162337675951751253460568972171337191884028676102714897721975332665450618465083455745019377695162431178357424556199481809987567188854505744976331352659444883682731007833110399288785931719632813435175037952533331915161049837587861753332310306870725193423207523756886019402270228807939978141771843200712241492279612435701221641332299273014325419845782484304764033792153263661447487305569400919947048409325140389488544881920072820852573855950501384405755575230800733427589599629923818070512917473713221054189909734369759369727177936113038123811442391528713502679529877580770344760745718157034033225256439079116338032288865551013273359554548135960420413918515621551661994292833189432945429416762107470493485217171081142960506512849127571052640848097608954924007459500890162601600557431135492009843069986596598943813933793633045412126595757396368782446320158576522310162113861137786643779106356307500356648615668327834112557417803215556595367782491255238004154711714613039271303777077232308417458547862058594309036842917518464920870224451650518733897968772914678969922480552797511341191269738196631488912595490835519536047975785775548028344691326468287816196677687583277104523799108188804070314836560021903441108521740728278129903310597691980131769488716813116805489382100265654398940374370182898687721548199603032717576285335187810613682526765135378840696277160912271831088026645743095517515780384392245274790463720927294953104635686679249954992414745054778488922211768362072468027947065417783044721337109045256933292675692568418705108754491551053547640536025603526481484511566808406170984879308212547624572434688341141823641515222043059463330827867158862310484830163246477956496207327938829331943947319179680639786527638263257500725329516380799035324490555107843190028814693373674277359586651801546277709417493500494998476911480889025476224332195570149905633604737562395634244636086853890819263605093639223882801504503628212325149666840110129279363593902403596409290480343134955303626703990028090017676179816885800544931867886250575057630541814071549524530646002795381887110939124545683536450526616290445939379879865556757776800697609258756089708713819517193200151270167509268541013382751581815504652463949639969386859099998902044352118864253263499587916899623246781449910867059745404016798080673328259549919836189129982609297217127642757657686540743707058426127399205955420858619990417491177326843480634848356797574785443797983884370792005858833081419487094434598488651767650932509619492663482931827353194668341203137196573957197932111787519310678937440703755393258499229123559405634246111751254433269671105184973980178222769631155773606717673003691390126743302817288777470809097685393211190964210220739840084181803604851355265262028637095114205362387647820997640189307401955113639726334535162770752131254556026395663160911176306808245679575350652445584551169288969407521500980510317870290964772182997240414538474977126590160035386637561729124288025331281881098305435168796247903553471625451976161728639676012344412225951699447352083385606748151366618313142796687400894911435881415505351623114137387790058836013614027197783498863842280438232972964117568487329295542187877563067882924456275964166942994078503178004377411859713257344885625227774213909083413909477846894235000148539560575430253157392307712107926988552099047444687339467018194083884958424497301072990883505770219207511029471576799566173064051016291817680188022845497446229362449652143190310621863657053756913785920693241565814788441047309277820308301892030194595501355258352129728888649365555462800702165610951178697123259744167725966994774608566916829990402167101219321326082577715435683795161717317486752858169722456685378709440111223427797706713697613064923463814487335420173163705372228086501593466047421763075443402117400794096126667708364889189928665867526489394371301530393399290600745353501419470333738087528037706065645958875554754495239439281217589135736638610461133246576810444458480174378168455022661048970292919604434279517405585259477615479671414186257621794608949587178554443212723901783667732713415969587944491944900746084253192070470094574919655807036133856239893835286165816580168230149107164055553762208185659270243860748769987491684387397223680391100445307422065621738408955564800077564717594737366482676028172129053340442191504357879375034886587528014686332378933279697617119123021879185273481512894005494936812107075640855952093429448604079088830005387020586915182124426635535206673254156109071007670664009492898792780071578233551151036714334950263535896893151956163675631407804204761822235916417471346857596496922772153333310346587063959841279006975919642944268347666890771085570108085705864451451668627413201847776521987414017288774527780139901912779246914282171741921257985489583748547431867411486875335930079714054260197061822605034790086594442325952271034584896202258628488545119640076182497416235601787798840142492154810036548379889639584839951960247647394324082488666142744083745615194141078805987834071906590468895930993155195062284096028111071983953441243076982201235002803522298172308923995929224867264316704030679196339052330979448536351718813250345659571177029572650312569930587387411088613530772373543739068500610266588727225453086386950684986811450076218401087713298402105959547847017600556229861838762575383623662501689355378511764606791445395261569108798393448655563969296118054747233099258132953067343924791410335233094483354838651402587939645074882817912237636688533484852284952260806902433472320855668575404271428119215931063618895130890085190387221455451383381130155001493297877404207344456129811025574241216595378547700178434406565805424518795076944113107140724604487231060823227525304083816384039135165590106959776490099318992477472912827280614876165883695723755734209412343487318274375098215956844942074028935781113853892153621653619216187942780331052690008665179722778782162308413425288812683895522536906953315046069282348822139841624694810469620422726587874097486805270495043478284832125389443268446463099423421904573578855959525053904237739464967860806568425070439962292366326393077499634806566623939457612244036227780739987993480982461110186754705786770003797690605789693253456098639946256194704580977544822622136096396577793347260553154265623210923035069738615090994339789706808906197103147464241844298107515955377061186098529621901112755738260929172867559586737202109986332223030285143969477205311706622129201782201381069021123170765482682468978659034540207349820069597326889520786752304018472454061133328184560930580920030505054474774748644596439852066865219437311618187528400262930712744952824485730527711306911193228940376975382516855971065993506656952619526792736629475434221686903467636996140743044418186813108190852519682322812517225814284956028358034499343442163331738577733764798315837263723421931578773321859207592917860958158445544373615545343204142626814314182392008129264650425647645131004532984358769138671196780272447630393895988108469941187149273818052457023574480004124825905088960456265564742221037670613154932072860794145611422771461311653727546723972450873939446715915258057606832981781192971024378221447232888254108600273024122491354964694526759585747881181963301138387489046777817514093840170200468651066895235404016694220084713853010514115757543317027266254924023322308313149881066869986299868690740498244449751907159447829679374869441072187330031311521885875764193705419940106407285816868288094349585642293508711384669806260422057495443509320883978094158264721766234721696347616854794640512137950293361423840860938129381230204398352407885483334059542116283683443823150331200529620677534781639760211691159286901030632782992102800667162588334363796293924273195313824540740926188822042301024214583253237135595462801668114970201421817356832762353345650836332791142684570404498582157911359456444832609071125984031580565080007762448426321504453111052622245906070341361355595322029257531131857674019314700719941150967109791304370237654146800234412192733088285180373231968316461255007926183161155619165701225936254556564285197651713349749697850027573929505436868027349968682119056016131949169343148154616753281502496562092240260958843788959566824871179854140665566625255414523665228540803857804270608368256683725685476637050907321859879934148898102398476721499135956879433324184515367789880333641805769257627947473040047154733012423377495381977535207624083683944723644372635140264020805544833261585785058913799169193996429755349225795738348231971231031913609213838985703074609333695383042320925180253627891626220172256554464418931311590983673635997165413498525302514143974768432371668399269319488465121038713482761227361327618622675291469196607466876896583373553327516349584899776824698540171858786775890425600250056517361427380381464654133996929010180386681989136807611707376867993655651403457695829795519793066819446295309551992619330725394841867645028519396215533988624200101070743522872698170307506227188421970393373634384387697850206361076716121059310802496632119544942054539574811207365112824996949953528489280970081934472367007853631677860847602155583835754470924791592711912091074025636877764904379408028159859641684542232079456356121235234270852020827127016223615584766600883248793968158340316897690945298738701946765749373114239834753999165692129435344394396191454377904306577531084173545942763737571575238684756859793702475826901318428631405950152901968820160365880617794952114813076205830058458244869539560952105465467272117575461077124826572718191048002033467233348281919742280430082087744690733536758528675293720341757907216161158917058625278564044265793141107962009536166295637183093493529939469493287109719176729280277638182493457723138046991687251701290360403162779420671795359260437075155665780547956826763162887222780148635071432667840534755411373386759385304530057612900518723185524880168964527738078922412592693862332637313865693733938282682940876808456230319484473016749350820308936200647088885301288067802540370533736386841760314807809869026787733562068528190557932242146362456812820298749140895083448017383975235322342065388355334139888766964853010138325198315681041660580478929954364218711181607342887064304980814347186023978748272870672376118404994440489620208517612264098349727558157295169471132305488058323153781220283127959207881400227899138802226566815606820911684805386814291748511482891481411519916768316833514005293711867425681667221186956038858917129106700203302617004134940521750391761121227207009527254518003955424015914661233005119408466914009897130526845234120855850915659842916770487063066148618008910487412259328918030497758443964019574267599557581874350403247969765643451360179987293938171259608747160296478733267956373101220245468266508674392501998523897615042939195561898079469981968548546148483067725876540998685374441948016303338200764527533410996537620666207887935925094187069050821074564138063307832467252825210135425002898013437603366431101589464565908038313427729331630144985653614923709268064452698615835017823923247415900202090007968798242720675124590049263741986418753999764473199776132011401776158102842141860654370987975470152483484255335080172360299212571915891508109668975881219254784066836806341981822615357343718808446946863248782169865455428247843009315473529680608013302787628448076276071554984649584408252010436113676013922016621815635162643664612014626708966245089952102783578829880434297988459246639479625258604333937892736487413251151032002485694589761371757077798385953844836267976756810887013574499440492762364955073459300283069702490822010275168400830641834404159248399865259067172514887962152779528982090271787457281427724916757515468399055779953265351252434390903743272945988814126024962506223894957609935659456623010375895915584659704349256099104821221663444488153794612950449239324785045117519876013600161095876375181905923113599937937452038547292131196326540023505020312398268129221839264372114388472881738540596176863634614270525611250527211653041370366425599232547688993678518555288565951894845923929612823597583860988837799519140337039069748101227140006266820694638422590916602099732784259859760293246126195478358520539986125485444561887953223452873776496929600637555573997516389261228555362538586175386926119000349559042644324809906913122032249258436141584648456772287352833425058435448051452856409346329398134773876609860389359941719259590433217851292080036265007482430413721487116927350193514003163853087043974544513171005537072617647056322677418707434716319478604717600273846326329711985714473902450561624341119781760408385157298659440697866879753345433474147864589509497091943331992530152468533493555218210284909107251478987020046789420812285020328161630152597376461629347413930442914655772692010297141145117610179287377345447336844719358728366301359902226037297235520058135140594054203888969303884954310701497108478881382174878200498539392584969820178381382218050299713846388281531738507533597786027477773355752673171860712863480633932901684047479746386740403148838841196276791457974858496848329787655894001727514885016071013209218432962511361456438405908349068604379650612813575940636094847355433313461384842275393277569236562705821908538200768977584722235436281181595685521385211021499850617462248852431208349294603467792154249765513525849456377630441898860466717941565712340033574680657619442877079727279415829030188641315686982469019213895217930392022971247599307537193482465402575823435453591744207622200375422969816106549857957329180999449028265767379040760213204066584648803390307429719592338043264453673031756814669532728831206042392289920283916994255013942107889312239527577494803203440997461879087593115776557396156804358915992812597997050688632651684281244803919750506606494439599396716292954345385194874964800437963729061643733647891495129903018917284859539034437413102364531072605155890254017113993673408350690592815400504884026034547923029233460762601829052352068122283629788113219497973262413535895220584059809295708880217804173293432759992995774889777017606489103669746651779372991356555419663308841813903632604548797633720892796110214554968506447981302143987698524809520259405121502095366982181781564845136986979987369159458676901608274357329188855369856612841270955473695052820506725517088162598980243983659281685032242243912805993384415757905435704816291632683745847817692912368335999670106167222388877563443087139484894020365713456941786102092353758713161706210322890259298782600690974391439207787251714713241522432772249969474660392695672559281522261367345298403976745256405363361740078229850840344663228237513850870363837314695871955123511920400581317296090366107068409375221997879731717029125020048701622158235783108470208240222995244566159534256566862079552886376584001272140515339585646569101739074104919887703226409268071073005428335015992821898164210848085065339166872435133489839718337657183755146063899591063622394743913503864560519944786206918909681081435956040138338147794882582061598551809991271490758032036954490889127273414142763983198079916405917027012471990513139456455529172401328563373537309516347538725904797429406359218464419989818028008093047076374181593090214964328253944667525937187255678886274275156553986956197224518759132642448730366072971105910105825295530246153615010778093559145155726154475995583796420785163373174753097321123514709290829055497841559664031381391325286078633380973366775208496818469217731094463265407580547101357991139428820373323713117383448752459510101453185299434492782469270508511869119779414906417604474738379681929821531608179359258441210622744760097026500297862063448377615652882484708277884523437038041459508648039383515951653784214938708833406155919288296684189950089272719848939192008264057330839356433523403187372427359348512856134599593951561990555023458333142571203674164705008525059506994413016348259557084589518802708946329490302475397912162030763961490449726159947407829906778582577267180626639159244429844899693700603880363381996068549487225014163382433716221647760089678355761731123881589030982062013632792753001000349874569350222564602452369057877127921460461684989389569519424269698743923052841816233983194848669513620920752373544253900400916981269142089839639911511061438992770782991934184728038511252181859114914006510064554252989133831118507115174416629827075706860413694727080150263191592364809427504995648609291553966093074124097493499445160047528422058470607652815658804953309412479266873638872570198739203675094330641251336144537426598703147201582598248964705328052915236286211491345132128358581225770881456514126856594645411677606360033619912853351044572385099717061276805022308801345305160784318938671598350899387135138224242104436570075448541913334573361277745822659239801087126687955774154777966531332610972178274626049615611256526042892085251753561912297443691177170407534355302375845499512844734294161403650165247134473430904237347717760924228678182228020280992431890096285717361164458224957157421528931597784078497268958960447968669755672398604006259714173136675129936355792830211044582636442381525094787463502276976542316484771243308682834705095724726093716187987232822720345528047994282143491480887750269620948391950211675630360159841155605371439704948987329671576904114900166548075929724724692891155865775339983698921053481061546391265484930958208625731074515203232188405406674701092331935886808545480285566289697447873527061445114612883773994585042892937047323540580150403491783803281608717009244167897504997026370097476926644150393871896894084160977524736402389792318104164027368390125416106416975535017731634808091091438876554478476387386038989415487520675612677123694914946667778927258411753517852938648961917279581893387754098478110178631124826755911624910173670239057817107193480484628747136744076747227057628965824720135533955729354755545326644914195104680340414899755019999128034461863448031464873481110614688895812625233343511818290854851173251396384201786036307340047032032279672148294175564387317236590396899479905166384627058222626312841411863006617056007745363247093301954801851525967365958170826290366648198914375965571662673519729937146036895498735613508631865031463030825520000854722124050608379175389020660145711740456941204057564897560207563477768656389141994881421505723755547079724275342508038041652225950793608973201323110747643713057482819150095006707663989784288991880348316365401879147335408475747870153802514463615555074520363698674568215120917542239013810655683366228401351065516298616047042422180061704343338668026800982875875956106185130693833745511988254406252617927120603553174396672946861222793644684220686285012030930846415404430766531377521298736184653032140687652007669727132650660297211750889322033544730351530242826991265061720546076856411688981309376232727368533770287769285291161071321864332149982988092658808627738911357380921922895511541533734184301590198280461921926486014332660669818526872480955863921659715957935578418962424509809420531973097337952099646341747802951529074840839888051826118154009453188352690592282915404368926522496036949755663887333521785798432723995976527194752366483798264220610800880222198012198597952281368317562407057131956019931804099837578820205734875050841761618085463153663717757096035327950132903491356328123588709843680567693711684452829534831933355726317510095505420682838429637196357364173567993542609712177983879323844582404917780301540000383700451659878829921643078615658156603118494904580229148965678659354240609091638097381675326578877074865235298595633004595639094152418872203010030528452659629469271183713389365566397708267428869116812450600691801221650797023638974190089667292862241150321555067712610200745436653554788856729980486175102098701654752791945990528603171969554650150394488098862819601119161771504899883639989312999298749088563084965849396506194581426791697831032964462234285514594992130960897951570271852505464945085950524932015231424433080344689369847302494513884329283001919796696555224446328566196894663876352174245808681186267160075057380887807173408977361521641149897039328315716168338128056130678948834209200119371336220660822746034503757645328473794642553609183587563263735740555141085834260926094134103700352979707265495640795111371897726864910871162382739006940045975895126854053442392415253157698416401482233955439370122420820906517183771635313329020104254860694689599054887224712634697520525003727531087842908692411163689352714814705436012802763561510625171425396748639693270282545108307277517140119136551040660139782255735142818930829395287464973423707359569026368379793530352193154795201499097895659057135016272276575009441401372812980208097717925244240830200180379050144849305918419971616152796555131333932435983705913181336241436761726250555317461929156288540374050157533987608713138420940189928408563799355331681037469073637581340214860456193883526476793219281293490934181829122749125111448940344184364600906040489477505521574506017407273425281284660231822822695644311918576683281209669487395033670554212938432812126906197436060557534547849863996332923437915292886958813535838939052803282381256307628051377926492293373993129215056955552933484408213679290722956488088397868138449098480001367010511515021990081984273750289645028711200184160970374056057777944447121852672852513006778137363706635123255124681015962050173756417529782246621820627561442283436785997266001185649844796602769430496508682552454527406037361501960072458596776849812885391084600359578593075225054597515300857280565057648683053572584546034021985547347415590838283663814567819268459412250665554562617299668746522502387084623466073303593704592989813440274689818088677709926159274606384367098324084165432349486260581953845638436672424218511304802317922671079907223795385754091133362598701802341870942891204639322062346487113625831955694910965036436356544482628257669240682103422396089444797127985680662167934858210130836304543648542930804011315907343270602028947927180631610220773384085939361223579547436100344223209673166681602012241246627844310229792613562867252887078093911116563345581984367549055613760564731362376439702008237857548231786099382236476697172602698108202568778736828742846725926492763362854192756462979032029896966662435978666521012525979376248120952990095145460464385106159130408771127228960630364418669919576671208777416624262478815481373709263741111731325754174652730039437467709839482688806542877854064843825145451041175611078630285800393829643330227179406256883278122362737667247608156299023591726567586527172882420565349665685170032169645845843475747355638944173926516634532834226598860636973909212469626893442426683709003693066271456519170303742682358206490081064847621182195073158606064067303538958428208612944906504175476704681731475949830326502461244722858309288010560962043695960186534802270075916700846868318928224971030474180029134331857128693995298841524183856170876157068386610711583990829047537089983814320898225866407162495032413107130889016269866219366434267871575109958422456609667007513687976795145231647669633599966451476621038949649519346351460297898327117562889235484513359118061447669257880317682639287292130675511308598465782347165162263511183962080629102868557940430565938687291702473651028658639002977132428035505351380345871411943437656429628012097426674440079828160365021876974309208509748510920727461542706632563796235723274702797259666839183520048253832440770930440806684768056781726067573853974814769409717890668545351125829363779838206132294809175413571346855573572061402082812604362647867162793428260056751210667377100054001149005810142687627693834566796988905312174827517754051103484305681569190930131521566070318573798369200981587256984282021383149570457442616762849310082568684931561291602564777772876931911078321427293541980548402102324313042055492305841757072144267091280037865526194495147918058062822067731754547933708991072785122463296794180982226012944660115998644365203147463038236803434701030056011332610082428853359334030192029388546718635361804133269052330946902104853807042568331267993630310624524266729609286878735737773634020966957796737295370052977706014881013672186703103702610772611509202486389459257858872777956479717856696948347555174133344956754808581922079051687156911002446910900098412904131360711964869672765969675759476233325041827496508743923664356763783198656025585516067372712920142742248606625313044969078620255453629524249826841085483209007236416583839431112010445512476026631776333533817575912160785989644406642375282621252607796711160029519486832697432727910314705060886884026309990311963191868141176844505285028215689430041268427198368224005447054366674695343049919635899597637995227763424356055732716958522825905146320660978572923356305245965108167274767437940640397099044939321819516681012865769690327863422858659911055869478257347582296730528081928384083800293547306676416969536641104804559160614250713207725286008376180056166763307590529752390246156758463570307921885630060203511687874214575749168933017160302053368933303112667770850621563537345164757193323068101838642044844946043478874719661832414905389007789831644615685734952236690758654342574975085109352993762193740868832420564781666309421177922199960412416974306229972013299109557281336363741687567553379342895057822653931884632507859712986664216624908084639238337088766352492588260900381418151380508410398163289889590948505359864394203132022243933635751956788619794324980906983058769355866812789042232175871291646460367794806909348400602028265970710093065598725946887895169404933652787873725635089227182547575207069778198142547394595045276593014492419086259084214068345400226604034960600767955059491679738310454053023045214861435340756609843113263258798595342468766443945929045048044684288529803064532669063579450608862988956275607628053262524215816778400334145893788705127080781981841260664432241731954044090038111732201856275045398670885879490126516305909961505990838957763173109810447508746891754756270508844763254741723492745925929157375064020837921341673111623535133614002522389437132766746732020997800367053805709253720371084962476108565276639949471901663581487429247398386214254441648504444860743996204185642417166610977006467479742719096929708397572179473605145403559498240756914786196948038747056132179497057315440838436187835034630986269825237904468322658728225706684032537400358484727477124540235802151834062382774266719499278871102903361529238855190611742035637937358295096026626991183463625251595934926711494710494821735829175363604353197794975540515636963507536698006919781922543249733979420635391887342219272785685886837763516940893204463840607218125036244361862690150849407258999227603312592629294703064465662537555794583479768795600859759295240007252770466536587075503576889422618386829420503505327337584865571196959352552032802763546819189159600915974402840930507027865925946668054139703186346877397553953022432854082191390862098531941336569923538999471760357042771986867551534572758588667340850416044494204196019465325361802099042769455515833523470473184002742509306910759952434460224837818700480290227990761137198788394650764079883838231836718654351959151832145318170049131960918470370361167216809082998616283404018248625576301113841971666157185052638114414460771591721433529084142004281005269908255200831840973545796327749583042098275796098799047707124943046007589426848521406222969627285982066101643488873540675496746326145913044250444970494078678284368965454734418458851208419526338192941802549129107392893672634627345896321274742268029058529940441647667204149389174194828030309936744457825893726375205489014300277031910887971036436230735056165779614564488025871074428749753128654797349851426845048782735537946470214992088238561294231069812142712242350174960835482898503534576450366430158690471753535847730541782499884382378531227448842601006893983980575373615991496121628112911972794592593449480006249211383252910388715199675184162070839303092450521380503420225755297259767676263305250252595043218593798419052824624128865880743537810530239807133418603654151282338651101695185711017516797885030204673460133524398118430345931083194408357088055140627397975857258063930487101287110378709419139480529100002720169292392920402711995928381836143606053856601400073416666264344573999137744896645089462057660083550472480723982053771380824431812120185154623726080921046648136603918292213963386678535098097031974455109621020081559750183699505839193290817601867503221159309024567008460633833960364970510538605436732004738033151022823211800029538879285116796000630230692642865494409581292479848955425580499268980873072110166476529813075811764261023031338302641644702764313137480519898907150983326924829373982594536483189933894786253978404654881529564913828187495623677585514117852964963429973217497792276851834764837699617368190073609277956532679302772372036387224340699885868047969411782209863142007779228931842091387545258945444888708999450012162783624400530190748776798106384097587224978659679371969812189189795066325453035445606562333601193328690493833629292091594271325472152054541201920992806846524594646919552039245164955070519740478394267725656057718195931469611240637438715088149026991654810579497382972893037374545898150290999498109999939403152504954760872760937217653392360597266266792864835817957705859775945998351681855445823931282315799020274554275271793519878577416102602969881746080452242209654876302848466093843276541145946662444495413072568451009325143141149376476343965346401642207589333427402304052929708226912110738488487019531582242191466139998510098178153817512790862638324113817682144109501046797261083385139132756689626197090950869389417040804733088757711868544193489663160190152739912402201061440953813876584068261499232318005233819147434735052621717769889528027716794080257633686872501729831807339487418903426207870439778890255846542309598154140865206660722857470301379199437056473021383969184777528165114735307300553233975031884974369462472777507412695796887140008512769522262972838824586527871265938829094447300696078757409539150869284518150032907267968265232703065246103054061335894917419576713326262335388180876898938025334097976421333130217784457134711464783418084348557073801106213419012761604322612183797664255877562818451139169488725633553504198181793047676913333128231539788463068830435774039829111701498712881818943313185830004713648713945472301838889489755433893603280750226750863271041704750350278135737909262694677094302276431043594456595320749697950679058275719847881966122596344954283553150251179731539228730827633870885351647117772292561619081355344827736399928933941482832606663460683257705568736747214163172644799420431889811981951322976549407857913581236487770427614869015803779306213144296563486588854872766849582291208715738721969957629396238970765568940195715729602965123169676880626238180358198874882345164302002833992382337787203483884426384143235402065905856601163218435528735607055564841801421362686522849433962903145018893914498702064137950145161457540339176997165678105875384143631288381863430430217675068206900638607049639558177060785983187386297812066637286116639324523066093595214482438280466422379077656781818924316471320666494985805168003713644970629932872446800494953495369821696741709396217800089497507068649305722681371047783735270506857379506327695183462423120669149604681992541703579852349399081254148330242508872696307351706158542437178902863178526280452579942210407662012406236720564709129011199753550511501309629508525726696450794209932391607927622884314401306476893051296344078302764984198959575489819493961284333527561563869916108319981734358746050437180166466429590393134163944795641734862919858611292620922921409115069286863265714316155357587150309734997021926691791429292128279547829871830020632274746460994688471814824961306414894399315919139405660633913873483290482949548734659725150684049848861992609259579560170059993062156748655721823930842700050388189533891443690912642695729589041898653445135798119805012064528408695517968311808606720932336026338731196384701259284465873783225753817959165995956080682425707234257019492454551299020240954647358716665865666800738840517103535880597135343189555321160104573561616348397328849859728566222178739147012994217677951032286795521989190396517438817365982227010946240467696768574053123914566714168295320733870663600805171912215023517167829029205602480260181410926384629148522662712061390495637938019723564750649114226798624238225388936444320779422686321899753413500184437270358193989480168461565855084240018613840822370287801868960982587890314229931718447437951396933030175158439458951505862576759963776509925938088018947729987357310720009765208556045484019108478339769467184900502776487829652550013550819165235342021727659798897065040544273445386435444273324956923081743994154097554796954813709661937486296043025040650106330870833424191629951944025384582839524238641652434659494156713056454393842288069207843821144908191259476961686590312785434135683828498558563748468406703767014699223147379802593043848269375503112901151154212117972161540866090562859073181852922355478715322562402995652593189433828985026813432154490794754024870995955737956988282132938176186367013927155519722064656117930838541364411736786960367176745351064422672094705535337226214182546852596160139783761762325503218750733622883029045879719262277899827636264443430934736494683909281610594610283864701697499624463601053665604575466309328798740638535276578742978135902995772731367452181976427761285522040741455266926433471688825743880319589904329830861998847019437949408740082863496997130835443947786460320748242912882822662753879781108186122392325995547857488438276117065784282222743643082715415998410452881072087251819210073186796046940887279032869932229498223621286198910782104304186936568664324810709078799255146640746594465768437155143214743039355571938714152918729894123424740148145822263018238545074684156848525247635268897941347442386294901571789296878158944595455635218346066549792320992344834843043916530397841111672225417105144565018219204663061912657070703665172602221325998558016365353639030049703893374460151675805082474582485521400092029163043259149364625942331126941481558470101550686217239529348948200449171973751542799386527434121528689719301386269865821744520127371019903500502518547091903077913554384451537859024645330074154380626904918089452848826687538856218912383913666093084025495986634736238994058990246647118283663761269344869713789689429381362026662339872596350941444434885796827945226967286475351135559934797451538573049616338978594715496128284752576419102425130916156737806626039592129378526897399381874271169049584460958196150116341003412834695780320617751218562960486981991243822637993421965231961443454530087875510267941491043108740509099886877293292420832753673396637554641604911686318292431990679559131956155957866854562848139100411186578260247671513560051373451089192361130634083601045380137347301573436859728603652162733325512058558020768381338160555119361550993004266442404961827899574522439435729970094098597503527607369739815731951033664976170044094454621433704835448923571840559796351348352798826093200262737243909193768409257004010668588549819416900978912796899262992803387532122110221962316391025741049677406053928845186160516047038665029338903034059363333939129614814232055919015195222618865170912598755080864418149704181569680068017195938790201164789763068881476250636543231865331232559125898708378814427367098584293030833325839935423102447995066367896356432900898786583472131682179886167766430478428702672336012886722208432472405772197987004403794465765822475252830212694012067038864761094712071825267768195266378143124114738288934543820978112156116315807278447502835998653499630007224184267721934676331903551065325848366207167418100702966687577508898329665476112406310534751109434141186042435667599441584025331162748969412685383167229284883573406890797207305496437343435766200548860371567259561716778758579540589822395167743332613902673653662019321026420400222910821595905501657622088172207725754249260970908662503322189374454290462049060923876376743531745167175228645743074573425998395227486004361362887908032536318132609059481936399421119683993793862408926114623970236245923373643910195786356252189355436148478098719771078428019718505054591966509345221517660548487426319113347530446044706219108376247023328486527747150459614059575531513249200215645882203722719313365514944219565605837474740363106692357822236401262036489433635714048217265486140498160875791873096454777372595917046164400371911756860023292852214875320742432958836842425686408518220566514021333814136531492003961362569981926912090412665508960310811763341674691444600076433768967835414980303639957069774306810912527244307264497248925685591884286417968564255202028411509960791521979703977291403623487926666704271359032552222361681810697274019204220638681673950627009841384395376615138924648001500565057061523269861800378719012629449795171561586033646157448972127710043451509750212829031794927227749030255932444790229186653884596956929506054768530097678019250073451145646218125150576323720416050838435769194896112106238674361569831859893704950356053625412548064918479076902452548584927162318594010586153497370031683303637085173294396330803437635471051485651418775191080967500949969962070728197502305457409150443716208313097455858773499583527407776855089897038814974381817698261947000449714573521667522119403162398301525699334508208535596193076913423326599510370585625131587981897159369063716057826205680693003594166102819335607114878762317163411836055687032794421332896960673988235332904269155744981170458821823266663239007933145038145537607542716180120041432918750137100925281880736720249642688806577281814375151244000504801369432588072741849462205629046561515545780468189314388001470509490297532319456948913867594002584018267650396049415519106971244282269268107099037837976280639974054654429252402077191147098835276695911729209616349015960286549255779354683503280582179023232114195245081088568706916045661435659755135930883923103748290029604340369511919162781313249847627252455227004757491076704178484982976796646388683018756288722608752555072441005176688513577339363167216379175092541950189729839079631792413833679683063992439547767056349815224234711682493517195590419962712754343089138481014202703332162341594520022082257080282999906215260430353820266485110957726080940068582699960061527687591060736871646204064505740237121710988301206878761539409977462379028626045314928392135150907275747005818651305898594346609945067970116938116414760874062890689654094958096258512136276895470024348192047007088878632845807034972289908289843099755618477265241045321746453768206789512132209681187684351090706065606248446191847009158877022881253951012323541507091592927561757654659546905604801968805950555564249337452040473452033111892595605394547790213776078406325425211571887669881573758447551438373339233623418519686197664611847803842701508328860987946191690073975843996392817168645716713644725200676740818451734604719303425191094814379045700022983569584641745819485592480769857346485929432587106238226372799321825354502876629951730348478220478286586411453706199086770317123522307452590847751532840315551492327990847337386520220125552313610686271253524914803753587821746637487141019963144965551530732290493414002337110722180261196091856416719457912511190990142340069923873388940166206206468703537138787671538336021342094753000210484213046289009466504274488766532628564142532272195317406403373329655597600293273613213010307795902448467892615514069647199171322040918028564889053591745351186541150447075952910881527882459338226471643696182201073203224291593571086994135097105666048411586051349002769057129166501736835906467794687220921613520134641949265888378705708716549520298463044411858801732178308222696984016514271211360361286628238027338990239389478735579036857710820157156960070866795743835089203536074918805953749564627408544939307188765347035170855600452027800628236641958559655892000485533586759416097734093720726322230183882120666869485548935339155302818393280930837469705741470263577301921501841783261616902489908535471909235444595999004253580644209307401329937025977158349948479599483558667204462243669706562767574203308310002053585564051248292591365701020558943954762875718432713820893958647581248016028115763306505624305114677173084850252237080214495588578865558750812584347281609790119574697826563955464997622135513754754266329577427141647025874725987164635946592095378656775788849883207390898291955089463822782351285291342606066406209458374647650034439871488379809619271903604944489627204329450745641444915455928169579582482995440572128578795798241374378522065903568442431391070909214293868453322999891183107803032884677510582719897827313111041446268473773585412390623424134344890222606233233557094498606111175809661197307393896012861614074400437511771211738096306726665597240819240314073655087244735681136719961072511916036638055160277284544468568315564373276292543281435171098415722101376291459750963331337286572969141392725555062135721783131969342704161868737194009957232826053618306455876794247680519496910619794500830226464266883567347265348529498068776999637848259253472649362507685248521371424096239999789595975791291846721907872168749539145348226654989330375142211173706103308075224367939826683197246554957524966485150557816849042284630105789159921679534693530650254243226127008862835249729003593066087857946807542486644413268351323226475399901303286551955776905046610491097197379287701344608525058989764258322727004620517175669746913997455731414433302005086582110972943944617524815930529074636855696600501464929196204106214626034047465607241097420997965648888729061012545283264293140846261147762351246539427623178868051666507997721716430946088837915902072576438972509744962423839054513127457703097996679704427032871300171604397429532923310781606004948935661563714565017217541651852641782637919937421831996029174470838918826688990001599381263596400532899515021171760448650716664681906482813982633677357362254850645859016581979106702379193609382108158924533344880950621945196617575991876975744628999680365597481252306048386896139969154984626340481100086886384935573960482402339590320950328793566741758312233709987607717822466515645718342751044686097142355906823238973542598527212182601849153389352135225248064221853112953093098904149472674107371752865743025334783592322504201287368957341583105681554386806959145221923084627322292319971326557737243710715571983391011084317812089191599172245962042406498971982938064154893663762185653193073910020336104194019323932568775805471870927546630219488057545627502259062820650987208522022959142003280900533354522143914791102684971297848569189281465862786687625610811009051865483382202102505646947254579947599071990643085395355179191458097990484943856177316174885634691688403746187627231366020652940889202435368945376441152533210008997963570851952913761371684331803605496429486578158733850011194695210533592689015103894482372253574511775506246719431976226682541953482594419175450847176787122847560776556717730422348347551060410996711900355333109316351367040265706676943788572103497178106708884832830885180445232715269146509585103840241523299338588240286913411604030790199994341163169023253399864938777261311258185621303734441972995193704381809361420942191566371165620722632367688821725194480586931073546138421429572632003568176712641643262318341378687578498845066203688904134046625849267887879697639636817543772985878859925635658546059630572554172597361015001608880523079476761406057990609881373710966873651148669597111548440197679074153497021151223693863900169287900352673574837355145716408327645788585305415565647515784552171593724860323840925581191061672481542059287257027578322422822801188965085073785750009223462220434648730774344667055527526852392705356625328146400491908769857096043416930874540011307226374399522987284748964682581119814012442373767225914863243853357255349503136548283660640075374760216302653395837388792084165234874968990069179046106960225363720301495620132830267609000735568161803372205541032559345281039239116215027180044046982393770142600714141561594383657234964933613447555697057016848487130000110814761470240850786714284515406552255806031598740691471985815810967858128070571797476119238637096044852356812877229580285870272432453730024702004509236622342344567706189473204415507647937649629913936281820220981752214126013736254510340696797238923571889671668012823471364822063718321955848281432556006421371048162272165363628879827390163271878352351205342341516677552480331103704851328727981136712991575888274343624861508914542972157741984571661349863015331126712934643560461265451194101917144643131916334498086333752172646108363326564464847734498838770160524483676703328977980060488168059568495450812318452666619322163266656700940851283552138144594861890340389394191049395999689479157817691185631555923582710548478804251592458464664511226502049534357245181638920973049789755784825551369242171379812357540281851914077189216760223583482025879632769604230088258498991301376296475819330525455586913598634210291799948134388495982957806991615802447859925372286671567270043015521124105779872214692959050498966613239389065996297645111557553382597168282557093156020095334583788317507185430006534354230716752175515452598574600369823622754626246928633450007525846708257080791463703896192449545639496754303815162955029695737194883948777957520376934438375995516747630630235942254009134131791509391567563934187839098134923180107066312983109388621278826877107424126012921649736281794836409194399686223676749873045648506703227731595398395055840721160492854793702441336454658291241308969367998829870012085316353428497341055348372339372686238514118854546000958453877298329159245249085575589597195759867997346598217894269588203781852558507837898807999067109623422825501048819499848657983330126576143909099539157414999937541490757565656293669751761495920141421461039440588983460916880324215194696220328866550369455380550436101045813215797296965900104449936518228034984593767616095630520722547311031413409363730754281423682762257970149323092351037384774612740788341433832244554724358514215640827491522949990606954102054938432722304963366183232930024616626488757458315060960934268248834011269941248114674805179847637965887143270022118896908420486951361140561364745640133727869415367716924187739433638446165476253546348639117659621225715633819416931510501489727778364344728057976531286590651348225223313032989328116018267692619288629514975850441089909230674293458961769325272564367684255204660629945278902831186746293713175376314546587183950802443176247642153496853418888148030637766292193940555274083820473505441685291403019433860688816722016462332650520009781613350908813869543950591100375503334674004242701974700171624498931364908143745527578701596774487463401571267096271212893603229529413853390395363660047126928577830836903948078094708506463605972600850560787236996392537983372524460497939663520573399388147204192564232100246893111331471971362397969097119650402478917272260436488775250649822847340828301716160649078333318962770450496402221416203498256706236927122731475852487889069334224765905480687987186557180492152966794018907238841298021707106256349832028649440471832309502069808268633924240480493887631848097170261017838940622969999289103055326568684954062246757734761334147607810150504866217610831987580967038672053100771575669116936161135571990743134068839555417851646531242781023062024443275973604666754377031321175446572532442144458512246710359627790827492149005445281320322865334137180251322980243832890176776421949435326771462721120009059000306071301928841077904062893668222823665516920810371909465090377608269127936327394766771021066812943196326619229994630497074165012418453475253941811878162691767521373968820254982128409247069132902145858206940791281259518120749469107588294200192945308306869592316385301188898586729285247350795717919361588154880447257263368557934342776177207084177954401426909675666402836503617077522217522652749046795168588965815273125678872978146589263960980714447489437453225562007531570304186239590664158316437587839667635276366414210335564958339757803273563925138541069547339588865642047966615031578643066819147274207715334114438946365397924050568572757061807662729064060314196537496834815859099000255605751327701124097435238531266811366500204060636138563563987260609853278199124273369790064120453720914702728560524370255062713078759675402015022980616491159625760324031228094852235890149510774317295938291817189321181584326580379182313425269269827652418779842963024711315239660199349725222840550873038453173126990184184018702246914567264450245844789751140557629946515792873400454171504825716735998786620353712080443870528570282050162794906597224376841382714661139324252602135869542505370002511833727697758120561086209245602024128104721228239142451623699298409065805914943193756257814438369378894693627410539460391725600384668290648005017461063702305654698803903396862171898522372353908492769046065565239514501550335455700442686595574231266208225811204971304103986026494699096326076806944538140403282603886026972107093459717932713341896059359463685458785033477549443995204184060481338872971561735401966759533365324650074648396786506000385998803084602724065362714974908475952704527422139568301568450735642517056497031021757548254689984672585970533615545140956303572066435640963764186459036318737557439144548871121165349160114596641344381366457415710402372650124290690368972634717439091220460892603680872196136054583058845339876855015932188105907245263163850180188488440606566822644064853158103340598162896763458993292102854734223153797947172159412752677838118053123802850625243065191401202873380466052131154420100629538728580580506875449062874089183478258064012894758179312464373385677721592697398962602012231968819108230418357746832366457504038055796693451921546470047902223736088704826662505569181741022227951892818688353018760894232169500015054909786236917617031176062222202124187034326673839254903399549965370290465581942913550655244747208440703874953543099404367086861513129189807709770026503288119767317248695114048186344104332230451771571096821110864621253651083445007746882931951857453346212731557818956816904349072943570898805638404540367239929405869799507197852984916630330772474225520414800392977189612513522515818540559801658912618985219124476917395248226595916634595652045573675197753550405917897001054763667350648379371125404551353080112814329620234063054131112924266770330652751624527530698419418205908708344779641130793210471575981779076190885327146909023919582612347946508647043015038970059132741532368491864377798458780752055177823450693106103512550887211472552440313487736620224780708241835931000042560944680828401264459621330056252814682014112105329818406979071720493302290528453609473627339853353803445590566784683197120867071632587453523716809967719917266004689104727548310135118110449804372980955952509259983525753974068186654381615795899560698480315498060704836805257321084837900290683787940835747665633935031520254213968707040672389708830686491999122224985562753075626094447304580877372872843200182969759887167256183840392667265822895732887905016202148662337280218678599225351769728474233683120539411958114391139341205015225105985996848736106617255497798894422892404522371316950727790853015139917977657150482005078132118633134487513753838335123824206627803477821022408731446916550986294695845221366767610333786311945703455740371853202406591575714076767276296443776603198142112448293882335435570105950196882083550916398799440449621717803940125129279218969003434991974314804356688914540732181341183777939816157283916863267776058851133360339466622758334609295600833512743670388809323546674125571323200219129923839938269971088544443479529655687025093553449766636026498354992459200614348758506383418974818792313444228684331439711618914351291920150690109974589969028878246520927568706657224675534115916668519238627982002282794044099953934690997687286396750522012964514318233528494356782359432949084167239792775622699501473474007002276304142284535592475388868683411166971647105104417753602278400132691234762268656829163352977506095578566585317765122899897347364691304026029141116549638149821114518441254442255713719172908633859431882730847248125800449894209272210654327152480873901599926127730126315785888154995137835765070864349650177058651400647229348633760230736035474039268417155918371805635050072363706753731590018599379551061833933760110634360988817907018311267705797349521549551055639498562377717892633050108535691269420430451094029219955916308182211892023538447392548500418879001006186602428254669535619955747326212175603277485463197032758180610943658304999514231549196677880707768007611472206849845253681523389857468262094599518395810079830570874896163826475120416655530817530854803436867193845167266212469790179567775374465447736833194418105670058567985816483327625838468078582544469929681661624863532045358422111129255666378679989007743624167406026249081225185472073315827312965096766204928587563235334359846576681583033182489174971992916455475536728264830809110774677585341267743480626945614150005546904689620004609027653373807678319404812399893982428082603022335193307622741945792945887954669171042183906488268464277845877931886101412346113174535004083709813686907873814612553032031037902636930518958933119970540982864479969022066846453273347905929051720501992662800226938414563897123592065335830187569951355888682282738557896765506702455290448064769967937397351190906956631307865738005515961151909582038086831053411005246298934589661401088986243670141806071953356004587417662180548631319642530226322543606084521848325293469223318774321741319422847030170556130926400788720672484645707977634954335718278788954037340117251134344539083176848533281947370574711525097203124132538671476787008697156624180731009765701196053237813100335811753131593809182372597967611707328606660870256276424880819327742581325853517078832236129863439356423379739260346100735879546879112254671040778733017082906533290406469998342308805324008294521217633824819619054712971957251691924998585939566231188426960402091554256949002790138167909367276136141244834483962574717994797429988512300369824785882282759675864678782234685930803848833592940944143345907174372559242951981512202222321524791047726493084926548884253793542310459219029377450482128539234057016557175189693937451729005222358402222966542386771131684071563782199644392302686811200772631318208051070042592827534721611721916610676776551796852525782129840329716758715119900611756463725458006035915353392714797983600294859302485195555286144296529479050640017956830438659689559141931009357595275983206628325581456813891859772140253062495390676780453935764622128382673491445918838011261991585797759749286299802387339863869780955694101965869381687089984988732589608826749415785097432145705850587076502385432223360902295457092571315150082271051280276249103115165280752363988757095439249404652259125070781821482372765212554770272247026483638034746608758415498633222448104026144410646786857246786412354586057054920530567722983627178670532693742328901981947759805525328892546081701256888420984077228916193910135305328207020800683840369850286222344834197437616746738744950293062235723191364400801375179060756684221638567311300874100159124054396888106368113189961804316799528841747705262790893060869967725754113423577949287428055031342835017394873849268166830845285538772408724502838205880141361425874289752358177727564491408681107797750229630774567204399073465344985770435712032358964962166608877343384612730386893588409142185208246048847047772568621234216726038676575832578794988362531300763919522777462487405855508093578669436974655955390615919848725326500723931205818166653195950706037348463614858409295172215171630127766805940547835944567748953474596816292300235499132695588589245125577117894376621175315040365754634930871467768615215520510726459969727025886883849827612227820322829435234342501128553854276274391143076211011580418863909736719995970792739451724179238610791379275154909395361431808383465214258851486819662604316047917521649154720618142375604487603706666120533604417689845760316625652743208299631193231373722240725114329408210714996867477775283352187219888599136109530166774276291410054760730614376339630974860564389792850496248062602677836594348909053410776649194834957039635192239691913169488352487261420547892965364608880139453477628664243145993167868961337698611801638090389056733265817011070993438467710772416508289549100310037659495336602690268398214418226052540843924024061601550163133720039394354856842449258195944714534605192097399928095391423417119643406323186845516876614624734295201319654868749615942943050472342461526481751888079963563558754232611785732310231285031868782628582732070081680764048706916413951528626045342109671306749395719183133474787619589073959910525870076443167679635103418925581782316909781379766744480678450158636327168828119554724841412418047092156292555694691925654462503006249836594914721943916788014432606657940866267352426464280337035129136677116316499802472995642067267281573223574676263205767443090346776005955129579410185493424915404819923004297829562825391260360464846868485637570686804559573989456804496700916627952883984566582155019830426039706385467200213863674146487157105991538131035576768455220534037536596521625874095931951003332673705240278283958091813652442786988249068828731773123714781028348316817448637310377938812563769319213386092134831210572007116015665329894668970399577212445108776671049519954586583776345046630233340821779619777617421135260399064977648097829650764380903315169317878805906513840641076932277371407233494960419841119521473571155164380656135256952695653170330761806028019513840193912710860948562640334974531724647195070037656329628747504752081529486660874351840531994603483975160000255305435821352448189399117582420782136045949527844102904857084266443319220123246495796224856224210344906324361325816089790669964279727463422803411873420157907797159236037127661792418139476903099647764700605022693971741933064494768075434691370411284867260271453969754193645939129037555702559606202968676431440184068503460933776728827147704053210866047993194822020338262002357204316509475304552813214748898663187358750711771406543725627503228033254587386033215638889465607265667555558417627070879952203473024371433652089415988278122898636501859630815163694315413849877801609560582771643300941285109333911828866246480408241246497218675947645993059577280430124105763730765758990001376992818894295602354236120974540689770801374132355531407045617361889069108414572983344906653582042905357844198376783130510188140373676438099418123248462559959323214397825122831445835872753272795790552187999846388962749993626718478826361704030042015313834191259360519000157244375459747268413164721727725806252756799536645530814093972388379422078773578984258590682648674696212501554776280757075678286026556677592165058828839634203205993255603973513032154795509077590906113024553689081024618309359249122970501036982630852689592327776283445597261765404802023584651249281011743719679846258558802191380988242666576733589634567589963025815691581901061324671445001864004428743817228370437388404773014881842926582685736482856440466765437746419471851143742730123675637050985476443069619714723663872550824156467974635901879450531818226210463310046578968090883339256423985455415597393931214182682724299097846942918773064819576307056315964231348598786850417769079419067656489835761513855433212306631134974329439223560525050065028205445448467185562137946108673123414386884922401990940243628394199396000520985819492468108876402888852149306592707878133895605912825885737438129349055754797769215510444600873604546043676305935820432818325064432325909372445763419050760822420691343733242771059281971368197820724642254871191406292466292446452365415137089864805279353702266101696926883233921208159365376699956245118816033861990670577989500229383145976623713208325648525801117493866119787865199647275975475621913796036559807053633181430169581790408893010634226477166754474586590453862175210410400264879226509665612857523082769066694779144321932386663144281430685224147661603704263178855645626180437999907250263628985779962503284110457893510243456339907110162592037287578814892298604840756716560173937314490122837516819354430138187525276143980446070577258671228104306756156624726600041966624764672046109828762632595917393837601051493509556501831344939964943667817220003901840621327799145903534457836854350474141389276822483303676168174312457457347622683621829853213477367637036959380817564921018040160990083167674109809936464295439454375951414973033948680576226474692033241144791313352603725507823046715119321110362109552839360905342819851546340469985170079936791761756076132676110023778885543494712435752749840294117994277462002473470118581186858613657466349869204025282354462563072266332953935726355074962818613537033493299619268839378634565031156889316185882407642226409216427314834832465920465419951893725437842057013305273989356664382756932210201794123993469284883578943151172792222640774403436511610501704555694769826792647246470614242642446166083259507498690645651645448432095436333666479137578385379964692483312475263954141073591323612470411785159587676988880874920593130816135318323802273711389766793324781746711003072038660764996103464830866882328824118755153859105544830544834124176330235617778394342921667460880872235766738067381913675372742753866602679513537792458377829516162536277236866652389756837376382630966589580783954942968507333715333728399369668493074587476005711502248648320778993345960438058132674194780613459785723315531766086366359984266993011765362981264304348034169463453067186991115774862714712590813338285938052438585362776126315584038261142599746607101677743209889802447315100988558939942756114134698021288980716750094648072673781998875790460964917221830063270127493816104498569341078069923055935526329433404292526437068750724449913819719099235259356805897896733507717649413384065229117488300170726859671877171504778225122371014370793026875498911240918146535384068252563526017189975878878081367159110163604481579326949667012152253059396855820713472631063007360877607250166619168000913366600095453701648969134681664946505905903193224108237983213704982947895402115900081810561294423084182557485963586569519573621289613215657774525412465581868287430379057506648661610079234733858257910769160291925959619198845632294749219946069139488681880154669358277523481689713651352564084249322175757885143085295227508958805160146072379746487022590326254172373858422838378550016902137043341424190802277533772558989233085349296871220304028223925500489450703096750030289627419802779742051440581104162529827290151149509113548829159908920322181283607289501312917580394261577933295033534749804883434063604023756225803255854590522233500450255374528525468736522801332266402384834228406568040700470734413471387476270405051735789177184609636939263226407035169216868049448697868925168891118798200565992801628734218887773234452544478537877085254179465206604571790723657471519470301138413751585666220302107427948035688416840413888340126048644360117773194016312223644011339094278714499594109819996278565478698419236835100835432407307703690877127000793768011172956258712210177194526923108799713257066676160545140784882487405715370376223014006377500341260345577869745917275713564108001229265298164403152340134920528532642584861570861255905787907907719057429337603095946507597434366511510077454911587322305897510354249239994340370433658753122825313968392954930833979523530600765237617323466695647559232207292625805532103728784644154403508414712486824428333047388034310927665032031166089849186056537332404140588376376439662858473109182801361159969220054413632669918911547331319717520248695625800444218650232221387528754045514429167683954430437366983595537503583617873292403743172202719620232031231183167983189090146750947617815221518256404804491073109477797949264543939634071054333844702418354419654342931078245993812501997251489990970458799841108334084939725445008243478907560601432171556589814480090058525855635844507142745384341366314146899789423649248186330460009279727835921069433114628590676095407836654705657124759462401839207455328872442460154772023415944106069526151961021223481037315916327610559418783193176178561720854123270758330754908321398548628977163040683899309792189961976146542445772399729509417668641075892485958485451264401053840654789578372887166885195694949067783869843189335207848032063185719836269592703106811031464325118929497173515025624669734428625098994300635858663181021765016179966781133763768994782940221040782405289386171914885985536706980709653716388505094177594703305166797782734626585087828804074930880078681288193785356914372168058928205022908451205391971282813777649216738369662872690487270143949060159138230031101337143223391209276433627024173282739721870048091394386411003798969221081801675059737659546627696703747085510938348863122420567279364508041071757351412815741155197878878537244693352345003460307330068594587606214434186314386096125995321681283326849734281732282001595297132314206213015355886500864308024419423035822386509938055237922864121046180095455242294995961596391938428173369234984070376518928728266711552215767812723267727082923115141494470858125851253893815797564079706474632571077348976895107919139880051671903417494448855663845867962528845258574203584018397728985829336008857215288373431162860469202965940739551341929334741952231336282985393027483152690095124325754689382005271644972887815512291533317703882728117078004375150013924885036506690285954285833873978295545994052427792364281014576191186511341109560014805707205310818128907376898531476736321990698362884977551033623201541233187222165007385645665607012036185042902025933806509609262904330123453406426705929368539300723878110004418620688500740469008688721745508221168852883224590183420085825416608197405505348189769056394020193154262769364031569768960108945424001976107979325963911070636864772249384903713545324667003885937190079150621138736245360247454883165993424212359145279674246189094859692672696968918362365519963261022995606523538944996308203215095427190936039813801541320832298890393193374734204212569079771320880306043922238978835421483938442827816193885199625641174383786054863223877777797493293710343254135315896420919225063528554036120410310642455705515120712983524450061762814676162355584012905512056454938701212661212711113562230821842327092622378718286582115520746421354385788492049305293490970487170389795334183360039601047249409808948375327052276982036813022943231448673679045420101796703548172165295898504190223254494130651597955317307876533043616901757314451207765099307117644711343145675511372194318148093354104859504402506728296208366110193834419814400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Exiting SAGE (CPU time 0m0.25s, Wall time 0m2.91s). '201.67.' ************** SAGE ***************** Host 201.67.83.116 (201.67.83.116) Time: Sun Jun 11 19:22:52 2006 Input: a=2 a**10000 Output: _4 = 19950631168807583848837421626835850838234968318861924548520089498529438830221946631919961684036194597899331129423209124271556491349413781117593785932096323957855730046793794526765246551266059895520550086918193311542508608460618104685509074866089624888090489894838009253941633257850621568309473902556912388065225096643874441046759871626985453222868538161694315775629640762836880760732228535091641476183956381458969463899410840960536267821064621427333394036525565649530603142680234969400335934316651459297773279665775606172582031407994198179607378245683762280037302885487251900834464581454650557929601414833921615734588139257095379769119277800826957735674444123062018757836325502728323789270710373802866393031428133241401624195671690574061419654342324638801248856147305207431992259611796250130992860241708340807605932320161268492288496255841312844061536738951487114256315111089745514203313820202931640957596464756010405845841566072044962867016515061920631004186422275908670900574606417856951911456055068251250406007519842261898059237118054444788072906395242548339221982707404473162376760846613033778706039803413197133493654622700563169937455508241780972810983291314403571877524768509857276937926433221599399876886660808368837838027643282775172273657572744784112294389733810861607423253291974813120197604178281965697475898164531258434135959862784130128185406283476649088690521047580882615823961985770122407044330583075869039319604603404973156583208672105913300903752823415539745394397715257455290510212310947321610753474825740775273986348298498340756937955646638621874569499279016572103701364433135817214311791398222983845847334440270964182851005072927748364550578634501100852987812389473928699540834346158807043959118985815145779177143619698728131459483783202081474982171858011389071228250905826817436220577475921417653715687725614904582904992461028630081535583308130101987675856234343538955409175623400844887526162643568648833519463720377293240094456246923254350400678027273837755376406726898636241037491410966718557050759098100246789880178271925953381282421954028302759408448955014676668389697996886241636313376393903373455801407636741877711055384225739499110186468219696581651485130494222369947714763069155468217682876200362777257723781365331611196811280792669481887201298643660768551639860534602297871557517947385246369446923087894265948217008051120322365496288169035739121368338393591756418733850510970271613915439590991598154654417336311656936031122249937969999226781732358023111862644575299135758175008199839236284615249881088960232244362173771618086357015468484058622329792853875623486556440536962622018963571028812361567512543338303270029097668650568557157505516727518899194129711337690149916181315171544007728650573189557450920330185304847113818315407324053319038462084036421763703911550639789000742853672196280903477974533320468368795868580237952218629120080742819551317948157624448298518461509704888027274721574688131594750409732115080498190455803416826949787141316063210686391511681774304792596709376 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '201.67.' ************** SAGE ***************** Host 201.67.83.116 (201.67.83.116) Time: Sun Jun 11 19:22:19 2006 Input: a=1 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '71.230.' ************** SAGE ***************** Host 71.230.102.157 (71.230.102.157) Time: Sun Jun 11 19:21:24 2006 Input: x^2-2x-12 Output: Errors: ------------------------------------------------------------ File "", line 1 x**ZZ(2)-ZZ(2)x-ZZ(12) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.230.' ************** SAGE ***************** Host 71.230.102.157 (71.230.102.157) Time: Sun Jun 11 19:21:01 2006 Input: x Output: _3 = x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.220.' ************** SAGE ***************** Host 68.220.80.206 (68.220.80.206) Time: Sun Jun 11 19:20:23 2006 Input: 5000/60 Output: _3 = 250/3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '68.220.' ************** SAGE ***************** Host 68.220.80.206 (68.220.80.206) Time: Sun Jun 11 19:20:08 2006 Input: 5000/60= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5000)/ZZ(60)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '72.148.' ************** SAGE ***************** Host 72.148.97.52 (72.148.97.52) Time: Sun Jun 11 19:04:15 2006 Input: 6 1/2-5 3/4 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(6) ZZ(1)/ZZ(2)-ZZ(5) ZZ(3)/ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '72.148.' ************** SAGE ***************** Host 72.148.97.52 (72.148.97.52) Time: Sun Jun 11 19:04:09 2006 Input: 6 1/2-5 3/4 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(6) ZZ(1)/ZZ(2)-ZZ(5) ZZ(3)/ZZ(4) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.141.' ************** SAGE ***************** Host 69.141.113.184 (69.141.113.184) Time: Sun Jun 11 18:36:51 2006 Input: x+25=5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.141.' ************** SAGE ***************** Host 69.141.113.184 (69.141.113.184) Time: Sun Jun 11 18:36:33 2006 Input: x+25=5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.141.' ************** SAGE ***************** Host 69.141.113.184 (69.141.113.184) Time: Sun Jun 11 18:36:21 2006 Input: x2+25=5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.141.' ************** SAGE ***************** Host 69.141.113.184 (69.141.113.184) Time: Sun Jun 11 18:36:08 2006 Input: x2+y2=5 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.115.' ************** SAGE ***************** Host 71.115.178.14 (71.115.178.14) Time: Sun Jun 11 17:10:12 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.92.1' ************** SAGE ***************** Host 70.92.149.208 (70.92.149.208) Time: Sun Jun 11 15:11:13 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.247.' ************** SAGE ***************** Host 71.247.193.131 (71.247.193.131) Time: Sun Jun 11 12:14:42 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.7.13' ************** SAGE ***************** Host 65.7.133.74 (65.7.133.74) Time: Sun Jun 11 11:40:25 2006 Input: 10 - 2 / 5 / 12 Output: _3 = 299/30 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '68.98.1' ************** SAGE ***************** Host 68.98.140.152 (68.98.140.152) Time: Sun Jun 11 11:31:08 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.61.1' ************** SAGE ***************** Host 84.61.155.249 (84.61.155.249) Time: Sun Jun 11 10:11:42 2006 Input: axiom('1+1') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'axiom' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.61.1' ************** SAGE ***************** Host 84.61.155.249 (84.61.155.249) Time: Sun Jun 11 10:11:29 2006 Input: axiom('1+1) Output: Errors: ------------------------------------------------------------ File "", line 1 axiom('1+1) ^ SyntaxError: EOL while scanning single-quoted string Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '84.61.1' ************** SAGE ***************** Host 84.61.155.249 (84.61.155.249) Time: Sun Jun 11 10:11:11 2006 Input: "axiom('1+1)" Output: _3 = "axiom('1+1)" Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.61.1' ************** SAGE ***************** Host 84.61.155.249 (84.61.155.249) Time: Sun Jun 11 10:10:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '70.111.' ************** SAGE ***************** Host 70.111.173.232 (70.111.173.232) Time: Sun Jun 11 08:44:52 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:42:20 2006 Input: A = maxima("A:matrix([a,b],[c,d]); A.A;") Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.38s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:41:52 2006 Input: A = maxima("A:matrix([a,b],[c,d])"); maxima("A.A"); Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.31s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:41:33 2006 Input: A = maxima("A:matrix([a,b],[c,d])"); A.A; Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.34s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:41:21 2006 Input: A = maxima("A:matrix([a,b],[c,d])"); print(A); A.A; Output: matrix([a,b],[c,d]) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.35s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:41:12 2006 Input: A = maxima("A:matrix([a,b],[c,d])"); print(A); Output: matrix([a,b],[c,d]) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.32s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:40:56 2006 Input: A = maxima("A:matrix([a,b],[c,d])"); print(A) Output: matrix([a,b],[c,d]) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.42s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:39:46 2006 Input: A = maxima("A:matrix([a,b],[c,d])"); A Output: _3 = matrix([a,b],[c,d]) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.36s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:39:18 2006 Input: sage: A = maxima("A:matrix([a,b],[c,d])") Output: Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.42s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:36:00 2006 Input: A=maxima("A:matrix([a,b],[c,d]);") maxima("A;") Output: _4 = matrix([a,b],[c,d]) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.38s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:35:33 2006 Input: A=maxima("A:matrix([a,b],[c,d]);") A Output: _4 = matrix([a,b],[c,d]) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.30s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:35:24 2006 Input: A=maxima("A:matrix([a,b],[c,d]);") Output: Exiting SAGE (CPU time 0m0.06s, Wall time 0m1.01s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:33:35 2006 Input: maxima Output: _3 = Maxima Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:33:04 2006 Input: matrix([a,b],[c,d]); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:33:01 2006 Input: matrix([a,b],[c,d]); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:32:51 2006 Input: A=matrix([a,b],[c,d]); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.110.' ************** SAGE ***************** Host 70.110.33.14 (70.110.33.14) Time: Sun Jun 11 08:32:35 2006 Input: A:matrix([a,b],[c,d]); Output: Errors: ------------------------------------------------------------ File "", line 1 A:matrix([a,b],[c,d]); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.42.9' ************** SAGE ***************** Host 24.42.97.113 (24.42.97.113) Time: Sat Jun 10 22:31:11 2006 Input: (3-2x)^5 Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(3)-ZZ(2)x)**ZZ(5) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.38.7' ************** SAGE ***************** Host 71.38.76.251 (71.38.76.251) Time: Sat Jun 10 22:04:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.203.' ************** SAGE ***************** Host 64.203.140.16 (64.203.140.16) Time: Sat Jun 10 18:42:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.132.' ************** SAGE ***************** Host 71.132.225.187 (71.132.225.187) Time: Sat Jun 10 17:09:16 2006 Input: 4000/650 Output: _3 = 80/13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.132.' ************** SAGE ***************** Host 71.132.225.187 (71.132.225.187) Time: Sat Jun 10 17:08:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.68.2' ************** SAGE ***************** Host 68.68.224.129 (68.68.224.129) Time: Sat Jun 10 15:15:44 2006 Input: print maxima(sum(6/(n^2+n),n,1,infinity)); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.180.' ************** SAGE ***************** Host 24.180.152.122 (24.180.152.122) Time: Sat Jun 10 14:59:39 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:19:13 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) reduce? Output: Type: builtin_function_or_method Base Class: String Form: Namespace: Python builtin Docstring: reduce(function, sequence[, initial]) -> value Apply a function of two arguments cumulatively to the items of a sequence, from left to right, so as to reduce the sequence to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). If initial is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty. Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:18:54 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) dir(m) Output: _4 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:18:46 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) reduce(m) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: reduce expected at least 2 arguments, got 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:18:33 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) dir(m) Output: _4 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:18:27 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) dir? Output: Type: builtin_function_or_method Base Class: String Form: Namespace: Python builtin Docstring: dir([object]) -> list of strings Return an alphabetized list of names comprising (some of) the attributes of the given object, and of attributes reachable from it: No argument: the names in the current scope. Module object: the module attributes. Type or class object: its attributes, and recursively the attributes of its bases. Otherwise: its attributes, its class's attributes, and recursively the attributes of its class's base classes. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:18:16 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) sage.matrix? Output: Type: module Base Class: String Form: Namespace: Interactive File: /usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/__init__.py Docstring: Classes for matrix algebra. The most important classes are matrix and matrix_space. matrix_space -- top level definition of MatrixSpace class matrix -- definition of Matrix class The other modules define sometimes strange implementations of various aspects of matrix arithmetic. The matrix and matrix_space modules define a CLEAN UNIFIED interface to all this other functionality. The other modules are as follows: dense_matrix_pyx -- dense matrices over Z/pZ and Q in pyrex sparse_matrix -- sparse matrices over Z/pZ and Q sparse_matrix_pyx -- sparse matrices over Z/pZ and Q in pyrex Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:18:04 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) m? Output: Type: Matrix_dense_rational Base Class: String Form: [5 3 5 6] [0 2 4 7] Namespace: Interactive Docstring: The class{Matrix_dense_rational} class derives from class{Matrix_field}, and defines functionality for dense matrices over the field Q of rational numbers. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:56 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) m.dir Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'dir' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:51 2006 Input: m = MatrixSpace(QQ,2,4)([5,3,5,6,0,2,4,7]) m Output: _4 = [5 3 5 6] [0 2 4 7] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:44 2006 Input: m = MatrixSpace(QQ,4,2)([5,3,5,6,0,2,4,7]) m Output: _4 = [5 3] [5 6] [0 2] [4 7] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:40 2006 Input: m = Matrix(QQ,4,2)([5,3,5,6,0,2,4,7]) m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_dense_rational' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:38 2006 Input: m = Matrix(QQ,4,2)([5,3,5,6,0,2,4,7]) m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_dense_rational' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:37 2006 Input: m = Matrix(QQ,4,2)([5,3,5,6,0,2,4,7]) m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_dense_rational' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:09 2006 Input: m = Matrix(QQ,4,2)([5,3,5,6,0,2,4,7]) m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_dense_rational' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:17:04 2006 Input: m = Matrix('QQ',4,2)([5,3,5,6,0,2,4,7]) m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/constructor.py", line 53, in Matrix TypeError: R (=QQ) must be a ring. ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:16:54 2006 Input: m = Matrix(4,2)([5,3,5,6,0,2,4,7]) m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: Matrix() takes at least 3 arguments (2 given) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:16:46 2006 Input: m = Matrix(4,2)([5,3,5,6,0,2,4,7]) output m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: Matrix() takes at least 3 arguments (2 given) ------------------------------------------------------------ File "", line 1 output m ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:16:29 2006 Input: m = MatrixSpace('QQ',4,2)([5,3,5,6,0,2,4,7]) output m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 102, in MatrixSpace File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 119, in __init__ TypeError: base_ring must be a ring ------------------------------------------------------------ File "", line 1 output m ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:13:58 2006 Input: y = var('ZZ') f = x^2 + 5*y + 13 g = x^3 - 2*y + 5 f g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'var' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:13:55 2006 Input: y = Var('ZZ') f = x^2 + 5*y + 13 g = x^3 - 2*y + 5 f g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Var' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.160.' ************** SAGE ***************** Host 67.160.57.58 (67.160.57.58) Time: Sat Jun 10 14:13:43 2006 Input: f = x^2 + 5*y + 13 g = x^3 - 2*y + 5 f g Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'g' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '68.7.21' ************** SAGE ***************** Host 68.7.213.175 (68.7.213.175) Time: Sat Jun 10 13:31:27 2006 Input: 454*83 Output: _3 = 37682 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.7.21' ************** SAGE ***************** Host 68.7.213.175 (68.7.213.175) Time: Sat Jun 10 13:31:23 2006 Input: 454*.83 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(454)*.ZZ(83) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.7.21' ************** SAGE ***************** Host 68.7.213.175 (68.7.213.175) Time: Sat Jun 10 13:31:13 2006 Input: 11.37*40 Output: _3 = 454.79999999999995 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.7.21' ************** SAGE ***************** Host 68.7.213.175 (68.7.213.175) Time: Sat Jun 10 13:31:05 2006 Input: 11.37*40*.83 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(13,RR.precision()))('11.37')*ZZ(40)*.ZZ(83) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.7.21' ************** SAGE ***************** Host 68.7.213.175 (68.7.213.175) Time: Sat Jun 10 13:30:55 2006 Input: 11.37*40 Output: _3 = 454.79999999999995 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.62.' ************** SAGE ***************** Host 216.62.213.230 (216.62.213.230) Time: Sat Jun 10 13:16:35 2006 Input: 2**19937 > 2082! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)**ZZ(19937) > ZZ(2082)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.68.1' ************** SAGE ***************** Host 69.68.181.70 (69.68.181.70) Time: Sat Jun 10 12:20:50 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '4.154.1' ************** SAGE ***************** Host 4.154.126.180 (4.154.126.180) Time: Sat Jun 10 11:04:07 2006 Input: 6(a+30)=7[a-(3-a)] Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.229.' ************** SAGE ***************** Host 24.229.143.71 (24.229.143.71) Time: Sat Jun 10 08:45:16 2006 Input: 3x+3=15 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)x+ZZ(3)=ZZ(15) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '220.236' ************** SAGE ***************** Host 220.236.226.235 (220.236.226.235) Time: Sat Jun 10 05:05:11 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m1.77s). '24.45.3' ************** SAGE ***************** Host 24.45.37.235 (24.45.37.235) Time: Sat Jun 10 04:37:50 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.45.3' ************** SAGE ***************** Host 24.45.37.235 (24.45.37.235) Time: Sat Jun 10 04:37:46 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '62.84.8' ************** SAGE ***************** Host 62.84.82.3 (62.84.82.3) Time: Fri Jun 9 22:42:30 2006 Input: 0.833999999999999755*25/20 Output: _3 = 1.0424999999999996938 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '62.84.8' ************** SAGE ***************** Host 62.84.82.3 (62.84.82.3) Time: Fri Jun 9 22:42:13 2006 Input: 0.833999999999999755*25/20 Output: _3 = 1.0424999999999996938 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '62.84.8' ************** SAGE ***************** Host 62.84.82.3 (62.84.82.3) Time: Fri Jun 9 22:41:42 2006 Input: 20.849999999999994/25 Output: _3 = 0.833999999999999755 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '62.84.8' ************** SAGE ***************** Host 62.84.82.3 (62.84.82.3) Time: Fri Jun 9 22:41:24 2006 Input: 89-68.15 Output: _3 = 20.849999999999994 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '62.84.8' ************** SAGE ***************** Host 62.84.82.3 (62.84.82.3) Time: Fri Jun 9 22:40:57 2006 Input: 0.97*20+0.87*25+0.9*15+0.9*10+0.9*5 Output: _3 = 68.150000000000006 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '207.200' ************** SAGE ***************** Host 207.200.116.135 (207.200.116.135) Time: Fri Jun 9 19:30:37 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.221.' ************** SAGE ***************** Host 69.221.65.28 (69.221.65.28) Time: Fri Jun 9 19:07:19 2006 Input: (-2)^4 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '130.13.' ************** SAGE ***************** Host 130.13.108.147 (130.13.108.147) Time: Fri Jun 9 17:56:28 2006 Input: a=12345678901234567890*1234 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '199.126' ************** SAGE ***************** Host 199.126.208.149 (199.126.208.149) Time: Fri Jun 9 15:48:28 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.1.60' ************** SAGE ***************** Host 71.1.60.59 (71.1.60.59) Time: Fri Jun 9 12:46:32 2006 Input: 8+4(x-2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '193.95.' ************** SAGE ***************** Host 193.95.206.129 (193.95.206.129) Time: Fri Jun 9 12:38:51 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '74.132.' ************** SAGE ***************** Host 74.132.147.99 (74.132.147.99) Time: Fri Jun 9 10:30:14 2006 Input: 6+6 Output: _3 = 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:20:43 2006 Input: maxima('.5*e^(2*x)').integrate('x', 0, 1) float(0.5*(e^2/(2*log(e)) - 1/(2*log(e)))) Output: _3 = 0.5*(e^2/(2*log(e)) - 1/(2*log(e))) _4 = 1.5972640247326624 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:20:30 2006 Input: maxima('.5*e^(2*x)').integrate('x', 0, 1) float(maxima('.5*e^(2*x)').integrate('x', 0, 1)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1185, in __float__ ValueError: invalid literal for float(): 0.5*(0.5*e^2/log(e) - 0.5/log(e)) _3 = 0.5*(e^2/(2*log(e)) - 1/(2*log(e))) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.46s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:20:11 2006 Input: maxima('.5*e^(2*x)').integrate('x') float(0.25*e^(2*x)/log(e)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 200, in __float__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 426, in _mpfr_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. _3 = 0.25*e^(2*x)/log(e) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:19:04 2006 Input: maxima('.5*e^(2*x)').integrate('x') float(maxima('.5*e^(2*x)').integrate('x', 0, 1)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1185, in __float__ ValueError: invalid literal for float(): 0.5*(0.5*e^2/log(e) - 0.5/log(e)) _3 = 0.25*e^(2*x)/log(e) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.45s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:16:40 2006 Input: maxima('.5*e^(2*x)').integrate('x', 0, 1) Output: _3 = 0.5*(e^2/(2*log(e)) - 1/(2*log(e))) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.38s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:16:12 2006 Input: maxima('x*e^x').integrate('x', 0, 1) float((e*log(e) - e)/log(e)^2 + 1/log(e)^2) Output: _3 = (e*log(e) - e)/log(e)^2 + 1/log(e)^2 _4 = 1.0 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.48s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:15:55 2006 Input: maxima('x*e^x').integrate('x', 0, 1) ((e*log(e) - e)/log(e)^2 + 1/log(e)^2).float Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Function_arith' object has no attribute 'float' _3 = (e*log(e) - e)/log(e)^2 + 1/log(e)^2 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.44s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:15:38 2006 Input: maxima('x*e^x').integrate('x', 0, 1) Output: _3 = (e*log(e) - e)/log(e)^2 + 1/log(e)^2 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:15:08 2006 Input: maxima.integrate('x*e^x', 'x',0,1) Output: _3 = (e*log(e) - e)/log(e)^2 + 1/log(e)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.42s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:13:30 2006 Input: maxima.integrate('x*e^x', 'x') Output: _3 = (log(e)*x - 1)*%e^(log(e)*x)/log(e)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:10:08 2006 Input: 9*(-2)+(9/2)*(-2)^2+(9/8)*(-2)^3 Output: _3 = -9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:08:53 2006 Input: (-3*-2^2 + 1*-2^3) Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 10:08:28 2006 Input: (-1.5*-2^2 + .5*-2^3) Output: Errors: ------------------------------------------------------------ File "", line 1 (-RealField(max(6,RR.precision()))('1.5')*-ZZ(2)**ZZ(2) + .ZZ(5)*-ZZ(2)**ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '85.140.' ************** SAGE ***************** Host 85.140.52.103 (85.140.52.103) Time: Fri Jun 9 09:48:54 2006 Input: factor(123459876544886634) Output: _3 = 2 * 3 * 1533379 * 13419152141 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 09:48:15 2006 Input: maxima('(2*sqrt(9*x + 1)^3/27)-(2*sqrt(9*0 + 1)^3/27)') Output: _3 = 2*(9*x + 1)^(3/2)/27 - 2/27 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 09:47:43 2006 Input: (2*sqrt(9*x + 1)^3/27)-(2*sqrt(9*0 + 1)^3/27) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 795, in sqrt File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/complex_field.py", line 145, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/complex_number.py", line 76, in __init__ TypeError: unable to coerce (9*x + 1,0) to a ComplexNumber Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 09:47:05 2006 Input: (2*(9*x + 1)^1.5/27)-(2*(9*0 + 1)^1.5/27) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 601, in integer.Integer.__pow__ File "integer.pyx", line 204, in integer.Integer.__init__ TypeError: Unable to coerce 1.5000000000000000 (of type ) to an Integer. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 09:46:30 2006 Input: (2*(9*x + 1)^(3/2)/27)-(2*(9*0 + 1)^(3/2)/27) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 601, in integer.Integer.__pow__ File "integer.pyx", line 191, in integer.Integer.__init__ TypeError: Unable to coerce rational (=3/2) to an Integer. Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 09:46:14 2006 Input: 2*(9*x + 1)^(3/2)/27- 2*(9*0 + 1)^(3/2)/27 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)*(ZZ(9)*x + ZZ(1))**(ZZ(3)/ZZ(2))/ZZ(27)- ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 601, in integer.Integer.__pow__ File "integer.pyx", line 191, in integer.Integer.__init__ TypeError: Unable to coerce rational (=3/2) to an Integer. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 09:45:47 2006 Input: maxima.integrate('sqrt(1+(3*sqrt(x))^2)', 'x') Output: _3 = 2*(9*x + 1)^(3/2)/27 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 9 09:45:38 2006 Input: maxima.integrate('sqrt(1+(3*sqrt(x))^2)', 'x', 1, 'x') Output: _3 = ;sage4;;Isx - 1positive,negative,orzero?Isx - 1positive,negative,orzero?Isx - 1positive,negative,orzero? Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.95s). '64.201.' ************** SAGE ***************** Host 64.201.33.184 (64.201.33.184) Time: Fri Jun 9 07:32:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '164.67.' ************** SAGE ***************** Host 164.67.59.168 (164.67.59.168) Time: Fri Jun 9 03:53:10 2006 Input: 1+1= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1)+ZZ(1)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '195.250' ************** SAGE ***************** Host 195.250.185.26 (195.250.185.26) Time: Fri Jun 9 03:12:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.109.' ************** SAGE ***************** Host 71.109.103.109 (71.109.103.109) Time: Fri Jun 9 01:15:23 2006 Input: 4 (x=2) = 9x - 22 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4) (x=ZZ(2)) = ZZ(9)x - ZZ(22) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '217.220' ************** SAGE ***************** Host 217.220.105.226 (217.220.105.226) Time: Fri Jun 9 00:09:02 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.12s). '67.136.' ************** SAGE ***************** Host 67.136.84.216 (67.136.84.216) Time: Thu Jun 8 21:18:27 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '141.154' ************** SAGE ***************** Host 141.154.228.21 (141.154.228.21) Time: Thu Jun 8 18:57:30 2006 Input: 5(x+3)=9-4(3x-7) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)(x+ZZ(3))=ZZ(9)-ZZ(4)(ZZ(3)x-ZZ(7)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '87.202.' ************** SAGE ***************** Host 87.202.184.222 (87.202.184.222) Time: Thu Jun 8 18:30:08 2006 Input: R := PolynomialRing(Integers()); p15 := X^4-X^3-4*X^2+4*X+1; F := NumberField(p15); SetVerbose("UnitGroup", 6); UnitGroup(F); Output: Errors: ------------------------------------------------------------ File "", line 1 R := PolynomialRing(Integers()); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 p15 := X**ZZ(4)-X**ZZ(3)-ZZ(4)*X**ZZ(2)+ZZ(4)*X+ZZ(1); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 F := NumberField(p15); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'SetVerbose' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'UnitGroup' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '141.154' ************** SAGE ***************** Host 141.154.228.21 (141.154.228.21) Time: Thu Jun 8 18:24:15 2006 Input: 7 over 8 - 1 over 2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(7) over ZZ(8) - ZZ(1) over ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '71.126.' ************** SAGE ***************** Host 71.126.53.81 (71.126.53.81) Time: Thu Jun 8 17:24:35 2006 Input: x*x=169 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 15:02:48 2006 Input: a = (1-x)^3 b = x*(1-x)^2 c = (1-x)*x^2 d = x^3 print a + 3*b + 3*c + d a 3*b 3*c d Output: 1 _8 = -x^3 + 3*x^2 - 3*x + 1 _9 = 3*x^3 - 6*x^2 + 3*x _10 = -3*x^3 + 3*x^2 _11 = x^3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 15:02:34 2006 Input: a = (1-x)^3 b = x*(1-x)^2 c = (1-x)*x^2 d = x^3 print a + 3*b + 3*c + d Output: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 15:00:34 2006 Input: x*(1-x)^2 Output: _3 = x^3 - 2*x^2 + x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 14:59:30 2006 Input: (1-x)^3 Output: _3 = -x^3 + 3*x^2 - 3*x + 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 14:08:29 2006 Input: (1-x)^5 Output: _3 = -x^5 + 5*x^4 - 10*x^3 + 10*x^2 - 5*x + 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 14:08:29 2006 Input: (1-x)^5 Output: _3 = -x^5 + 5*x^4 - 10*x^3 + 10*x^2 - 5*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 14:08:02 2006 Input: (1-x)^4 Output: _3 = x^4 - 4*x^3 + 6*x^2 - 4*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 13:52:11 2006 Input: (1-x)^10 Output: _3 = x^10 - 10*x^9 + 45*x^8 - 120*x^7 + 210*x^6 - 252*x^5 + 210*x^4 - 120*x^3 + 45*x^2 - 10*x + 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 13:51:58 2006 Input: (1-x)^4 Output: _3 = x^4 - 4*x^3 + 6*x^2 - 4*x + 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 13:51:58 2006 Input: (1-x)^4 Output: _3 = x^4 - 4*x^3 + 6*x^2 - 4*x + 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.183.' ************** SAGE ***************** Host 67.183.15.15 (67.183.15.15) Time: Thu Jun 8 13:51:34 2006 Input: (1-x)^3 Output: _3 = -x^3 + 3*x^2 - 3*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '69.183.' ************** SAGE ***************** Host 69.183.136.48 (69.183.136.48) Time: Thu Jun 8 13:03:03 2006 Input: 7777777777777777777777777 Output: _3 = 7777777777777777777777777 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 8 12:04:47 2006 Input: maxima.diff('1/x', 'x') Output: _3 = -1/x^2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m5.48s). '69.47.8' ************** SAGE ***************** Host 69.47.84.72 (69.47.84.72) Time: Thu Jun 8 11:52:55 2006 Input: 72.5x6 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('72.5')x6 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '12.214.' ************** SAGE ***************** Host 12.214.38.61 (12.214.38.61) Time: Thu Jun 8 11:52:43 2006 Input: 76x4-(88+23/2)+92x21-265 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(76)x4-(ZZ(88)+ZZ(23)/ZZ(2))+ZZ(92)x21-ZZ(265) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '206.169' ************** SAGE ***************** Host 206.169.112.54 (206.169.112.54) Time: Thu Jun 8 11:36:25 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m19.10s). '68.254.' ************** SAGE ***************** Host 68.254.94.98 (68.254.94.98) Time: Thu Jun 8 11:33:00 2006 Input: 269x.6 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(269)x.gen(6) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '209.158' ************** SAGE ***************** Host 209.158.179.50 (209.158.179.50) Time: Thu Jun 8 10:44:46 2006 Input: average 96, 86, 92, and 84. Output: Errors: ------------------------------------------------------------ File "", line 1 average ZZ(96), ZZ(86), ZZ(92), and RealField(max(6,RR.precision()))('84.') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '209.158' ************** SAGE ***************** Host 209.158.179.50 (209.158.179.50) Time: Thu Jun 8 10:44:43 2006 Input: average 96, 86, 92, and 84. Output: Errors: ------------------------------------------------------------ File "", line 1 average ZZ(96), ZZ(86), ZZ(92), and RealField(max(6,RR.precision()))('84.') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '209.158' ************** SAGE ***************** Host 209.158.179.50 (209.158.179.50) Time: Thu Jun 8 10:44:41 2006 Input: average 96, 86, 92, and 84. Output: Errors: ------------------------------------------------------------ File "", line 1 average ZZ(96), ZZ(86), ZZ(92), and RealField(max(6,RR.precision()))('84.') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '209.158' ************** SAGE ***************** Host 209.158.179.50 (209.158.179.50) Time: Thu Jun 8 10:44:29 2006 Input: average pf 96, 86, 92, and 84. Output: Errors: ------------------------------------------------------------ File "", line 1 average pf ZZ(96), ZZ(86), ZZ(92), and RealField(max(6,RR.precision()))('84.') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '209.158' ************** SAGE ***************** Host 209.158.179.50 (209.158.179.50) Time: Thu Jun 8 10:43:39 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '209.158' ************** SAGE ***************** Host 209.158.179.50 (209.158.179.50) Time: Thu Jun 8 10:43:32 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.201.' ************** SAGE ***************** Host 69.201.190.181 (69.201.190.181) Time: Thu Jun 8 09:58:15 2006 Input: x^2 + 3 = 0 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '129.109' ************** SAGE ***************** Host 129.109.57.236 (129.109.57.236) Time: Thu Jun 8 09:25:47 2006 Input: 49*.11 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(49)*.ZZ(11) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.185.' ************** SAGE ***************** Host 24.185.42.228 (24.185.42.228) Time: Thu Jun 8 09:22:18 2006 Input: 21C5 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(21)C5 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '69.211.' ************** SAGE ***************** Host 69.211.98.138 (69.211.98.138) Time: Thu Jun 8 09:09:35 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '69.146.' ************** SAGE ***************** Host 69.146.145.97 (69.146.145.97) Time: Thu Jun 8 08:59:37 2006 Input: 15x7 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(15)x7 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '129.26.' ************** SAGE ***************** Host 129.26.133.101 (129.26.133.101) Time: Thu Jun 8 07:38:05 2006 Input: nnn; Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'nnn' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.141.' ************** SAGE ***************** Host 69.141.137.97 (69.141.137.97) Time: Thu Jun 8 06:10:47 2006 Input: show(plot(sin,0,10)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'show' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '213.78.' ************** SAGE ***************** Host 213.78.42.15 (213.78.42.15) Time: Wed Jun 7 23:54:51 2006 Input: 122+2 Output: _3 = 124 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '213.78.' ************** SAGE ***************** Host 213.78.42.15 (213.78.42.15) Time: Wed Jun 7 23:54:36 2006 Input: 122+2 Output: _3 = 124 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '68.237.' ************** SAGE ***************** Host 68.237.94.235 (68.237.94.235) Time: Wed Jun 7 23:02:19 2006 Input: 156.00-10%= Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(16,RR.precision()))('156.00')-ZZ(10)%= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '68.149.' ************** SAGE ***************** Host 68.149.165.22 (68.149.165.22) Time: Wed Jun 7 20:14:28 2006 Input: 40000000/125 Output: _3 = 320000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '70.184.' ************** SAGE ***************** Host 70.184.81.9 (70.184.81.9) Time: Wed Jun 7 19:08:32 2006 Input: 100000*.04 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(100000)*.ZZ(04) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '66.142.' ************** SAGE ***************** Host 66.142.151.249 (66.142.151.249) Time: Wed Jun 7 17:48:49 2006 Input: 3 Output: _3 = 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '74.227.' ************** SAGE ***************** Host 74.227.146.47 (74.227.146.47) Time: Wed Jun 7 15:59:36 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '209.204' ************** SAGE ***************** Host 209.204.185.12 (209.204.185.12) Time: Wed Jun 7 15:15:10 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.180.' ************** SAGE ***************** Host 67.180.250.158 (67.180.250.158) Time: Wed Jun 7 14:42:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.124.' ************** SAGE ***************** Host 71.124.112.113 (71.124.112.113) Time: Wed Jun 7 14:09:51 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.85.9' ************** SAGE ***************** Host 68.85.96.130 (68.85.96.130) Time: Wed Jun 7 13:57:35 2006 Input: 9y^2-20 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(9)y**ZZ(2)-ZZ(20) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.85.9' ************** SAGE ***************** Host 68.85.96.130 (68.85.96.130) Time: Wed Jun 7 13:56:39 2006 Input: 25-16y^2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(25)-ZZ(16)y**ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.162' ************** SAGE ***************** Host 216.162.146.12 (216.162.146.12) Time: Wed Jun 7 13:52:44 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Wed Jun 7 13:07:01 2006 Input: dir(100) Output: _3 = ['Hom', '__abs__', '__add_', '__add__', '__and__', '__class__', '__cmp__', '__contains__', '__delattr__', '__div_', '__div__', '__doc__', '__eq__', '__float__', '__floordiv', '__floordiv__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__hex__', '__init__', '__int__', '__invert__', '__le__', '__long__', '__lshift__', '__lt__', '__mod__', '__mul_', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__or__', '__pos__', '__pow__', '__pyx_vtable__', '__pyxdoc__init__', '__radd__', '__rand__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__str_malloc', '__sub_', '__sub__', '__truediv__', '__xor__', '_add_', '_and', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_init_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_lshift', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_mathml_', '_maxima_', '_maxima_init_', '_mpfr_', '_mul_', '_octave_', '_octave_init_', '_or', '_pari_', '_pari_init_', '_plot_', '_reduce_set', '_repr_', '_rich_to_bool', '_rshift', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_ring', 'binary', 'category', 'coprime_integers', 'copy', 'crt', 'db', 'degree', 'denominator', 'divides', 'dump', 'dumps', 'factor', 'factorial', 'gcd', 'inverse_mod', 'is_nonzero', 'is_one', 'is_prime', 'is_square', 'is_squarefree', 'is_unit', 'is_zero', 'isqrt', 'lcm', 'leading_coefficient', 'mod', 'multiplicative_order', 'next_prime', 'numerator', 'order', 'parent', 'powermod', 'powermodm_ui', 'quo_rem', 'rename', 'reset_name', 'save', 'set_si', 'set_str', 'sqrt', 'square_free_part', 'square_root', 'str', 'test_bit', 'valuation', 'version', 'xgcd'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Wed Jun 7 12:55:40 2006 Input: 10^9 2^29 Output: _3 = 1000000000 _4 = 536870912 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Wed Jun 7 12:55:30 2006 Input: 10**9 2**29 Output: _3 = 1000000000 _4 = 536870912 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Wed Jun 7 12:55:23 2006 Input: 10**9 2**28 Output: _3 = 1000000000 _4 = 268435456 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Wed Jun 7 12:42:36 2006 Input: 10**18 2**64 Output: _3 = 1000000000000000000 _4 = 18446744073709551616 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:16:35 2006 Input: 5711865984/100 Output: _3 = 1427966496/25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:15:46 2006 Input: 196960896*29 Output: _3 = 5711865984 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:14:12 2006 Input: 15681600*3.14*4 Output: _3 = 196960896.00000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:13:38 2006 Input: 3960*3960 Output: _3 = 15681600 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:12:13 2006 Input: 62099136000*3.144*1.33 Output: _3 = 259668779166.72000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:11:34 2006 Input: 3960*3960*3960 Output: _3 = 62099136000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:11:06 2006 Input: 8+8 Output: _3 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.177.83 (24.218.177.83) Time: Wed Jun 7 12:10:51 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.184.' ************** SAGE ***************** Host 24.184.5.44 (24.184.5.44) Time: Wed Jun 7 10:38:47 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '194.167' ************** SAGE ***************** Host 194.167.138.100 (194.167.138.100) Time: Wed Jun 7 10:13:52 2006 Input: Matrix(3,3); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: Matrix() takes at least 3 arguments (2 given) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '194.167' ************** SAGE ***************** Host 194.167.138.100 (194.167.138.100) Time: Wed Jun 7 10:13:33 2006 Input: 3+2 Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '129.107' ************** SAGE ***************** Host 129.107.36.139 (129.107.36.139) Time: Wed Jun 7 09:38:47 2006 Input: 75,9 Output: _3 = (75, 9) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.169' ************** SAGE ***************** Host 216.169.166.235 (216.169.166.235) Time: Wed Jun 7 08:42:39 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.53s). '81.170.' ************** SAGE ***************** Host 81.170.173.124 (81.170.173.124) Time: Wed Jun 7 07:47:39 2006 Input: 0.042802 per 1,000 people to xxxxx per 100 million Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(23,RR.precision()))('0.042802') per ZZ(1),ZZ(000) people to ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 xxxxx per ZZ(100) million ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '168.170' ************** SAGE ***************** Host 168.170.198.20 (168.170.198.20) Time: Wed Jun 7 07:16:10 2006 Input: 2+5 Output: _3 = 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '129.206' ************** SAGE ***************** Host 129.206.26.68 (129.206.26.68) Time: Wed Jun 7 04:30:48 2006 Input: print gap('GaloisField(7)'); Output: GF(7) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.48s). '129.206' ************** SAGE ***************** Host 129.206.26.68 (129.206.26.68) Time: Wed Jun 7 04:29:53 2006 Input: K:=GaloisField(7); Output: Errors: ------------------------------------------------------------ File "", line 1 K:=GaloisField(ZZ(7)); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '129.206' ************** SAGE ***************** Host 129.206.26.68 (129.206.26.68) Time: Wed Jun 7 04:29:39 2006 Input: K:=GaloisFiled(7); Output: Errors: ------------------------------------------------------------ File "", line 1 K:=GaloisFiled(ZZ(7)); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:59:55 2006 Input: f = (x-1)*(x-2)*(x-3)*(x-4) f(0) f(1) f(2) f(3) f(4) f(5) f(6) -1*-2*-3*-4 Output: _4 = 24 _5 = 0 _6 = 0 _7 = 0 _8 = 0 _9 = 24 _10 = 120 _11 = 24 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:52:52 2006 Input: f = (x-1)*(x-2)*(x-3)*(x-4) f(0) f(1) f(2) f(3) f(4) f(5) f(6) Output: _4 = 24 _5 = 0 _6 = 0 _7 = 0 _8 = 0 _9 = 24 _10 = 120 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:52:44 2006 Input: f = (x-1)*(x-2)*(x-3)*(x-4) f(0) f(1) f(2) f(3) f(4) f(5) Output: _4 = 24 _5 = 0 _6 = 0 _7 = 0 _8 = 0 _9 = 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:52:23 2006 Input: f = (x-1)*(x-2)*(x-3)*(x-4) f(0) f(1) f(2) f(3) f(4) Output: _4 = 24 _5 = 0 _6 = 0 _7 = 0 _8 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:50:21 2006 Input: (x-1)*(x-2)*(x-3)*(x-4) Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:50:07 2006 Input: (x-1)*(x-2) Output: _3 = x^2 - 3*x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:49:57 2006 Input: (x−1)*(x−2)*(x−3)*(x−4) f Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:49:51 2006 Input: f = (x−1)*(x−2)*(x−3)*(x−4) f Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:49:43 2006 Input: f = (x−1)(x−2)(x−3)(x−4) f Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:49:38 2006 Input: (x−1)(x−2)(x−3)(x−4) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:49:37 2006 Input: (x−1)(x−2)(x−3)(x−4) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:49:22 2006 Input: t = x (t−1)(t−2)(t−3)(t−4) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.43.246 (71.231.43.246) Time: Wed Jun 7 00:49:10 2006 Input: (t − 1)(t − 2)(t − 3)(t − 4) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '146.151' ************** SAGE ***************** Host 146.151.46.162 (146.151.46.162) Time: Tue Jun 6 21:39:20 2006 Input: factor(21021) Output: _3 = 3 * 7^2 * 11 * 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '219.95.' ************** SAGE ***************** Host 219.95.233.185 (219.95.233.185) Time: Tue Jun 6 21:33:45 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.68.1' ************** SAGE ***************** Host 24.68.132.228 (24.68.132.228) Time: Tue Jun 6 21:31:53 2006 Input: 503685.5+42130.27 Output: _3 = 545815.77000000002 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.68.1' ************** SAGE ***************** Host 24.68.132.228 (24.68.132.228) Time: Tue Jun 6 21:31:29 2006 Input: hhmhm Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'hhmhm' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '164.67.' ************** SAGE ***************** Host 164.67.59.79 (164.67.59.79) Time: Tue Jun 6 21:28:24 2006 Input: log (1000) Output: _3 = 6.9077552789821368 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '164.67.' ************** SAGE ***************** Host 164.67.59.79 (164.67.59.79) Time: Tue Jun 6 21:27:52 2006 Input: log(100) Output: _3 = 4.6051701859880918 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '164.67.' ************** SAGE ***************** Host 164.67.59.79 (164.67.59.79) Time: Tue Jun 6 21:27:34 2006 Input: log(10) Output: _3 = 2.3025850929940459 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '164.67.' ************** SAGE ***************** Host 164.67.59.79 (164.67.59.79) Time: Tue Jun 6 21:27:21 2006 Input: 10/2 Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '164.67.' ************** SAGE ***************** Host 164.67.59.79 (164.67.59.79) Time: Tue Jun 6 21:27:05 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '164.67.' ************** SAGE ***************** Host 164.67.59.79 (164.67.59.79) Time: Tue Jun 6 21:26:55 2006 Input: 2*3 Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:26:31 2006 Input: maxima.integrate('sqrt(1+9*x^4)','x') Output: _3 = 'integrate(sqrt(9*x^4 + 1),x) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:26:17 2006 Input: integrate('sqrt(1+9*x^4)','x') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:25:48 2006 Input: maxima('sqrt(1+9*x^4)').integrate('x') Output: _3 = 'integrate(sqrt(9*x^4 + 1),x) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:24:14 2006 Input: maxima('sqrt(1+9*x^4)').diff('x') Output: _3 = 18*x^3/sqrt(9*x^4 + 1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:19:57 2006 Input: sqrt(1) + sqrt(4) sqrt(1 + 4) Output: _3 = 3 _4 = 2.2360679774997898 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:06:17 2006 Input: maxima('sqrt(1+(e^x)^2)').diff('x') Output: _3 = e^(2*x)*log(e)/sqrt(e^(2*x) + 1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:05:47 2006 Input: maxima('2*pi*e^x*sqrt(1+(e^x)^2)').integrate('x',1,2) Output: _3 = ;sage4;;Isepositiveornegative?Isepositiveornegative?Isepositiveornegative? Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 21:01:34 2006 Input: maxima('s*pi*e^x*sqrt(1+(e^x)^2)').integrate('x',1,2) Output: _3 = ;sage4;;Isepositiveornegative?Isepositiveornegative?Isepositiveornegative? Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 20:54:37 2006 Input: maxima('1+(e^x)^2').diff('x') Output: _3 = 2*e^(2*x)*log(e) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '146.151' ************** SAGE ***************** Host 146.151.46.162 (146.151.46.162) Time: Tue Jun 6 20:53:03 2006 Input: factor(21021) Output: _3 = 3 * 7^2 * 11 * 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '146.151' ************** SAGE ***************** Host 146.151.46.162 (146.151.46.162) Time: Tue Jun 6 20:51:27 2006 Input: factor(10725) Output: _3 = 3 * 5^2 * 11 * 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '146.151' ************** SAGE ***************** Host 146.151.46.162 (146.151.46.162) Time: Tue Jun 6 20:50:19 2006 Input: factor(429) Output: _3 = 3 * 11 * 13 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '146.151' ************** SAGE ***************** Host 146.151.46.162 (146.151.46.162) Time: Tue Jun 6 20:50:04 2006 Input: factor(3861) Output: _3 = 3^3 * 11 * 13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.137.' ************** SAGE ***************** Host 71.137.0.122 (71.137.0.122) Time: Tue Jun 6 20:14:48 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '86.219.' ************** SAGE ***************** Host 86.219.164.47 (86.219.164.47) Time: Tue Jun 6 18:41:59 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:23:59 2006 Input: M = MatrixSpace(RationalField(),5,5) A = M([0,1,16,81,256, 0,-4,-32,-108,-256, 0,6,24,54,96, 0,-4,-8,-12,-16, 1,1,1,1,1]);A A = A^(-1);A V = VectorSpace(RationalField(),5) X = V([24,-50,35,-10,1]);X A*X Output: _4 = [ 0 1 16 81 256] [ 0 -4 -32 -108 -256] [ 0 6 24 54 96] [ 0 -4 -8 -12 -16] [ 1 1 1 1 1] _5 = [ 1/24 5/48 35/144 25/48 1] [ -1/6 -3/8 -13/18 -1 0] [ 1/4 1/2 19/24 3/4 0] [ -1/6 -7/24 -7/18 -1/3 0] [ 1/24 1/16 11/144 1/16 0] _7 = (24, -50, 35, -10, 1) _8 = (13/144, -19/36, 29/24, 11/36, -11/144) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:20:10 2006 Input: 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) (x-4)^4 M = MatrixSpace(RationalField(),5,5) A = M([0,1,16,81,256, 0,-4,-32,-108,-256, 0,6,24,54,96, 0,-4,-8,-12,-16, 1,1,1,1,1]);A A = A^(-1); A Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 _4 = x^4 - 16*x^3 + 96*x^2 - 256*x + 256 _6 = [ 0 1 16 81 256] [ 0 -4 -32 -108 -256] [ 0 6 24 54 96] [ 0 -4 -8 -12 -16] [ 1 1 1 1 1] _7 = [ 1/24 5/48 35/144 25/48 1] [ -1/6 -3/8 -13/18 -1 0] [ 1/4 1/2 19/24 3/4 0] [ -1/6 -7/24 -7/18 -1/3 0] [ 1/24 1/16 11/144 1/16 0] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:18:44 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print "YO" ~BasisToStandard([(x-1)(x-2)(x-3)(x-4)/-1*-2*-3*-4, (x-0)*(x-2)*(x-3)*(x-4)/1*-1*-2*-3, (x-0)*(x-1)*(x-3)*(x-4)/2*1*-1*-2, (x-0)*(x-1)*(x-2)*(x-4)/3*2*1*-1, (x-0)*(x-1)*(x-2)*(x-3)/4*3*2*1])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: YO 5 _5 = [-1/10] [ -3/5] [-24/5] [-21/5] [ -2/5] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:18:22 2006 Input: 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) (x-4)^4 Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 _4 = x^4 - 16*x^3 + 96*x^2 - 256*x + 256 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:18:21 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m ~BasisToStandard([(x-1)(x-2)(x-3)(x-4)/-1*-2*-3*-4, (x-0)*(x-2)*(x-3)*(x-4)/1*-1*-2*-3, (x-0)*(x-1)*(x-3)*(x-4)/2*1*-1*-2, (x-0)*(x-1)*(x-2)*(x-4)/3*2*1*-1, (x-0)*(x-1)*(x-2)*(x-3)/4*3*2*1])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: 5 _4 = [-1/10] [ -3/5] [-24/5] [-21/5] [ -2/5] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:17:36 2006 Input: 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) (x-3)^4 Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 _4 = x^4 - 12*x^3 + 54*x^2 - 108*x + 81 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:17:12 2006 Input: 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) (x-2)^4 Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 _4 = x^4 - 8*x^3 + 24*x^2 - 32*x + 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:16:26 2006 Input: 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) (x-1)^4 Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 _4 = x^4 - 4*x^3 + 6*x^2 - 4*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:16:22 2006 Input: x = 3 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) (x-1)^4 Output: _4 = 0 _5 = 16 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:12:05 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m ~BasisToStandard([(x-0)^4,(x-1)^4,(x-2)^4,(x-3)^4,(x-4)^4])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: 5 _4 = [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:11:11 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([(x-0)^4,(x-1)^4,(x-2)^4,(x-3)^4,(x-4)^4]) Output: ...: ...: ...: ...: ...: ...: ...: ...: 5 _4 = [ 0 1 16 81 256] [ 0 -4 -32 -108 -256] [ 0 6 24 54 96] [ 0 -4 -8 -12 -16] [ 1 1 1 1 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:09:29 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result print type([CBern(i,3) for i in range(4)][0]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:09:15 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result print type([CBern(i,3) for i in range(4)]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:08:52 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result [CBern(i,3) for i in range(4)] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [1, x^3 - 3*x^2 + 3*x, -2*x^3 + 3*x^2, x^3] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:08:22 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) f = (x^2) print type(f) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:08:12 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) f = PolynomialRing(QQ)(x^2) print type(f) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:08:00 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) f = PolynomialRing(QQ)(x^x) print type(f) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 415, in element.RingElement.__pow__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 207, in __int__ TypeError: cannot coerce nonconstant polynomial to int ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:07:48 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) f = PolynomialRing(QQ)() print type(f) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:07:20 2006 Input: x = 3 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) Output: _4 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:07:16 2006 Input: x = 2 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) Output: _4 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:07:11 2006 Input: x = 1 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) Output: _4 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:07:11 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) f = PolynomialRing(QQ) print type(f) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:07:07 2006 Input: x = 0 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) Output: _4 = 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 15:07:03 2006 Input: x = -1 24 - 24*(x-0) + 12*(x-0)*(x-1) - 4*(x-0)*(x-1)*(x-2) + (x-0)*(x-1)*(x-2)*(x-3) Output: _4 = 120 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:07:02 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) f = PolynomialRing(QQ) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:05:56 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) f = Polynomial_rational_dense(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Polynomial_rational_dense' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:05:33 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a print type(a) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:05:21 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a a.? Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Object `a.` not found. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:05:17 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a a.? Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 3*x^4 - 8*x^3 + 6*x^2 Object `a.` not found. Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:04:49 2006 Input: def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result a = CBern(2,4) print a a.? Output: Errors: ------------------------------------------------------------ File "", line 9 k): ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'n' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'k' is not defined ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in CBern File "", line 2, in Bern File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 4.0000000000000000 + 2.0000000000000000*I (parent: Complex Field with 53 bits of precision) and x^2 (parent: Univariate Polynomial Ring in x over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Object `a.` not found. Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:03:22 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([[1], [x^3 - 3*x^2 + 3*x], [-2*x^3 + 3*x^2], [x^3]]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 7, in BasisToStandard IndexError: list index out of range ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:02:43 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result def BasisToStandard(a): n = len(a) print n m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([1, x^3 - 3*x^2 + 3*x, -2*x^3 + 3*x^2, x^3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 7, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:01:56 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result def BasisToStandard(a): n = len(a) print n BasisToStandard([1, x^3 - 3*x^2 + 3*x, -2*x^3 + 3*x^2, x^3]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:01:19 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([1, x^3 - 3*x^2 + 3*x, -2*x^3 + 3*x^2, x^3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:00:51 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m [CBern(i,3) for i in range(4)] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [1, x^3 - 3*x^2 + 3*x, -2*x^3 + 3*x^2, x^3] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:00:38 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def CBern(n,d): result = 0 for i in range(n,d+1): result += Bern(i,d) return result def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([CBern(i,3) for i in range(4)]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [ 1 0 0 0] [ 0 3 0 0] [ 0 -3 3 0] [ 0 1 -2 1] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:00:20 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([[1],[x]]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard IndexError: list index out of range ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 15:00:07 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([[x]]) Output: ...: ...: ...: ...: ...: ...: ...: _4 = [0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:59:46 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([1]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:59:42 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([1]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:59:20 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([2*x*x, x*x*x]) Output: ...: ...: ...: ...: ...: ...: ...: _4 = [0 0] [0 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:59:10 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([x*x, x*x*x]) Output: ...: ...: ...: ...: ...: ...: ...: _4 = [0 0] [0 0] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:58:54 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m Output: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:58:27 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([1,x]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:57:58 2006 Input: def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m BasisToStandard([1,x,x^2]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:48:01 2006 Input: (x-1)*(x-2)*(x-3)*(x-4) Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:47:47 2006 Input: (x-1) Output: _3 = x - 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:47:41 2006 Input: (x-1)(x-2) Output: _3 = x - 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:47:37 2006 Input: (x-1)(x-2)(x-3) Output: _3 = x - 6 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:42:56 2006 Input: (x-1)(x-2)(x-3)(x-4) Output: _3 = x - 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:42:45 2006 Input: (t-1)(t-2)(t-3)(t-4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 14:41:39 2006 Input: x = -1 (x-1)*(x-2)*(x-3)*(x-4) Output: _4 = 120 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 14:41:00 2006 Input: x = 2 (x-1)*(x-2)*(x-3)*(x-4) Output: _4 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 14:40:49 2006 Input: x = 1 (x-1)*(x-2)*(x-3)*(x-4) Output: _4 = 0 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 14:40:38 2006 Input: x = 0 (x-1)*(x-2)*(x-3)*(x-4) Output: _4 = 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 14:30:56 2006 Input: (x-1)*(x-2)*(x-3)*(x-4) Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:20:13 2006 Input: f = 1 + 2*(x+1)-x*(x+1)-x*(x+1)*(x-1) f f(-1) f(0) f(1) f(2) -5 - 3 Output: _4 = -x^3 - x^2 + 2*x + 3 _5 = 1 _6 = 3 _7 = 3 _8 = -5 _9 = -8 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:17:13 2006 Input: f = (x)*(x-1)*(x-2)/(-1*-2*-3) + 3*(x+1)*(x-1)*(x-2)/(1*-1*-2) + 3*(x+1)*(x)*(x-2)/(2*1*-1) + -5*(x+1)*(x)*(x-1)/(3*2*1) f f(-1) f(0) f(1) f(2) -5 - 3 Output: _4 = -x^3 - x^2 + 2*x + 3 _5 = 1 _6 = 3 _7 = 3 _8 = -5 _9 = -8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:16:53 2006 Input: f = (x)*(x-1)*(x-2)/(-1*-2*-3) + 3*(x+1)*(x-1)*(x-2)/(1*-1*-2) + 3*(x+1)*(x)*(x-2)/(2*1*-1) + -5*(x+1)*(x)*(x-1)/(3*2*1) f f(-1) f(0) f(1) f(2) Output: _4 = -x^3 - x^2 + 2*x + 3 _5 = 1 _6 = 3 _7 = 3 _8 = -5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 14:16:47 2006 Input: f = (x)*(x-1)*(x-2)/(-1*-2*-3) + 3*(x+1)*(x-1)*(x-2)/(1*-1*-2) + 3*(x+1)*(x)*(x-2)/(2*1*-1) + -5*(x+1)*(x)*(x-1)/(3*2*1) f(-1) f(0) f(1) f(2) Output: _4 = 1 _5 = 3 _6 = 3 _7 = -5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '130.123' ************** SAGE ***************** Host 130.123.225.69 (130.123.225.69) Time: Tue Jun 6 14:03:46 2006 Input: 3+4 Output: _3 = 7 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:58:21 2006 Input: f = (-x)*(1-x)*(2-x)/(-1*-2*-3) + 3*(-1-x)*(1-x)*(2-x)/(1*-1*-2) + 3*(-1-x)*(-x)*(2-x)/(2*1*-1) + -5*(-1-x)*(-x)*(1-x)/(3*2*1) f(-1) f(0) f(1) f(2) Output: _4 = -1 _5 = -3 _6 = -3 _7 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:58:16 2006 Input: f = )-x)*(1-x)*(2-x)/(-1*-2*-3) + 3*(-1-x)*(1-x)*(2-x)/(1*-1*-2) + 3*(-1-x)*(-x)*(2-x)/(2*1*-1) + -5*(-1-x)*(-x)*(1-x)/(3*2*1) f(-1) f(0) f(1) f(2) Output: Errors: ------------------------------------------------------------ File "", line 1 f = )-x)*(ZZ(1)-x)*(ZZ(2)-x)/(-ZZ(1)*-ZZ(2)*-ZZ(3)) + ZZ(3)*(-ZZ(1)-x)*(ZZ(1)-x)*(ZZ(2)-x)/(ZZ(1)*-ZZ(1)*-ZZ(2)) + ZZ(3)*(-ZZ(1)-x)*(-x)*(ZZ(2)-x)/(ZZ(2)*ZZ(1)*-ZZ(1)) + -ZZ(5)*(-ZZ(1)-x)*(-x)*(ZZ(1)-x)/(ZZ(3)*ZZ(2)*ZZ(1)) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:57:31 2006 Input: f = x*(1-x)*(2-x)/(-1*-2*-3) + 3*(-1-x)*(1-x)*(2-x)/(1*-1*-2) + 3*(-1-x)*(-x)*(2-x)/(2*1*-1) + -5*(-1-x)*(-x)*(1-x)/(3*2*1) f(-1) f(0) f(1) f(2) Output: _4 = 1 _5 = -3 _6 = -3 _7 = 5 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:57:02 2006 Input: f = 2*(1-x)*(2-x)/(-1*-2) + 3*(-x)*(2-x)/(1*-1) + 8*(-x)*(1-x)/(2*1) f Output: _4 = 2*x^2 - x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:56:59 2006 Input: f = 2*(1-x)*(2-x)/(-1*-2) + 3*(-x)*(2-x)/(1*-1) + 8*(-x)*(1-x)/(2*1) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:51:36 2006 Input: f = -x*(1-x)*(2-x)/(-1*-2*-3) + 3*(-1-x)*(1-x)*(2-x)/(1*-1*-2) + 3*(-1-x)*(-x)*(2-x)/(2*1*-1) + -5*(-1-x)*(-x)*(1-x)/(3*2*1) f(-1) f(0) f(1) f(2) Output: _4 = -1 _5 = -3 _6 = -3 _7 = 5 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:51:16 2006 Input: f = -x*(1-x)*(2-x)/(-1*-2*-3) + 3*(-1-x)*(1-x)*(2-x)/(1*-1*-2) + 3*(-1-x)*(-x)*(2-x)/(2*1*-1) + -5*(-1-x)*(-x)*(1-x)/(3*2*1) f Output: _4 = x^3 + x^2 - 2*x - 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:42:01 2006 Input: 1 + 2*(x+1) - (x+1)*x - (x+1)*x*(x-1) (x+1)*x (x+1)*x*(x-1) x = 1 1+2*(x+1) - (x+1)*(x-0) - (x+1)*x*(x-2) Output: _3 = -x^3 - x^2 + 2*x + 3 _4 = x^2 + x _5 = x^3 - x _7 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:41:35 2006 Input: 1 + 2*(x+1) - (x+1)*x - (x+1)*x*(x-1) 2*(x+1) (x+1)*x (x+1)*x*(x-1) x = 1 1+2*(x+1) - (x+1)*(x-0) - (x+1)*x*(x-2) Output: _3 = -x^3 - x^2 + 2*x + 3 _4 = 2*x + 2 _5 = x^2 + x _6 = x^3 - x _8 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:39:02 2006 Input: 1 + 2*(x+1) - (x+1)*x - (x+1)*x*(x-2) 2*(x+1) (x+1)*x (x+1)*x*(x-2) x = 1 1+2*(x+1) - (x+1)*(x-0) - (x+1)*x*(x-2) Output: _3 = -x^3 + 3*x + 3 _4 = 2*x + 2 _5 = x^2 + x _6 = x^3 - x^2 - 2*x _8 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:37:18 2006 Input: 1+2*(x+1) - (x+1)*(x) - (x+1)*x*(x-2) x = 1 1+2*(x+1) - (x+1)*(x-0) - (x+1)*x*(x-2) Output: _3 = -x^3 + 3*x + 3 _5 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:36:44 2006 Input: 1+2*(x+1) - (x+1)*(x-0) - (x+1)*x*(x-2) x = 1 1+2*(x+1) - (x+1)*(x-0) - (x+1)*x*(x-2) Output: _3 = -x^3 + 3*x + 3 _5 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:36:36 2006 Input: 1+2*(x+1) - (x+1)*(x-0) - (x+1)*x*(x-2) x = 2 Output: _3 = -x^3 + 3*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:33:39 2006 Input: det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8])) det(Matrix(QQ,4,4,[1,-1,1,1,1,0,0,3,1,1,1,3,1,2,4,-5])) f = 3 + 2*x + -x*x + -x*x*x f(-1) f(0) f(1) f(2) Output: _3 = 12 _4 = -12 _6 = 1 _7 = 3 _8 = 3 _9 = -5 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:33:23 2006 Input: 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) x = 2 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) Output: _3 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 _5 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:33:17 2006 Input: 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) x = 1 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) Output: _3 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 _5 = -1/3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:33:12 2006 Input: 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) x = 0 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) Output: _3 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 _5 = 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:33:11 2006 Input: det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8])) det(Matrix(QQ,4,4,[1,-1,1,1,1,0,0,3,1,1,1,3,1,2,4,-5])) Output: _3 = 12 _4 = -12 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:32:59 2006 Input: 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) x = -1 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) Output: _3 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 _5 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:32:47 2006 Input: 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) x = -1 _3 Output: _3 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 _5 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:32:21 2006 Input: det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8])) det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,3,0,1,1,3,1,1,2,-5,8])) Output: _3 = 12 _4 = -12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue Jun 6 13:32:15 2006 Input: 1+2*(x+1) - (x+1)*(x-0) + (5/3)*(x+1)*x*(x-2) Output: _3 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:31:12 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([0,1,16,81,256, 0,-4,-32,-108,-256, 0,6,24,54,96, 0,-4,-8,-12,-16, 1,1,1,1,1]) sage: A^(-1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3801, in __init__ TypeError: entries has wrong length ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:30:44 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([0,1,16,81,256, 0,-4,-32,-108,-256, 0,6,24,54,96, 0,-4,-8,-12,-16, 1,1,1,1,1]) sage: A.invert() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3801, in __init__ TypeError: entries has wrong length ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:29:09 2006 Input: det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8])) det(Matrix(QQ,4,4,[1,1,1,-1,1,3,0,0,1,3,1,1,1,-5,4,8])) Output: _3 = 12 _4 = 24 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:27:34 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([0,1,16,81,256, 0,-4,-32,-108,-256, 0,6,24,54,96, 0,-4,-8,-12,-16, 1,1,1,1,1]) sage: A.inverse() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3801, in __init__ TypeError: entries has wrong length ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:26:28 2006 Input: det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8])) det(Matrix(QQ,4,4,[1,-1,1,-1,3,0,0,0,3,1,1,1,-5,2,4,8])) Output: _3 = 12 _4 = 36 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:24:42 2006 Input: det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8])) Output: _3 = 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:21:54 2006 Input: a = 2 + x + 2*(x)*(x-1) a(0) a(1) a(2) Output: _4 = 2 _5 = 3 _6 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:21:48 2006 Input: a = 2 - x + 2*(x)*(x-1) a(0) a(1) a(2) Output: _4 = 2 _5 = 1 _6 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:21:46 2006 Input: a = 2 - x + 2*(x)*(x-1) a(0) a(1) a(2) Output: _4 = 2 _5 = 1 _6 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:21:26 2006 Input: a = 2 - x + 2*(-x)*(1-x) a(0) a(1) a(2) Output: _4 = 2 _5 = 1 _6 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:21:15 2006 Input: 2 - x + 2*(-x)*(1-x) Output: _3 = 2*x^2 - 3*x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:20:06 2006 Input: sage: A = (t-1)^4 sage: A Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:19:50 2006 Input: sage: (t-1)^4 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:18:51 2006 Input: a = 2*(1-x)*(2-x)/(-1*-2) + 3*(-x)*(2-x)/(1*-1) + 8*(-x)*(1-x)/(2*1) a a(0) a(1) a(2) Output: _4 = 2*x^2 - x + 2 _5 = 2 _6 = 3 _7 = 8 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:18:46 2006 Input: a = 2*(1-x)*(2-x)/(-1*-2) + 3*(-x)*(2-x)/(1*-1) + 8*(-x)*(1-x)/(2*1) a(0) a(1) a(2) Output: _4 = 2 _5 = 3 _6 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:18:16 2006 Input: a = 2*(1-x)*(2-x)/(-1*-2) + (-x)*(2-x)/(1*-1) + 8*(-x)*(1-x)/(2*1) a a(0) a(1) a(2) Output: _4 = 4*x^2 - 5*x + 2 _5 = 2 _6 = 1 _7 = 8 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:17:48 2006 Input: a = 2*(1-x)*(2-x)/(-1*-2) + (-x)*(2-x)/(1*-1) + 8*(-x)*(1-x)/(2*1) a(0) a(1) a(2) Output: _4 = 2 _5 = 1 _6 = 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:17:40 2006 Input: a = 2*(1-x)*(2-x)/(-1*-2) + (-x)*(2-x)/(1*-1) + 8*(-x)*(1-x)/(2*1) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:12:03 2006 Input: det(Matrix(QQ,3,3,[1,2,0,1,3,1,1,8,4])) det(Matrix(QQ,3,3,[1,0,0,1,1,1,1,2,4])) det(Matrix(QQ,3,3,[1,0,2,1,1,3,1,2,8])) Output: _3 = -2 _4 = 2 _5 = 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 13:11:12 2006 Input: det(Matrix(QQ,3,3,[1,2,0,1,3,1,1,8,4])) Output: _3 = -2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Tue Jun 6 12:45:44 2006 Input: maxima('2^x').diff('x') Output: _3 = log(2)*2^x Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Tue Jun 6 12:40:31 2006 Input: maxima('sqrt(1+(e^x)^2)').integrate('x') Output: _3 = (sqrt(e^(2*x) + 1) - asinh(1/abs(e^x)))/log(e) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.26s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Tue Jun 6 12:27:49 2006 Input: maxima('e^(2*x)').diff('x') Output: _3 = 2*e^(2*x)*log(e) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.29s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Tue Jun 6 12:13:47 2006 Input: maxima('e^-(x^2)').integrate('x') Output: _3 = sqrt(%pi)*erf(sqrt(log(e))*x)/(2*sqrt(log(e))) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:44:52 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = x^0 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) #2b a = 1*(x-0)*(x-1)*(x-2)/((-1-0)*(-1-1)*(-1-2)) b = 3*(x+1)*(x-1)*(x-2)/((0+1)*(0-1)*(0-2)) c = 3*(x+1)*(x-0)*(x-2)/((1+1)*(1-0)*(1-2)) d = -5*(x+1)*(x-0)*(x-1)/((2+1)*(2-0)*(2-1)) print a+b+c+d t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m #6c print ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) #6d print ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [ 24] [-24] [ 12] [ -4] [ 1] [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:44:47 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = x^0 for i in range(j): ret *= (t-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) #2b a = 1*(x-0)*(x-1)*(x-2)/((-1-0)*(-1-1)*(-1-2)) b = 3*(x+1)*(x-1)*(x-2)/((0+1)*(0-1)*(0-2)) c = 3*(x+1)*(x-0)*(x-2)/((1+1)*(1-0)*(1-2)) d = -5*(x+1)*(x-0)*(x-1)/((2+1)*(2-0)*(2-1)) print a+b+c+d t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m #6c print ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) #6d print ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N File "", line 4, in n NameError: global name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N File "", line 4, in n NameError: global name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in n File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1 (parent: Univariate Polynomial Ring in x over Rational Field) and t (parent: Univariate Polynomial Ring in t over Rational Field) 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.10s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:44:14 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) #2b a = 1*(x-0)*(x-1)*(x-2)/((-1-0)*(-1-1)*(-1-2)) b = 3*(x+1)*(x-1)*(x-2)/((0+1)*(0-1)*(0-2)) c = 3*(x+1)*(x-0)*(x-2)/((1+1)*(1-0)*(1-2)) d = -5*(x+1)*(x-0)*(x-1)/((2+1)*(2-0)*(2-1)) print a+b+c+d t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m #6c print ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) #6d print ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N File "", line 2, in n NameError: global name 't' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N File "", line 2, in n NameError: global name 't' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [ 24] [-24] [ 12] [ -4] [ 1] [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.10s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:43:02 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) #2b a = 1*(x-0)*(x-1)*(x-2)/((-1-0)*(-1-1)*(-1-2)) b = 3*(x+1)*(x-1)*(x-2)/((0+1)*(0-1)*(0-2)) c = 3*(x+1)*(x-0)*(x-2)/((1+1)*(1-0)*(1-2)) d = -5*(x+1)*(x-0)*(x-1)/((2+1)*(2-0)*(2-1)) print a+b+c+d t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m #6c #print ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range ##(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) #6d #print ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-#10,1]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.09s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:42:11 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) #2b a = 1*(x-0)*(x-1)*(x-2)/((-1-0)*(-1-1)*(-1-2)) b = 3*(x+1)*(x-1)*(x-2)/((0+1)*(0-1)*(0-2)) c = 3*(x+1)*(x-0)*(x-2)/((1+1)*(1-0)*(1-2)) d = -5*(x+1)*(x-0)*(x-1)/((2+1)*(2-0)*(2-1)) print a+b+c+d t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m #6c print ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) #6d print ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.11s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:37:41 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) print [(x-i)**4 for i in range(5)] print (x-1)**4 ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 24] [-24] [ 12] [ -4] [ 1] [x^4, x^4 - 4*x^3 + 6*x^2 - 4*x + 1, x^4 - 8*x^3 + 24*x^2 - 32*x + 16, x^4 - 12*x^3 + 54*x^2 - 108*x + 81, x^4 - 16*x^3 + 96*x^2 - 256*x + 256] x^4 - 4*x^3 + 6*x^2 - 4*x + 1 _13 = [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:37:31 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) print [(x-i)**4 for i in range(5)] (x-1)**4 ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 24] [-24] [ 12] [ -4] [ 1] [x^4, x^4 - 4*x^3 + 6*x^2 - 4*x + 1, x^4 - 8*x^3 + 24*x^2 - 32*x + 16, x^4 - 12*x^3 + 54*x^2 - 108*x + 81, x^4 - 16*x^3 + 96*x^2 - 256*x + 256] _12 = x^4 - 4*x^3 + 6*x^2 - 4*x + 1 _13 = [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:37:00 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) print [(x-i)**4 for i in range(5)] ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 24] [-24] [ 12] [ -4] [ 1] [x^4, x^4 - 4*x^3 + 6*x^2 - 4*x + 1, x^4 - 8*x^3 + 24*x^2 - 32*x + 16, x^4 - 12*x^3 + 54*x^2 - 108*x + 81, x^4 - 16*x^3 + 96*x^2 - 256*x + 256] _12 = [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:36:39 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) ~BasisToStandard([(x-i)**4 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 24] [-24] [ 12] [ -4] [ 1] _11 = [ 13/144] [ -19/36] [ 29/24] [ 11/36] [-11/144] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:35:53 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) ~BasisToStandard([(x-i)**5 for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 2422, in __invert__ ZeroDivisionError: self is not invertible ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 24] [-24] [ 12] [ -4] [ 1] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:35:36 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) ~BasisToStandard([(x-i)**5 for i in range(5)])*[24,-50,35,-10,1])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: Errors: ------------------------------------------------------------ File "", line 1 ~BasisToStandard([(x-i)**ZZ(5) for i in range(ZZ(5))])*[ZZ(24),-ZZ(50),ZZ(35),-ZZ(10),ZZ(1)])*Matrix(QQ,ZZ(5),ZZ(1),[ZZ(24),-ZZ(50),ZZ(35),-ZZ(10),ZZ(1)]) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 24] [-24] [ 12] [ -4] [ 1] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:30:24 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[24,-50,35,-10,1]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 24] [-24] [ 12] [ -4] [ 1] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:25:51 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,5,1,[1,-10,35,-50,24]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] _10 = [ 1] [-1] [53] [94] [24] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:25:28 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = t^0 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,1,5,[1,-10,35,-50,24]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3850, in __mul__ ArithmeticError: number of columns of self (=5) must equal number of rows of right (=1). ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.12s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:24:30 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = 1 for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,1,5,[1,-10,35,-50,24]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [1, t, t^2 - t, t^3 - 3*t^2 + 2*t, t^4 - 6*t^3 + 11*t^2 - 6*t] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:24:00 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = QQ[1] for i in range(j): ret *= (t-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,1,5,[1,-10,35,-50,24]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1) of Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1^2 - 1) of Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1^3 - 3*1^2 + 2*1) of Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1^4 - 6*1^3 + 11*1^2 - 6*1) of Univariate Polynomial Ring in 1 over Rational Field] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:23:08 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = QQ[1] for i in range(j): ret *= (x-p[i][0]) return ret print [n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)] ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,1,5,[1,-10,35,-50,24]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1) of Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1^2 - 1) of Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1^3 - 3*1^2 + 2*1) of Univariate Polynomial Ring in 1 over Rational Field, Principal ideal (1^4 - 6*1^3 + 11*1^2 - 6*1) of Univariate Polynomial Ring in 1 over Rational Field] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:22:04 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = QQ[1] for i in range(j): ret *= (x-p[i][0]) return ret ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,1,5,[1,-10,35,-50,24]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 11:21:34 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret ~BasisToStandard([n([(0,0),(1,0),(2,0),(3,0),(4,0)],i) for i in range(5)])*Matrix(QQ,1,5,[1,-10,35,-50,24]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 6, in BasisToStandard TypeError: unindexable object ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 10:49:41 2006 Input: (x-1)*(x-2)*(x-3)*(x-4) Output: _3 = x^4 - 10*x^3 + 35*x^2 - 50*x + 24 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '66.157.' ************** SAGE ***************** Host 66.157.82.245 (66.157.82.245) Time: Tue Jun 6 10:24:44 2006 Input: 300+450+500+400+350+300+300+250+300+250+200+200+250+150+150+150+200+150+150+150+150+200+150+150+150+150 Output: _3 = 6100 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '66.157.' ************** SAGE ***************** Host 66.157.82.245 (66.157.82.245) Time: Tue Jun 6 10:24:05 2006 Input: 300+450+500+400+350+300+300+250+300+250+200+200+250+150+150+150+200+150+150+150+150 Output: _3 = 5300 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '66.157.' ************** SAGE ***************** Host 66.157.82.245 (66.157.82.245) Time: Tue Jun 6 10:23:26 2006 Input: 300+450+500+400+350+300+300+250+300+250+200+200+250+150+150+150+200 Output: _3 = 4700 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '66.157.' ************** SAGE ***************** Host 66.157.82.245 (66.157.82.245) Time: Tue Jun 6 10:22:59 2006 Input: 300+450+500+400+350+300+300+250+300+250+200+200+250 Output: _3 = 4050 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 10:18:24 2006 Input: a = 1*(x-0)*(x-1)*(x-2)/((-1-0)*(-1-1)*(-1-2)) b = 3*(x+1)*(x-1)*(x-2)/((0+1)*(0-1)*(0-2)) c = 3*(x+1)*(x-0)*(x-2)/((1+1)*(1-0)*(1-2)) d = -5*(x+1)*(x-0)*(x-1)/((2+1)*(2-0)*(2-1)) a+b+c+d Output: _7 = -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue Jun 6 10:17:14 2006 Input: a = 1*(x-0)*(x-1)*(x-2)/((-1-0)*(-1-1)*(-1-2)) b = 3*(x+1)*(x-1)*(x-2)/((0+1)*(0-1)*(0-2)) c = 3*(x+1)*(x-0)*(x-2)/((1+1)*(1-0)*(1-2)) d = -5*(x+1)*(x-0)*(x-1)/((2+1)*(2-0)*(2-1)) a*b*c*d Output: _7 = -5/16*x^12 + 15/8*x^11 - 45/16*x^10 - 25/8*x^9 + 165/16*x^8 - 15/8*x^7 - 175/16*x^6 + 45/8*x^5 + 15/4*x^4 - 5/2*x^3 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '208.191' ************** SAGE ***************** Host 208.191.40.188 (208.191.40.188) Time: Tue Jun 6 09:40:58 2006 Input: 98.7/1000/(3.27e-22) Output: _3 = 301834862385321080000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '144.92.' ************** SAGE ***************** Host 144.92.166.155 (144.92.166.155) Time: Tue Jun 6 09:16:21 2006 Input: factor(233) Output: _3 = 233 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '144.92.' ************** SAGE ***************** Host 144.92.166.155 (144.92.166.155) Time: Tue Jun 6 09:13:01 2006 Input: factor(2584) Output: _3 = 2^3 * 17 * 19 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '144.92.' ************** SAGE ***************** Host 144.92.166.155 (144.92.166.155) Time: Tue Jun 6 09:12:40 2006 Input: factor(12) Output: _3 = 2^2 * 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.10s). '128.151' ************** SAGE ***************** Host 128.151.253.249 (128.151.253.249) Time: Tue Jun 6 06:55:17 2006 Input: | G = SL2Z(); G Output: Errors: ------------------------------------------------------------ File "", line 1 | ^ SyntaxError: invalid syntax _4 = Modular Group SL(2,Z) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.151' ************** SAGE ***************** Host 128.151.253.249 (128.151.253.249) Time: Tue Jun 6 06:53:25 2006 Input: Gamma0 Output: _3 = Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:33:23 2006 Input: #commentline sage: a=1 sage: b=4 sage: a+b^2 Output: _6 = 17 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:33:08 2006 Input: commentline sage: a=1 sage: b=4 sage: a+b^2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'commentline' is not defined _6 = 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:32:45 2006 Input: ;;commentline sage: a=1 sage: b=4 sage: a+b^2 Output: Errors: ------------------------------------------------------------ File "", line 1 ;;commentline ^ SyntaxError: invalid syntax _6 = 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:28:09 2006 Input: commentline sage: a=1 sage: b=4 sage: a+b^2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'commentline' is not defined _6 = 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:26:31 2006 Input: 'comment line sage: a=1 sage: b=4 sage: a+b^2 Output: Errors: ------------------------------------------------------------ File "", line 1 'comment line ^ SyntaxError: EOL while scanning single-quoted string _6 = 17 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:26:18 2006 Input: c comment line sage: a=1 sage: b=4 sage: a+b^2 Output: Errors: ------------------------------------------------------------ File "", line 1 c comment line ^ SyntaxError: invalid syntax _6 = 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:18:02 2006 Input: sage: D=12 sage: P=84526 sage: A=0 sage: M=0.018 sage: R=8.314 sage: T=366.48 sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32))*(T/273.15) Output: _9 = 50777.090723477108 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:17:25 2006 Input: sage: D=12 sage: P=84526 sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32))*(T/273.15) Output: _9 = 50776.790359738596 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:16:14 2006 Input: sage: D=12 sage: P=84526 sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^0.5 Output: _9 = 861.25926563183384 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:16:02 2006 Input: sage: D=12 sage: P=84526 sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T)) Output: _9 = 0.83533405742571365 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:15:12 2006 Input: sage: D=12 sage: P=84526 sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 sage: ((3.14/4*D^2)/10.76)*(P-A) Output: _9 = 887989.08178438665 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:14:20 2006 Input: sage: D=12 sage: P=84526 sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 sage: (3.14/4*D^2)/10.76 Output: _9 = 10.505576208178439 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:13:39 2006 Input: sage: D=12 sage: P=84526 sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32)*(T/273.15) Output: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:13:25 2006 Input: sage: D=12 sage: P=84526 sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 Sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32)*(T/273.15) Output: Errors: ------------------------------------------------------------ File "", line 1 Sage: ((RealField(max(9,RR.precision()))('3.14')/ZZ(4)*D**ZZ(2))/RealField(max(13,RR.precision()))('10.76'))*(P-A)*(M/(ZZ(2)*RealField(max(9,RR.precision()))('3.14')*R*T))**(RealField(max(6,RR.precision()))('0.5'))*(RealField(max(9,RR.precision()))('22.4')/(M*RealField(max(13,RR.precision()))('28.32'))*(T/RealField(max(16,RR.precision()))('273.15')) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:13:06 2006 Input: sage: D=12 sage: P=84526 Sage: A=0.5 sage: M=0.018 sage: R=8.314 sage: T=366.48 Sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32)*(T/273.15) Output: Errors: ------------------------------------------------------------ File "", line 1 Sage: A=RealField(max(6,RR.precision()))('0.5') ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 Sage: ((RealField(max(9,RR.precision()))('3.14')/ZZ(4)*D**ZZ(2))/RealField(max(13,RR.precision()))('10.76'))*(P-A)*(M/(ZZ(2)*RealField(max(9,RR.precision()))('3.14')*R*T))**(RealField(max(6,RR.precision()))('0.5'))*(RealField(max(9,RR.precision()))('22.4')/(M*RealField(max(13,RR.precision()))('28.32'))*(T/RealField(max(16,RR.precision()))('273.15')) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:12:42 2006 Input: sage: D=12 sage: P=84526 Sage: A=0 sage: M=0.018 sage: R=8.314 sage: T=366.48 Sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32)*(T/273.15) Output: Errors: ------------------------------------------------------------ File "", line 1 Sage: A=ZZ(0) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 Sage: ((RealField(max(9,RR.precision()))('3.14')/ZZ(4)*D**ZZ(2))/RealField(max(13,RR.precision()))('10.76'))*(P-A)*(M/(ZZ(2)*RealField(max(9,RR.precision()))('3.14')*R*T))**(RealField(max(6,RR.precision()))('0.5'))*(RealField(max(9,RR.precision()))('22.4')/(M*RealField(max(13,RR.precision()))('28.32'))*(T/RealField(max(16,RR.precision()))('273.15')) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:09:59 2006 Input: sage: a=1 sage: b=4 sage: a+b^2 Output: _5 = 17 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:09:10 2006 Input: sage: a,b=1,2 sage: a+b^2 Output: _4 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:08:55 2006 Input: sage: a,b=1.5,2.5 sage: a+b Output: _4 = 4.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:08:38 2006 Input: sage: a,b=1.5,2.5 sage: a + b Output: _4 = 4.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:08:26 2006 Input: sage: a,b=1.5,2 sage: a + b Output: _4 = 3.5000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:08:05 2006 Input: sage: a, b = 1.5, 2 sage: a + b Output: _4 = 3.5000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:07:55 2006 Input: sage: a, b = 1, 2 sage: a + b Output: _4 = 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:07:38 2006 Input: sage: a, b = 4/3, 2/3 sage: a + b Output: _4 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:04:22 2006 Input: sage: D=12 Sage: D^2 Output: Errors: ------------------------------------------------------------ File "", line 1 Sage: D**ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:03:52 2006 Input: sage: 12^2 Output: _3 = 144 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:03:37 2006 Input: sage: A=12^2 Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:03:30 2006 Input: sage: A=12^2 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:03:22 2006 Input: Example equation sage: A=12^2 Output: Errors: ------------------------------------------------------------ File "", line 1 Example equation ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:03:14 2006 Input: Example equation sage: D=12 sage: A=12^2 Output: Errors: ------------------------------------------------------------ File "", line 1 Example equation ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:02:43 2006 Input: Example equation sage: D=12 Output: Errors: ------------------------------------------------------------ File "", line 1 Example equation ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 06:02:19 2006 Input: Example equation sage: D=12 Sage: (3.14/4*D^2)/10.76 Output: Errors: ------------------------------------------------------------ File "", line 1 Example equation ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 Sage: (RealField(max(9,RR.precision()))('3.14')/ZZ(4)*D**ZZ(2))/RealField(max(13,RR.precision()))('10.76') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 05:55:01 2006 Input: Example equation sage: D,P,A,M,R,T = 12,84526,0,0.018,8.314,366.48 Sage: ((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32)*(T/273.15) Output: Errors: ------------------------------------------------------------ File "", line 1 Example equation ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 Sage: ((RealField(max(9,RR.precision()))('3.14')/ZZ(4)*D**ZZ(2))/RealField(max(13,RR.precision()))('10.76'))*(P-A)*(M/(ZZ(2)*RealField(max(9,RR.precision()))('3.14')*R*T))**(RealField(max(6,RR.precision()))('0.5'))*(RealField(max(9,RR.precision()))('22.4')/(M*RealField(max(13,RR.precision()))('28.32'))*(T/RealField(max(16,RR.precision()))('273.15')) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.242.' ************** SAGE ***************** Host 65.242.217.242 (65.242.217.242) Time: Tue Jun 6 05:54:19 2006 Input: Example equation sage: D,P,A,M,R,T = 12,84526,0,0.018,8.314,366.48 Sage: C=((3.14/4*D^2)/10.76)*(P-A)*(M/(2*3.14*R*T))^(0.5)*(22.4/(M*28.32)*(T/273.15) Output: Errors: ------------------------------------------------------------ File "", line 1 Example equation ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 Sage: C=((RealField(max(9,RR.precision()))('3.14')/ZZ(4)*D**ZZ(2))/RealField(max(13,RR.precision()))('10.76'))*(P-A)*(M/(ZZ(2)*RealField(max(9,RR.precision()))('3.14')*R*T))**(RealField(max(6,RR.precision()))('0.5'))*(RealField(max(9,RR.precision()))('22.4')/(M*RealField(max(13,RR.precision()))('28.32'))*(T/RealField(max(16,RR.precision()))('273.15')) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.221.' ************** SAGE ***************** Host 84.221.45.130 (84.221.45.130) Time: Tue Jun 6 02:54:36 2006 Input: 100! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(100)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '131.220' ************** SAGE ***************** Host 131.220.120.17 (131.220.120.17) Time: Tue Jun 6 01:53:24 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.19s). '86.130.' ************** SAGE ***************** Host 86.130.22.163 (86.130.22.163) Time: Tue Jun 6 00:07:43 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '86.130.' ************** SAGE ***************** Host 86.130.22.163 (86.130.22.163) Time: Tue Jun 6 00:07:42 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '198.161' ************** SAGE ***************** Host 198.161.29.182 (198.161.29.182) Time: Mon Jun 5 22:21:38 2006 Input: M:=ModularForms(Gamma(2),6);M; Output: Errors: ------------------------------------------------------------ File "", line 1 M:=ModularForms(Gamma(ZZ(2)),ZZ(6));M; ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.74.1' ************** SAGE ***************** Host 24.74.165.150 (24.74.165.150) Time: Mon Jun 5 21:38:42 2006 Input: ear= (1+0.20408)18-1.0 Output: Errors: ------------------------------------------------------------ File "", line 1 ear= (ZZ(1)+RealField(max(19,RR.precision()))('0.20408'))ZZ(18)-RealField(max(6,RR.precision()))('1.0') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.74.1' ************** SAGE ***************** Host 24.74.165.150 (24.74.165.150) Time: Mon Jun 5 21:37:58 2006 Input: ear= (1+0.20408)18-1.0 Output: Errors: ------------------------------------------------------------ File "", line 1 ear= (ZZ(1)+RealField(max(19,RR.precision()))('0.20408'))ZZ(18)-RealField(max(6,RR.precision()))('1.0') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.118.' ************** SAGE ***************** Host 68.118.192.138 (68.118.192.138) Time: Mon Jun 5 19:11:00 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:54:48 2006 Input: (x^3-3*x^2+2*x)/6 + (3/2)*(x^3 - 2*x^2-x+2) -(3/2)*(x^3-x^2-2*x) -(5/6)*(x^3-x) ((x-0)*(x-1)*(x-2))/(-1*-2*-3) + 3*((x+1)*(x-1)*(x-2))/(1*-1*-2) +3*((x+1)*(x-0)*(x-2))/(2*1*-1) - 5*((x+1)*(x-0)*(x-1))/(3*2*1) 1+ 2*(x+1) -(x+1)*x + (5/3)*(x+1)*x*(x-2) Output: _3 = -2/3*x^3 - 2*x^2 + 8/3*x + 3 _4 = -x^3 - x^2 + 2*x + 3 _5 = 5/3*x^3 - 8/3*x^2 - 7/3*x + 3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:54:42 2006 Input: (x^3-3*x^2+2*x)/6 + (3/2)*(x^3 - 2*x^2-x+2) -(3/2)*(x^3-x^2-2*x) -(5/6)*(x^3-x) ((x-0)*(x-1)*(x-2))/(-1*-2*-3) + 3*((x+1)*(x-1)*(x-2))/(1*-1*-2) +3*((x+1)*(x-0)*(x-2))/(2*1*-1) - 5*((x+1)*(x-0)*(x-1))/(3*2*1) 1+ 2*(x+1) -(x+1)*x + (5/3)*(t+1)*x*(x-2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined _3 = -2/3*x^3 - 2*x^2 + 8/3*x + 3 _4 = -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:47:44 2006 Input: (x^3-3*x^2+2*x)/6 + (3/2)*(x^3 - 2*x^2-x+2) -(3/2)*(x^3-x^2-2*x) -(5/6)*(x^3-x) ((x-0)*(x-1)*(x-2))/(-1*-2*-3) + 3*((x+1)*(x-1)*(x-2))/(1*-1*-2) +3*((x+1)*(x-0)*(x-2))/(2*1*-1) - 5*((x+1)*(x-0)*(x-1))/(3*2*1) Output: _3 = -2/3*x^3 - 2*x^2 + 8/3*x + 3 _4 = -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:46:12 2006 Input: (x^3-3*x^2+2*x)/6 + (3/2)*(x^3 - 2*x^2-x+2) -(3/2)*(x^3-x^2-2*x) -(5/6)*(x^3-x) ((x-0)*(x-1)*(x-2))/(-1*-2*-3) Output: _3 = -2/3*x^3 - 2*x^2 + 8/3*x + 3 _4 = -1/6*x^3 + 1/2*x^2 - 1/3*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:44:12 2006 Input: (x^3-3*x^2+2*x)/6 + (3/2)*(x^3 - 2*x^2-x+2) -(3/2)*(x^3-x^2-2*x) -(5/6)*(x^3-x) Output: _3 = -2/3*x^3 - 2*x^2 + 8/3*x + 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:41:06 2006 Input: (x+1)*x*(x-1) Output: _3 = x^3 - x Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:39:01 2006 Input: (x^2-x)*(x-2) Output: _3 = x^3 - 3*x^2 + 2*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:38:24 2006 Input: (x+1)*(x-0)*(x-2) Output: _3 = x^3 - x^2 - 2*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:37:42 2006 Input: (x+1)*(x-1)*(x-2) Output: _3 = x^3 - 2*x^2 - x + 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:36:21 2006 Input: + 3*(x+1)*(x-1)*(x-2)/(1*-1*-2) + 3*(x-1)*x*(x-2)/(2*1*-2) - 5*(x+1)*x*(x-1)/(3*2*1) Output: _3 = -1/12*x^3 - 3/4*x^2 - 13/6*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:36:15 2006 Input: x*(x-1)*(x-2)/(-1*-2*-3) Output: _3 = -1/6*x^3 + 1/2*x^2 - 1/3*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:36:06 2006 Input: x*(x-1)*(x-2)/(-1*-2*-3) + 3*(x+1)*(x-1)*(x-2)/(1*-1*-2) + 3*(x-1)*x*(x-2)/(2*1*-2) - 5*(x+1)*x*(x-1)/(3*2*1) Output: _3 = -1/4*x^3 - 1/4*x^2 - 5/2*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:29:56 2006 Input: x*(x-1)*(x-2)/(-1*-2*-3) Output: _3 = -1/6*x^3 + 1/2*x^2 - 1/3*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:21:08 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,8]);A B = M([1,-1,1,-1, 3,0,0,0, 3,1,1,1, -5,2,4,8]);B C = M([1,1,1,-1, 1,3,0,0, 1,3,1,1, 1,-5,4,8]);C D = M([1,-1,1,-1, 1,0,3,0, 1,1,3,1, 1,2,-5,8]);D E = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);E det(A) det(B) det(C) det(D) det(E) x = 2 3+ 2*x - x^2 - x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 8] _5 = [ 1 -1 1 -1] [ 3 0 0 0] [ 3 1 1 1] [-5 2 4 8] _6 = [ 1 1 1 -1] [ 1 3 0 0] [ 1 3 1 1] [ 1 -5 4 8] _7 = [ 1 -1 1 -1] [ 1 0 3 0] [ 1 1 3 1] [ 1 2 -5 8] _8 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _9 = 12 _10 = 36 _11 = 24 _12 = -12 _13 = -12 _15 = -5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:20:58 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,8]);A B = M([1,-1,1,-1, 3,0,0,0, 3,1,1,1, -5,2,4,8]);B C = M([1,1,1,-1, 1,3,0,0, 1,3,1,1, 1,-5,4,8]);C D = M([1,-1,1,-1, 1,0,3,0, 1,1,3,1, 1,2,-5,8]);D E = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);E det(A) det(B) det(C) det(D) det(E) x = 1 3+ 2*x - x^2 - x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 8] _5 = [ 1 -1 1 -1] [ 3 0 0 0] [ 3 1 1 1] [-5 2 4 8] _6 = [ 1 1 1 -1] [ 1 3 0 0] [ 1 3 1 1] [ 1 -5 4 8] _7 = [ 1 -1 1 -1] [ 1 0 3 0] [ 1 1 3 1] [ 1 2 -5 8] _8 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _9 = 12 _10 = 36 _11 = 24 _12 = -12 _13 = -12 _15 = 3 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:20:44 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,8]);A B = M([1,-1,1,-1, 3,0,0,0, 3,1,1,1, -5,2,4,8]);B C = M([1,1,1,-1, 1,3,0,0, 1,3,1,1, 1,-5,4,8]);C D = M([1,-1,1,-1, 1,0,3,0, 1,1,3,1, 1,2,-5,8]);D E = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);E det(A) det(B) det(C) det(D) det(E) x = -1 3+ 2*x - x^2 - x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 8] _5 = [ 1 -1 1 -1] [ 3 0 0 0] [ 3 1 1 1] [-5 2 4 8] _6 = [ 1 1 1 -1] [ 1 3 0 0] [ 1 3 1 1] [ 1 -5 4 8] _7 = [ 1 -1 1 -1] [ 1 0 3 0] [ 1 1 3 1] [ 1 2 -5 8] _8 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _9 = 12 _10 = 36 _11 = 24 _12 = -12 _13 = -12 _15 = 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:17:48 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,8]);A B = M([1,-1,1,-1, 3,0,0,0, 3,1,1,1, -5,2,4,8]);B C = M([1,1,1,-1, 1,3,0,0, 1,3,1,1, 1,-5,4,8]);C D = M([1,-1,1,-1, 1,0,3,0, 1,1,3,1, 1,2,-5,8]);D E = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);E det(A) det(B) det(C) det(D) det(E) x = 2 3+ (12/5)*x - (6/5)*x^2 - (6/5)*x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 8] _5 = [ 1 -1 1 -1] [ 3 0 0 0] [ 3 1 1 1] [-5 2 4 8] _6 = [ 1 1 1 -1] [ 1 3 0 0] [ 1 3 1 1] [ 1 -5 4 8] _7 = [ 1 -1 1 -1] [ 1 0 3 0] [ 1 1 3 1] [ 1 2 -5 8] _8 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _9 = 12 _10 = 36 _11 = 24 _12 = -12 _13 = -12 _15 = -33/5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:17:32 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,-1,1,-1, 3,0,0,0, 3,1,1,1, -5,2,4,8]);B C = M([1,1,1,-1, 1,3,0,0, 1,3,1,1, 1,-5,4,8]);C D = M([1,-1,1,-1, 1,0,3,0, 1,1,3,1, 1,2,-5,8]);D E = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);E det(A) det(B) det(C) det(D) det(E) x = 2 3+ (12/5)*x - (6/5)*x^2 - (6/5)*x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 -1 1 -1] [ 3 0 0 0] [ 3 1 1 1] [-5 2 4 8] _6 = [ 1 1 1 -1] [ 1 3 0 0] [ 1 3 1 1] [ 1 -5 4 8] _7 = [ 1 -1 1 -1] [ 1 0 3 0] [ 1 1 3 1] [ 1 2 -5 8] _8 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _9 = 10 _10 = 36 _11 = 24 _12 = -12 _13 = -12 _15 = -33/5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:12:50 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);B det(A) det(B) x = 2 3+ (12/5)*x - (6/5)*x^2 - (6/5)*x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _6 = 10 _7 = -12 _9 = -33/5 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:12:43 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);B det(A) det(B) x = 1 3+ (12/5)*x - (6/5)*x^2 - (6/5)*x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _6 = 10 _7 = -12 _9 = 3 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:12:35 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);B det(A) det(B) x = -1 3+ (12/5)*x - (6/5)*x^2 - (6/5)*x^3 Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _6 = 10 _7 = -12 _9 = 3/5 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:06:29 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]);B det(A) det(B) Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 -1 1 1] [ 1 0 0 3] [ 1 1 1 3] [ 1 2 4 -5] _6 = 10 _7 = -12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:05:16 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,-1,1,-1, 1,0,3,0, 1,1,3,1, 1,2,-5,8]);B det(A) det(B) Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 -1 1 -1] [ 1 0 3 0] [ 1 1 3 1] [ 1 2 -5 8] _6 = 10 _7 = -12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:04:05 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,1,1,-1, 1,3,0,0, 1,3,1,1, 1,-5,4,8]);B det(A) det(B) Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 1 1 -1] [ 1 3 0 0] [ 1 3 1 1] [ 1 -5 4 8] _6 = 10 _7 = 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:03:00 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([1,-1,1,-1, 3,0,0,0, 3,1,1,1, -5,2,4,7]);B det(A) det(B) Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [ 1 -1 1 -1] [ 3 0 0 0] [ 3 1 1 1] [-5 2 4 7] _6 = 10 _7 = 30 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:02:06 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A B = M([-1,-1,1,-1, 0,0,0,0, 1,1,1,1, 2,2,4,7]);B det(A) det(B) Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = [-1 -1 1 -1] [ 0 0 0 0] [ 1 1 1 1] [ 2 2 4 7] _6 = 10 _7 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:01:38 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([-1,-1,1,-1, 0,0,0,0, 1,1,1,1, 2,2,4,7]);A det(A) Output: _4 = [-1 -1 1 -1] [ 0 0 0 0] [ 1 1 1 1] [ 2 2 4 7] _5 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 18:00:09 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,7]);A det(A) Output: _4 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 7] _5 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:44:08 2006 Input: (x-1)*(x-2) Output: _3 = x^2 - 3*x + 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:44:02 2006 Input: (t-1)*(t-2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '70.17.1' ************** SAGE ***************** Host 70.17.156.112 (70.17.156.112) Time: Mon Jun 5 17:42:41 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.17.1' ************** SAGE ***************** Host 70.17.156.112 (70.17.156.112) Time: Mon Jun 5 17:42:21 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:28:51 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]);A B = M([1,0,2, 1,1,3, 1,2,8]);B det(A) det(B) Output: _4 = [1 0 0] [1 1 1] [1 2 4] _5 = [1 0 2] [1 1 3] [1 2 8] _6 = 2 _7 = 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:27:52 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]);A B = M([1,2,0, 1,3,1, 1,8,4]);B det(A) det(B) Output: _4 = [1 0 0] [1 1 1] [1 2 4] _5 = [1 2 0] [1 3 1] [1 8 4] _6 = 2 _7 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:27:45 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]);A B = M([1,2,0, 1,3,1, 1,8,4]);B det(A) det(B)/2 Output: _4 = [1 0 0] [1 1 1] [1 2 4] _5 = [1 2 0] [1 3 1] [1 8 4] _6 = 2 _7 = -1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:27:38 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]);A B = M([1,2,0, 1,3,1, 1,8,4]);B det(A) det(B) Output: _4 = [1 0 0] [1 1 1] [1 2 4] _5 = [1 2 0] [1 3 1] [1 8 4] _6 = 2 _7 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:26:11 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]);A B = M([2,0,0, 3,1,1, 8,2,4]);B det(A) det(B) Output: _4 = [1 0 0] [1 1 1] [1 2 4] _5 = [2 0 0] [3 1 1] [8 2 4] _6 = 2 _7 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:26:03 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]);A B = M([2,0,0, 3,1,1, 8,2,4]);B det(A) Output: _4 = [1 0 0] [1 1 1] [1 2 4] _5 = [2 0 0] [3 1 1] [8 2 4] _6 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:24:18 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]);A det(A) Output: _4 = [1 0 0] [1 1 1] [1 2 4] _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 17:24:12 2006 Input: M = MatrixSpace(RationalField(),3,3) A = M([1,0,0, 1,1,1, 1,2,4]) det(A) Output: _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:46:52 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, infinity) Output: _3 = ;sage4;;Isabs(e) - 1positive,negative,orzero?Isabs(e) - 1positive,negative,orzero?Isabs(e) - 1positive,negative,orzero? Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.31s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:45:24 2006 Input: maxima('-1*(1/x)^2').integrate('x') Output: _3 = 1/x Exiting SAGE (CPU time 0m0.07s, Wall time 0m5.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:42:25 2006 Input: maxima('((1/t)-1) - ((ln(t)/t) - ln(1))').limit('t',infinity) Output: _3 = 'limit( - ln(t)/t + 1/t + ln(1) - 1,t,inf) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.33s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:42:21 2006 Input: maxima('((1/t)-1) - ((ln(t)/t) - ln(1))').limiy('t',infinity) Output: _3 = limiy( - ln(t)/t + 1/t + ln(1) - 1,t,inf) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:42:11 2006 Input: maxima('((1/t)-1) - ((ln(t)/t) - ln(1))').limiy('t',inf) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'inf' is not defined Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:38:27 2006 Input: maxima('-(1/x)*(1/x)').integrate('x') Output: _3 = 1/x Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:38:13 2006 Input: maxima('-(1/x)*(1/x)').integrate('x',1,'t') Output: _3 = ;sage4;;Ist - 1positive,negative,orzero?Ist - 1positive,negative,orzero?Ist - 1positive,negative,orzero? Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:34:08 2006 Input: maxima('ln(x)').diff('x') Output: _3 = 'diff(ln(x),x,1) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:33:58 2006 Input: maxima('ln(x)').integrate('x') Output: _3 = 'integrate(ln(x),x) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:33:21 2006 Input: maxima('1/x^2').integrate('x') Output: _3 = -1/x Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:31:57 2006 Input: maxima('ln(x)').diff('x') Output: _3 = 'diff(ln(x),x,1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:31:43 2006 Input: maxima('ln(x)').diff('s') Output: _3 = 0 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:30:21 2006 Input: maxima('1/s').diff('s') Output: _3 = -1/s^2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:25:32 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, Infinity) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Infinity' is not defined Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:25:00 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, infinity) Output: _3 = ;sage4;;Isabs(e) - 1positive,negative,orzero?Isabs(e) - 1positive,negative,orzero?Isabs(e) - 1positive,negative,orzero? Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.28s). '67.176.' ************** SAGE ***************** Host 67.176.250.91 (67.176.250.91) Time: Mon Jun 5 16:24:34 2006 Input: Factorization(104723); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/structure/factorization.py", line 95, in __init__ TypeError: x must be a list Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:24:10 2006 Input: infinity / infinity Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/infinity.py", line 60, in __div__ TypeError: not enough arguments for format string Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:24:00 2006 Input: infinity Output: _3 = Infinity Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:20:54 2006 Input: -(5*log(e)*s + 1)*%e^-(5*log(e)*s)/(25*log(e)^2) Output: Errors: ------------------------------------------------------------ File "", line 1 -(ZZ(5)*log(e)*s + ZZ(1))*%e**-(ZZ(5)*log(e)*s)/(ZZ(25)*log(e)**ZZ(2)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:19:49 2006 Input: maxima('s*e^(-5*s)').integrate('s') Output: _3 = -(5*log(e)*s + 1)*%e^-(5*log(e)*s)/(25*log(e)^2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:12:07 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, 't') Output: _3 = 'integrate(s/e^(5*s),s,0,t) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:12:00 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, t) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:11:50 2006 Input: maxima('s*e^(-5*s)').integrate('s, 0, t) Output: Errors: ------------------------------------------------------------ File "", line 1 maxima('s*e^(-5*s)').integrate('s, 0, t) ^ SyntaxError: EOL while scanning single-quoted string Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:11:16 2006 Input: maxima('s*e^(-5*s)').integrate('s, 0, 't') Output: Errors: ------------------------------------------------------------ File "", line 1 maxima('s*e^(-5*s)').integrate('s, 0, 't') ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:11:02 2006 Input: maxima('s*e^(-5*s)').integrate('s') Output: _3 = -(5*log(e)*s + 1)*%e^-(5*log(e)*s)/(25*log(e)^2) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:09:56 2006 Input: maxima('s*e^(-5*s)').integrate('s'); Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:09:33 2006 Input: maxima('s*e^(-5*s)').integrate('s'); Output: Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:08:29 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, 't'); Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:08:23 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, 't'); Output: Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:08:14 2006 Input: maxima('s*e^(-5*s)').integrate('s', 0, t); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.25s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:07:28 2006 Input: maxima('s*e^(-5*s)').integrate(s, 0, t); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 's' is not defined Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Mon Jun 5 16:06:51 2006 Input: maxima('s*e^(-5*s)').integrate(s, 0, t) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 's' is not defined Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.96s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 15:47:09 2006 Input: sage: M = MatrixSpace(QQ,4) sage: A = M([1,-1,1,1, 1,0,0,3, 1,1,1,3, 1,2,4,-5]) sage: A.determinant() Output: ...: ...: ...: _5 = -12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 15:46:12 2006 Input: sage: M = MatrixSpace(QQ,4) sage: A = M([1,-1,1,-1, 1,0,3,0, 1,1,3,1, 1,2,-5,8]) sage: A.determinant() Output: ...: ...: ...: _5 = -12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 15:45:25 2006 Input: sage: M = MatrixSpace(QQ,4) sage: A = M([1,1,1,-1, 1,3,0,0, 1,3,1,1, 1,-5,4,8]) sage: A.determinant() Output: ...: ...: ...: _5 = 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 15:41:27 2006 Input: sage: M = MatrixSpace(QQ,4) sage: A = M([1,-1,1,-1, 3,0,0,0, 3,1,1,1, -5,2,4,8]) sage: A.determinant() Output: ...: ...: ...: _5 = 36 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 15:39:11 2006 Input: sage: M = MatrixSpace(QQ,4) sage: A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,8]) sage: A.determinant() Output: ...: ...: ...: _5 = 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 15:39:04 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([1,-1,1,-1, 1,0,0,0, 1,1,1,1, 1,2,4,8]) sage: A.determinant() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 141, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix_space.py", line 245, in matrix File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3801, in __init__ TypeError: entries has wrong length ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 15:38:54 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([1,-1,1,-1 1,0,0,0 1,1,1,1 1,2,4,8]) sage: A.determinant() Output: Errors: ------------------------------------------------------------ File "", line 2 ZZ(1),ZZ(0),ZZ(0),ZZ(0) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 ZZ(1),ZZ(2),ZZ(4),ZZ(8)]) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined ...: _5 = (1, 1, 1, 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '66.230.' ************** SAGE ***************** Host 66.230.87.97 (66.230.87.97) Time: Mon Jun 5 14:32:33 2006 Input: 4+4= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)+ZZ(4)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.39.2' ************** SAGE ***************** Host 24.39.202.82 (24.39.202.82) Time: Mon Jun 5 13:38:08 2006 Input: log 6/200 Output: Errors: ------------------------------------------------------------ File "", line 1 log ZZ(6)/ZZ(200) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.39.2' ************** SAGE ***************** Host 24.39.202.82 (24.39.202.82) Time: Mon Jun 5 13:37:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 13:26:52 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([1,0,0, 0,1,0, 0,0,1]) sage: A.determinant() Output: ...: ...: _5 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 13:26:05 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([1,0,0, 1,1,1, 1,2,4]) sage: A.determinant() Output: ...: ...: _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.235.' ************** SAGE ***************** Host 71.235.208.72 (71.235.208.72) Time: Mon Jun 5 13:20:44 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 13:20:24 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([1,0,0,1,1,1,1,2,4]) sage: A.determinant() Output: _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 13:18:38 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([1,0,2,1,1,3,1,2,8]) sage: A.determinant() Output: _5 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.17s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 13:18:11 2006 Input: sage: M = MatrixSpace(QQ,3) sage: A = M([1,0,2,1,1,3,1,2,8]) sage: A Output: _5 = [1 0 2] [1 1 3] [1 2 8] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 13:16:41 2006 Input: sage: M = MatrixSpace(QQ,3) sage: M Output: _4 = Full MatrixSpace of 3 by 3 dense matrices over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '64.12.1' ************** SAGE ***************** Host 64.12.116.196 (64.12.116.196) Time: Mon Jun 5 13:16:12 2006 Input: sage: M = MatrixSpace(QQ,3) Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.185.' ************** SAGE ***************** Host 67.185.180.228 (67.185.180.228) Time: Mon Jun 5 13:02:11 2006 Input: 4x3 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)x3 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.75.1' ************** SAGE ***************** Host 71.75.119.52 (71.75.119.52) Time: Mon Jun 5 12:52:56 2006 Input: 48x30x27 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(48)x30x27 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '70.232.' ************** SAGE ***************** Host 70.232.83.44 (70.232.83.44) Time: Mon Jun 5 12:48:56 2006 Input: 14.3*4 Output: _3 = 57.200000000000003 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '208.191' ************** SAGE ***************** Host 208.191.40.188 (208.191.40.188) Time: Mon Jun 5 09:50:42 2006 Input: ((9.333*10^-14)*(2.951*10^-17)) Output: _3 = 0.0000000000000000000000000000027541683000000004 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '208.191' ************** SAGE ***************** Host 208.191.40.188 (208.191.40.188) Time: Mon Jun 5 09:50:30 2006 Input: ((9.333*10^-14)*(2.951*10-17)) Output: _3 = 0.0000000000011675583000000002 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '208.191' ************** SAGE ***************** Host 208.191.40.188 (208.191.40.188) Time: Mon Jun 5 09:47:21 2006 Input: ((9.333*10^-14)*(2.951*10-17))^4 Output: _3 = 0.0000000000000000000000000000000000000000000000018582934755199398 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.11s). '208.191' ************** SAGE ***************** Host 208.191.40.188 (208.191.40.188) Time: Mon Jun 5 09:46:15 2006 Input: 10^-4 Output: _3 = 1/10000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '208.191' ************** SAGE ***************** Host 208.191.40.188 (208.191.40.188) Time: Mon Jun 5 09:45:55 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '198.145' ************** SAGE ***************** Host 198.145.75.242 (198.145.75.242) Time: Mon Jun 5 07:00:08 2006 Input: 6 Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '198.145' ************** SAGE ***************** Host 198.145.75.242 (198.145.75.242) Time: Mon Jun 5 06:59:49 2006 Input: 93920832874588747343246123598735 Output: _3 = 93920832874588747343246123598735 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.168.' ************** SAGE ***************** Host 67.168.10.106 (67.168.10.106) Time: Mon Jun 5 01:36:33 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.166.' ************** SAGE ***************** Host 69.166.111.196 (69.166.111.196) Time: Sun Jun 4 19:34:24 2006 Input: x-1=9 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.166.' ************** SAGE ***************** Host 69.166.111.196 (69.166.111.196) Time: Sun Jun 4 19:34:10 2006 Input: 1*1 Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.166.' ************** SAGE ***************** Host 69.166.111.196 (69.166.111.196) Time: Sun Jun 4 19:33:58 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.237.' ************** SAGE ***************** Host 68.237.243.89 (68.237.243.89) Time: Sun Jun 4 19:22:23 2006 Input: 4 1/8 - 1 5/8 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4) ZZ(1)/ZZ(8) - ZZ(1) ZZ(5)/ZZ(8) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '217.113' ************** SAGE ***************** Host 217.113.228.60 (217.113.228.60) Time: Sun Jun 4 17:29:57 2006 Input: (4+2)^2 Output: _3 = 36 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '217.113' ************** SAGE ***************** Host 217.113.228.60 (217.113.228.60) Time: Sun Jun 4 17:29:37 2006 Input: (a+b)^2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.31.1' ************** SAGE ***************** Host 65.31.118.134 (65.31.118.134) Time: Sun Jun 4 15:58:53 2006 Input: 10! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '82.235.' ************** SAGE ***************** Host 82.235.251.2 (82.235.251.2) Time: Sun Jun 4 11:14:13 2006 Input: maxima('integrate(exp(-(t*t)),t,0,inf)') Output: _3 = sqrt(%pi)/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '82.235.' ************** SAGE ***************** Host 82.235.251.2 (82.235.251.2) Time: Sun Jun 4 11:13:39 2006 Input: maxima('integrate(exp(-(t*t)),t,0,inf)') Output: _3 = sqrt(%pi)/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.97s). '82.235.' ************** SAGE ***************** Host 82.235.251.2 (82.235.251.2) Time: Sun Jun 4 11:13:18 2006 Input: maxima(integrate(exp(-(t*t)),t,0,inf)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '82.235.' ************** SAGE ***************** Host 82.235.251.2 (82.235.251.2) Time: Sun Jun 4 11:12:18 2006 Input: integrate(e^(-(t*t)),t,0,inf) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '82.235.' ************** SAGE ***************** Host 82.235.251.2 (82.235.251.2) Time: Sun Jun 4 11:11:50 2006 Input: integrate(exp(-(t*t)),t,0,inf) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '83.226.' ************** SAGE ***************** Host 83.226.146.147 (83.226.146.147) Time: Sun Jun 4 02:51:34 2006 Input: 2*x-2*(x-3*y) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.49.194 (128.95.49.194) Time: Sat Jun 3 18:19:55 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.49.194 (128.95.49.194) Time: Sat Jun 3 18:19:41 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.242.' ************** SAGE ***************** Host 70.242.157.195 (70.242.157.195) Time: Sat Jun 3 17:56:59 2006 Input: factor(317865230941) Output: _3 = 491357 * 646913 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.09s). '70.242.' ************** SAGE ***************** Host 70.242.157.195 (70.242.157.195) Time: Sat Jun 3 17:56:44 2006 Input: 2**10 Output: _3 = 1024 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '12.226.' ************** SAGE ***************** Host 12.226.231.88 (12.226.231.88) Time: Sat Jun 3 15:44:55 2006 Input: 1-1 Output: _3 = 0 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '66.65.1' ************** SAGE ***************** Host 66.65.187.119 (66.65.187.119) Time: Sat Jun 3 15:07:40 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.11s, Wall time 0m3.98s). '66.65.1' ************** SAGE ***************** Host 66.65.187.119 (66.65.187.119) Time: Sat Jun 3 15:07:17 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.21.4' ************** SAGE ***************** Host 70.21.4.152 (70.21.4.152) Time: Sat Jun 3 13:31:20 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" .97=A/1,500,00+1 Output: Errors: ------------------------------------------------------------ File "", line 1 .ZZ(97)=A/ZZ(1),ZZ(500),ZZ(00)+ZZ(1) ^ SyntaxError: invalid syntax _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '70.21.4' ************** SAGE ***************** Host 70.21.4.152 (70.21.4.152) Time: Sat Jun 3 13:30:16 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.204.' ************** SAGE ***************** Host 69.204.45.254 (69.204.45.254) Time: Sat Jun 3 12:15:31 2006 Input: 9' x 12'= how many yards? Output: Object `ZZ(9)' x 12'= how many yards` not found. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.204.' ************** SAGE ***************** Host 69.204.45.254 (69.204.45.254) Time: Sat Jun 3 12:14:26 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.107' ************** SAGE ***************** Host 131.107.0.71 (131.107.0.71) Time: Sat Jun 3 11:56:42 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.76.1' ************** SAGE ***************** Host 67.76.169.50 (67.76.169.50) Time: Sat Jun 3 04:40:19 2006 Input: log 120 Output: Errors: ------------------------------------------------------------ File "", line 1 log ZZ(120) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '87.69.5' ************** SAGE ***************** Host 87.69.59.168 (87.69.59.168) Time: Sat Jun 3 01:19:37 2006 Input: print pi.str(10000*log(10,2)) Output: 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375676 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '87.69.5' ************** SAGE ***************** Host 87.69.59.168 (87.69.59.168) Time: Sat Jun 3 01:18:22 2006 Input: print pi.str(1000000*log(10,2)) Output: 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022576341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169414599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434019634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166730273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306844953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650832431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527138315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167600298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877769776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640057099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937310804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639382432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764887834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371406435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213505586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541508936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302173912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283182342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198396308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420808850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837873864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478863604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151058236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973865220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519478061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361680594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282381537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892822994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588867781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148962961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072872535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123850425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992754426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044063471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220177723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453452038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335654639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757943936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560263224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237896029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079067086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794522644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519655904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361613384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272115726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506854530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917032754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706478426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991646464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422809873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379852827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556719649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719223223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702226309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428897557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514626437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549416542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992914652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935809041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755154125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676007248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488541679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760356390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589128405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916792969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909887025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624105195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955737727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620113184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547076781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866147629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430001566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109676765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482481833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395120853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316179699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819235355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884631256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509263071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347838827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914591819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751191440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216890900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508846584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613803811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983146982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006073746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076441912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888904583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492099897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653856731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874468611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048437528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417838665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608424065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593095854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472153962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893528555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139323775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995240918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211510949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193191981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948541401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175470872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493156999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724348643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180969976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872259677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897952626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032907598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532340179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694766126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561362316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217589494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340173572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172837493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423433152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420279088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884830999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057581890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529591017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566746260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402610569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888150329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481615273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230476875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147392653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331959197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537883387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324240661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286933801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054887167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424998748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530396439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353521358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048229409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452852640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698469478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543839114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361904042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749689212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772528650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015252348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977994001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209239480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089240613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855144350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256378733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163218339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510109096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968091469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792497469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693046047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591249890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070682762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208498720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122003526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152051546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715700867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903899071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325019870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404969271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624134597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658359421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232185574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429331004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680186131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594605487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983875087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333187688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043105987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807764844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841602950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102167340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824051770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845079151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986974759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219750519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678519661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738060394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017721392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948275783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986317210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095850313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044771692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587281505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625661184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908992638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504719144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278473361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127101052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019030276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880280782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115960190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258319293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815908800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057637199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396306139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238347382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371639123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018315875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813598885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605154047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113250223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102462401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129517597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007466380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554235235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474489908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507473874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038895360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578820019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120226329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445179288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559911314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939727150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580592560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615042563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440760470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852830436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554558099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511396119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190648764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215453927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775949316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259145247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953495701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471090335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831191848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000996862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325341412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446950109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526607831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202325409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512858020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926661234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881398752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604130093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821698271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354542064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782157373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543435450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351714749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829706583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504292259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985730570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819308714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981862846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908933526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518258284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536485619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121686446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098928641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209479721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439399256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359382311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012713204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044111311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350129775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746866106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718164078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191218806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308467745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539424926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472000192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392656620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332810262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747931665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738418311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954318040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194608435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301540612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193257974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490544182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556267602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608041130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321123674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465828267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306521085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787041926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405143868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672106460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439950410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161906114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187220583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316794385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561638976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095349653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690434272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588065522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156366274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546065997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178089414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621552896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781368367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914608202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719354758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833778887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095216328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789940333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645392805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862995118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349742611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386512905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242887200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929946819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389503217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459534334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384218701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557470231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031885732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330192600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396164363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148371103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813330617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858410237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405442264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348315380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429187128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280089747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200780141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753799030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007377537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573781210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159952359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487548847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264188300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599310356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892195119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459017809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986767817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225069659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353452816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065709912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202506134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864825775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505811420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938239946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012619157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310447406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604329123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379964351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210575352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451821413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144511383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886165672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899027804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747627852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498074396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131836688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474488176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524094441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564042701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235376486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427981687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425805343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913492615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156793839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595524891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426400718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789278468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833582768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904040233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204072887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326106052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546314504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183934057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142165615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460835217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716352727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233961276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402757992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544693869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129105318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951245395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271045027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814931427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554383058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335212141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965940383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481696694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762163559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362749328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096142952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768874474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943105940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805894336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564715420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564143822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122436375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225064809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056691121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643960452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280860859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931125679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897248841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870831925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525308493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527454288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172756988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819733250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189269663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483916467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024417511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206712567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721068198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684143775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449184093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291040870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225258416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564919594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090199762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714321186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533123071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490332560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187232927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844958072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409556079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690694828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740793538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958494130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801882123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644771293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662156804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307509829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276233830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013176419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931560863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584011791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717910225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533911892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707214796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952666758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167649668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254507114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990443228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514161050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314081751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740131145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237414938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423985135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879694458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460995249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215492101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864274786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161962476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096966601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054943441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111252349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472732894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619039014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109404259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607500248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856352945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901806965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159569539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536938145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687209316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769685101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417652780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861400951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577576561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179760679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247712012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115014067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671356443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433259780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174919141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006120649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222995418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207163516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610698229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009439580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126861969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560927332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295600095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223576132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315301969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245592434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540419184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227923051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869510926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111048140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691510904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622358029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021061524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838795189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693188014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063858046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576199431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598380812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663922050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174636092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870870305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437994868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201490875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293033830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533336983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372954016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939486863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782245949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853703555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660963551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500596261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582337354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701433527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233631493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004590864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050677379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700992444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130105505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650120578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323582797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325412355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811395838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486631405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439020337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488307847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591441520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954900776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942588060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025396268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539290939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295620305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610596667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650698652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243083388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699303478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180841547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302821544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526655649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785294891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205501683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992197814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238743312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715191834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128978163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208010491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251582904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279298575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646412600243796845437773390264725128194163200768487362517640659675406936217588793078559164787772747392720029103429495624476613082007292507345291707642266210476730378631699542374551174565220227833240968035246676631908610112067458562873174135111622920788651329412448154716281820798771683463413223622341177882310276598251093588923591620551087632980879931651725289380012378174348968321515905624933473702068322321001186373957705674738671021732123752243252416263580343762536068086691635715945515278178039217743228234366337728111863905118930759016666507429527583840085446354193171905313636597249051584091065822018147347990223590671381469051160519223012694823161134174399447148330408624842691395023367134124251238640266572581309439676219396554073865242298978797821986379182997095579247473203032391164104459069079778623155183495930353059237898175158914576504080251094791234217584828418819501385461656803017550355800549448948848713516053755934023457489795166024423383214060300959371055884570525157042662846003544028236787685509826781617655203757956554816778960389274983556087915411777494235734007641610932940038999821992672570869573260687749742248020233075251876502559684207606932299885875798988964607443817881700815488952265167228340452772191069914157646394852311267947308658031950764551976756289574288817968120900263871452578583152776151090886317402436956805678730152354278047934142664952238337071175112653755039423720987846680491394734465307140796225972871305030772587148755705025825734668666138023514260561161974055434365486980054448792959702875903522584097826835986664465860456942413907290952662499329029734405681606838057266260572770884070734714960600645614540707344327825140874742755067223048453570060922143900029929816082117170479176145051910081326703752149307405678533111060583529127810073917499491978451129159136811073940551752080196305393507402485095537725003670546651623304304250874423242624046321150789973369299854070416562610419767002024150948924118560924096376044296120023645907064497706272079190192359648070489236369798601982830872842285647523531628827913242955248144475055219096720460806895451817122049303218537406272474215197403057690436026863607807920047762324295518294735220272443763390277213920877670657162416397517858592544269234285352743288563368507896519620725194165560618703705502184628454342578503830000953745182929584404649188386857934839611512971605816657450967036774958366666931218817636796449436171304160372430506584851317492640558551940180051809084752118682246169761492432383194864344159085580110730703112015022434160731579295287529368358203970033891121141706852193665897894595031543895890153038271430019295890741499435928940830970770783628759144840370450386189669758112018523192318686599680385838123703291562075788359487809416882055316051281901526475928075749581545642213414593781670569928682998956119823538371578804804787045841753946654976901732203108900703033629117673084484503721456696444014695451738574341578101586187838392785526093991305702555755590609470514980934877733200727975730382459894668096808222213484858738229992817940908256652095816554724752445667436975944746863763324289042697761067919339109833004223102937282987989032093910926828363061736101738781236798986451493117024371282858826304862988844922074156406071470591374055246657569718702173552872454394277148091793644376506378618613243486357974112585208634599278036887924983543632984576876501650651153450086957212395075447856831736315571535270465242352597375134088254616096614407466755142268360319598010721524635510691718713357316854856312808578344356236709596509499469688206611851180860342028213318012494109915026014354500174327307936251130702982504994179942844511464793291545995559095878076216366685917910654359660652535253202736507259891212556868428020772464877220109966318295595529033933122843648644759735608598407609472983895424339326231532399189818522641808312963335463568748288634656185048106322888055967378445620009414656034992808794051153100575871295525719641115068503407737106043803712595755969859493620584775120263549473475347481892622541903526716144292848998575367406921652716300860606543737368235565886264863436891532180955722044567771373683104580755845296128328326063196297285279666743629748008213186279218690442843426307357607039996694307895081472697302538173756949227517953543261569120405948328609499923664122878812264191485048563280720664185570595203750303229168944894275783060909108524106014006832742055839697738231507349961087587637042555649640868550719422563449667324306562592504745817627332818160170196981665424263787636014530359465384503254766749997373408356651381860251565202836373891710165454148826744480091057041861626268379711208861413572796110990882929702296921281809787989513915042709367864449831964201345668339087759430064424856230121246145116979219396344095080832292812942704365991464827499843759421130204182973084171788130903795585456032471708191953027714657945554755447542844344081393889086097760178573893075186619065050180771650018407443258540241843605011182429907023234172436745253653495947990633345407543718126993998337192184854187359798453489345922685150681826624900780293350126588249742262418853525266367028276624993498294887483310617642084290169230528996089786041300651090281798050405871076711790411302174827966823530019602202531855767898433175868063783599687916015389222202365757655815866114091993948615992091599175533417830333476431316350127053906970793265678124159064342847213602352182367412147331244999443341559152743159316874778825331550927703362029012225977948098553922000645271622808553982789065842334475528212765176505726632676911410750348458718969964348757751384791481836351006214668185850963488870814569767220201679911994624177766889079171368659459607264685388107787830021613682766970262234594187374767335379988844034270468030425516941271587393203984443746045478161130566251764127598211819396611018505628805559425660600323121161809946221293010024709133471506822684304586803009042428616820255621409460879000651910994955708158165058289833407394660844575657806366902728434620185873282529247965052866814085035385198375236374519256227954902905579070302839501048548359298345428144873043580470533150815105030015214281171753936491331661726212354055278633080020831770556302949635942016543330940941771963262341193871051615701017980535516793708602913667569860971241203685838129576953077981413657001747613569669861460684914396995738376316958246025133421080726217136019430180872098885514150241638183259752595931655318658331171268579415272066122184226614118251546574848783126103478345467492583087299854474212064450952332450508774314961665552517971680209917200264093749219075699368963302813916472089635817717355558485927065245048625164195405508013435103233898133783024977018227549063814999647233340796130414697394763726508692733471084156856084309213162404346298639208416600559045985064912435052647660676003444416181864036700837741141010943205889555986586700778636718969440896223213740341135971991331359465536854466923676525890121084137774324821918127478478922872648929700323718734561579815998348391004126010507469645994303319788106349139238124905030614334079183280040639070986725961970983112659601474737253305268537177421465540058739246237276173649051987133680677239525707813606866832613950143295094748515947246675272016843165866088075127685847555411843811690116220055521134844889606682592274313190079630115870846701176549353930465633562253112447277966690058311906161019726630739705425314398184573794494867801346182178759390769996020290839656772878469057364015640150476964489939475414746083399186968892711569423454926512466455077925540281050376220359675305586018564920560628790907694533392088088494778288948511221547432301913832455629938810206144902668760102077532109156849778307408596498579671526170100394754945399176987913235465501064073558169994097562481499674432784292027626441897939181583945627081733015821602255196598987693761640198612074667550488611108557267645070526224461302223358520722736204850572892388158849387545352291863997143808840617572862209501225065158631042588841343554319737298562177530720226294755524830444453404348888785811703413453425223543194078779728467601815832270977451809293421931898158124828326589500407048552060998937839003419141630446391638805496587865013750463416956551566182988786307058423069676602540530248114710078997842118304890104640568965397028855955309255586360521589573751140895649058441567749371058596480143158746144912505492531911646538215851973700932801945303205726284526580460463378166314299330766466465307605905489628887241897160602258826175775399220551315093772006248630855628204935757527249955670892216342339836025653287310291940070411769192208500151167356701019589710017970195781208929109694177543699043682025630240548226254019056965077105815742407214963395603652702833344073057500736745622605846498861151016896121811190584717144610687197610174565873737967406971374232387538390303172002002072059284887851239117464716737437379232838819662016876221913462338937625995270256721386221124589802121305014072889043003225355040958668187241393699381930691487447171866461831119426031616640703773164870018647996002430440032422418094022785333090115098808706782688353172007675225531380088187804316901900728048317992874141254761230896068330958283776676882875786886830929760010119745338983319525886196301329170943858166153741717944963191771543125069598534812856846193776698942774591709188025200127499055594072896965947933316722436215678967769667080352290390184857308062756708676586271047694092035655930253527434189659270022270492331868299915609364137570049885373045963961527346293969749517480626964517930187199867885375814159757993148066085572325683743052827641756700502880404894298995809481035348339341449278859252621924155472319971433850866373209266327282435149336407045896838523456247443611752567669877675972234392063575074715529181027626140129924804228839902978799254185174991296302839907296355885798905933177959087690739056460256235335672215522594688382984528829229662751371624221729546786707158409241840841475575825393852409633020513497047406953995678979817278609204622868397357798151118681526598846069497589654813146511503926263777495137615572481951161198772503445647107385134359273555387124623755981938132142384415819290700463897716838872079163617414324970791096581627464297170728717251427458983568970955346268201690853561089448984071005819203021769451207717745887955195104733841847399807963067678858451675757299043069715426423834980098708699336709121083944535062459224323123482785496603746571880148929379451478705406079245759006012196221239287200172155886663457349714095337211516559857579417244198890261670161016115578343150254603287811984240274846085107224066767787608552476177738330895026100643883505502054563243461678594519417956698749685152448838475136181806671083161655642093692705206118985172926171417144346555087063060635510129494003097591677991584260491971209543227026784326542965724032720887143219996453132025871096771651285496699625526986073117637182074988273997706019913620930832307368382064557325637659829125781314922242204279712414416299512659456397927593803838047826231604243253991328511230322470375619423217330478540785762440132917179929792407833907157579814268168646553829468473992058886316559349198678969628404473449680240770928313764081033522552427174041076735654244410044833474401017264410529547872963458986405012036080244511903509949744939736171815752770937802092366681358416362683192634067141827974213425462207054156000509596740456168404517717479527903532549325891204833857465900967817304160005210889346107687540042419778030828851812001733695591271377141950113613044097532791905048915832463991434835316486815485791786329351239255525102111827885736960602769313014696614334496423021143824837056335327938588952676720766889712744358156320881066501495681435587965769098577659027687074536592763649755534496173080781609871032480137951361703677634575949756862080139963745517624251477806287222659714554829067692957136435721526744689878894188207512922257565091435528288746141950978624275278815715664007637210378031940430958442725492699871692343318900221415031139987652606887615667402101972017196023908610829749276395695411530322754601738707956259935797853024434767163995914623179312399899869284379757024923695515872976838540052276514956144471059719628898881571094151717015181147435136438540051162462021311748007919837497001004713634325232815789113554504533719052750682291561850033284695679262262081904424733403625038927920715859600393631533688427243753667996986479347411331983286194414606539227840999031438403545650470567895520248271760118743356436902435030856313095590552503904927316133117349225846446090245350791901844112993216997704518328535864804285568222087372136164905863032563689130841037602156799270200053223554398046531193397754590440450785680213984650096934295473102692499475864660580916699841606846460872939438082743082858174796941728729903110131926755738979840913642534796949434803777033646349584768629825901034707278612186230019866079877826842459338356389195702068535216032116352300649887446002001704130569853651546687520238593751832803728511432748116996836928492204473805706334966187112409478359158696268586435891413598542535776887749327436345147544886408688180303696524317556883002058607732569597160864854158344684324899630770113713446751569302448854820771241335577323069494580672678452359436315078727281579015730700331787968544362795257190236232746142628687327380094977411228562376632149046532940720261975390717404222595392428881645597965700309571413891069368450362682310539867437532400527015347458933256795149418545378088270634572959621690853835353703814181155738163782090325615198697453576464121254980760051561417072980469948135934831505681166427932193352798227147157673401860887215187996693502527007575560997198828630642854481282751392806947027501481632897273143473485285295046048832716739789815636788047804436021090073207273697493446304997314425715604331336903876181009488731207134827108158898574832658542075100779531183268617080370709359276149367825308583404823510036321663789574262025503501168615434073795045164828967556983589355220201736795480757819095026979812711487034311903631122461282953038205128704309294719745946908210256347889954317715243796962112812245034260663992688521330791963702777804488579205730469908009234401866381132520971230964760599899479257598510081730396068222199753273016065826285275825766950785472603493829813358252817867060851265600226887178112535978293373477914127362841886561759208328794474109697038798547369840254580632948350223593935435874802239897609162962501104739311694491006669072306346931301697118206325352692440438400937242844282097093648569094689200873717532525570305435398287278123011398080938670154748858034456318713196026785487938933162050076752641120443902375833427242986996547863685341028488573702547255023656634186809190383886707879072084036194021646701215348379781518328264725786288152071010814995589803381189615694417567613407170465385121709021237778843336496518721199054075818773943975283641439530442459139031788130041887918871145531482674699870555879310402403888840838506873416250716572741851349520849636709555424504394839480459791562282824837879341527203622633695618055563710768148888936192757426599358235594315308879330527675587475123650658439694756042971920023198680243517199378681003611023125683642560795974105741536282971800464977485737183786390370390153973749116546854997164539416112164176107171454017651905650525206622778831290457196932059902413753959838619826032054958395016755525096441371182225614960140030230354078992096986775078672000380742679705303071679322960156486228085184033523501706085895129122232461178302531636289439460736527713365116316464461990990212249224123151689927678558637363155260025034884878132330019101893996167027314169996265119457426367619650024347371727290284622097983948710659822700099549188776961885054326532118022194442822284251525561411874340180419461413945147128725275923912559644373568339728963312676782349103563329612947191015157143115795490933903261411918654752376247215311020793691158487422058227473432017355850771224379698579654915806279502740977168861148076163151618553068566924571717692204436684331273989337941116297224516999854685622157024175947117699529165502116855001089857619346394559088262707753114657752238846343519376539734984802454976076024403080844890106838786972612370978357824516680117148598367940552904619826216566917202742628548239339600182545994092543081696910329784112340228856001905493427502231852947128296096939768137341977042781213001473286776057194059699792755124617184349569856417128724811834654206423187145518241528676305675131162677177350617511245463387994265291270105789956718057214365579183506917779307040757329043974949958224106238105149176502385041827300966201717509405908054089572837554063551522199658207573513157075923615398639459211155864000988097552610538382568992721584785041746065161511337883360976012114848700556016581249247068256844272045472896309420306650445298646223594226008554991589149953606498428034579492757009497959450602378775019470624632394954957823082283066840818802521076639074230973720916285337176806216446935432317917855305833171420847988630340846572642693955700268576057539347888587094600582723230519108117514234912687336585960799891732928915896001815091816337400806035475200051511751029012299248709615459280262060761698272181029167315548929423740851967433079166078499055782101935713662435990883613859808516156417476946054785540081953530670803089697630452946868233210532878237438944115685176271711636309401479909649456354592950130739003626821007326370082356150691269643183351716254390304698989314261544263595113634660573786549512445747526216789547036289048304849968040377225134319373734412366185869445880640185840731476337929403863404359194198723552630156546080518686760680431608451284591604244132698791253856029915996727876619519505317648831346932573668946443825581391084862096637426745798313012223438725831244220330945714575414704792938758582389977385152135237238955966431223564326262860114748908681715928106687270840082033771869215352352692634722680908259898898400262081521782826112293131182086600709968603654098183268075582477670695041099758614362435521619453530292002546673679964850433731334952082107511992589266389956475698587079018561237915788643744690378715095001125502100388453119236529655994619004748466206423479423296700605290037091755781887081935221468714272352776325598980869487211138459800141238421638278244127365424467488333816797162011288619141540193671290947899026466644315609837296150196862422825067230616672094354657142514930864248877859868275958874906507726025095182953676518118236861694472436078376429476246922631949892196464406831692876616150605081384631941511620257790786307180123115945860389656252655422334623445450739478869026815949751311688514369452102168831904461686297633252298638518188500492869357276476682385556463655449640063176482855757858666102285515648599088209586894443625469867952382268611596991005636608292679153375381606611224786953132615853187176388598937792918890299879387981000369730784895927062541048485931585432339568310423902990702634437978756918554340897644076013084448197862650794764408301349424358342818859152592934714363175337495897010728735012707889804816350456766676932075530518404324461007403216764718360837084750651269307076608498252990003178503058536821395127350386382460564251033777558098646433980171862081426630741725922260005110913426810746701290143016541010649332122837908275150010035300156545975083237729654396973820477416265710657408216499606262274961879533479070659889748717795643340648417456457479069251701494998100953534135489087548363275795224072069862910246717035792514417667038866099069857262605812408253362252189920004189757457653151230000644457159317017716886354833330519215820559461173577163211322339319653203861990051161781713340010705766526899197081692022194647043237953564118660639205586090344570641517977821450547222788529872101978588460700474200284688737958442289499743336562718779917211379161644925413297156528795295326397595385359209501386333805075613695308995475848830242619627589859415137805158050257675404017857958524488311721050892770892272734319738238846873071682302487886885855101080735227814053714065207581072708481672639770987314551626469114232861030369329843303003236761627142640675878067318839715150027981633747790787750383079867594045910739210345874042196170349258081899072059612915864202028857340091149552388651079113714953346397639881839488045300750747403722809368205354304949519483328334700751619790086872854399629815756058916376247230691628711111376760864803237524596649304117539461364643378046711650555046706718362212857950480671656304276267114299991134876984470503706379001810968886297217579517324338027806174704963020424929166191718862433555992820932439194457118863215563201616542470553759386966246563341215410140322869909301591328858088312412428828763738727428380385907102927486333515030904453280525977956589205545624342979827941348917563824007716121733247364285401606100443376414572207859217155914010378320201321338330963807789040957238105588293927963743816606868351950592770195153616017221589042878567848206829194416987181928627308270444163039625471305328438833791337476873582612211625836027289616245590418967702474538275839665229937123516304898330124214174557885915942560597924277218199085562798486056174536844789237969079755945551546468531630244623256740348958454622567448582020424573919942530942642245042026890381501526836024125598075975236481628093048912746151196231546114008220563967806585354076686882275426503812259991620760170895567474465242344520176616503259456659129667863246213799192229614586714224824928806476803210864779941004100600339067927523736254602774296007347880383566875220034824576949084568626960577157019191748922606352081297387974438354832861369395624503929768057832234021716765559177668403757234844094617629312884926899368713898388222710602790379900190455833600797392774109266557392331470259092338906543884223513241153880185592349561399302239196450504503693529270115663051533519186418648234424999192720272953459599063048723608041595760029668121116831723660381105428035914457202482564561057140554624208213435209481084171582895724450720635468160023051201408480543587425261710176818538835575587174154247754497722214192613155252691091755633319323222432185254221827291491598105836897025035228130021411924860142480680797536996477719394906804683552808347327610306049409733091690316783097934636611832784531868716462680738833656704566010423768505801395074436479639222841126979451347730049249878649656367949099291327125289776519181754279628060849323755208153611132403397131655043918879601983821385850007732424617788491875814596426423378897933308194881600401131265256356932446593984006368903152547229239914144743770696338935761926039189247936317800831026114195485436051577871600495578865657970665885510428824663630572077789022667770425126815719795332251076389036819762844028610258805392339329474672024088541276492386447602161162620824212991660362299184923782236300983478119522913821847326342285759120979805478285250591837983368017874112426447460022562414980691400740979721023278539575615128345806165411117926710427990579394497134946328950456512868847841871758020504583283874853137369113510255062010277534580943910500102183397324565047288947687929892594501987507671223637918758647201214966061151280487096488630562284408393694438721692120849200851558381251070741955187208093746942459731172811721051928903896370394235776862127668210931827636649840421249381440979598631142254364839654999834790843070217643855543512574368282281530322223808347679511135570148063182004532207237948918635721491062425269939946710153668462341051533381426847706275852035240992079720869914537301095516415033176282001969164115460268207236692552751418429969920539853433073068057372380504167197221127374050789272663406388506867344585607732666483845780277189114758013231055198784133652185190714606813898688671031475982646112937954395266728672759948335902597445878687684964626834844344141359177145877660880778453571839329371937393236408356337576688468211117993505541020855618849010201600505639541687451082206035554108176664605241249662244228045452432160320360194641356097920019590240497929236732989245539901019801121402908686999205758917771880741461222050247285857153675307478143897305717872683663601576136100772286319638852646235125538077319459563567965382362499926551804330796359621106745528521429026294982656755335273100468788657310472466493326567927331345122955059186232937393326086077451350775309015744438294873397796053228493583013618379586264803212973684748175164769136621103603695091066665051717115082782009327883587225983940463068376318118089044236262199881236826807857952621972166872017455174726278180326830585488039709770479348310354398559078435527766760331398846052715031388563324676889271045958519328951391678238577357726581004798256393551935200552040800287059678249739374788605283564935914978380377964960005212445834779001756042465866651998077028839438516380955043049219603244360903400851746604296274309768387151945982644735940234248211044757291117779587731341553609527595708986125867714562523994500759380206093550248920084767332293085742222550206455690239126543663578524272429056053205754030821014512382090217466975797653475172501465837478848080537735150422224042957603613754324861996558919392205046999821062931609675651790751322960777857553310265858425760866867645355209277482755675451771699508789411805936305249944967012375980065534998739666395394417017059698101512719333118407679232718539539809764048527846743872316432910029065495308612833302664007580129618499207022002555972156957588376168784364346792755863573972253564884133060119289574642809357858081132331433115287482179766039712579528900364071989233281316116404169377366280132597382222374268189176489596422703380390592959649696482133114473166765041976781108490966469425717069457007871264014486522428469488976172567465352205061621073001019262483146821203551699501522007316384004132030333242312167082685468931758436630430784350785928104478492663952652398718644173380085681692321347429754583269402161253332837900960648627785494126679513674045877416945596140762656625029900692267267876036587137932796041848839393393469263543415480951836233233175229370352102914641331275203711716675487206347389232937851072902951446292741546761947942747166916030497829288961474587026499797079206387240825023006425544995904011974108535167844409018806462937483544396144003535233103040411784572289029581805810321237438258987027473704010683777715925126453570650830092147925834989247512745362200610585457599736931352970781437428413405519544467214894150574528391716037154530825255583432025125424166244575245629644579107697171521470951850550035505439063168825810578507463565620479146676805569843845520277099697198898072337148695635670317768776378974327349282934390514556706074460797047693164627812141713818274378561462197088087021064211057377851471358837377388240765280451914271374881105597447183100939375197659802100241012511230813682603384744910877161322857660263938849284959898236565727204263572026374825649494912629141917130646280595669825493603261320192528043461704390289260279931404361370265820121312851488158573111782104131033572888718172952627112000814750640268304641898876974787917317370381399918882424169942121527760451859567119094180737347933109970928315546816563952710104611376254066449586183854638982208996778329550111431499593680398222303713632957423217357446473421097414917436419947319588400526387269592318364232549184559550453437784670947045095942012021142208641912790493599452137392487110743231495113804293793655436372172634819075711353127093079527295221124795314989699080894665747695565124360561142008663990560990003803025061242360775032934134728905013167728097131626834959634092922430311950848788671035335200237127302029165929752526570392104214963495238570856057234346215769569851340683045483315459075364711469968242091023214311717692277385347704177940764410013010485960927072113205231853822274448702433271039878114791275460808361156877921513113104500836636310075175110259002808642771502096271366239740107528844546833161821150278926430729763557610551124620332480053105995111505431484829553432959830574272451737886527193000732321736237587327314890910945537402704811855571990516839387453520679708592118964078548950410940569965988715988633620779550452193215633612468530317470544394029418292635524015545231609868255313897018801539704596250169179664812501555932311482673005633835797260328601778474149600456972578349562058732873012451455576345230298648149544100907883529801207012654109525184606662017674204525736799469077190845378748206080290482516701766198207306183312392193535690040705215498939034465938809047507724169543651858075066490459443188862978723571603022481352204601090635214508280639749275512847694354996203399164488791974379020957188863200247502079102379073072963746326336674594275563784535691367345524014897125909480368566282321005003940073106632075257283147115192633289285206967239347175098295260212549476433019535743835092582831113391153906337661737307723630279889869985799450165923769067548837988929400605162826140048150469482814033083916434248650939635458909132805951116334550365634824519150583179498083182728134795050772717335949663371882149192837871164639035669257799424573943554730449355593968480327902086141968150826064810924688543383329866390745478052636291615627988031878282707451630327863907566533621975063224248645769459753596673200603898262930000761251494798008956712452569559827585485769012463686594942242277271771518496417510715984163572072412243719680672039270647894278942171284264133427118318479441334606472431411501550985511712414668243312352062840657226926069047479196447297528322749569819632778728162595401202053807329582500497445930809782409529912965423318498798800771681631986086512088315867256506594414061844683749631892913745993421603484822883158289730942161473689255851699271553115588887600721703410244587440208443428273004673097955556668115013003388895838023146431382900260076322850347583078087889518031398102076278898517435347822512084675949743002443789584289568075266320362769629946018083494199491270655913084000586265639963911040685104128200715324625642637145635575769452849271126355771963250658965455364821254592633552572925952814993415878776515692231191510233734407169916564763982000896984629843997759385398112133218103281989699457926176493582974837338775235285946403513823823062694536345810031936725020698280738433341175283157314342639896416347127053034775699155800311815918091137880268838547576972923398882860323029977043066628869553012102727057633959897689410249968479498168420119925613480756440406559462383708723688812548949148794873480861416810552114001845517008444484294847550732736642827222063365824017454988082913018839140156809050000849546573730003274779720991750746178595157995320223728523592040074251522563861667562031883981176186119602216284743190797025036745928280467817853664739356003540382782818457669478233745711382212193261672950104270694095202650280522898590935002394490874562620534522173119409577830195360518503854961406218253061820365182733706211198939024488975386358180994491815784878336528865436542248302027892417049689651104172759475017812267858143917486494243573009091712648771605959209744581146295542231002200851205225897647781148270394267766642782746259395117438071986187222655865040300284691469278646800318360346381726405702707422620342971875558099386871240465622333891464658305543013155095285109726300508051882652726853353729373385691826937171677303161186474948104242151279159101460656979533313377409593674932644146370242752453933503013099283364854070698403439912124524927558029979882409206644640425859662008887419164987730275403729204215810937814713136226288666694547421244955284909149219337193623402943371255755699886529662364503535192026777637942482082860568936231521523178850145213132149146986854835944706865850109813142058926764161151621094053567807368100897342458729327052108535726763805642288409296658844777952795467107351932954747130150792208403282322044289446782183965471109021173407251397247573570085553127432199967512595825680632358808838843662032622661914149347404364980002473983320924118386674296092694607014183881781107142824396577963884398647823137154249894725830411451495268724236189967630588168208463274374412103905527652187107355645257133601145580455856845586504328599176765196193271143498665407774514500473072711714795712227572018128864464407775174603282423173385337652989810442322404677246320479517980971576025800885768975134059480548268772884776293846454960402703705085394190927699370668045517194160403763511801855136575451095247034602260020741742823849481782254906365992084749037583205744677959106755660640775009347129817005818769408027992690460594987211763415191488225186704395573100179371000466572921803728487979715692278888397041982545657064289089858279586256599013759687500785698534209443995971523667673559911557090061413018853956006933050826115788315979018829128777653969640675392080848582290475561905186375490594176472080908485239299663653777468709856801423613707637046742361802921867959247697776529262929041798392750534329433844765333985012282836279851502637454279667177148419757339065728715430543215752354493205346537542382048448508846345908533866772925385204449844131368637518941176848626136036819373635133932540806852269214743073291344676252932264084533084493864715156181394136343503648177947550976339255988278690369632386330342579445292292377520328744890200405326681393547528550174645317172145995081455613646925266502271153373818175978557950419880754858113362891549009039080607754157573613737559880187573075362487370012912238261134381039234372313536898891533749493786324984941764281417045284082969399172432328677256415048376577311449335215538523001781108276163630370902052595037790925341104705700465652519779256793314108866326405926231788931260315285758716424211903337987257758742901290375936269727234314893572572418837941862768645667758686920276014398050163871435204776738809005789283633817797388457344100149966433235822257925351711059485607891824015219982852269465095876314924712795201644676474027046895454351030698261799914022340728548915468068420957432075066211544876266446757986364438802325863608869187594422715214296506641613849638150279721730712659205782660027847181400342092656930703090445702459646757649018527813931481315092036410498459690602253144748229457070252704363040611144551422276693665012542523720743940182775250894143291521517059974545931259468212143510622763303318504339488951276720637291512493681935703191046935729052762887687825004850548005973230753265227792552419913159617911522069419685479187341566997810967025629939932081645071741734905643398652199866390557093521198524390679861502144862392843873982018760228547123039494596615725875096503200712476657593813721248011341535506167547203695791055974610671125417117453695430147191419937319722797169021161357262524311647228936664414262124385498136236949635712821160368544160710823177510780129830425381419089224920859536461082139564811320531607370777207605599349815034240640775123315121589992462974978454743857855952270892671024791991996450430401660056217629623401492821816115205046438140512010176327979026932712227012592708163045794086959388503088585777767698805771202774618583728185859970177211160371098273932414719793766386484316000841579272530611640850151500165203002001427433763904187886226352747022589848494690776947476132763910525994056603823823716369435554706581748273071824741827263627240462399440284444736424586444751046902997652674973443569857085390578191599585996096750612830910194748865650751261397136329276415834913042083009508511004140745574437849278985760726105769741819633696790755188383220173443764398053682962687328518939530815972138409987536577466354932531139362559789543000911914267407538592549690157973419183710401699917900945678359628573224471479073204569647197863154908628412333251748127848288098487610221009742783475164627905539385196688956965108760628729574590889201702386720740106024538941519547393281424662231268923626502720564026430217769031895555206112711463146717038915773390065452869232720808111578757374991035324446693616535175221246886608059397380546894867556025887068710308118989220242174952934582195353009915613553607315909567346990699248742680019538217524621053498627010613215907572602408043008278683562931983842710521983547275117642330279958926872730531183558056875276124091974244476335680956874844410454670283523651415276562700804363097477453767809820873498038498259924881067029775494953522829951654655985068742831762852085719613937978285057790149962321392204623415241682380388944662426737300189654337647650363412518285095120888648562947143987795665592807491648962562185926715414692176768396054500821642162605610642314443579823069196578047057471484600729681823722879775604960891581786867293632379024157920472836469702103139751800978415985500070553649387532125749616748758725832599259576150743391862284379883013460445408808178096854911945411934702689650599198604109976532111965810629665500511618365170620292880877609149846167316442686419708923064846305675457388720247601652577608529377210933584453871074027292591915246267623538179786930642153401316337011357356351110981418211296622107367262696156726748307752488744484167665737024004850839370255838591012266948358068391545479166016456914863052393597793244672558867174160485503871149031760755373219447283058221915580788075245369693274460174736052420586469686975770612186776197205874910451651427154954238539202325269751234954654630906132946005665072830987280338737351553752235631835702537006494092638080317374634854036114660004846876242310894723791650074517970524862846727663375517303687368385644037049806617909200831710788210498183315526148505373540750351082239392474456301096920422788447371696889509111857369268903366597185225377703296220167081065518126758009408525150684775792191389321380928696119531220905038018107658748836831788278142527862618796676068219770390932600672961512755712527864370698983544440961391737903545485180403973331374805235879109555830404815348045391878540382432369073043102740626417777626573010347033840211296690848180461624964873947345844121553025815222149945822249941941954725641031750211442280865230280221342409319393272767819599060811259862396733945898961907167977778025951163147757626402858826251481582164399441350619608117589046195115853908261335496038803237135222451696811805975121895900285917973908665244952804078271302700453774372678555325048503974637573946460984085658930184822341614986583150346608218622360580194811455490351547426626606129502687840975477981407268239569314724876098280345081189383404096153431486301124867646531547875845494652222753187735608908350438370811208824417599385864663093970481172530040203058134090447450511563770541035014166861912485252694933482978510181114723298740453961275402222190958440508723066232688884970422345670001194975185979649409914897138536227945887407609904328542281277305818304024945108706336986946867400894810975397100908494768304107115295506388876524905456599942607738863473945525114489720361047937572544723966023547748127494160698351013147640236419491461059805563757044651556671236525682827015744528476022078175397233716409698626492055766876156445774464466492547734672972555705388285907892317597067686398249662945556019387315271036272012429312017642522464480318195446833376399461313836144570416088834222537155878358070161156027177541424723331527813566940098980044458238998420064074895892389238927522891473294553124042477552083805237951012393843585877545499900127206828665999857909842930384600732962384262907972182333727476694640152692048814304227394388383869880723650340088095245127260013615257041577497895464274592866962164154275190720789657656762047087629102592988877128340580613171820688795096273552308022803665885309302704619400614464491862785664244942081621020383276111696224421386397311571301189918531699151581650258342812848741492753605073550149275164965568949868814457828072415400901161769365898628113745927903225784890933976881608670857002995345721579420980997220532145751427154112209398869874562801165332079254551969851910384281572683512010923679952429068679954568308388593013667218521135364172442283704920603648154449717799886187390619701265066843706404251244599519090062260821798454151398740861561892465930844027470147101672547160166860173976919976620111199893015535406281778132823867987398831854809365141752690405027399232695322939310360456984252059471087760223210167746792793562530768337722069298099521332754934107640682936962565380979829922150200761906567133233307191753110953769674314458270474521918565656173056185321660425946455385616883759934532767382788781222315372811134173554517073553208276044077452544230785453748112596654635574596043270368542157386962244479609259367500830989140006853836358817787486427106882578787407992834182519771408422304894979155179876782746847540849289938647634983917539244593293129138080738765005052200666662727343844540498968011834325534999762501192176787558098067233241678261782570891163017980881955837910754011805096216010930804225701805492976467841153876914307088247531217231379403723659287710434554469626659999262339332986411371001268040811602769694022871365072981064452520165517338604686504062129245789271472274267638614268236764085164119476626514371013938556806427007782965968048607751794922121562917386716354649889853835751532497431583541399132213650515513841090309027554332364412022530077042821114714191814757096183313782294342072543410315558281866932838668366072691638369677932010214202904681337049153438059246547114970835401227241006503949742164188669227447368995062528945027771898946913296346758587926423521163354647468642605485613157784036114314902695442750564803847888794329565560484433918406020270451468278242315140650702210485195920723120049337176738352370930885652643448419467734538241329688543063024778255435028195957175433268735831728279337741010263471725258000551089980879204274477838536427497206543092247960572140033066159793981569706136609839640552028766999172254724020639606096429945427059154600073536731549880773908300158133516035730111114109280154122806666705878555092703338500983115676285161649242550929283039087709889349460723490286585602054220670371568046350038260527637108239865979318483093676416563607907066052334341113779312161202058809514614377394768353883950472129452834986548086483788501946767694562326701998713318455453483736084512767180056787542358871951058956527978045378344846504681469516775381369518451030832390374965716214330796386015448161449552393511121218944302382695405786011646737366479565206587250815927530571313438356992004899961804325495020521955502061792779930564245836658721675351928175033449923918332562361626502081490355786124405183440403815991358271738433734045297449996405991865666415356124243080016261793375092142965808828322195705784317169794628455133096838246000369899618059298795066037607124327255975365088203863609588090400380017604750786697443325877232154383259983998643950114495415077009728226536958394380850912841104162909663701274249881761634410166742340050683616764823271038894223948202530869672229252434075060265129885763587813750085100568868743282747187323242898477335425815041625895502385448906849676764892829707281158435116760776172604891355851098147895084298498360559365937105320205997904436973534016628764532063718869382189780157321907629981036125683876483872698536012944816073176186580668059683733894119826500873262426696002409088320762261178399915744021058427898450630360141993392836245540276835099897204218596209020162101565192235842119488202091237839275571856055416562054553471969786612350583489628212860820840349731199881077259045458633766108505095823850307512842596428597494715967542592403495586097964340196646672175723723707078518464663837067170299541698329886912472818768027381254962938987607223408465709509894320165487604793394679468513437326303922309331790687303169941800740480006872513659785795859947801994965234272868898871781351617155057783915871386404057895659182321370814005871380883652304716712718220060186088112572603398624035420675212769089210815522603293004441018906372365919571195303028824858684782564883005251812608103542135181224715840046275105924448705837095408353189752152361034204084507641376742347300588220343231604746330435062814232108294872409025947644118910322337404979474085782776220482618219514282179811243726766258468951951069986737402273230026026150597064215274602326999497006158235928282229783286840199729036537816816002884117306733244966283840324353650413975362055091052197490957998605957269413840242675559674863774293085831406648031844531532908153215494345828804429373556800527667018000947887335886091364949458385268927913655943428817418645559410296179299581260809706454746509023426184034501081240335390006107346941209783867162772161370836145151105007720117042140575102955114913702554533502068141165244769178458694354034118791350719472868333896624761011830170049726189561183989816053909200891172772452827329958680838010737813140018760672501269264546450976733747002367678201352356732426247888048234362900999633010976573057107450862132187796828074343989648355242714487573058303218024945210923199120417862983211064561898234504950543971618030395685126538014922516948784795547241863827862758232782129939782074286755471092498218244686147958081408355004668755962615790617175902192718697237845472411298557573179374795351829558429913369281405884804215715380746853113023354946272141844005632397445875377275180714660165706503537500007800054761003678636991113239858621322182246246434350103632239859670172899284252341131543432629303907359534291441393387428218721484186131279071626858266847205954664035651133279272928367042153333781564897878724347231657710811890588115922053413447767521297746355065511098018114547089217012441063492394924242267383494394078654658363868597002601991541683855861557896701272200232200316861954197028924757421666766801524808240221111561909829095288293422784064903953396720086499569654470752118461343409778577773642631658691698762749541886831332475145315900233544095171491408135927319114619200677579215856331076125470709339611644150880072729394563684925327185891551688147209601141540566400389210281186485459504119005580079283947161996760030187700072991661348781038991897992779330826033333833405791933860125992663543506471009126063462523857434635268474929790657800172876659682562194685410779874218445504710482511389936542799445932024438989851344256726693278613295048517020426704168104239887877662828350193125454951010870376696381206031276179962188931877783052045019481204742705204573212548733903930286680853928985514539518307016773725339156792769039073362485903433514761178705177976647101075024507681616557253954820094809110586317329891753118416036402195034635732195947558600832082926751237884955166725064922072060974120312931357435374521855454983025804156517986227801646893748172397133811236953637358110573939105369179739293431977518803252435258608082755374099972101540080046979927943422345447689707580313149065499764572719969962803326920908915583817603213989264488023769100827420906680800437399250454122368497194097746704673167378878520494165644737071325437283139540962318133764738488941218277568760582754721153484064111928660919806142282295524907588525871140721341401635238119989127477891313975746828093424728231102189843007024439996429064445084478802766865394635783597863301435743073855224801180578551630030594803517023052917619376680448974551900622981417402254687938598091422858374494142946684056784478629968730373668633975101391007984558831971893984042058517831262556099075164256666091448576606836793744806529724037099333962928343483326610413687134472596294417153661683256929874607519349004367548712450125173882289594264322061718377059516656649038896234159034283659246762389215431621094739650098692570895075041141578197189457994851682923997676852605909408476925555603209473017988926182294738346886884787742147478211246290050487616242097572295178607339598869641860539956912742611053799648648272882147298654479372705114310364153995043024924890389871904738048121737057256637134651471541312220563195699529710744845423257854093196070374806243288730574037414313238215835562671427568755755136182019176330108628379725855115674172305047190608736162770832629644295804827975636308237643616154555406169800458196446706678102433478459880692484772748952982620451694370037112019129535311291971380175955779745321797068998107869799671161406472583557313852803781447946186458216347452039855897512317136407974683851455920414500521772122914466992786476520100365397889970941956779542290004143845487143488528556517630802992516764442476821864906215121917234256868516006058597808966236688320128396531227030746548182119994822538814300401681144503621167202444620482829677761601656378975763497955487255108091057813394203472774484748769898419218280856304164926029917623036263225044182962965215438562876070374218681400473863094501591091325421030325613511075755828734786562608093256450743463372334224085585816338537153069458782692020523950672724753690013980114964316594582971648686322048417952196424498327948806313464620108913932870531345561503788769211459272685051467713559958906322386507647782826901680360130617085698288633635339821664116613355480403703821003445838081505583034017971208224939095038566095855713953746347628324042175193426566863925591774337832554820703861056330126237628769817347282242509461531890702150820504218103977489407657214990832478528545951002467959739308411062725225415696493892368273581434607727598033462643125982788894418184917380268704496038867071864770831564787589117803543082013186565820343540734229283474557696514986839150397614126133607894809975591648249062551685536794824740509846496085681889172036998737579643980011652952702772372260193575557202326310147686928476263628518930484926909264098547249364818141283168938328312579566213598835544520667408958409231486257559110519622000503080204257370028996601241363556488028033999569465609588576321992603000468539755980287655583171070639975066604761486777635632261161271522426710967361840252910825524461538857766602779608089830283706877813984923812545171789875779067691651324603108755181479600121676201685543613887535111144646445965948986286850038429381677597961912729990459134396042836227821457438491080662673720398159683311458313277557371939647621394703694871344837965336720886507609494431067489386281016686080935487620406295314268367901622324344216250096191988652825018478075009309298961687893514404852784485210194972931491229336642838361095835911792669732105032865863719619130649857332086615243198917751756133072533690606289440140362467357916861241907679730721538960992609147780039218290966056780515742453948127051582786560861766280887675485282643534579297510910374324314804905099720134009387120996799226673274569721997573974983529556634445324345570326260278293136893889629676914900511179164157396415162234596241438799849972397210625910452426655628296014596790128617641535247864330478558149625711139560325150363183745061942587907329747990654033781293234354964770959941597021691810368147338333306415138771322151733984093817465683332375212452120426351494801795737064857482558812962411141464692661774781738601561556967768080635428081339262222680573586043957391627387714350848477018662653169748886473868243094196018928758912021387277096153848809506565320734420589849785682144810993443271437941292340729754793264761829620403614436411274652404369175428358566140595943326100913231448641642049764947955201717108651706981224160848217072171016494824798077491801666631807604571639525183860958271832720865705298255892664923127405067312348772034977998295609410636030516581681903848011147030423901820457583727316520859225399475109389001211221942666544590867792691371154950789666576676546096288277775199570554507297923666208523507816894340032047543740400762179909188135109499396694313427985992158062927042138267562143534059246720235020642585410968595512829598880167947485348827623226089882142602796694948833997353809115310261572752606151664675747231126731130456302101644275628278219148792466989753209783265292168258433047908547833654269758433077955719520001012078724019881349498443843676382704117421003695116901118016832699946612010086053209415790192889761397840351651115993464204441482768205455063418483061619799460270489648952438970258434171773190315330932147980542020896195125075929364901627814740773224772573220191350456805599978569277543054657879842859468408586784134114538241240720656755982648262576190303383417425184853854038470371006908765080853508640217621010156728291435673677110351164397836344042830234780735456691438177047450894587211787839154166530924726979519526863928233003716850678762078775481783910819732182904787993291396078874176833081865318199940659792678221322713459632471409529463076197396749984634936360975806725366155180785981453495358216014802602331762520150636639939135142877511535321241122515057065723115208537650284322101584061898257004704391718649072412089171456120249173004379934999420658663798578734606048061922811946433156292568671087969712349623640619373881121802073791598180109759080113272257843002501113788034957920439189928830051624292176003376410793371968133192067582991826078485247571177524201683493481941400539164639352182737104891500365804792597615834365135534943843191509214629308199501835916709425302654032980324967615843963471143532471437039221486178438282611386688552159846134450580330263691439417435599175378716668814004529689343519876527230084584655015656598952113011048528816939415686706351783192218559553050002986483254447747771995501650826588967139640889880567958066916065806094048513928010222769761561382608319076033245484652866146494294839667733008070732006751042625141429624471453687509706878506600593940265187786103276547028063257299061968975918873866723051101237949329259764957482625519592739447176400925561852118577244308889458931304570975272586707145565142360341819890315195457218862114917103453059657845082618680743649773583175770086475879964322744548950078096671196162151367695085308923361238666283481102939804607435534272724428104903280756767003377271120949128434487450813568822156033050438835175410814830375344342084122081683605813262345767754279316198604543050444851055580041167943376713205581470587272088253604731064967931847963735278844788520587318286600656334932560235908889835377725079702005054144021055946107207649244091363372278973994663975123411788366312509006141623227657028541048506797449812718146764308414103002375256537304952767275484545999787163325331050619024021518146810014651262851039759839412882369862113183152477649679577744191332394798552871653023199869802398398473198178817133310344339890837958000051319653452338339010909704447143479426502628574031518152035465072823118385198658029362135224379754319380198343291431250275776675431686988860286567701350037258969644586868341764738783906654442181923585773107870023191744542871416003026828372404946436034787690357332618811431010813218855279858973034505344033037227691514045318236187832171998898905508290896624197658559805783414287373064809852907821459411264949921965113612567773076994605802064072391808669002017569564175955272113593375897911604759823155872535644568257143746585668898203737054970452907158469737635558706092801201769780532935796783807950227922001052016768988732541083893192509071742888108107086232075510184800417696968262903923998393811623663847871308193201855592678658980709850229537394942175424696253547043954732413392476485210376117773112313850016187130471064778393248758500636199119677877532680713924689844038826593605108546523692226192724034991210383162262972411440835568680499807460483713592520753901701446937391640928648639190537573932945565367754356329489530854791973561811689434694434436430308714442549106098294828815811595635629933779473922097851104067216644803205310670913037594884345787343984737076537474047930809034382443397058305326958562998479383048081779750890193239788196447472813485486485639973679076903930252128591950959453303137975185298186626201176126095321392633918271825632758305911893721069157764383887227842285290091226125140805231508120272624773706671615372979623651717118309181715228052653759337375581282348642969322667847133869598876915809508115049936337356905900842892007054825254617689541647107780117586071432866240448305523642593775798552448696080726730590765024885140814761891799989629290795406069165098627507033091008866119931836534781106895005532321232310409943156697571284321105892729075626652983068346126881743502763445734873130812787853966825948045024450899453850626222815657206656259080710600907194741580643428961731315157060558113998960765684277239548120624654927922466441086739301705267840652247504105360432350868815254382188405781522951987895606499560698274532892273270385375845209270924294667346895933777896580676951285904490573991307948762539798998946853448670842763284764409804653488551209436064288937383710535155958795075103681999586009247940522051548807777499830613137902641282737157571061281736249783647450207227756195212674327358168549611969888258311261669505222402188114669306257495384708699586574599887892786847387198643837904804637462228161268712763451130947831661759970759508533257460284937400104364503455658044944295034531833812907850888333858378697710849820665102062795707669833445177934527180376911410207557477431542932903262953211497882620351598741254642288439527779549928956475434710589858515900550849005696903693994638054127440782720795881206109501826667505282910042864401159690915602602458721174560455109407684697973682748145979040455219048418011545663478335343808815341403723981788190775763064723383684807661718788752544407318658305011864756320301713983390078987542441102627774925945578726315160874870250480620381626062841567542997110084572360794368388317756971160717747601977362998608470922561241903344303868060751607783650278916662836093176759695530149368127979354666523938986549220821261327763789820294679958162439870593623917051175070504939244293712287520721004790036952035305417470268810031314275311744562464073545200130335154416116128453063638220620318271412034710573330570609561041999774412943789723336195293680711629464974174674606161944284195771506421244911540670731221384206414126967154566438915947177796949351958346843367832214130374310734291743734376354415907377380776833554545220416075583245001412712899741014947054886472434158991296092282986240745516058914963102100059587134719209797239836831280110175264318686111835170173586754064926579151374058216297242018837510297720276922807801732353658524866103735524636051974175871823490873819774519960413516046880860827255906104828222575767463581916629034390705475970348090440043043333174134614234541274567798725892324090915108730592024279001496737015134772151425714802387818972789099319232118851804003049762893873119886876339770569031907414517629750558295079055157128977260343546722251875194722777503478062988815802764088305858873211408993562565445263256262930428543993328255032950289369907770549029470796220083902932214441126573820895685434478522535584373126933754793765994306991005699082156031450819886494389488679597736520237763805269495558714542706585174744459646823526941056851933737004914486237606597957437429493137628495423747696298423620404069903223286254828223354201652282912884434215751270602021538317845218564841150669394364364463390329462869215001200331737223159459937024404665464401070954637786273667690456425997758603414233762759258536312643708973075795526996850313206909183067913265420306400314824559862392657597573177591286253089465412516622840716337014979026738432530161901013729788646954034256945572630522038762942326480649962381630855003126516805447885568199731089679575544268392204851309190268824033771201778639860463980025603720606929534601536735130093516649047599690415348442284064946435783962739597969701199959968970550071398026714315391239146116135818340680876053466725530504223979280965662210911118477896503351900312819308140470647874036715555211403407030398907223233915942351265297171121449159128746969645445570922804347338410138588742805072514932018367654986544261906876750303979569390242134374752592028444937070321982409508528743929412781595864754303669533654646504381229553856960187081463036000681022319353567758842217066271778752289539374973944984606881958992605790426632428181883297682570878308901643540546417536779752140149169816134993044910420427417299073183796985131245595860639919965966899610800504940072963970989595175746349501131523954054363842477157673057968997809351123101270006068315601347056168842081862105906584385468535226530994080955068645181964310455005698528640369722726449640722091072805065651759005363319425718826190168520911094446230493872762260130096650980181502161161893149917554486648451019396408924245351858629668535880723702520862903963751354424084167679610625407745354397187202203898292588150488174626321440193245912638467764538782149003218736052884016158146769340972434249669596797455129521524754130038382417596775542251548689034984675846106631594198812117971334525092753070140856142635030152714737087979022966356830017879902880841938939224918844891176700803803875888780169770111345334911534802106585087570025517363256882009759552748712253571825516978753150955690868985464837948430351870614923135734029631365279127615262306104314092395653522974932610180235741449400201075752924889589293245803518893483362322662110704722279517896431135332221513311128130269965705654236666071242736067583376783519101251099443703046290763466149644955996730321258522840068128863206013843915352393209115790604734139362973234927591808942336565260939483133648102906435863118308259658785978471502344907874767879956674248520510401039997571039402206306917347420208969917560052888987367593966293674017209821954183371282339328624773171964386256653145512699222367766777081986434967998415260451946404590163957896049279139291043490275683817268404705229814089067131491526250441754527101123578680129893682849339139638336607814229179455434491680970664913188453781202579621552321288398882948309602541545158301556456231328450317418576979979910789556567996082529165537586122338380700692195796394198374261176767691005073575014710412739177835963479441159241607409649189238641623144315098433799999574123860845568790650179660465904011900931064914597645508744169170936159780546717465899301704137539046825444198493069773963033614330040322637044138842456485319600091024035914860434195671889198585615655465775089014431777128616456862190012845946074216074295710458314004620124639011021019323688746231874639063905184609082474661222258683171698906360640254048935087506001935383235847779777771841566927112240044551677054193107303883694387978890462421759004666609104016362270064506716725632981356191695775856133339039827759965225099040387093278986221595494379970630648070964941770800581227055933091621184400463589378563243586419106154006820478790162140445787717398102952607173000991217971137542433348822666186718059345350035979406261016945589487985287382394619259273830058657862369012719296382659263937819596877763449192781383915273468510317128350116775412896963401763368803347613242500654794483551600242312566460801078670258603760993908004517562600906555541309840427357430050066877433135282061707299033893705322254670042058896404652393614283079185404169666783240709559587709423200941561095553433443491385438840861082486242898596197412565717042400678767123685935372271091567040606219434726020409941395472013175524491583459442749191929135023558344041872069743458860538337018589765720622546686389914740617138440911140542444892418125280587378444375990337027144323207852046419314755947583142919416971906297697904498821308019258759048587570102804989009276466743181741931273879879190866705646017414104518365473639211201831272642135299075075316741860411390850791740441726580092889664003508561829937247213684341314956929570401981300160608754127957466419031797332593924021074167670242353517422118285715161832976814222607309029636948713308807785556663239728334225270656507307251890309039502297514554508141344442816541436441049217506227064362861017571711204836658149705824635780075504562645374462805259328415678857985069010580452797562628572208304783543668131330317233238135264707525779523301528916639528654318999573174578016782672814602226403818995669379948424210982489742008823311140013410440951609308313090546550315955515473977480221462406761105271613757998628354396966578355245670079360497518767958500434785944448348747345525999632392588201044528789576723339110852081379948423471531895261281875108905121354654969246066557673451857177405113980900507493228007094056920655442879928976809138532882392312742649637907197997852490903046095850203281301188191897987538612770509831126796867211781006094288603341607408020448532441414457945472105469892916649981941599750811708399758552531253479307072377194823738336760655418502113337357535711604984088630696264989015115562982779223043334984493678391519856268504325200844798554629691262997883130293630646337045033155263752040473922415707285777998802963532890069840076781896975635402176619429442475372564984572265506787359093405723897937819146080319827113924804979411004922981431759499199310328089795747253376814606174543313264489248037013462642669263173424435742705177475650675563413336005917831376373759203890204265171691865422448413609465986362677543332217290972806772121812294501776642327167331091927523377242450590808589275655643441154844388895321327028560540600643524034011774394263831492694203667677312492334460461527922287117473732068207379504077538070248751397369748722080794183627245792671586058756843738256966015288450159363605799764879554666897963172764144582671409839302605844437311832195273578242992380530460979253217595294376466967178599565547975260104811160900192559877031603692890535464219693617900985472078551257259753257687803418428239419301167647127802001324490541706871940608748642509924900412437779902567236238752134487546868018057002677165904571741675093585374663278466147170222912775381648935814037542041316317966204626016830058358402780842508470610285632146763492164415596565399512441115272252098855763180788086283744439537336386628913943990459186935629799316913207431084912387826967081737983802760073283523713057038353881201921780745570539213125048219766934063942802345335096980545219196416496966420519223222933252249809906809438298608239338686773954452673632194440159865904066528670206510049409786713024508960506363114749789754318632737637932022795300108771768440261821800385909060770293459786409329695112338532614945655859677117544246194620867417898814347780270237891838654750736725070123164595421042303682530154992729230497065006887445529088936646551481938480563745544703197171864227209658706300498343665718303094585252856298925461326079017237462336013820894764047217671021078363530632839185289426309708352418426880666397245435194987459495272368823511064759383705313614945233262990060613544202079008007844359185142381095406246359288007491747232601428291506647356469491490753130404119487461275842517254229933765619132283441361596884512305097922908093477806100012024307933675460695671886784758902916716281510479109848199687950537574761034383928929818347559135337283428884922853939659501645942296849021635769846036566677068849790614937895866238978513950301955252071159479162430380571339104412351279771742589499718132089939724094576305043817654202377493729292366664085826356304701889428471366217962807794758141064720396869005733588378323839385156436769291095321263095302372341887763775951325585719886841563511434654449213461836258200177391119635659736209174802895107119119312161615049356614001989154067719147406045020084890078521044898407155872491318142412374531473909585928549192619551275281540455554894860530439518305516386529635114358554267895788433224703032239846296940370036386670597551896228216684947215516799401023726052761920617504560496637170762638459530053344438789944328543663014641420751502676529987148414838592420468435150528589264835412959996419063836222550061620298517908079995517161428927433221628069635121629029650503454559800242920380661131224998757487778145433349578136558008300458790545565523759643089947282941565846898062943112725975546930218879127310353002168642276336610318905110863359639860709747374195529341785078013653378687767911514738332525130023719102358758867980393855297049983218303899853337353315103458044340257304227586826097239834223150176408033273176226319675659897729718394229716522776196734085734441374759147793179333989243599405813960322813465924785587565505751594286116131767395528348150808518520715479514392667287510574413867697189020877761195924593592908638396962005768650996293038181454912807341809720403203633667664994439199362641452271450735037059076093857524400009474822971362377215926308360221391588559094614074069763012970865696906676244218618363552047279035331753093607797787984708023902185958744878960745237490562837474189310268062804817433813001982212777060921847008152523271459867234378543104978390436493058607645357560259838281625409849639983181129718814386395426544082800861930572917995688879881825724409230860777086263513136094630976774099702847276682966685429084540520229190030343224718982049938248060751638727945668940849736665162281336948828583395313505021705361118175021010169609373728821746838926180687188721171220320673364983128125457269276310564825879010685752080806339287513648175837581096955969933848419910626922411365611711295479677781238623934934140085470537845837828515123279873088409373572110045860365454494530186810732937611086797828280343661333397805386148635943716350087711931195598480218289926777976940913930849268923971610875162598136464279519116303391796129190017609532216557349110374712094579004186028992215511759156830362494716086505186322797429561365198303518971428760223750716059990468522702848242025700962993827914781801540664169179259696502306167496772478419474142009242977297138883251166552227303389644473052704902414772756471540923768066416528226112216605519035104953216953829995701741146510299848982516439056990939459868204985525831287644568389843421093658943105114075558384927893699740950138919882124799162098883924355873655545237536238906410726631365733868871501437667657439282983207346131403949526170953084489658005655846309523296318712451836616630427749852736202349067859155769362205347242611125326389143025289376673739262860646099166425839998746474341416395267773224693331340898922821352367160956282513492348592680407355181536071965673950270691353576343437674431172490845537767032666988414491148088848013249302584381770118785666357293539878114064658836941728387365708433757510447991235973659724344557427183847336205164098603931021959212112257203436510013963890649452967142056089086176982883163882838252297076581896118954572982581073394540172774978345406877641107780044074292966398079580266893129468908915006186184189218530416433221694927821339211827719021675202080596726274946300280538877794596218568307438429892564630240890633667606473897049687362677347143193464378269527837602861465838927893362323616036869658885994407170901438576500856237035707472881230042776474747037794632000554372747365847240261839025081850203994131095039708124812210776128324595639956407303784228294941790417991353653370609295358041284490195677174363265587334302844014814990754651032818138782109072143398374541509572180872332163931411848854048824761331564993540303113131971438856668338021766683608295032360405951367759271551656796802958597338036134406930781375730116130026579702426559178634319436264662301868725879630575563660782899695363498145223886600730147718791986416066143908057772551924487070829109767355499112006123175361847813176543955729503854529236536694133485621787892615474045615045230885311843897833507480699448020815830478029291395027421867886919801765554681814454430741911022927219318644407497903172599397713621809971117614689000137724070092348499633083203042973219675827894000846652350711551118348103201448352947448851886324133039606763958576623927274353864765533259261139160105897206949121604194384362769225020408360183481182715855343925553745823628255237262533143596996463666782559338210091759874444027185225129064251574535947961305271895994888478243531722562754131095998504427747535263888711892649770717055022010568232530711543895647583031225511628763968835143262728629815240755887995962098043946596889329519044901057419141998149858790000533489612069163111754682534858290076839537662641452052739360786513805722415068971855827765389521513585658976407301488111133738692458889098227602297339512441350751003872589482066478544539290551160492546556830179223635263775546268409049478003726847161026495088262069357484631643968978962700833763037430175619457389078848104243092855236310298355174517454466065297670819947432059951652915960087156521154612967354139573277516784434848645983391375848562505546017507922098835877193386013948967514833763802139034152904283626453763745808782815379047085445759676142103772361232961964022920228951469688114470582893098035700150410369484170547286922751970446946972920349519697662176641436203210987497172990814400037157392818915284083197422943733677477825870921871722529840693055569352258367862538776990371083298779795051691696299576070266248772561115321024522871797030937380056335405929310890187400495751330564575546864588192534437227170484110760458345052572429176844235610013945668245660428800047407292619165754409533650005445833313333486658197274927600124232382251718468930694085723246155423928138874220276616937979356634410450371155982367577143124912796231411501645288804409423900517346456378036293953277878016360441042759186420251677118235910812494784489548807258551257454960799569180129713172054038424909608736362135131097528620986224262418742435783767729126417918801376752003205633261892410186165130348102440068568086061104811294274090093752748578585868409229731577936688608619964429073615749053303451074679213921393573414693782678405331319923544330346071951552057006610011693010611464556489168050091450055613784940454369313485910618419330189545486385219860080820040286332226857792865947499006936075105780234742015035317737300836494989167289350909354212097520747272504366618800613349590930611407110464599244759717542401996540730654084169735239250415635500390264400292275155191086294136723600026941207127811308763653161522443351622669190123101713629501331698077009767031225923340995423527648984420891092439027564816170040721739272566024295837155710671685414187130035713102305447259377064542064373028381478419102186882184665671383261282637806975309886082906633039669846839624674768851145064913151861552462947924811159873110907977115298058809209285816227706527567771953931120357319433459343473372951899415721472276190367800430879590479992664242819620163009888371488450439801224462455602660408616133199723284978761593171268140040450561896686909847082394137085518132619963768897021241523137818733130015601121995657035414106535356384524396556426727217434505317089708620347654758674128146407197922805744695406849279599459045820901873176586616251787331296935726248763018274805306560029462418101514313186902408749384112421582150837307412833731003222668395769073506988176827548481773049953913103184653278383865626717476001806278875804925400887840392798564649645155278927345020015410031319050962710809628895237689828726513914081945116719591666318188533731279822794780963841863308123249343682732708847168484082306510680498401989966141848682192923712432262932844248302361017983910042699040774479919083761021111239606725071929979313651770673164504798623225519797029925665315101596604596690150887068882982527286405989514250476556464386139713909302025719458558252713927198113277588869554462920605202687675221367966827468775874528760778634491382699563480082544144131825347204948014212654329829678466860543779061338910206076538974678379909041982264282917135698004347246669699301575114953715204374031918107954868943240622909458623262452209667574495285660164657873688424654026560457697329001295837874201711510057426597492533286825866257024583781152182201277576078722787536254417678516818491979949497649100036934909550819450205563811224964796766249650785802327123689446228669796319715390249901099117672053296592010243274158366462851035194005414571907148638824694469038224568838850078244103925016359715374849056945245605312540379176033101653477500199864958058355366142071699741173310552540420552110773185810458946104627355807094714668352878352224424395195109596480193399728225441237291197533523339788200500320948307780662833646063246671001800870666288977157613180394453085177859979679161756236424579913187479952951873675602067243360786278316446550471333425577456220329705837065208461481461803279556572311289137915061078782367241706315742790860275826804832820482530595944865355305335573608943668378778877908835773316581566564046333631178965577553867451359654743792882443277617766529977537884432122626758789612663833068438490058005776137309460432457331415978761655537226301616423353451002374635368298942478242558064807664336180523774156314037893371269990081154608408142405869284464087423891245775193664669946373591584411931779500858480652805204513861789723299109646117709762971698805474148640403588839279500405680966882682526783325875358351600505794585314848377702967618326360649136605647118508049163591118168057356862567675748362796259542314440842686944417808465459001098300832470127327673251862965281011987566742512371854719174196446109963814369225276487686524296433284880267104880448880155910644769829183364432563837983478922499242473473474925585572931518611034534137335672274625782767187551285229615719350186325172175999942277944125127694916659641176453311307678394358755701511268339788077823089327672921967390656501679098849598999718362018377246697916468158884004015083264133901702440286390700883106649068349767628800880971315772643341647052515364717730661392722405632571001397299899095593747730559636348560061598496125351831074504282805991011356152764613718732307405486443870951037623912931744139267996447473236182136331185858040699365837776065584149533283266028778546968943002292685310193430198737058717358218098006693891250766257084746595062899184683469499119620505628810062352434005024075121256597621835683455225766840491652515707584146144132895209700930687290227163705638590610592169694573513122969929258356753188344521095375701735632618166442459183071917325928053735184818309872294562621725404441898640397503845136061110062107180886892905388556538032123197766450079788089229139071971832155337660714688158886146659370802181184864094912441578015869647372390959585803117354939639342323981218838583222690622730436915479647732903620310231584622821186608285896081690940900061896442134617344682521433863060864107649130309630386061561226947756727056616419832266128295594054185267009938944181452669981512196539671905138431353655032131380682424517348894759250312419248417525574038182351139026163553709368646884710152598668200629666043326715884702846725282736751363691589349857215149576969573937931293333878685870155864384721219088131194713370873382327500056239923744771721034792168999587001504698058956236518854268293985666712723058331747394679893879179844757263966997256515093350494496239329894118380951152202738593619916208931559373521319380127029848188296824569246640158910245224083340735294723767660187190835662573439468354704836224454619937129219945521607705226537983475106667694632555115664949116807052305281730869088268238012941254181467305845934358127343340746347109810169733784511370003614666147779737566767622118782539423603706549237225664751927002508248888604062234098115451133342239017736841135991533723731846766340507156896681938103585480799073996134538888268575672435045918997400691044704111628786526792010616132471999844823715233499783637523014313513282695539529010864942058186043961590530582597540015734752997498272309538705772100053964188697048745289735915687927079944165810494426879390222782002617388424638959221139263874954114195943300270846714237068128137782298487438922580196067322955766462225607265008320437346368920697425731014887778328145970055062112529709439551348206970678092045789009005563599319303007467104257017918474679952016450985381510153969617354552778043062677579487710979913625936622349370648370598168419144090086928384175813696077026265263739842179275186558553400180249473884247950763593696251658159800549011079707269532448861374349938844083661468592090201387462929729093845395689309155247032545649484834255843539275002683980891951243857147278892288180047279791059416493716641756765094433746540972890144063281301891438633928063344349424002602288104716999725533939570764107067895059052416329022129176157072028133796306498598823224267102982642645482279327154804587649921241321268182767230903475595793031158482489483014173171934310466356199829342266084524197727430008947575190644364250704011573813177948095995339269155798840054782895365239563674165729648804634630573673711721580999020989445373325540664924455565704797720791458123045061888066934773161154921352859808111096403564201032065031387832981444308563872065793894070562327958687446085284069806283901283199404031753698172910119302742164874460186196321594468453807557098722129647584261058043710144144891074881337667213835454142478713666653871820712848476170700280230771398620015232852846749805171600941770084830607816307406741291585704585798091435416092906134945970968892571056791005567529007475043799463382111921199900912215396556317263329873593583866650018970210376810565539125811274256503658921429101919356774007966612713823071408188284186493254567005047890235799834629665205390345267229736797112229647576384279533707030794156328931174663489962869105186047227268887787587979536548113309718525774883625499507808962383116823946505116854708626136402178204452762262185094687714584666765889994793710284570278582886494557819210247088409805488404942892027586325135120327683691655093337575687742311036161066838321580802564333464542717220249562180605935860577836839825461822364498335419919081817549239621687105280495142246375891201136159799843803455389874368637941643003051303788958312792484549868399065860064078993352812785194098401671972972706993221339071842095517824752068026846361653977165123457434030443246614781771199610855372824309171126351950119153810332261700960781979229460355260187876692362124863624885129035442839737923251389555064014239130766546753811452440247068376528064142487208913451379638599944935160867710746014327477238510284749466636334619417230160773629762889772512830025808468772653015168202925087300134621992315653871990410605507419303633901844423978744233849982606967605702053536845646427272703489439236648459002459794947394860416671133571702812092268052781568833531326433175902994653857485218471097204771824805672156192313199662763782820670627977864382255808727403553887557637225829990506735915414714947437264983978705766331150533421161217453408965415215549774624788862911830352604036873282202507089353084352345808150719569588924126052875718396496305507662860091116726175300728173888458812373598537269299262642666002172976904093229166457800802861573105013834059960521518020233746749329410957691399996766385217537464885072146422768364860918319733236392159249039000696788812101129746358373405258687854457022214620873685872796641453017626335415588794059073212225394670737826546756081074649604180433957953872113306464679928612294857139338563297616178508911558276611979023379998663577047496379682239935095795450820550511189303477935702443035283044283470241059046122468081137539970742874343512072417982710008293319137141928877140989863705462711361421706031603887715873410756266034626034693205757463632653061205961474109678643663281284892462172769906044003564831372701718432611076286907062962876782483372521816784952087018738888352668188068856155382102917938468812597592238717575687377663652172791829359888912481290484999654764459655545951531923019867342143962690524533746344986037179272054279681688929555879457553413146588128331024557479280502008666957169395778015341439067707468844437199722947314209624309846450531853965219060267110060566217145056523961676291582141003930733389291862567033371447241709240794482208195793496981155249255732540880883164819519948492518859797181791650718864975353694319576366026242617229242548005605957217481535593409253828324333447779423450894659468295480156164008840235503732349654987866217107668010625102744723405477738722823370632442234657130998335356361790451296645359207727938793927009546601461050918027326975551357136549094051709869143338343735386223956625316705081322123467368781442761854788305850058107851555678807693973242122087306618262009083050415060798786720780086387483147104679622180439475755630990862442443828090707516360392136097396719349408198200518930846341841851377586942138597002519235721035235978147565628370064989358061942774783767367165686044012425353942546083747346222496082982724724021875373415104438842714089303290396631705985272743575722491980439640689369083307046069033634037611356692720080172060165258701662092465653183217835903483184668496336231773544630393379348923795838233801483524662070768884177564682572717136191483552894403611579624682534709995778541481648466735735611338031920658221354967829629458379489925909065715085858992403687772470956022520603041059454722357343076199202003870342440222349094967180951194798118123176621613281265741888792671780402385780055985292325615688246765163590483405880044838458230241998417624203975028214420332378136469561291816090880705226927447850235794371561428549610330999701394772146061745007882475417006791781881337307355387867960101242192434173987328976322809867622937453437289981172593008222324624375985400183726608738326471207255449130643364499510019478254452554256119854446896338619233410886119023663625200616717734072684448767087078633992885187857488689069559520575608065535972362554866576806599730026961449979138639491376433439511781865616972457501195552713987666331024199364961593673423336765935189951082105085455865902404524395014958657097516880177298008199222597252891615283264328713301912072026225055993021055200593642720672067436580819591983894686241507538027516566228260425584487236963423152737049647360124729374705823518946377728760858627139523599906922325870359910709275360771787312754815094035127013817079487040027946364336884277169240128264044475383002168060555973991115327567430425079168966493653461066490303392645479826245075275297035511702938954939260502611673280508063619113504150387225535480524950307259220832129916769939385789605219190402265932968932015280538558488326767365756858379942868554314884845987804319937107848408933741977908003386369665963270004800753410733130286958286013592876613508856941307268952706221194446570901350002850781700817329693606994478080116508997746983832753354462231178900414244561256592361906713778221883099012620503871386374611075471382433334260661119112499604311974873003557846753855809319405365641438724087159307028002233620240342092669248410365413924603252815139106025806900867924694784641513774253049081133374859256590325210843787058369018030593385329700109696000874250448141845892598569653455698082723712762554004837927076410170208700067585244432577526457903618268036052623878996687562686845758711349482617027872642077405327791783966059302468053761252878362242163181476420476433345658692429156194617414792930326727453319879627590510582556439064127960599605162941055835770035365632428567139724330935998617848544097181817255447779140932095918405016499843861280737887188167547887565056631963197673047058648946240459492697664532851091987443373512156644888145132509782997998568283018302927181265875799749152594214260663844934761823669436130100077834745045443839405946382531641746962167963754039491521160083553404587300703416744768853863537241759119191257302962875769986698306028450551254255778130491965735370810975388980514498281958517209632887924975966878585576268728363857714282335234665679589269485489195448742419522285402758101327257258848460465495185162225272148589697272632895152661007419195971783288365945597685705772628478559544883724075791628836314849064779145534872657558501119422648699624391090095948421950501182854570218987410345718389817904863646490829677731508367769973355150741700812202580538852451953639834531876177812318292338451614920189467872021748024528159190124225586516987472590215507624974912267376594563307616602119434840323979914407024881734343302927257109286573898942406495618109097976549851184247711339007288092990163018694114212611703437224966747668259888183377748915300135800231460242604720552757993198994096431611442985283161148698973174864230826264934163168452780162228694521765248789069955609915109601587941691038845956359668529361259912457292837693574949960006374540510293312523537194211565013315475373628090714281577318511859276331001448478115773051572774116363217629955597106437427871640408298307104630541915599371481539161255478112643743890397452120735757677775074211505082981008573752383518383575399332029759891578248805041207059046440732276884830874353451226454706269409754445136975725708915057302324257356727210851684706739011137210182805804603224791660073832691454159319829243254337464860496339653422481729383254751114037593843778055810026790235933847989586548607874194141688407304341734969042406917428958291133881573943227710156196247763551902402171274686278247219799676266290091917695564381053856926401859147616695431940776934896555906031303415790944551975602966248754548790911175326993709371263806722567514630607402334459831482057807785525381693436480535680794520453868887221458052022813716526982011625061657297379748075002972339219097501220494749417006593929672960287387671952225506308643850360228641843766240091747190328339083995367474686131010932754508537010324881645635754895586036799189361129787619083567373122748237818270185310642630961347248714360549318903770261332912020741185702039654923368590863272900347872223765989418631895233975752644826232284678147416783941758787792841341122301988055483719196620859931129697830338865167585446227913405384476083942355534490331633000124757996527616852631945329309596273131467261926618198321945664800489127240421657304136383304222664897851556264565532197114472973260582132148615280100972768015104029896520206386068600459816142852374999120852093472923079773503015339059776478342890747487781517348157362688287288473096086418866453032947600753309358538027704926007328843294119520864829711317593752534438895881425554838517329528360113779153290113357598117475908082955904750657658456860498951986993050662506017097078329876063046816009521097297787513601863205458955781800595875717191172323509157871375153991255150526069594760593315763509091797733208336136807194551564074953303571884225636931711834397325160573650377473214535005635956382624749363822470583684752142607279199552510745513042443383364054939700333371348800299785946575449427651830341211197021029987336199117764793004764932649152190991777236255805271272577992841862212722025947295783642415695183890426186293194985023980882790182277086708707193539801835763828047217627026149024918463402523612956451260017975449613122087284837388331938574020189082817678502985052621563352750833939410145554721256376368546407909464765381655080500179673737431409908947484169143006508118210399009419171429055442874348691778082841271632833493337387601898051923823637302197650070299199840953953640819293935448443378672525707772959596138710071579214721837075804150054413498600492907499698937903488102082792506930057423601746771263982504447987947755138368875388820775721206353195865003008391065447149075492797115572184609015539457332518638981285824687769598008274176555499255652637871847498870632914943908030741726036758968025487183739999619682932661224121706771339713788092520170262301471782080063916213598205297385505558209594033326470891561955522356638062641257479134638253749259912880143126144362011718100610472258584185002863415621156884418566202827276600655362434165318617270547046018295233295364896057333074530647300773945817405562218010296586954554296232136268085193584500258735730586665195617446371811134477563610293164229299977128484739924791499752469757461676524013339887118993502919950725940354177678878427586317338620212314331223245499952102264641917059020637215636487044104269833633331382169588483198120936936835919041149316234787276366275921545684107024174052979256942981914981740639527144786905118423433719559261231919375790621178580909320588479483630579561215601056518207521648952936475049978364259687880476092599970186536111131360484481043431372673271493251764067795912827041809284099302148095745786634937792271213755371254949836461321910547901195080548163778231755318805404834474568234829552821306383035954647975531338603713165764078334088593594573767196740862525180978181788036986011661388347129991537711238341545287404899564690282603006885427634518962357355461815822221407196786684310268265573811519493713161823492530436547791887277303957729166760359890682984979275326445793020562500419821581783367975832458201670334401637519436130793606687706059615507458187300740588554185707771293765395461112355201773745267536502771236010262637114085024937545199723881184972004852954076053757550486334985176039343403658952960860734480553122955335688214567118057604758841942058349633845421653770202262887320328142627192419113469807153506236406048801061017613964306550666466714597747927512750131334659676463960699440570311860560878122806328967816576537275062967283576263974828384647295018917985604824919850079916092323997667196476783301263846508088042831110985025546612968618556503500123610685297435664465619849209211012663758311954624011266194893008382843865999999283333794876598213558839333097596539435168747702542038052033733823178938782825430477368592737723574788865668587360925686910563774468511315594786736516484921786038920469205739213739659762934266179938759886105571384739015869538001440033773942596352486926368960908705395262510961272908873767982224107476784882990262592141720651354432719916459983330333820509702367037918912977711390002179646455681701380894182584629598768936359243937980370126043700019545375320947585656686261869137769323655538553373664018114260401171263453205372512446880839250455380642547662809345060391086151194883142464773935945361134626325397903053106155154047570431835806988891168508827835754062604700813348942775641988110461503391081966974360385607326708715608776658858910608960720874715826970169056266871992681584833517410241095060497613332210304683200931629481966641786641089259633540386292413015247640415195327618247072352789772769577454314914572040541799531857883749810850505715767111058158521670552201100240312147171579846458543324890734109876109929564967615654471880624428493371942227474044983798596475584133489410742608333615212077501929801512946567208421155076388164598896617646436976032892432451053029825051224268070373121280839351220225540841513202947999805751376864933655676167849947133492695625773907848371824828315567929819728778686290363105606858009907222402153876614713644801965614811245388627165423342887561979792048557301929997500417588186220355084352693742241834775423575605346725549561541898838178560292676908506131365952880391735556024568797177231060321745760497595023225629419637906309379558104490958762135916778658295393030657653092307043986757062576067142706385260554759595253213047800632610710768083216210014579464097769268006913907193727253192285262742895738950413768547745929603359227262526666835217070318949628272456528458241425460630372804077747979885412946353979992464746913355243372318304535384890808089315251813576848527285891732859174645036561200688294705032047169041537686780019293050636695778550885505423698901222980877912670610523562973580602220182943158073555219093758657747362647369928888127978293339349986977352324137599315546363119298207065372747860725899731206930627210401572394384260875603932638706392902219030858909877722019855938537268814793228829223698259046430933978816522998597111438879191681125563749831316110931906115632552892612058651598514939761270556240876767140605906275936789728632046558940753192715912951170184437557585352369782060346030811140856162220429042890528709348719387536681994211967871603447511656321704404160535134139017313668946388738555313863682433699759859706164570626704130459126437284989148356890455609093481011580923180730184599840879909046157493109861431331591978406063568318841950570759621032685084075395110460713677431506318655681175045684291098593609486346869593672277580773060728837988142468100342685874419533203422259222591131568718551298843839977181848177575276528687274786799756095598144332697980232246925174800848043735402673868444648250945683719869661983308898587835257932328100478498000016592407290314660281505647241103452031576527657717145051080460305129759639033690487822708390133104005385149373537497295161348972263979021198896344486620188190295769295043464723057845265200580679906453900495542748739603331115133434232393928153928575524189254275336899367076736032707695340715397783176932998580029024738091222270247003014973214830993493324188082111825695862329465185756368975416357468959866026651728710637317821154407328308409582293717686280368564515915257032902756903685712988312781187473459607417310097884731562838649486193104350166181226630376959372676458853838094304945302303026801421097550250389072148424600933987543991538384213775459724640986873792660279416620470866328438766273660878272150035989277651707445477065383961960283431028523840913387237856397953682578837058304894726634813482131719088833963367241231536397295203799561405420265235573318226053603015161076727016136677534720210899524060190190731071671157213153131399108734604994855887930555732907486675692499177914777762752572153315305919154375764020855624311494453725459568097025647576424442309047407014493872009314855661267386418994254949313631047596189330349094993072843240900986604296477641606362128947695172656741692210412679197620262917558530596160588359815094381398881554647395390022108597871859240596478027678892392428047732324168011508809942907513006728614972737850416001553809727869101165381637602995600199875677105287434179648634948759022843450810248452324285061945646492828833802467453143600766539393253169069347153411102590915595098099960777108192404340081740190904995224169459367084155126335044683742354082912646538035494169538468719159478644821690719718827904537417589786565396354364174964211383323912726608538295677462642204374861375086965603814411544678174631824157801254897625802405672218165190255256466551041784031399315527349701282746407837967734310395750011676435012323921872173693956157256120962946586125817922599712293601560483252932466059000746753828911358876966050230432754644157727204135535343106923020990409588280284249254566092255047367866335359776701147547793789512216395039174883700606920832143131056511403216591497160545033152608756244303975120162704447566549744508291084491427532865125788432014337191619507424345854267127681102600799697732731091087404071388839859302056854770568128370032410609948808912037233751569167712944767701057362851752692267386733249041105761883634334373993174057361935369077705806991870011038755068258651233963419298473309667875732032904837005690335362168372869158682248493164586413099556128076135431583947979650364579844225293998032521346097286226953626724707628997177963276334614112070415414830530440196754581623598606346657273305740334246756825399885570038420395650977199541002683762829751197071569287780588231902617101475800897373783464992100430570761585953225073361087295702715074312297920313721103151205786945818242017418320565151175338128457998173296130009722859113082820909053314760119678185038367530347047000578748360997590909129630344182765505119842942611742125017453108837615277210320916233088335710208577216259509925298643641820689439656908564775124318290301835339510911467513718534246305851770744343216131691304544562072955779149889048547850294942518699230156420482367299678208543277081713993729713647285516236910280943949049809571114798735326336108615449092136210719578627182658984645459587009069249248820523435112868738626912529335695565624401533344756716240947811826571155954756699368423562499979227723332856784786245269498130382957671588368253903484616714968014138599194055597917917858281975784812372478022962734271327380701712131593454022544168614641620641854955622017580271717419329604030724285575914037487524125583648684782653057902112930150460093009791132893911020928422212628874397239879299987221712680244269570436408269175123947288580976631735219034774020783010825008230686748165992916214204378559690700839634317491570400704911133097023046876615857483135080144475992852020727860406246909862458183710566318254920666633928689416422316813978537417455898355023981413476275686616221186367561134540185061230145050641464766200254793727370169115091057005880583855287751553568346135550888143137449856363777369433473077922369202328195126019883348531930841391296921034511566461558171845160918653048971195380110248525749893158647233999267453725219148787799788807562673750638723780564697643526861306774761161564030889810722990061362029138553864683684245835443420724906526943131926363064557919103281746224652305086811453922379034699935761819228384117831112734266093171716054723027485870001047866059835368762042349093563146793544370070867604441608093430388964169122938462935021661100210761640546614532826133025098992955391927596299462782632632116565874319551733594278724799548287227810793149777110353425543816635050218200475598457194707642967827158772684836236111806592445159528291523018180897167227176349652283750680731317414453350933010558621571973367591051672048856745415728163217259397927018267765927879072697595865244447986278487669539491461017760577603607110750866034557555712962345406637758448773140658050218144414570121613889442942543012726143996039751548809684175388778709977105315689605779553635967007806998565011955361699581910918533374036619990661867745865365937828951586192168358385372055171819669900290622524429719647760765792120834997981483108425338006646056465462844105959758701053837837669513414411711576580152919723932831823741907241827055621142924812595008621934825451856553970125840647774590941610778984486679878798360359430670508264698506509650714242879841665013303364759597132945835690587596970583659840237526455951428415274309347600284805973744511548230400857745381944142354918783809292297831844140223844361123221688505624335418588432511544720643284962084563281194108270588318935428845436505484535633008842668569356364289020276692308486633611829914298726387988068299808612394976329510463591338269125251879466945089415396493327345497299448983629947399175474416471971731779872683943602401052166101498152655416254038545177952158400249587987974104952480047535581645441160796496743747671842211835815737673704896816576186466844739957457386389528495665189574478665977781950752258882987024789009640653185204742376952389335501218478599660074089650383859514701804072345776878385607580956164533921688489754259830599175376101323206354325344240488600003090822619003730634184868861438763736494178874012048260950512759863390509770242472529801758826392293870793673252211167057926441409085437401485304590250371696374774586071914054256943815611701443788844188830915922927192035841298716228668505324603894356500230734167083751864595368025275824052092374467657335127060160117034908068222327234121408469596673325161565758066590243101303206411537511687407756787406035925878861719736349367711142654304847081133303231866339855094943143974804840787647767832770534880159671410169844356697808454878051823199575640739788317702711356439242044520333007609764367969990040958549556201313584805875374947256934033090917283239418369219324915186872354773939212756117946640185118001380750102777217130642042532655536114323907882035094537707508434889230102069364851728497612938332579316328040240236622477073584885055861960214818950756889614649864710858464453732949655233372641883832621271178272406932265715707864175572896145338291644891865204955272952633002810498231098573394308160225669817111505642180307494361107813613896822048773651856670209197871094272276503470633850855008421170940405082569924575628282627813751332708052945523221608454057654378540071799081276883669537497522864067146153456490112693874267114036215138204775875494285657227853366584872908691749510102375874976607230169518573650905794918186915420495148189506331367232336001791924439759401641677198359451069342721729348371331527082522858781476449540661682660663281738590646817084809801956309540191002303038377210748322781390116820825823892779361395612062162133915786407904096277774306239458871168135932412443371094483087422994896572704969668919097678729567856837491826622807594707308763909429179184646728989350381665716032383413004822149073557310114756043910764230704997141717927224988936251185377184456536112435366803341583471099997812750459310729492016400404387368910848900002206589689495098835545433034480634690683626426926225260480503822296566585644546381725787202422393060316745016053977551655424603074325691453841406677000933481726253378578369549688018197142075830479025045449329434408065470696670920819668718095745182237903331168666010658854646162225136807558072817839904993820325403522221479127873573379240505817047934361116046575203509649920300943063385151557010396543615600425020917540836802510756962724054007061307391483997821549752696200677717461253751774740807704214694980724656692103138036559013914463193378524956076512895884703956836005240560377322664848897675986472222368704572600251314653302789490736683175428527930436416844913090148229779444145397767000504764545394419974425340090220649707950657786676256257904167879517193228216048427904222814574555552585011050511185320512824817044934085006511105859679661134805431579901002711637041462558845146953150161376530986346793513983064421721253914210484840180699555558933864698447097220729204416001744645744857898852191332549713302548209802199209468670551308850411232159894030606077640708862153022528396306106149844929747045128120643925095268393316301653540689292805651871572657874119402174780917279954187411811373735348232049240285444372854241447866735317203972840999210753385213768521899202754763751550880323820345141044903368786105511397455564453441335280589331495072415453650425368635876511464557763852861842225003735443386084194572025780836246705161354412193605212492654785579790112658159199332255421473361025220356400358279085755073052788354315946741793742649740740947948944779573166096230217323972884026016215508990745102462967183685916037890598163574392667278295029918179570280686365101245445154413181429654184524519788730520200288020433895520952126242506820736251646482968883150509597010002264372135348785826025335789842849926425984938269865559157455227722304478367004512926203259072844700707182646394299397105796504924027215130909020163225789293646620690791141890917095548585817099969398458241888623043463864685370946920190866442500142370490706054794401636362244842049461414540733407720561367537799471743464186961441635564294715919709591245729889392338150010412294395852881242903163818939118293640475674801320054837776422413083227337901680551345611878652637873908460298324844967776765267144609098427240922194420872905077724742271284919986275288409545361224426081223673026362416664636769565823405093478650114354522301721104318296746118127124772674755841834739182964689242439083589830410778612221646674139274580844109344670914076889081154804269904644766179037069131864316448729348116247531427094795121837118954308016061368674233086520685683926148047844566474945748323298371127834849457568184823573812967298602509445631002138707680490430110884104356065956329135513636595379057745086346584183793785502138550730660620323618920265343796554240913886678051764866023556868010244438199821740818683080632657934450136606958831163527659019637109122168302179943178178115975625693348118175901637045395488002543869195029394842963338788023245402686831159207714726609640814729742564135237707132655865672926093521313563269738633451392323794912727416044071653328372766636069920782898851581890074068178835600338395502491054421913694943840259289757680416479873887544190710100738825026002505293715712059882179975190525154813512892650703503129538879739519680714631297973939885522406771074781329661125142444094254620586560563864841176973765093222320058137389888598930223363080952193426522815067530677311683499200307497844953331739235628772498890110498291353809943234673870647929391838298473650917415993442241801360907021853768394823719725514881388163528250823780875617730371859331023769015518148956680264510669556676356270331637550428218469355260793128677171630081522970525013994404111099523758782168987072283241554043785949364881659710601941701117753081977960061020610758095418438226377174415893089344024548077635898598386460044819130632918212125220072806340890562731361562825142597291169096962116740824716314518917473600695966991423080878338378686590159867022321428691570141424807045897219105420047904207261838945659167576624337481652334310131977778750626481447896237968544918333932544522632823898399552143508647239988246182346783334120349696963465231029709800703127298113002987487588451556284431013156099089461587840584003836145430627502838434516836793994311551940672336880332618381301906515931686201918396364388118286970411649458769422113657698149517318604394476819223940067014551279282540565303246423524190837891152091652075345011477513376176131603034635001583043241198303450459731115480235291472675565285396154982517322187028118914755821925109751881474996270183201238664665544709627032211967352066825688348737596450725120796914516873963998729508929286150574509391835248986417115156337107720704371942989785258541065122020872198511520119682006685154950907756992161931680576122550841079956447357236211513844260591187852361111576674624616760589490884732188251188189165372941301847563650836229040968772707590630759517373446538123581672056998615449337441355115808285999797250700054256958448290421570329632969541837206112532778185078243532391872673797539010604218982133356800149176292763589739749151033610294485487554126594588308262730872974158135998785058970815642932415956520572243886015842078104750426281129044255263505482966134319834755788519322226718693036456672710264959940051166308663731727404454569497374874852110331775493646253806113344743108068326308466220393707731052442799951374501935266142352255141868055104005021438767785929901108592518674991313145000872583711669369824976994084161606242840630833289799716187050576519624049243165999515189664975475039001147398903189687832645578474537251804522359726877668762428507538166167924880008234090320348071465228902223080614965742704477221250266192371423562609291226018250583731811971039075175338577137807762131772452879479158317148432273147350683717788157985202303528005999986977666937008226708804204330427176103604436021195740531832397750825376243533599258744806695231314095082672974200827195918716169601534065457814757101243294703404989011724031456270700708589135551306594748305010926753310504767668510068727953244323689649387243491401886858021766970655158850256174152070315092726514587358857716690741189566762941681340578424067733886652984335828209920927960002560537316119574865172971711404358368302333102692447556349630182678573511105639749473357081758063298707668034213096682726128479506043615265442170363554065832901954741126321617941436862387824468108851006087982065719694731531688727655829254841006002628870847072641463698145467602306906484800019508915292088347520029483301183570714748604600323180366466301137834614810208010408241624643986285802753525405414811787725784498244012153580883263111576793883443994167425526718127068704857905001700188276611540259896645638226952840861257000003120151341462146274358818811375215962355090961869348253038196808508496757130802652210017544521504388244696353913545222948382275219397816100630815713947347571643310028857201156174719192266771954369283128266043960699254637219602914253777973983167443812080972188188312362266033870753267894253855916918297728332731261550841748495123598915798601931046302040883658123282833932828775274859787053647329515614114298532461034302555313019496430116703792865637669569854796374437404695144047524862747673802558967408496302725388581738320957777270442659676450234624195887257359338615526808120477513640278605967148993681237120118621234905481712924548154302380410365014875356745431118006045004261307876822158851442673029620840482261369497426208176099993500334461976884187903041595951539264111965464774820849603536188945761220485718626461432327497191880858417216502492556122848670444079452809182539144469876181366331943960646378224508161381778729282783976485911046345562271722217817692297411538678621460572420158898217549455474948636317672274364708980215462007325013023705721216266625220053039613516788310130085680167987713860080874414496085961030410411974853698311136710708247974741971708082430169166617707713127633313638154531589133752541683984084786431775066750394884663677721467921121853612236316721888038066106985937023790963186922402591191463458461497417121925501992547479600484600633459818646080115937447037316631953518908792056481072811877724020397440246021297391101349926966489897822336465536512949732934154340689469433738182663778605034749343327029083756180110549346901793394287399056637969763478106955289619876461898507220863458747577535586844687233572491790476548077510392373639618546675333495970891747050103139694380902363404579903070724852963285143088878668807424981635856363393141947625230661525205658963070371420915744678667376833515582244422637175552905493953288236668961533263314935839281282245849325405559410719507137997035637423400973161309864621393795308709471653612565080331578504457300009414139460014745254414038169209933604115965838005063036825456630806282500948802003418002145584175546348018765356776441151647710438436690085370611690503253031468354371335818092924007680509581888880313192299660498665119235533344271599513076908208526629677403102594730225917768201325910777315857844773120758864509339877561872662539383623575762515880562030923121386657807216261161812700375605344622634949838625256665242292344365139697208237825995762610809984937542273567512241092324479307242828029176235375338637087638735181552748211124480024591246405111511149966446261984339005792546353949622888924362325218640252481049059595540836502868935748905420009125338674343134073422651959981448876264483185527327749412287856130622582187812001162857352133808604365252012350790830150596324546828189224759891328716943598514226757325815092498212489905184659072782376396492321190420564384917255643187344162296200604471901611612786080691597050723383179902400106211647477584390237574678913169570118226462177028945711913641268587186863582493271746562706728075136743159750756577475837640633804494482066835217833213332789677638365744674620172883957236721109815401621327006816874023136619483325010446485646460364125317413333237960756729373305212297457933352566168558920043759625134203063834294306097158474095380197411549530010282165055959259459194853348227327155444873521365344729423949559645304788053179455862934189010777934902760221808499185141257165316513745087503140146677425197647620461669311332604538789645165729084386151944311401615142307022471639399010043790686410341623679074185064637682566038955033477348967311334313629428543148876031247313354196709800084526427401420976313695876225859100931112997379360013553352920748298536720427612698476400667669866105345520728721873818067910581629074870107673696521668734487874382771997327186492554248066842383302741069609185500711535489241744407943370423182545606838670242052339330580317306477885933229299655466216870571281806631581075969880379541902867105158968218399861722645652372721592127269985616688430859683960287171538526694147931732893545844953150218593008668911797136649492410539530174013607858891547134085003976803645381111572086129563947096455742708238731268749887309705900533731834616896934170930000086168027800589567415228443663002296526507013856265684358886297585892712289731225045019397539880195992958594667444885279234641037247334135338390259480773955176406741476465801453303755125878391520600273054598058280083415867508782021829802912417977315235385770640677116684521336866501090644399184664729143841522843559577805241786922134390262097035903035025270328397986765487111297164150657689153935090940421630029212623423471285210839542166491175188768489016016350794990872514594428409076951969961803771282792923306313946321509657936648852867185365898542823240463873382817848153020920308831569726734392558336432163206608988845807113627763999664957064813332430080443070692281796296832861316394983415817887142621966549905140449994905132275832902039733890285425751366407428377198389513758460356859331967636542297879597967568283998310181525423666598572785888868064851894597071620346737035168045678974108321020687769153105056687668773293349200238935057443695445160234297945780603067189315767951908958081128270486867856517949494253179898985455846351101662924150670161176221975729255773222299579570269514273134125870360213259374764294767723385539394960803494329630814590799338159431146102374364826090527489260911499781759924252339697286952524166873150092382041212854261361635324913662513786628744172873692777326685338999050914428805931696176825772855927778554889122488088669629022220090710531986727332035012560832761865468606900461217655114103453283127120443522951001679479031335053425355678386919223431249052133279436125690468033045406425931433485989352987882254953185742488103764137541484499829522748902796950898149864690761644389575234356650649798259415250324263255294411659694055989586650761215339929748641052808309887919712372876169729073029530158633809543194018202669104693139303526636283583219629341950220558215628115100827837021914223186157752894430740125120698223625704135116212793447479373750708585344904025189467769147420649139024731524047392237570356833125539744473636977591310167248556425227049855871329918475843821185152491532108660870938947746555890976815009091552453184371101679704394227200606593472786492376559469584717164290257863271834360438706061526799319925178071960601819978896189144132968153273553656553178278789877045484925656831540484336866358934827911537849960146294330178535918922268713560211563806688873602452428615177077111067128514397173946256684077707258589195186572002830268782748806462486258045143333445413308616378682332572962579538006735091060533965232557596824150482795196197494590510082179623656701477056459027478980181006309518889621379037693653372987268128208847887010630825541585042133410149582854277180694946338138816824519034448050492243551000331414292089422576831348019510419539564834283831689946997068936123952993364773605967379563016178031842261826199208163486761966027586644711808760325300708745350853575490894833166708013253482497118067652281580236070823339041428117022941352536003306330261124551686492275338976533327508837308735465914111897983419770812110908047137442356324199743619581423276740560044467491569494557871493554792225417642982230757366515960393956787295208307621299572905646333279790560873601966838068415216005340982287176820543030494829640714377958967789178526513442090147965699695860332176102839832232524209091874975695282502362444942356873501034701874199053002938096986090876149456728711268068719599242400646532771157004612346955067259630156672290905445568896694903638197937468465866534067955971944629775631645824343862403793489804730057570983951582161392144404188942268166553489541432820615539268199333813234143139879087206556441176100519791030792115944641248229869540395866978962963602248076632631118560938170907553225965817149254580950048642819307237586533109347410268460883510176552329792792588642969057722571390829119090719641708538459454433599189629618258137957661952533777093959309375586959791505854695906008160034355707922057284184858559961647715619063376850432936554547474297930822840340104214779400494818065457292244834261048015204893325978936823575947758489390796539861320097773887838900230664965067318652650568283958219625803380702097089887141462158565442623752543139384253212757340745331911629551711879136992703539172350814998662377944284188433457149292710333226630993271591811777984273789750147894332684972051543072375606399877296166872532347099071746405402407398765307649992827255557333971022446852281974406356741544233989522404042548339769553714731599039115199581609495985121037453659944243964558662189512073140201773556781853195745001591386191064089978693283136483900961375710627234780052282421184264275528316128586976015660464318335336103972337460199915388931573028588269160920494884541300922625883777140487965516015543593745110789847180884700960607789076220693684073784963360963425095847082572563368126700642910298222799915761939412305010665619324385291312270883071567471968202186272019484744691477509958737748660296312621123936262684323153391719356913789891966066712770973432280825198475061954062034493330703784267983799417718823847785730492398625585661163352861527957134353145248103916383517055077877222976239792084070887115866239919233193364955741099493754100667968801426502073106663321903729688246980408070541863178851938047827141225654179999425208472883282034768584897255257471819411411100417415667999996419753284032409331190631921047134670233785151816822986613438461795592228922727247929512697119023249639138044043995740500927120818613254294374946808034952740287866386243934171088576574565098594766948921845006405465630078576018633790396114271309657046386091763460387568116961674247700175701209622415995297606038534885700148140313700112802969454316372351125088021191385854262210568994899518301809141719061592636934736495307154175906667880722820148829198820515570776358329567219112203577042495168506188295308898891337742800926055748231190883191031319392993345592313428229082449525800523923120354684095918118037670041104124295206004167497605558227538402785572289944290970792203734798808673500170223540288707487241568779150621465248917332552477018448633360423791742749855343362819513765938627640328174263624814720096570576172733932197137016249943760722325613278742493777785892693303359640162133441364984027113913384274707577695437786011756649108619427071829174412426544459813637859434402043228658975463864348272914836757909061246208432343903919234433434967727735561114213200143944432273203813690857297957363267447789438657748903859180992598862969779258913747052857795461303205433036775220335508550526418524683519492934683524328602941689945753283821030700597142644539014090180299182333664744077884707202162306238560559758221344837729629959883211943413369458344614783596937028326827141048481452882905261664032814940818402437682798083149452046334013147931875223737780641449565756210605303373736314667499714281990742397055859815350366620904650584483582903706278821795170109549763960329104655406069264586302126874027033337628709008636077571723127591619507653913377632919582215602395743429344688712980846121802689710424341709083309910985888888352540859422769177682881207561794396901190756634524170061632008101418475332908113003093109758677073036318425452933453097666152917523663236564742169042280616975156053330599250791768250223646459995703377476108414750188599883026552040683225323910587244894132149204201507636619728900040605927204249627607199929997651568985047882085190980357331157415446555005241314901243989950767377911479714212766615553657000299806435223585594633402915196557447737257745255173684677241148228763726800196358448624260379864986575821308051254867753671804496187001591044738793424304187854617870457854366494428438503041164819266671849752526707365839930254006188659463004425934986421887367466779140102899219351903419847325760225853194848393382061146480703648997867086531405317348151432465185340056408530192899076360160091407670768748649878661447241643842625492285981679108129205218822915194474347041036192619822496886501832878812286552614944872433559864067055348866764216076996015355082328241827071561819631434310929628040525693801721006438745609358563665337540961520993684410900642345559496789925865271737498298037176386441554083399332473281309549009091169442676470996060513667034017441183036622504899102028224104498005306393922465176432819632004447864310710645181829249015547074663013665850277505079676669447092311169507428457926919864654796897698574424712025026199362769049186893853796977482413020560763043389224736757475383147134175467829749624477066540938198182940533952786677289838848282991142392773632457160143733752630480263249421654556576719767519347205464994425160098915085265375080025107560543265537727234223071969679452722466159738660217416890391227225471338259155322845251522669469728173031755253671085191135887654254435790412982410354317442327643432713706542099632157063640609687138452462456633526913012207892078038541203760206341195539453469466949309162079581991165930757419826929877866650365908258531021071701501844136752913848473908192235647086656219503198651985556903747671094714087613531548718159302781883820781394000869999670451740058902929472049512466807390951722430551693010480382781475446419377026942493272433681252024601571534861044060759056332037417883714753521439572777882746386184160872134325498236900483738218263840092510215599762824924148323911002469278925362538480776998752416827751579814453455921809123520162309235618726203561806371374370501246256812488635116226947566896813619087391386116827810422466418488137749163775823530717510933636515920783202850748781773294567957228802702925330393035629609655090811123459904500640983146260011339766003729813388131614498624607384004103873895233467701560476564767743753091353036027730649485481818157985558458713627831537680464822152484180500243604859204248195328836784036387899563193321631831778397529919375524219659608965065537394044608982289650830886050908902496512647211910969229403866059091378266635979448407832676362544382973826316123851271358831895110725809941985723942638965905949827824178092350475995807282287983383670661002041595376456908759360820905304646456054983510903778477908765197460005749378268569622689236564736896640023761421391404088530228530142292402293423918474607289182440158403161965703700511650374832836121305179276792029495844961075787312193123627924907087747049402772076686395128995958103791825552757370199035639855128240294793513430470149853316341488272414708705113722107326378167707957042443525424026587849103230994421850476571047629262215263799117735029455404147197973618939164136467958250810525362210095673087070599535110232822554068808184242461329055034112463682062595644292917574019200970574675178378709497383462000351520235096582205132349518812880974170138280072774927060738429578676545651223280696018735927938422502982394526545661537689095003761204162565183010735370039070291502047537142778943688059173203027118577899176666342571642695371669593318314176864699203932928731478065454996105563585878580355988938253256278427797527748695905829017843531703864196779140765048129809438387688116335995347497834963258404256655648835230230971526389610852632841399355173700557015792433145571339263506491269103287457433680168470883210198318057258996356417499479991411764640878309858738876012622439291525135127431631142409165957985442311940742639141995737008193686324395428889189215907335571177725165886954494464905156957324223604942910611398818787978145692300825681635089337688536087849150976140767272201765263270063040429882985323604100024040182990715058209534866786585491475231039176530439244445196651342514858865935725306187893317329084163403552216474104154352613758218181879127906528210805664458170081884621209532764188236193739371584541654500461376347557269167252476102557802111982212191616769247994681485102211083546869776047065079702326979179446640582545878412351378391598786857658017471735758400554500216991566248934327757053162343985746512112556697615957941655004309278395806436785620176109369534322744203237277829212641072792733153880542657187195231461476085124120711621453707052346098735285253526398555173759886215228325270623317177105764683442071121848969716263292124906141666241887604178683965335208134039931999745848516368676490886859104526807873062160502149585919378227149265333228609685365050398614037995783932359268091077890548555861088592428224225927744773651178182700198138853160730568033657967627178457774291699979193696296290729972681030497096970617503617848728049157145532340248970086518250571841390970899814432108632743076295346483010602917603173983162988558076971443395677290152947924948925730531036288092988571097742034339038942417749608496785311587575244607210626352217999579448328249649817968808777035604906974060975581511209516205013277091078039134611475100496986771957804672823682217588508555121873788238435502397135356476753128488751114558439441307561669080219404705402509256163887305799593571007095421524240238973866144984302696436156975938350358000865252066344823250934289128159468246881311076706480727153921338085490889321744630597885811274425344881319621755074539046922922607786828636587515668094475047862672273570769537148972648601362808015084422632659722114711872171544581877426158697079388695592310355347744844271027727918126541939125547604844318093436796646334042828332733741850629865499460012090566860910949503520844183899163403069633435199713722340451018393656283949057157411991738814206864491885648968163335519506600092884333252480673558417133749617150550934263718940232530354259938439418771874208814554354356164303489103148152057658869444782706449109953352128432519104912469054321738051067941859880544012894251232589909962312324053877398210144640584965597415865952320581449885251037693065497489313506032936074481814998982011182749277815201132404643038340009302231080547259597551216746706659229444385710758293568651598011790199480453582471723450301763989149022144948902160198684151758737919168266109838573845376528041890093375503234876758875765835081680848980488994613463846758358275894500466480260224707959607311234708701901229396384219925088768537111998543312937242948475788361151740833584375331090665942701325803295439815269206810548042155210247965114545433197115305740995493783836932001706564102399396852034151317330925138608298396103448375643485470945637411060456166683280263697605594107860053014854032125282532232725173232493557882265939595083733400950598453008448615493760830772932369780539020694898436522867928580781581080858064953263317305646816091785147125400088072257937135985919602032117698516618138205726664487971456050564764174273684189145067342456756416048290309818979175956744799704418481543956047023378435681267617715798737487316524458821001641061928767152951977309612579504013279951251230446071737653304434889758377502200674146778016973228005456734499425372413845823677596399572285545930783851914039504744136175891007414622681929769694988612865298551788024993319663563824838294192474319235584267635073198580303015343074861824378325227933579938356853781132755653864730024767430672375844555706643322396705837897501940110984584530312039741608149528633651224839511514265139521361994928047761456722848443128565961544973138278595330767369601494158637070362175658670104303586961145791714834458205482295971166547021136277282493540794629070601403720169035778923993263032726072545060040364605028380929610076000676210935821615488096827981804590876990755827971114967485871036597981779005599204619921086218833393864367675453578236336989088161935642182109559511009398375374775546586077865594330622484912789787545081355800095536186322477894557821672858215655834857416920557822343615032535519130694519600528949869404686558645288393239196124043995947790575543519058225812702468257321602699353123762173162563897324757116285960699970829394959814645468124291192894493216757893635877523658708312626129768952214037121333371373636570097496111467954738940216254866841463524981486568437129932566103690320984324524436374578928327453254010137873546087085784915339133018487965021588810929903714350114962119197243727036331890117992931009198972066058919499183852698678005809392309173781954298508516846681299233425946670761777675588620801261412614640886156063703867564612888143788618168840692105737310071471275560282552384610494287319949838014192749437510069479060959762757040742560527920403735132256437205320096902712617878841958243923433165252466820942546627297934824209502732777029535981564982473381806163938715477491975350493217917432066843409206201758084778305188754961244239520118964907047660186063573332139879373467391490808812351345513774071558682223545588457544686343337754031387130262607146224011717060240106522549119864684309641572194492446028281732525366703537230042424986606480531127501954356523225687382635156061797817749036314750495732032582722820879015800370394722078471144085353021626740506650512561669500573990832732506899521269752616060272524728366524467699546935694759472575668558118942585377725768098397685880649644185753871729087162366584295460006457283605313875813863629441043134629953741827762718530615919342612177132010310021145256576690287097455533109073858111289551403927166875224799849874991785025892689021482459578259051864454825308670960541524639164867481996956919637597196303980961058033546132789435981843508697452592000548590030372961683071957622685435364173118174509579933164776907746402740259052553880918629368604586739521133104685547484403817107250663691014557314738282505357057566139391755260695186896492503446866474914652615608550503791394202981994222199473543823178322303684713733024748559429826380406512984891971277312697939942446836813979719308945153130102282071760241132296391228061815709537618452022878633617842610353107341759203978291654370239534309225910850108056559187725277755480027001929461414415376722756825533214173720140747134788443436316759161438722559433049497719612338422266160489643962420532677970414308024116401196808910109206342903802792551569679532441619283486641083828605441536996436593196913777787005936030482022913026514592296134558029718272438419687672437084492636755070563340502683719944935473265265632066274380836995826335167607082354952985615834331195243922970039879106752683149442248758705971197501357168808077088016385784327781815130277868311685891946114301089589218392897133594139288856488545091637259398359742076715707460714975246059863989669574623157776860487972014803576795648458982197028876161231947013209559242144883555057627232344348426426011753223061822303565850804701101189919325257172054996292664129773504285043702622897235852816267563789630203898474355948061217387390668535438453039293129881938833041183423778361478059757505840662254133629335780931947819663929742350390848059320069789917678833968691319748258864747086279971313256137172730816533406139462568550590727545864506864656527768255534297214088338372788201028902932403132421020026106356642443696612083041768693220104899345155973211746630090867120083557242052922510628503029406692705805044006818192273514256346584354811095932073401274969490002544720797360379164669703195033832848355167676058310365452708576554980028239478223137188703965216420784140386320050168755928924424891643210796200313711074626069359189558182399883659153109700423581742946007359612474329057210929097629241041065662092350379244313926890303062203407870584752136844349814006643996828177728832830680829674748510726842285639503119239679399702278280832904039187942701256403173198670548090381729010938267703276181873338233299287354251791214674169684443841609957921734925475411516955036329294606721879838177984886836278290997984302172041753625222996727432571630803326267942700883466799312372277892804907269063435938633448273734946871808806945088824068997261658713437518740712443535899935749505763910550260234884831930109776287518455556142797284284876039387213049090254184884269775140116269376139550458568990473003987622256956952852270270070700223631278275647209189072366145338315064508660157166725030442531345730761424825299347355082009481110740264270328796135455899723876924388109759704444572797225595582148318579221168381920223766601470535503329905663899611395020035590039531431485319997339561100645962955582149616215804551632496152498462549133866615566130574710730660649476125925134739867240429470527139458700571144617743592489199997798539858915545801175707545841985707464441715735287088318155664906711613720524842124067568833334632630939467440591539281243468652741507636710833294679930796012132262362971922889061129439568658906746885822588883989165018835533075233198157903553586855155782065468218332159074291034746956756633924854152236453715003886217890263431378530266227448817999987385332341525005050759944529160103849242964737923144851996764003120426193110183900107455976932457439965196822111570172250000780185200769092799527481957223522490092455102100832943506047090382176234012352784838737727314319812353312167350741624784195463253446152082891223780469229085093862807526773733648916752751088671869074857315117987191127589737172122200697902686270153977033376235391685730235327780805150085259817532955508078778866728156509666916158391127216986993887591126886484854534528983845001720075317880961273477440300452416750323930383670617071013055043805871730675668335337453783036855999377590869513062184655285792359339174191712054179699872561324532665773975697093217056219380046148285749989375231643513474707365882098106057788654165147324898178700946301385079255922260729715226203881943748439143105940959925843344656576817396893261104598701003727543525116377441612272999941018619566051421596941206355131448597195452860809748682548745244590362604731380648393797344681866249700721554710601935002386483893437562276350127925849417326436623720232785535941949304500111524937011476346341575426409557473943069445635423620812122411763735769708677763593019356383644402889363050783332280366747439432486570798950852508727418326835271995157792652719876374997907620843894634721262036078308173814280478785549782897862274724417700301632550133970537241768281532351617690692199702556999620546424372653577547251024031299435538645948314701949401560266849430318378369365546618665662547082586074894839728251558916038553495064513847442211882756298620633135692134350535417532546229427385701851422160479791812391358185702336381354453571127711719432166046614310154741982155492904756210901895720806062349088029040678545667463724177248681190074206557848221929501065966835352086790875855344900927132510735378131123286004105291883550482825682124393180978579666414416419743846503597543167041838521459077943357731496484574214860854886745291314574589315184834205058542721160275207010530288121820442571850407971773519382644415143034000038965083547606952112614351514494096991515178332585172479894740524206100459840736384351138298293353702855164153281846898780435921758197601110371882601157152121989928035754608388740947375220406391233628982806618731953235529204014220009515480880706100745386563972589708030327985512405709675299487752503483811914844763960690239980085887510116129006008076911943810302609494806598476196904805932178521399828659016361397294733342452975784299759023288921228876174536434315837531437849574608874737342587958758219901935389814229423917941515613153979302514641379860895988767541369432304048702855541978092295804469899019290455890684659783833799449251271604941337790706486578589496757599405061755763293475680828922029111549186488201592146177654499211827254988676568962251706361483219514060308448688429474908171412276698952976652846718701072919337792928244353243138285206357061580769259282603222119402768779042924083653232321510235407534232109476053210171678047889604168510719739693991861879463461896797135467867224402905164443964782932669463584918661504011655032137958238846403545337067500146824508939635084079633883393164400215576294876554514962298494573570455639845828653901031203119955863297898599642742416545640221552693117618219340405280497700139581856995045062690832184422098580656036039665052040509265294491631122474122439854552334593973602158488959564576035601123947226002909110232358183270776031819289578931912004228297227192768010578564466733402031860657975998976736300451553441212227464921178419210429930233047545934081486957338855853118789257243599624701958104940834271300659716364375165746371024987053629169290060997979798208147147131128995085184920039864046146530250994914143403583695568842161518200066725398585320356707875344741018213449970395917873975349621147236777151075064434193206709784810139061194681429965659469499803015015050439499165819364340617547120060232533051005685661995398852109699179681030651566276114001239394412740504065600221709854777964424685874863196946189551035133391641195903971893876105442642302464412785966320148479552732274340928634620098405982453385763861519336443209833918195749629505252717041594110329416055200707970044527426550329106801682918215054886572979083065733200566711040393166428946073974276132720699137735888776468407672601645037969090673762491231815694613258421465112430180886283850187273208293049320534883490802257999620893153820434587462062523629681224077557166761470833253074351802801564661524123357726665459689501535120964074098799335251124236839325550804077953890651359848693148572687489949014085300106254036984402433985738212677629454919277281927072710075950541945450379091805163615808362888700153867243945007027498984321855676474032471439236648434111606209310196018250317806835398572583913357133449303614491708665979723338814530921740318117477520325816743389458264967527525203611262736721097645431340238065872011251345146117238016383594726875228176383566558961886132167299893940149412510356465833636887760906588376967418291919203119456469780942498386090416033096376452927942341930023017400543432258546250947435455170968354369756035650199238514737184926705972332775797911738152474353163342411729845894129107504555042885877762737340663304160391808268741726065961598933607786330701992223184666488893045271524055117461202230160366192193936615793786736961581625973005821281128255764679594940281466745760455774706739022001976983182597002938195414927590811337332360588587778716100672583596232604960016058991488934220473616132710075452300484394310989991637221886232625722472307119791823049444351403357447663970836106986071445700692763966397349202921834629764438186018937668805345127770384815690854061403280361502803860949033534893230357925117393530415841133265471290567398884435930822283033032221165929854191965597971848854238871580891403693016171725700155706148369068127422955027934635226450068693430774820746663687476147620022750181551796978266737414595043870588723873389632912139573039946630543402891327746816875466950216141246550370091265917983029038873484176139723433945569356600838016094355613785537468920714544233776467196313846465263157010171323583974874665442363027792854190450156664578818599794789712514811405023776902617289793013080656571631212120791429070542150888983795453659164355123341745987948092769417511490311746055224557854581355867021530900770319556558995997468057416133383616416911400992334155643868362258664428079403362670105226669361924674723713640905428985205188351003692681879974656470525450682683936264069944223117912997333641066781735915971628983274177288723020526098042487577710069881962403729127162845583584784034049243648781833724320371618788149318366321324242424201471879866012908295449020987399595428721390667769827563089167942174016882358765397504203024489864188963690963162701205576819699291549927751425437881294676650832503512671684664484445472404101245280642178327322277604369161028807835887184371005180840179580141083528163516360380534630763891947615018698673670605014755654519125563485474406162027393835035627856152958894681701699940143323110952872124482704720605460258500667040757911141368279069786865871177920435611489299687198880325903495462586850786451560737217153995339107054574208447004899811282899421602122209262449472745405610358209264251267803981905452659443737519428132171370336125910575516989928472946953424298072325629025888362684267844702983631329496605441625386147488283479816732288109784876941323436718833482975132775552098111835661299848568702173449715945581420516760136316810447498709163649431566670016341247315263146646944702228602807118139928158887516372142668321214150923172057318911173288259805252015609004155477759524040891350094036519708487007496783327432335886946312687900985023131720661411321086076048619570635662452304872049297016794578145820090361928067821394589374337776931269876868117124816408491052538842393336908946354092358023108172557634997996943645975444894856647732804498867623578917302150269879645498427712336025239601367889026391276316733486900994658881028631022374955359950171618779405954272032568075099172304060405924475934755878192311507086038643640016697693588444107736870284577037940928349414028221295864075270639353993044472385084396885275777983552083175810709482686545514923467711645118856722380760062998781844878270052720312938847998209719432022757136352039888007560979354968507222173819096427575684664407843849762359541643789860716673486049953642921576909269615170952825421086026688812876213228288701239411121356084998485602261674350348830521151995222130947223118824547392608085441215344210434543110428353361072322446109504754903082384976233787723979857646707148507270115503350791768894285532565557856891411105393768123007641727332335555556958197951616787651611271588023817370581258433764454963932090336308884238313464741325415758340853287016214784675273660353298142198999001039965166398578162708358962481375811285205027468314346218654210028735798453064197217331119032520073461929812872295178982451117703283234759864039562706190854550735807916589710077764022903519770551651463156954288414243755797570968942232887312501544659132356822348563230881862148691752544420425031155171125209326672093524453853285759307857205196311267715965633535956460663812156991761342710503579689346925609775922911355755004495468093959419880769193752888650248971124685916195119118057366233650749218367328395749066939668994863881254658855888383033086427922354597161408639132801696867060967477934970251369670949211851826806837103932976818279349090488099268529794978557333715456812291190828899996496173672758296772254271826422328664001327243273092429509230566221346977560274971311377496402160451869335895994334517013147431671669925355352625191822960685511025521066176939130589930470440130555394785866316843769182864723435324859388779733700023743444052230578338504233697486700501600286637163548072142572742363471659825920005995273502863429413906679266972379873043735393795775874670438709507356712455449660309789611819455417024559219300964059380552294276921735098819503385424390196223556566509598118950849558347583267944137194334777064417430687607287323860319093764674529189218392734056524491250586956517611562069812500393153884581844064908193055138220680810239336308565359538328508151852860249073808881939719741926645634161448426511541316956283525195911244283826288101030847554548973690254035882364831424405950604333637217231136979737662537789832914814676854754118971023646587793294524553660846298717097667145215393593629565084168679388747451776846470197056012062911196593927169428782001047384226912084203747363388386274792663438170746008618165177012473800268910283248614546728946437703394342046484241967025618791648972518386746222304165160001856431299654117598208500563323952416320466755350013353729684917467646319413499223744247224633022021859547406463788211882345939408996899586677663701142952853127079355663237832561966782136657092206028310256539135401190662142923938164112080696172160438099387993003279135193961605459067259657242443886673098839494804050019958699540877610669138906842799356469502459908786561048152626194880291622037728544043107619152330967613456578986649276023103467080783909926275476450002311159881515250166756373957401905770341261342041635904480839076537485827775259666285431629883314207477826120950407760433388366358024308924484034883541028706147339632834646578357966974592587401134634576232160810423976222516895973476817428512737721348884312642986891670696316238734200146948985214230208355107107105025571884627785644037605341548737134057035304716047710677529320079908300857963350589136486977471509376122562844835142793387526367457072220025676912748342237943660613198626760944062105152371984859747379297406177243330777353802543022189439576676950956672798124850084862642588484579677193561466464626014964951463471490061886726013021674810746605411192668918406378835311056304417080835780199922329564347430329597913588943793800972704425821506927979988831446725329768967209243310967877870437254704049693782685353327799678176291518671277541365726683693491087292566065622815915263350446694975679229497645839604031247826096808076324572917963135706380553018179506155893461920055250204212768920472652351959084416370597622758052733539905727377292458984311346620894693568462807708795934236143426183573972841216652601954384817745024429687378704478184580845669859181675745936300712509929945590215797971267979286814183617945293811474383459113049494906254577757396574482504189366105015672239114063379044269327671783572823478402429229040376747003971346834385546406427071026117530091308476127357563889344495780143671978013898265342437760672048730565920693328169737707720506732140005736755344980895540538688878671591124076024028764936109146485632435139228289616920538474220896046608059038230996591893342589079006223704080066997920297981944092771735027012733684682086738310270794793553022082277521544609273562071517195538748966819084680286066268052662617307395592893243276656082055892649228114572078932587782368082793050500307417743535142587643209181854326694069067600791908213420396368953094525633402213073020986458629768965547248652624284611047366575090417717320523237414075658489932392708682167942643268756947351912174769111157754079997199926682888507939039340610310421329646825040770647705217690955724326859664717698638291411537797697600025819272394469201049660042850854700148091808108172665045679671866880646205847880930071167141907849713393914993995255245452094946507843497198103614287781840332205706946395154769469727677477064248646079392351956543663508307025207982465374274256996945775646261198738629434532805415082762099066227743584448627037670924884313967312656356805978534285819844609008250228150510636726914188760397883197731862657293142180732905509353856244448880870515851205561944137370328540547572214634071373693265521086932227094239075429940899442544459068675741143225242616723435219127825854388455951679782993283236427374574525445460529398968062635137335872148508088202055186599580340814883297012537812350567930508188185685057312332575555424196054273583194479764324992288226604355585233496066809055029052163377847463519347497130223294939655104159878397401675166185936051793389503924662052455112688373111207852572442457996232944501683417135951402520951792646811568298203136188273964266233216764415246954875581640843582125850442476706996938037585730039057901105154147795571791693127290959982213641159815952014586136789206666635321839445791129429493727464246482392154779756157336708957618405753220985047485835708917663527278094953542744825251137393829123783351841471827848818093776259467255433420690238375597658467444988572971001533657025938386098378883705596616566122618812454638780740364377558292593401364517385844624554076490296162202292447917789014243272492456246105728329944276796783144819346705517570835029425673263352649065141412102378610932967188631037171704617628931161672590290677122398588365964149245530812072857084100660761685435166635303413828011338196779122899741266552449513483389346361812822564990534115031791411670938307677687742325698034291407998029191076113965307761804076221944515194026040634703567993538832743785881520110804064908851752700820562380205128642184248230026324320559979983469262326656447019563573006795390572441503981642390821362351327177145861912103281123572699330876625534408941512051799027314738681826266444752804067274640857238015503894189125958937399265016877527437697415337481724220377071286644907711626031544171194141083486068995295074447722033627442668184711965636157137724246154560704796508783129001334349111362929755836090601759494537968615068179085076075662127381001179182930761186299116355745026020212756543609511385690948154244767226073400610373342612736080448553121475788902375590577113174550094118597486529627058856391738971595159889870141758696486541853248637794337805069893455538805052331249498418875730464447331444598505524739865399707346233819398008577304356954761698282658938100306024112186656859802072533716561353350992188595601078815219559929848307371141617648399503300378988247903454105325020549556935880161545989189368865721247489636136718628188546447861792435817101125518513178717745043073536450297615072923011083308025515349518692948497169009917303947697333789565022956148778780483665828348275402301923036903858197885343038285582730067215613042476796509973673898639630845953309944673660052789535100775106235405180950620729591214778792662633854287925897759586305806465044845262391335383426270504308670094670362204063397672529913651878423065839667022625805621222107335411618502936356416166557792377663958604946932445508059036179864427557412949830210469698616449313701037027750848601539616658645128535453048155982963829859815455625924865918632881763011014997372069201538698774186216557820878850289708567829701926958276952394082579589346666668839183588155490694368307035327632079349451093653994509720428367306703514419631552887532148221893259671737078127140513347473860809636945635120190184391605573384080516638291488624793513794037131979668758562594829420746324161481962682888498009688756413177902657691055508025432280312585899845828720832573588947631349260624962718322007318135424395364377056481929539957001445543839108784491441936804710651634740311703744824585051857881806866288441707935660426980031632363491203029197537009960106661938962173187622670718263148522844172794334068181031018384175349973496979013526046083898649384170852934692791583455942477874147581862606722466248117722498568622989744043843921840245603609191236989597824880644631955555593083281673460231204066700724877475998063268452732025570156216876628405832688949305051939005049504958701540034854277602462485884666673423859744545671611419843038357063974266667038555609645239035702010736523283527692067722136663585746080761599482575890261556442866496737256920804685117462670246787668603228796511978576164426500255366220799720399986561469155119965918926099875691957219827550950647597861562647423557864501138970419935099764066765571208502958421155914947290752355349927410085129491938559625940326382025249882249214444755882700290036795187052357627644235584183330712046012462993991548419581355125514677093447144330924763732150118612798381856025571631417442644210392318412486156130470981480247338812569605196772694383214901046524099815011833941450600842229131941609950099644961963307661716802799661459649084857174082378057131294396610368772726979043490318967493232166572331903721541461036471884246356801971257097712420455992771894016308075557915318038863852263293491228689445871244071873985131098072996000054029691390863266714179236497562971925021288399097084846804390717631982983862589760312738181027549342610128244583510397246172600271247264410283930603677754398403846237465571177660427479404471102532275260708819152596238810359449121002592156755099903598490287366394653336222785601987852448078120000922672556304311870218783254738688044091883310482551503395062370353459115756948715844081222535466146121336832914177138712079113256329969610586306388145503829307065076425004095978377200913542843287311066940704199932530568316953318544062180960834613197799338171659170654879552114439934636910391325853497773805380142494093450362761658136895003095126105708412344562960132807039487146758901016641151703939321469890302667266058467350596475274805617807867953935510326849129867665654263127329885291927008247087740022137431156586969076065899085477980877564865594130890270456897729741955965501092219356932384978162258751764655242092557409257176954688605190100031608012897289870528610854229739093968150775009659717371460086115220926226085270829883643736243877981277451170822368080610770774136633479557435335472506634409792898991840821815020062629005813678154528485775952733595359748408724500538827410399987019521262331698628280343884972691416958629503620272297488689849003974147161674575114133460273449742355058780721866552587350641253083245738803560851576626591008479072047704536889750719974356650630663167587611347516441890509949530441171998514991673976622942694451662140808774913553673453065182999775820146575308157940816750357256313082689752768694913175166031419627412271620957829974512595073689499764786513098304455391676187931636640409697787311715800412265552886370914062581788469239036439876794389944195963322773315106241711111175895820421382268247158558623159366153128943219165489282119597622766581435967431904693189707095462549848023495501869231129366402929099667008638784004289044208624836617790643020633059339203224343651607943257024658684668977153432807721709879801181485515792816444921354300152529961377236010772921085951314599524616594227164157476323657025718806117063487629262732360083125256996543432189374507796744529154278947127228947044648131474412422116659008100572172330443870087373605331646830292870055572001906994319987064544655062428217271171245920681242948105505040470592410528835740065648454724560748756247634725962019554163080869913086567869678755397008127911768669194968381351509880852095827679294878548181584339038957648028985092572460862530061488862865030657198657936561579559825729918943289477161896205693546728054418563501846263442674857155608884433767767751811195879631684185363912337497661237712587055753677142553545280102361912882466084685673608493413331195799335404233357735889637805318390934442804922703521622308714944360673004231179796828639051719515750520976559027309967099890200513002263326473818452023997691129524606155729336699654182678756146447436938872908878942599227147563262066667329080946986292953431110762432816432736086308641338648646683683340341174172433613790860478805680045975432893327214060803444750328434411461171909670176253984282266864683881706100253649900743173847000861481761643196421460919937381887765482706997939841539389749094610308060895210562372337339552990648545654777111323511505835187239748697076352293343549725610030112158912678328492646452926571161151465300344961441304070786937141792331166624769640876354873990174775371020182114281421448246213204890136655231442441340428775298118356673485565936917962558531536751079806714527966374589942103118815474548075246518531702182499670582009281703471433056490611030296600778862186439586203091262195374593191550111691331559547339411720861353588405204585927360463219827022407154206140331096148629907590810331330659147574953943653870184306530383427904014305982988109686628793960684213401058668136877008625504106696553622430760974869206667440684275559470825940375954543932812646151978601094092210039466239381000248857808215305396412362630356804450233024794334321344188084314692816183923682018691893983933307825793915187659886158526588303130548206474199238611662169190459756562533363184467689507529925867773089781132205545268932341196377415807042979172961849337651669375621514648813841726621715323622710802784181377459609786557245216534926787608800918807075144517955918932074648407619905173558584889133032806350787970523131676769315773731879594907212372637992597153494224165049186095916392980515375415305601083541412442663508841170889542644097702742282321287378185848137739355097493355511406244664368942045355237930229556990256888924724764828569879277717704395843692472400622209413255549432923268062651006560671124877997880399882214586345295917166624816532287411553275264112489665623653627179051708201531002673539588247022352816399724015346412203202579778082731355120501936842815520818554997514915110169914127116084454009076208300514164618825529634620360873716790190582518946838954046826629717486680083930295126077669299240694352257774386318127596795069437001560625056278559143415124133940303277129532531071186174802577223494892925219809743089521223146195766620759235563597266907679866612332910595279610183431069077020322287162520836119564948117529971327497305978355285212857854784428618168525710739979164485073794630194794860109379383640540030350892499489138010893132270306436604092136152251750336475912552993362345087462062522116152134533464059073152732407955939560032748790973869426066361431450934795793642528207605767366822455612779788579850905074655759995233257680197851647322235734446612494779990642933510320292417061814769571050772801917271665422720280245480655682926562444571074844343809247355832405957279281370093179495842802006781667030234830107405474219268605401978802767061773311698549010053252658070039193322183255176221950049560232954318807248709892249330737590455348878518957734282512509676519718567996529101719951017464781430278133357169564223193407571376783460869671224381217307989693831217042049112414515862212057381989260281325336165063327096126811273544576450343862718373919938943796958561167126683833937598558264615427978133179120578291237899892276277256159512584275400014463204457910654686673241405336586191842804226258216882737103215382122900160538955574580481497079514288287427566570758148260548242022106120376883410734370446169531356584731584649952332889740861389260374365455710313573097870305157976741864883330833346830617761996495333234340591686783886452470412755314395794027884216137596849182823286006692891160507611815980980572296761164235609054782755309990228360118255687572387881258582934211212064353513623423335454800037637353922844133746644754648997271532487062343247393949407436784904172725426574267589518279602033436226061843406548292910969473277581063150058025056894921339837057106195538103699251006160450062319589568527763384145338709215687875803212746031128492488714697592389661216541007845166518759992660729902045834562796342043971565244565003933269758416152741868905281033962277286801457027003189627877077513728951374928538916013451181479091212455428351145074766206145020787405527198310649131950843193937940513935608624487120632823309725631065680671593587120399214096663322511910445083216535436219937775858432812272309717649727002825335202360334694516082287284727522818468777375072298833913187683690263824493488856434606147021410159335537083375926119354381437532583680506869265160213196385900424945026077793289829297493102574748519154758212368427556373977810151502777188467396734397418256427158653009213673388007912311266160418917228468906382678717224697734147003033770948629424678362291721791257397858895723049380035859123639968963121613858310464837079637662679929761566821198465934155933916744468862003556896518406189650209957879494750342134510646829418913576240994955771883376474844936148903373387364084487665128579906005691803558021757432822372098296405413984917686142541135780192328432235662201253375699710382103714505361135215808754432588751773149812341597900774841548524687471869828437164277567966121882258983635864612337270873161639587829938155273415802880622289603227447919731513419589488384195292905675291358284702889972904682421781158812544500275773489756610693699383060028442488304085568975649116156938287828620459017159206618355597055735021830926911960506871136379219891638826470030323985599825852973720675968502122325947960921370133154369004734758005266973163662808767546868431544120054451810963963317799632707332700784242615943287198367100185305221100049935858980934727278261324522255474466336523469026079952018829848657929356433410586192063576580213494971238154233326330818249633020386361806074300789362848049457274765559689769047963077258435896097235562688527717695095754854674156318936544434526825222687331658583367174104535186016897390037051140387216074925657286694144634342819342201078799444793152890807044167837208591403807871920204687148954042965778274232772630067548268392572047428956919167600520523215382114088732406797255883699722977039781747786554451339369528046730979198754644054050153559842149017649397089933682368179786182637137747761899242139647546815218023565700846506246212580093382393758939853525532473703072687613186932612577333372902749196950150840481799877283736652550640271936147773259880890814946394227307546211379742525447857306562061623275845663368716041054565558219632284442580016130922925611695217058561742929711699372987985526865736798162230768594917332186376150773517153378053363994725317379046703857552722373827813588564532376608389812022949751795849901416896634521878608358384118931384728325768648734746219535389978008754241505867497801560159311365405520709508035255004812123123771815210729800323101759183786254056596253994854471076202385234083415014218901838963027669086460628899731583050006054166105211261833245630887494237613211173832359910267154433339809030107675192156068609150992975794898470913404847760372533164866332739977457417078705885849890364782505006075652766776667301814279834629978631154724719046381308270269502715524345837771328888401133228561232764247580549141453340043073513682001671030489674079132204173293655886380819902402504247589799061997394494240613938590020437450817126160362783912411472682090856905268374225068910991937677220777687371267701529071296822615843757149665346296154035289806984981990238158813249007282842031664545864518677871817717727792832125269683229766412454967397152787968043476589576126533852457391513438137845005187385915329634140536894844397225508011960792690281162293670434371158371953865778600341946713096653442535523561350392637433355902487780093167585566502026142451755202310518037979241601868165327213490744741879263046379357019572546568707696490256283113949083065981392587716575343290518298830744220931539456267189136509327785275856141886915058431128180621164533834614564998610279908878315999233208349703499009644828973619972608413030501613834375735033502696791991003945764850313988998040534762079799510355628009427119807714138625374689420067112929037940211050993128817678635571212882205845259023298827844889728557676433765513209837208453651972735662945407520786837748259937695085474585377854401518668703212703251083788575535253274224674561655301752946970492860349352376631937758153126911215712505456493662840461315754932343616114386894155191795521160403279413870405973659682877235554936953672492603352744989288822044886844365275158954689558858907183172928912923457744284419272505276847550387027063282979975853882599387906789963676634726367997091137000500451915150705020857447053203113428375303964506837349474651525431616406958839656960477624810076981257623240276563247145586781166535633573841332037563285771114579477361177589109784495974871345499454050089749431237026691600227796215160164431446321556746579869691343020917375379329537363102934825941848515313457700649437390976420858957317742314576728829679067502992231525732869833026341233526316349020649042970821006326488156767632425444687039213337678948960012513626523547256517022255955699862842510886689684710787260016733242215625124292721308055932622130721409368643549968987874303526768849221231834492419076374715747446252159745764663572427527952228915040642776786566115191933191817830567164653048138101066673424591568641744576883906241920186541022526697061538909990725499842854841956681924545197470930614227531512984453091827577151361181673035809321460322584723528118255047060621542622432455144689645726938231665552509598950410934253743085999797137004258858340304497267109629969763233607776743734798788356730102864713845459287916374901454066475193948993522123624743661317478304868846315160365922435767627623446665395897964687905529239027020107572189191382148316268524904958486754329312418264134662722820936532772839766755726728973193812934194305723962072329200718638674667030636460133111116425468025122894305331125098538601201236070449699785210958598753293032771622679823055107676926800022074188490301650050385344759710183016737826819436124165696392522947410357431851765836560341232764339009565118632607917338991262772072135161752222552418296124339628251823286968625444118623812330640345331556016406957472320383651456635574987344116859941616551824960425979839267816131483180902534507164666442670262761185976491324768295272780570322383435150636721770663763740249030465909628596027197972553780014182019981018139812595042348662483440439211364872366629202063939628845314483748901026084036148407312006741562291596696366940836032643341496371209854547525017736696019714617846451555599416726373970858649598779532421583282184109391640528356790706864210780346607571979891481554005420051073009627962347272499701122177816567984491943322263341503385675308244677341045503274285611574553874214000719284301774473142300983657607515512777962810147220530668174203505967941050980466563136377825172470914099255524710368126705138246752117200528494295219748862848985277878356210600487812711440634990881645924451898010442935708329047220160726966046198426077224783107171439093492897379507505647105380291618749188699463530135729350187320668731150173153109129679486254979581512168220757123189190913833835344710236597944808047123388274440350534679995291335460941392728446513911908360762265798398156424638291599904416284527681893532791356747403227351506890987754721815574998488346694622271194343513957275609331877672157428578303301830422251704963297161229683675274898329472315069749788741400219267006720656772921310849357294076359289561828129001109784724328303846519743758573685912309817836030314052823008130266313304139925339921794157647985347081786361137720014085708386394377035291834974037418351162237004017318826939326308750548756645290932656650302439445362272791708003815785132529023651056809625891794240016387149612121694699254423986747262060057131153878388338830780165378838775211593119449359569491793940578848860623959444184972892872308495579260721132977121372388696986360236829162225464710880621094479132399015406678160289346942821550627212605417982917817382489199733829530168266790617780135336504718863397842735335856232791853579779226627038024456968296862549118748685305497857965989184862186237485563935321563048992834865561541540649512210466103765481806025067654913403327386294169117762638138347851183641056999660949202044895026294461684668551060662420883145374012687794781398595777699039877073994170325653193556130005281435994560612616083223589903248956595675275769853245744035607612886079681857619771788765561985237527447223599272020602389167187908147088670683027939897683780233375796837484716792042056118846144350842383697378594825884978259521414316768984959213193894128750695961491932711470358745336608149437546971429195290310193894356371835937491483074230449340295962811166523899581106000938622216226552529766106507452713589497334474072816739263486222629713471555329362444579946508231979087690744585253703457090077440815341678638701480996741240038378085234273977881746910805353305091194433138730408380430675060306862695321245229016675038563185858593174377694941574108105727494443840013991522952924016806674584246966055691076975969873109507845182518576898000939428637121910166980788517105711446695070312737069620047300356753682352058152491868239083974088092648527045816800639153401349373525471509235270441619265721100423458480853223980930819701215864173291305325898717158855168420606503405569968593715915621939545955585570093477116811798359958427981955643563653093890509419646418892434176612177117545737144294027293771776591831074430581515315960948263506336557238614139208130754146107405127413481388906875208965175472864434890201501872018366138417280798827295820189774861263383603711094140868044146381899755144190511520140241876289786882338665288749564740110724599055379921751556478198091849558767527782808038226298180439415639795617256940909295185774478836515944787206826785963694547637062382066962023966206659210812781832191274680814530314217798673533684893808266818969129998351994223212726387715975764285213215158837171464854288124231224684028390561577968199897855625102710706283793994319073579797536228737199478452103831686685214208220192667231558101173724423756091514893863436665265794260371682892815806931590571523794802566191268708876475069508501113702578802333818019030210029759755926818216359535070641885719005949744467974174202521309472461919502772132372470257029616316814647621846436446517995358777590480917246955673967945537349710322193694559627789377919383406972537884155020629583874830961954204615469902226843474617677113197374866000879354436073024336632808653684733506687074089001847030676982147531337315428622151551318140954149797246706763436976964583092867952120199414066540432666834408196869186229176544103649208078572924233887550618098365912226537972884111201306910185760304983295326942141884259428662146952768806320825719648671342246985264194190222362411863391302841718447248227557233799697074820024375803717921807342020805369357406187656641696077391209098134947021207251972136996423442093054784650692374464904208887326302261563579196063092369916027823649300034497471237794559512408582397099465702753667598133047775050505366345747155165583727731007857817871530316132768489253576078462114788603518040297656960584867175676366593087480160999279507871789131042038494789432860847970515042833265245718864231983999328563422686078834437453092728931460925442990607871117367669598496330621775148848993377878678597852652805705486612173792135521247023953256081906788528038324229680755447174377489501430231501469612254948953383627569448693046741980229225550650874297727580760951068798271091938371422909682687285963219428367272424774439090600368048527845438548199558287433441890955230992659295884828977719675054392057716689385523977360925820906934305789867423572953120514850903846524931400689961737317358162222944554161493578714775062703761924980363844001609136117137295576618089263864679402793656703853057799129885739447837576390926794433365054967707422859638087218703995827147580004402224042140033035903609605480047188473046782868077409898322252624531680320340844351093743194993802990812417921108954239270965425821958485866799241157884478152195574983222583356742267989600980320093548651085494676767134053103434998643497580002152868358357213659782084357326046612605704644092005206437488086840419995854086974773160175053902530649036204494584764408820400538605715251822177935180194147116600865329482810600219159446927834603798292688186777848837827131481606681284808747904302342003771308964647817855994618375106206884413586284506303464419139428937623547427775867690146782289070060926832522503246399533375667289976602542465979519632609027426151574818652781929779836811013313396516257933184194070269649889513869239612612753695920602296900874208347208408331884158268380193833589732243351364122443211749794047668241678096352035664154332541509645019779105414609437498159904457928380288801335624818140726114232759728948241418870259574549342547227469899768771623160993228850420280708381008140918873526333183584207407484465733978384298053471060023742199872117626833349092090738653379590749280892830301072075504724508511833346763047598206617899980044627448033701965550213204413964236745069537087816973799693790616378482011697962707212703584804794885806583089632312886734029638482411287659521853624112569697491990574782803262998612317247930503236377058456987857745316103866706755584406824089105118184290258032985140961573315387563114385477921529836638382158713588240820127783840973623264758443526302816647560799932214839271563212499908370989309463295598599287284335212524274334943790238249494457851649361270326423390945448086200283535262617529818355252978804650281353991128471612811534144603897031654677395258765383844457461103515616418092733462541422179033107147203105992949538959584368857734894952259821038315964206232730714837166917989674445418418903725112728353005929827393747375710992776523563703606473487247848396842037423097589988743878765428415935659735883450609361299244925874676915428045981328158258729991103007806315924817220522132060107714923366010031827100667272664889495509423368979354810557964237715449541371774079951775014666954655741008015579341795983013187154617138382203332872631369978080937562816985753529253902365681143586553982842832417000516419900517643835120057569334304218029315236854114240598680573897377172090328164862383954980500843602353585825546188559424426129289214341478982670941767604522251349298729974353338206276224063310048837745273811887225818199822194282936766660000403799148700185686745544123195735187123793059951482159548677010540478202585390833356406182622252080286486668097631561071376418909023606039541245535703806675356765247266803675176738455646966935960226342580015557208962384036477132142966921934724207987296298616757967460829597127485706790346703915786585811127382574325190397829954457674305752992830286341862425450224962419791639827349043594113958984043489575783324648221652497253318119305558561405031050765485899155255426528862875288955457736787420297703784684756366424947670848543073541328403616349134710744683298589809511102012425448846430712271748865869643672237512574076638075779685938518232158037901388513245670422527853876610135195682865233946040200356733860252055134753079007468945261436163812466020943396881829985725346543552854046361041312149937692163026148315182346942096279115494171946607206655284400443565753266414389342772209055751842369120803473798867079692283986937508881614607383824642000815393674001886257307369534997308367252810149430436456349752135453195195003507648237036184538497563616339744294309886387198988081880867474958317602229846725019591837178700154647194377440245879644193433052737786174502452497071499070005187269292834587178630917484387855063975477813979761471029748052589306922166622252353734490113539862660281419264762937097680131872041406668762554595422292493849462711775501758620213788767600298051574112378095519278181590820663636540356868332445566200951604633752256882558545829200193063815338736565179457437025887562647321077322764662315226993795825381625074119359925754347032075189639279292162309129902590445512172093189661799346949541502186833770152207591130088868902385799152826398678246546088746278526226814247331885885724166512619590003292244047284089619602649237730727930328698350719950917336222069042662113793573787896339821927111179243751868381757621347292273048411090528931273975665464401599108920563595395506226849034817783401638880747758591060473586645607299400942000631204356230811649814551496555130058546117355240521671556660413334758759879204455921756775632837672276901154164921122464223603954033684550113426542474489895459967920364424296652482735068799649501574046214825111167401638128823705492676679728005746329061945617997309444872374670630628346193769263728437102506294302398387471804112779445151821086400015584757912846401287399509776297708262263458825052078183457605053081571276816461601267456151310391071769738455787322413300300055347195116690125811352080156303730469080930979273536585649135747113509044127590764902991938820082621739395928612333657297066464102705878385513189346579626859330479560260115450359677101400579933368890040220753848251399308637163433660079237124064576176500364106122054356886881774062530570060230189829110915340711775171244237036436371589022011623171026356501302439912154042701273039166043485289217176780054435379602681447698747940557159937783563996621006692741927146810896204073611163472025898624647440819612040336875208970108806335428443692521801742512119678569911058334944999168309449469847078063675466677678253837230405284892911730548029893106132822852430139744212784010822979922563749918616190953950922923524038726563349624474469034805751356594650462503096250111859963630240365418782445707402458948806050741683907150580324241837558626796044894031184207156184266389930059683519608809915500540819116094261561779964945557389362335095602169384530294074153542201700885059341080215377441689697655239000700113109469280003444356063607661310302728738927422665249899098159012376515704327731921850284488111933201103571057194443871218352322554867726440866734045441353674039901046417928811413277329570523323399878009160267002892904670034550632113551822596454563655802704621531470603214767803873454420398877573153641972943746586782763362311198646746083171624959380516317910160217431600363721351355065556811627671648322879623900371433163480958689243847116904830789651005911049650159928314383120189325251667689558973105180207091561282127947857682315030996548701378014203423508621889445113091741552012125037797657263051175884455791816612431914793499879371889746676777827243329227024826454802849998567554945269468703275037839400366514426856820813090209490578996221008140773669655662797895875993816037392940818983260231197906051459780384494121855073472344404641363331714829781976698669655140051818454197633105563504488497134223603391300589797173467823734723292305173885050046360256819980627282581124555915860150184390904098641809717100754618847739349112735711271075330950790361979461708733446648052417888060677311064558841428743120553686450754131237892050164182455985291702855298234917568151981749535650404537358800409736931002101619740994088572336813989068523058021522578307985844449884900267221549288886129250288528135271737803182076280866581987021339186121133602461873626491285983857042460547885994420824018091973627117515404746563411804862886439875110526018600763208664032080058809812466828727691582888514535559929721451343188177166455645026663362751571422612127028290235870314678624273023359989513383310690803679122897592232090053533983610528084879743470505105124297994696958773290081207079728796535839232426576733921443804703617065295956729932344168693092018662571582035045922274601133491784768678310636302367243553709325626949823072618631310910501643206126742460867916703779309406696071354477720412401713871525414787133745660229142745368281009292055889007950848372326787186595562128376549304312274644597738111563966740927499199030967831570443792739641666751097892640931174682418788465392879439142807191372281945062111996049420141675675141552265693285969399005410111647767529256494404287958357100368450907034580190874999930927342332379066474107462898117101040277883382145098316061371850584279038953949613459869455343321733883804422922186848247101171485158347106099757869761968160124373302306844692710557893261660012959934985974917184503344610562408400109524903112915131020735366066991425097441671089180442792638502557662206256643470568888120913431296547816198453967515482108102441606244493185873512142860108581558715194193976552610624780925408142475964662701919437855071869834968769265751713501764020035993835301783027817671022024492886556546201055956741577115904728583016542256142005482685137191627689825272660007703368359267689271174661458864432562954417051216860837357165976102782388486067014463296368213637303317464871763201427880067424934856844572688678255255509250061546975828854921081222247668229027751168223695025439873245618612099967380501457521453467701080259152981604212231163287602645784892088144425417823517877294636849168637871033559880293528797513166009650345021350087861481652756934254915758254478587897790042101592801135480971581549325386490211513898577566392705820047833081031935861720959285030983719779563846649873345549013365660629589933126670354255179585895342556852221670572063731668209322415546565287062082026853326008665800583966090695049703022545349369418434799181485403175216153188936016989829712382727329618815135404187049273485262656664081364863788716802997434199218404526700361558020387500409637218865537661056462525859676231120914555806149237446224865590525941467834123013364881208645131781450546417941645672385775090452177054997583323609161824686637311995974256373924319368360663346878883664893997708709923975176942932704315716340505835198994772125986124659567580313640200779332879786511301194767901228493345593727454467773069942456260202388754930902233573983039664285659923462394343075435576614858518612844661731439799759776844709297927738276470935627949450937574975809402297195543701438592212160580810042397438533045434671191438712266270914012615384462773661088651827155664020489973871853842797408717803985878574872168926362934079370551601837140508771496281607873833623355597883713608096663152189322875105227403710184125482971285689541641949279438506394548386171545286329870074344746461465034144602561936493892557193423209623857284093622072055176469825304006432287560380697731469996601018610184090834745280892809833912909149258303651173029967654739251518450277244844953768047638864019063487296774799021248561273166399844273618623088551731823996788171581832063096996485147295737236946479442548250144837278643035426699644315398152771686798446857777731767242149930635976518135953927680687103230458025191560364641845527228861482514597409299719945291059983347241041854202720851360543073574876227384079200167634661510906147191081330087692439890505428382858717459600200884576448251903137554808601794034109441898837265231940718313705379983523443759548981321534240842874824428098988804719710545292339984765517177514410963503314438415742836080790134130163961579445590873662789091442759845229763054393408666782643140163757170561881345065363728887368457730018975435386415363938173762901822963330494418919406597305753851213398627564624984703279184151114912113525010468511900896117079021888918806248825384228364119065587480883812073123231413442333531444336096562719210824764039272060888862628525885199283013330589057652728295714261949791649958943631773247495809598414916399608724055940589740951851845370108423911078235447953897722079752261759973799318017660258416783458521545313578584209699130699520991878609886124440106074119863744715309935103342861637568094850359275704744265896795661933828768847466738762703577987555965494014662899892099869716485407230339888393676110133037840451130783799704331160533262199544257703071039684397527969197308128025112622360077754000513085974983046454049513097048034261383540913445405641341014621937160565528044484008804530396494929738268650227452822994845774673433786755028009975605100915288666465879026257768957124187931583948729738877148353842481293119168316060135430299784836863527731202903029710778302774738958134651942756160667428436070204002387686104592077696567626787819706560612033973047229654813734461913219885892321867439123224152577419290782257091414018156957284573833622918850794868329493305335931935720916763645955813679923869635567492986511324827139460731628550124132311737264877398296514923426741322472886328460210413669666442677281041495943027672387634286066448079048426771915985645126086187040257274427745143079017361515617731515750059883996401418804973069975506691012924075303749581557846276831148373516100826421056868786356840858920119268252437039035251766690092384082646752617092602697104070471481531020573979976815791829812892353041464919875936156322124516827461722779681573302532557352230229683398277994160348264985693826397360590562321392948550742764853294267105896994589264214411960008453533311450406865373131957148434854150415172347068715966588934687947761605065252053255188779427620006779291742862951480363937155624921492192899450678409720543460019562984744096748624653637113020873814175483338166165615185111911346847323655382485319878581818145010538694131580428941053108502625828157123111145551238854904453479867002570776217413802918927623452389391402805293096864556020870747502963056856668723977499859113562083485942647022385403313966555122940520677229821077169887490683123218656678892534843739289398243039270631046016785592875306017870222133068112991425648726649716803285494390895401159821493770170327676209298763615294761022963864003909946651742860527160651172140132509592705592948397361299817981025671385331771066750331317827873251215013278377486502070331355062275581304810800294605171798864186469383014272229157943503979917780164905282771302956245709102784944459005025001264756232514016120398203255027526969519670742351684211910982090147345534524738516054502034488652611948457946739103249460175460659491334735648784812681880187073525918380839036790727219871365126911287379537715995274134266740529860582672777608419974697064196590299595629560556000221763788281809646584242944311604341015403241618371124118334133690860407381821867859296600601526097920430269051432225681436574696554200716104926071055162136298793005559121326652543344723751548317961256407867774243070700876622029181406550213601916638438599988612327515290352987034953210752896906114040165980218828037680534871490208308719178047753136085841410659675196043240179858915353244342336299100339036772618991404668102761485787215430327575243593205031171651703430242737608232710098962149506384969100290257741671365850448982075513534469441941851991214566815068435730758765412713166542356681222737222333875877673936228746034106368156518664932281342304242040017305391395804503405968044825751340555490464163357843816058868602279917915156776991848385745819789813620129705387867266068895188507220074426102970737128356942669779338208780912705267402281903448878106828049595910794308881004695618358720934323233044096976123771968962982119916878709833961134526201769594003458673833978234147321913824997499140658967734474340283580315374798489967619249699851822401768193052100224551085786038469056876636412890897515543665065616506192218185586063952563520434789459161679812323605749683748234389055596433504292754772607193219830825380715538852177309242994131441902635580211053579886653626415101464607119855982928954907551481369440936071764942629103403817182161439604176985281732820882103690612597704683140598765898142685317003106627425740828091023311681597595865485617816146064344765193028717343009218001005873954834544037627646013824276340532946558088847737466836256169083430972700699748178242457419426260777097989142290035008433211923977359095594574681566469478110101036963569468678903093375711027620866070878210655553779260881641337529391559615391062381538131481317662760323198880497921677961104910238832275063964710076965247441460982262594476729758448101388084101452159329887353851807306981009460126167868930860243784986072082802669244510981539169597360182132879440792230675841298484903656303436908701425831419899105413985226930754669501999027720119934380998096571948285919876724145591715959557500060243914734649999094962280732089018531774166215707333892838863916441375939741779799619064527740965797692825365348782886469722536557545252280316884710392694299440177441505654108392481853809722462655146890300020782127549450527915436981754966618751347831918657412558355397407737334160156114452815017161751179996399406119110086304704795713409531582791149697550614252596618790194047452875733438892990800297698778930869873399027324722936187651932972809463921588010581209173303560696088255232179700576000415904488179392298445358037974607129470760820065151683365645124128112940020791146082742431095203360028505785103178129690111967320860994900367426065788332367599890317467841882737621128226150437357826128239235832602350621502538812050380876107577923411020066388359646169318157504286066212124025308127579700257872538449057874024076775176118282802205700768033173143733222497208953222317699148309229185252467490518771658719283391451272224391076880381467647768256051991624289946664158685700335897100581727461170013131727201526453957506701723887331443852719496997537245850451851121245323760092430472399543989332763258474199660212612529805661849768230504120572683027889590129847903701012363477732672039081071163930328926896985898027604285309812579195732408053145359995068028164763767861620499087220505717926326447013802103274475785095981537692794373539955990692011086845727615873747414978132199221009794636168368837698006801932672463563313936198022844660290825749708876116126193917988989141472036055993690883893058053593693391145031666583767906825338101549463368505270216052865898969422570963534549240879532449834501523023103683349308340823516829151896416671575047629019534676550504543318915726570514987763841490791267283803179053794039065513432425793133041324948076088104697312495453454578562643292457539754436311066043652894034438429341310299218563861969039536229361901016399352853501057299327718394468786490277192411969477667967432169166174018371906560463900076521196114835072075559291017853787705695420746007253475463298759180083020271502977497891528398945332554071951666575323092649513942114255404511537786456966234680050010557665686222565597532000694853643862230379848569368223874903195490049166578339743669860918339199872371947258845288725401284645056630547236271099264278570245829223730422001039892514376074181197679980049611584889031365744048147277693497933519690791241286804950501774453583056740426732857897572640251681129144017289388939060078622033980666196507858085348249079437151059318692320640496738656353128130407910722221357665482187805198585300198832071946026351214279937006940708565595872468136554341671216007026774829236204014529850560212244185483378259554164191001106984416061119361341572843855737682243702736802105490498596516582972944555191824151604065511839707202720208464020439307298630013905543486080572720871181258779384498490437052921037497010016639981519494762949998642849373675253631752188331308710888079788392417704627889360773769147013802057889504947811588756399045026857550561741605589946250346009210210935213094767593435082242287365273888374232113471060109204939561731748853780227314662884160388678815342375391560037740786683286939848348080670719236001585719202923111341735102217455941199598354445613756191796311070401804744803809438397548267445519775059366593295007869513983479298733887810177945608175447381355918082998124982315003735066265433776452183166172959235665505036298871193560120416793837252007715931419035192724580169449393893968861290001191170558851515798078321975863643962234115591247845187082904022020705526888567677675720843301962157900852947127982339707670466783431019043137939095674184931794875599199055140961968939225573319387182240165404389424297616591282596064556576789626950067545766105749703494720985496417221922641518102798911059033065391546659670220214954542925225680119973223318629930128897726005488830518019073656178487244896155732164825745475381614346708401825711363753394201684005114429600303082324276272440249343956105593933073782790939544010805851085381144126655161542809528681170509607828910789971952998934216779462002016998984965144055336949093144156637478982789278074171170977983171522522769101762906375367829868692728058988150048230697907349216189955367079070334793754336049453072079648770163350386612477167988940461720890124337095817160070941224936215496495754923913389052137928481325600654070872192952041174511465783621081106242854180781661949418458010948482260635786400953180380553175259088246744194408371697512638377222189990351660818503784010369641914891107162792024978840785035770140561634787422640000635581746899577459816171765424735821336343905574633670041826313143611418160332966762967600167994205533403640351816660549908972163789101933149352978816209395419682065819064283642662413237059039256804645463665882027057632649182915871363604687363845054497488839362556344690258479973397243782686679200489425440222386948917200466558257328802332499435398108946466293862106782615852789957371136482549194966699900465148330478673621389610739799157349933726567917382050679489033578517034801568487119057331503073236481575437192770782678884988301848646539821183228847745990682339746215612585382662372283196986025204337862773557515550720101605978712174650697369997748850582368618239740596282389906171845816823966993940423403802715214934164580665060942551663306049310716719733083603311809122267282616536491778154547133361395136935789707903812910081720867497056696396275052837274397916287648645576810769790438777885368984373003601431294866492623107727490370595621425875142932668782847880787628478186245956781686625830268203644597885098295089252594417211353558594114239951535124148861005811481337144762057489372241692219063913137828116201787876086438886050658708324086986394651945116888379527746353597780059964225118812756016017915902247521397691067986320928338406008610218467139811866120510377179678586471588911919780820651104987209273293674446645552278333155612798465198834836197608015831317906745512410020867752382206554614559397489786921632321555311929060258852766336700281085004036776020246255778526526697703400695921577615647642596347433564716021855127675264892216759980154725911835301779011021484702267325079585252754842316261589296749128014980057541492894372407464438111610968912792553348665043947776470166897046624970217334733680794773210861934434226421608580130350246371110894166810265036737521403282434293369193737263789168983387513755579102654529523137287857195672725035232725011490885240111221231522395356681417563608279688942019932324527491150005680661906710073056211312564018295049933428178361120044138708304541177799082829852391031652175532217390838633772407026085160186509754722845119753912039762759601990538382949498226841606942370746852851185966687687972298646027571845029912469206489946948977483050501351974592227789428049458889362661755755850166849113803454065533840450925477956483685314132206728052953221775767997329750000772090302585104432463993406745109433124358732359862858793613228624008278150765608155394815807462635927191062286452912195489912738899347689840630693501530580839565139440243232506662242987659239682694103113083415119675553613783985422117921941144956191653884918597957076432673697459359381066877511045939056158759634966179567758163129073143952002117162416023638780963299013324703785938655291405189485402021747743494118074693780365326131399462089455574906039769709495500802649687908339222077306303315271994479489978198182895663978726235996505384508402261607128870691917955348341272915563450783929095549621763780941447603926762029912097978526101261615871270753558678860701332293741480098053490197876511723501392603202828319381375304617438618548707315228789604380162602151932172781250101536609553959394826629785009647214769630414209285608367553697145767446582513779268930034981876730953665615409401818121381451571893485211413763239747591249359704551181113512626385218226841422290576167233622174163859695942855584152660325817356968734787152825385468661708317156789798692079668579385203867327936313110970175090915363971577478546692389841880008598498493115913728360813414373935984087726813881576316452990400331700614355158713210484908604086309955458293249851269415089658896620196441030335698575787971913718747479419890239855764454275317591278218206791940095979448898021655199474910767021949659610071343068360588439806250293333929180504378749584578395597521918499399156656842076444015770263734973607980438943732337103577946294959569752864241690766716259743117028013043352721392098959101629315031440616760330448713108889303292520953246042438715807137411333349675218946784204352012005101715588810140727903370901390608296232573654349022515857159734383964325496828242539277712422357476365147462686304216003673739057280974151802633253647788062977836503169624788766304946589041398145368349648376763797240301315465398808417396936142586717938191404814312622118490104771070020651363401986558245954915189360886020775433744258793923503783385025011677270527206099193802611795015938187100439454786426117842514617256027238047632869979661131161471745987885542037896030485119369471921087749508553862899585037777990447987976819174494142900098035975024431445721638798732593334748433045739408125512479377208382988604655248714452068120314432872021824917133324123894130322035955727805144049560581365140986160079051007464455743265393945391647302445540904493591899500930070180617233371679820223173261954865526065376596240693939127964089260841611488033064649940540746459731482403965686343215931299439370778216002709558712592639380626530906372271590302144540827890353670167098152389832704238400163481012749869965938331877195079369730835694367288565061102509453520470419059542468201989827961069973226213662816736312298905624737776292375576101165400655938523727391506690645767946392058971652286497743450228414035088808309344618168366673715725141638260562684009201088413783889207601230008640272331058740377923680777236337609996334549142295140263407406950003571920163554103905240352907273269823891464585498060712197168339517746845727327057830016504343852267328906604188841138250834136137996198101697052736772471979593261177622344539819532047244073394552129375484996462128287798947592635564711248098447886354857684404007964540865343117844698666996315507153553467533182789421749052954084700236515593719130070765320610164624284605754459136274080249442643024742038723113681403501164916738803397962812882370862631477737109509252116696677284000566965235533123572734471225058493342100065438046715335152491823178461651025808818016446049994058848908523540861518389404360719340671292367260694480645999780777249220902903862440744586970142059022198880684609651517094823060009646570143644076680663727968756940713515678279906490790632772090445245032485757928070822520326239683354851586069314597838528361694563361863149568957512520542758340843376543877357558113323322445874169130446233328853040341681853276507962953325671968030466262226939292423381761474062176943813018164468362506028878688263884862284407686498705054382292580658487040403556257325674952011143193754775407709196207953718148825061663069254831888871623685251554848108075745353475665069108998902579006747116536104463548486258453296011166055248123665813348443402303383876694730853114682295290092852033970729724784595032639730470969287727556674107879212706769691471916296467784842643755418575698510816587182715147495503615650037132073805452127386073713493283299506794838104667216961316674556498386410665538519571147797989780405313153130469535595601250122307301351228235903089741315318724606576765069273120754053562280539695667094045543310016992009340160301510967007087033089628658695481117116447222429564592624702284383736316827618263814545273819011571508952201669555895255462206792074276777692308115226475110682443391341650025240406933025859894563392703641944075397812008218213585045547352157480438705096537744614781134687165655588835197279213185045506835539430760503690093629623878364086670129443989385444418785088158837508762900011444690128881295585567752375216598684934324220643331265915748872953995338622517538068215345051124474409469110451163239958515057551231258294012367477151579026785466343783299768437518167132466395464302078876838451413313112004383627209472896677974394888903403933393477149165560987844062612358122351295492562595858319163624484491123953657658710507880739670881097669121051336720210884909249834814108085147197931198325601491340711816926537717669488632567738508113099293924279731126967745834906089590146797112197545328687949100384969406070056456723771053491890644506528029557447570185785935333025343731414420530358189472502565974199223900855033384792966237076723346362903759950087543075025796397415020398849590375857682910017344100301639017484856330642201175201778857984274579591250260727814703573118803108254072233705618403981464308667013264139910735002441887725563513180201251858081489754097369730814873054088717373474428409192916434244021024496426392873573982403810584200373458695310703279798502293094662680690179272417870980625238297549267427174010931339084400603177150398839717565171566425066140863519754573459747328546035257708163790805387315806922805330698661071761704723189417223854132675676864108506936197728508808999120593229478701723659957911254740490230421735611643954893538440386619667832273836309911100528583707824962506145518825693851635763993030755907074091779176896009094216626863994593098716651875276280612167765599179102906097798876029113129385895535018018282822842512717674142327943772490834468421570946790104913429397381565935133360706191251839663489878904947087264413445808102413965253897144390891777522524117802201688749824301623732901654238958880298757500628310445539487277012493083152494979747126764811041792369032564979086214759140723385699856848993207228126831503709899193130760222768091775960194196631360653375426514541707897265642169499127767201935651871297423897420077422706008183314686892660294098085839553452981326433742948397137157826634893888175852859964321524684920221705042364386297153170378612025782854723968550109472648686527339361327053170918496084286797306300436165421346267661010170035987579790699862232054880264185324862925109616879659807695389765453614545744554001652239142481489297293814279062558859701223872834890240573855246423443911993450272065771715210499127908992116992426409704094162072318039496941688985426561530328072246825542458111142700957323271901559885378957557116192459631233900138923872721527861242038168148964678214166675876691828545852443941373067714640373433094041364476929357832575675472246049237725453066312261405501756381159994319702788365614699745356186625199217747587896680220466677625977438338995660390403628298614827021386190536066366845791514514912966241491896900808153987865583853781157034266034430482255013197866047676271115191413296063961296795675148556053596642717648733877548421668073267934468273745356610801508605743399198621529578787611185592447235271316900900727602292778572040739492840810280038898566540215556333756222914589826405817184880903521959232298455919169463929579675300915498710901410398873834792493628931057971150462061769010546893013669125649607645519105336273179156006459648274765480572318894713984109860130286486656162666295762500981783944574352039379491631861623245084104361645553981702333968280754081606767892350510276470520409956971481930783215993225562257913369017793709375425041782576570705962239705424120671641874246415575661781751832110091846264871776509119033457230778731788048493776544253945247149424091479337073513487876314576985100249674982967257183895783784649478639854402312145464070231609321036055594619547608318410781549758552449473221438932052337349758294772936978542447331921658533831755522494658487593974612031368176924912879005517840370751610615086328433445673849566589150349424052007897413832212149246717980852846342868204470275783698828657304473701798754988339182164436320438360275261130900446100374779902794907612459938112405161919960596513900779096342935831190343056243567157340950561636287482782058761548998813622840063195111952017808096749067049765894282031932459132425596171141643166944161801552406618863311739950687964377815538097222929745986867436434377244602250082170131493699181402454209157676839550131681810740342830411268652549868032645793231845029509774520138980553581941410191319848338679855548199401716615848836118148504918646756391772863305837466512519099517627862182217783739216042843812365855035987768316798876917667864037696003396728064045734525975201932854039038432784751855614753102263637335938463979994511977345685665446742838958191103508750244754207501175472655793430406416448164000185489617235736987650020914631244006805066561821132029336859567547226664660246868542008039260740566298299662282788667330645065503288416293882956258875540969468070706581219805085789240566782073019132006706036421683649165256313537762548308959484205360987229555827524593150094334190090781546711225727107985212227375561583261030239205316792788614118329822645975576534045423461049029572239587533119579619502289460503083569740319848247937503897398279538992068971891296270970268160179994882368515441024906345037933046385059805006893688509215960924934546170186966470225326193881930168212264843687779523961813687773501783987601428797208483664107732876428869253587146978397261888103384503337118151711484715753572829111377136313197782120245684609697774921963796847374969109456442146235274675272612853018007895735430327535505890027607241710824277977227327359006266638666960135223025608509729963153757824337925071621720744063331379638751714439266238114553939004388678518424717587537903066366609326888319312103232072351409070336054165750822090603372016681138850314684644519169504365588661521259506938284344581528708712282931407275559336996812109903515910164212560711075765634430635117056731674352895819475495216114251931100258904134528900750775831818122670748616937051137474051447945461979530174760061067934534837739405521359299881834654586798258758604317340405546011823364935533063590832243916668061210292859293099627572450312748943909642963320873077467150077733008339343158859637012443376957769454826077160976708615481666794238910350609046146044130396871368948867998350878040680643816217724063479178119162006295777701399370934394432172497221823195212537941326027533674568558608844105908511230270606553796894861190333431182933910876196185654145709689387436957061234280197733557389624076816315844335848770733607207064012636724168412550983009513819576886151246486601910441900040538733356712015287826261145314440019490501156417180146235530033460802176758915614799503714673327458150272811272118264669225554441318839859509334196239859455611849476747865322071492014140435873483891207105258163644906920398813879272899285398846067946999733862878432225100374328066659264199306084693616756774847179955538224978574655672505567489493096000388111650259900059937401738666047062621238852848170109467101387683522002537004909446671047557900086274869986075801005598973977527485320741834661939937899976107539930251144261568920485519723078407582278483831235864781682863472397050703377015510803721686394150717589120252352003093644538161000890881305020391693411591082327549299699784135448332296718754241822465520037962279043106977024167654829394976164049500283098389394260224304616904843558047477224038717866934915392885786302298924314368417304703015701090230606750370244720033264134872856010032197236565201590949293414826212299982317332073064879601203797276473155636303760929383734234682091833203420880375831996892409927493635290735649847239275179648356460381131807445271846223458597944972284318052740625000578442004830052382387510848554266486618405878804641206810359198983960987271311506410818454904555799276094354218400671764535486151052824756829626859818060293772829879244252943870854120731025294049832789179127749003152175521488252603471416018195384541767118062521836875819415407036768156157661817204779986923314640336138033465204018426158039026418253618572246844860612887368699927202741626806376662112069290346196954581136434474159871401892116604662265826615905420697639435931236620455287560342165003473601194342256149140320157941711851715427563965172568645384670954524837130594898582559745277564378372093903737606448757805380896666613991839630554346351531548185886779262912725363426288985256854464698144974618924149586366367198140065068588860860224267337988127687969406497029915452452721325754281953249173115066208586652077490952965100753404049227356548282957025690629358881690414651069717772420955446130258543817863048508060589906373809054306950261384242227053753545985909932669673321651519481725345327473336027447258527245394785787049054847586331157183663323591323475882593406415210390728719363267963759284733131612339781549856507745957426301925013613442181778657326845949803925741969699998764598249567094095595490645143192997532969902929018113346849189397316733740473761021534979028013172233791279986391471010573645808824964037793669144260225224329182203596947965229632415046259303763664328408656160231216109902717797940482442374377242175453274369030749262617258880652233261410603381653209323202669910870847586819856399049857501176199636905969925410436875329181907200415759826234546672701573697113335704140320937934512660607079906558687961615799849341095409032124365443108731615863757273748174501786655737939848669229117599204342247600648597600549782806294187391474966456601976892636165982896565574458040991426890947249706735220470116191536009452736325306664402010023201873227819761486866348989132734701444820324293117841009152833330376911197051252511890297082942974883981371499778052781649343705604326005352698106918986588689816108899269920434547815535740465293822554757923965125781698498673421821853124073431152960821411209199994061601015821912737301650176958118619036689779275690467857101810593937314388119291474944356522189626028632586636519017453659212186387681077742091583646909091651827398075310306649980624484927747561884529732947271391489972684077858977868656048723305752422857172473443666741818123270841591791478616819780032875242194648011931593793515239417409041909841257809909038894077942046727049153450002486042745530730683647222075893082199445234721452184282562092914376814387802139693639978602212632210982207735714412941264065376526428543482970693655116806728306148155350067799273428746717408366660205372922048484087025230125857179145696657952396359686270645903720726805879439813400667670141176581252233481048386867717405879736896155996217846549730739340954660431458601540495615776456167344721264274687461408302063879359804284966224722325504660952317681724586362611284833874076507582889567745895887361095197420723212623335561519338247176021818683895300679750212076904388381283562581450125007119027156514434627064814950590196996139040560790673726072411292447199477028384835318633298176199947312833144915968777504290327977034761938062955123840138422910035767692969859590544398289266660878010344059670559052076683702101595219513945447731187410723527945608443549466760792882681935676466658916136214042478564279268156254485063166852683275246560027477652412794270534193482805462670281599245391248739375580940125919778346533655735625937668087699752574602702166964925299837753819693846254708518861510475226475136489188335738189169712195832681004195765377021192118272566508896682467504866699659885042041191615332089885672380926018142811762344795582942880858136988607372754974912130687437421943014866766259691695195368856911749382319697559557940217938873722515159971405447289708395510365486662819650368486846610392745568414363590177744038756512080771456364877728443833156357249683675631481039438968092119282337414507618630565777737794145333025782078879337135523281930667781034744878814533022767115982463014677391318064699017145323181957296401713829934458665281042390292044042050301085037228897072266732041640758383521162554729354209770671865262076294672043633643273505663204112521287225894149976280468914855507597361465051176412579302836974532036046506156923811972132510561806134521343817681732762841418102164413417024917558436568114547977751958280662844249750379174772362042042450573630609111548402426995643360035301436665975118280328039534210540491910305673142107541302357934877234239073959389300436891328148546882197053482680640613344760357465909065646098009717176995752043755635452168504422439082780834807215680031213805137447557386633580661289825695253557232663073951954063697946913927391950929709929134880148676072714978516827026905071076789657653044046336262688872262742931202875173849755421431504998907456461215695542535701520147462658735882915448693671682109726387703669298762703332692676405112356591787736324770461161187528378640880382801363490414508513182955873803365715923755404374036600943126624937447350183694088350123180570255108941846936668830380623604361689986818150462814543993708439467237952819530328860609963154780541105397983173910481917987933763099182400716369535925678358669990852568283461799920448492158286825542660666948065905588375476747789006303076397732011916264419312313733282236418119343830505865855449829986899114668131171194218916017937360257596321853210486874992047347029942678712761333423766834282256575650157489720280343180320624484957230973900571509314538918434494382839737345157998051562591643226270141862062369447593021410508502812036049109939053684780560216627046368552572741329060422899563510252284751907030825327384995555330449578033090259275316352218098898826291159803371125701721767669045456806492230515747468915571710175672403541893506112888730240431443198695865218667607330385490360277460963545019525296534070301597032409851150252930588656719011250832847149680648943813007837186239244681790216217356912288723948021648464737751768189421222071035655596507979484499008271935528147914340403713871720817609031988564587461081099105936917743794712879368950324774186485806481967995614643670824870899368395131507203056530300788685982036072066991673761641475665428771935359104452116916769281639636456297834073706478827406183405435707741216138320287378790378585893274553614956446125505055478266874544550908868894692718598894942344950748382185018434130323620046680700191750459262840838505364312676869803402681158070981034589860413084173550995694415179917543233480633073261339139979788000382109132766014549611157042858028160675162338135386305242956383309503201928781641324922300476117953582495605914530004246447880621302468978655969262925763574028799401356921167553904002699664556025682972369504959099602717097381666168678004832729299059428102968161574696306060610106226717021253966747951389381374853895351757832945136426006936137777440005669930174020113667731787704469450601292260749691106157620763789334504137336511956003290783523596465326574749743528672111629807567585108385016069989693586715225964630570091390876287416492541708169096847309548860233298288800101652962808976987723196907421027009348880934455512188188336519784318535596067476350722161178728735639465655434276140685594124259121417078116303080101925876219938098958943050939682518277130330334926648853295618795266446319063493896492797477963058182377606580354022796691081809322672514261428768508550234036395970562141251513762046722444289799785545413190137205600294567063403824299178075125724484463577152589347223368452680005049057940765926118340462764699835321989331271173271051129387746272008131726320867124724783103695325057116684669339199938383416530133092477294293584707438826342400701321713209728274947961163566782615071566282502125206276389751566585134060455290109261126381662242366899271064904188627001442112873592393998250056580064325060750945893585007218072932230824610825818587467133406733443268051547565276112290094215465561831034126870172286541622690757446663740257850581983903372668539128342511388977610370155470596978428438121104166749642361936898406356138762279595452151468928813282394396366129450138781676590929250897532471669123683482751546078272804451824345375965504925680648532309992814514753455092755527796279414245574405255218825323955625085721179963530195675811774436762550973197511556514845137285424074904838081995588091516117939219104261909284857816139051482314744553101516159178414599947122390516596944103972729574115833974593906205007758070959676589892496143734348781563774420837499914618345134117857213565765100288216534378838906972299886294622686851956288323205705378942178959367844899972838082251295857374295653148704304032195433016472204581397905745288020747285881031140858798747211863286489844734053114604400480011189647421657199931158890372059003146641812617920911940887850066778010999185461909348926691850911899853281758015614963442527274202132308326262537829753747808496486205747377298059504902145550108969348064510974333005997985553203313182691751915919500655848843655165633523507949744148699554593468266676174984193192323919858493142907033972490741043353155071618577128445270455615148720821787901075809945990781903407684845590803485256121124463883238877600772564059505857614506172929101763421062016322763133570869841611333843351915955219934239104565565973100823169947997845631959834114305637058884135857232439459993716084515443224733325747432690293211134055360526090724168837533543614128702342378252708953823576585165964173281100423670224794265894895420024627797793098934507602136241713703106513275975961348992427004704717253332642277426234756632022517984249524982127655951139456814127007662315485158257359633538267179226699363339180668550948028966397016335803063577792061512929958681816023327826828756138695348983385807840486775650291623281022321262862370364711672590911162207449944470337154671719355796034064957218399132431571758689056357820119356227777634216236724756676876172206101521338942884427554638039142982934097063768466511699684549774924842162345498790190059012230711024880588049920820267341521334526194822718040452465922884429554190815449214580890457049392729832168834134299536825867464108367284683313287432198123007451303144400768357402446278097701300214218712351188443907814286457148671303162743814053388576038852946905077691124396402844275392116011246848558859087111204331369833551298317704475439527351180945626273650721342386754878162350966398758989078105843337220397544204986189921453439457001076699302333404507062355822832197939121071633904478457406495968373683599961027055981093432754571822658191627376408326491944633925414125704727893001218140995028817766321849854530856667900703762657705838273174956120917523247601272848854422298986799882662839508678945771438815809675505801148163295101341784549495324847435024616682604908605434986260707695220684576930888101993638860205690810166450518721815005743472746924004566280135244242904323796847683264995978599541876796098882406497426652295844069729776191462648978315102874006697923620332060404453547944198199894752531957170520855316177791641077276461392157117740299135555015167097966196524062222914160997227029865408714690791932911101746040120652081190334793350740933967335438106677644251621091064097827740393472409226971399864193240183367625787951661669211485708440347311098577186041438065703058114089652279903370706792777717324019606366905990239660061747596602743647723341713211256406957304300738718969760826253778407616890456503696412101726055110506318058783071771045716789172093155510051312624885074971257088277608184629735156660641381318577569232194221616981981833861591091112129640683476454149874892596769391552088999743483482510977171733477484904241570447657365745775288703137087391907218250577299317720421259661778909462781073748939672753336694977597757614013390964005994959912477424058226022767434791404365977500711749068727626934563752876279153861033480986929574289849008704137552160375946787643984362695913728997237720073145336673352699683662926085657058390388235938311896147636133170436652976443607494016496971739566002324847531278261351162745169349859149728425780115663540112574883834495782054756513486752535339309492987778566824738322471363412781566382459050230733983253608300387302483963995418402866298087668996005436067463747817597385932001097038400943290848252148607855800720302839262481484210735676894365084782917239431353773078338286204525607937143479890247754480001573891165778949114366003679354363932067762630211052152101359215469454499705888762836579334060613239110233812347891165133960648232734302761158534325707822596745669263994450654928199905402788150706299036213505045231732501367062439410618076676137866141456378576604420749242292697703498450126514921671769633105167672678488372954900567865723978442763113473249771989060076187591408960730665821513844913456155557115108451321597382911001114287389599461623938505836032323442082881450433915073780818631937207838031136417583734875197650793352053542610648396468002283180323476626782438970343828285676740993880122455841828250616588718419177397134842495575355361542835106244832821141075660967969951048252279421587069315186868228906599054454289767683407842846866351695073592900594465251718651841204544327116374524591249405103177497432716433047861042520357940327121038480844643633301371529014988427523779498345747998752815119651594344029887214917065555918493963736202353463688821813143720813493658980418852618146166856463897428391505955837039471238321734527348213615696128326308516503821529565084208247108348556368415289277977777563665982862156502212507461167590321165420965414701229428385457567214173899297998005246418168473348180217325219882119503518467058280842927115925999701537509747900795093033188056558010139808122984565468161871538579928128610376600684408308498397279763700416603065246148266042831177932893558742055934518813264760502991798338271637395986023588785134609267323195158872972924667709763509894677014028229224590936493192519317428596941523665646599511192546858864800103777931630738794443787115163435808683855098036167341177467955250541569632555175659300110987103438333592007520317718713211694297373666504816162281397436919436021979331891137147757928460485105745428328748179328722787109615896826041519103216035886779474792592988509994990492164849713854412553391673798326983742448741274547096206337139047404836079415752936336390448179541411173493620260485120123053605543688879386291448078791005255598932825277335435924706739997269227399277565339725669671524096773073517612992214202555065314295490874261705335850333177746025891528937886543076661397186947435020469696687505676637825001336654434120149780395334094843058804080871386953158989175443230557614844599297128725620764700238088330825578637544806735453859876380858476365069526736280986119900402679811302046101019445980359274353057449296242273773395520169158005332066975513019731133703912561191330543297941699192948293905572679579528177269687932911425777320500214760199698152202061524517942389845818526827978979744054165648056210083302860547301031605032014574051888761984535029699992646579565001904482782417386095401791037025463814362445250887029226639233664043519678003566545443642503625079529648921390656484140182736971450214526431646621003738099504185588748963082465740733426300253099497815591421287519705271001157101716377498833787956568653934426611954407741443992487423206042266159771478006548964334962358396221135312572898201355984815657020457482109173737866280253930704465543688974749065847794940959812244787432218660153009734548024696172671294778795194415134401730118832367448720447806236637003524258617656838084857368856902370922908821222720834170089791292565435419407826899305573151916990118070501895885964740481390462609707341954494227067754033537102964836062032755617310215914346844155390956590974654992791537633294735996020089802640794682925361277898320585360585618611894514061132224271286111668672502570336348863158571739711603288212386637491874566260429531898520879176927985320596870827320607720490875624976239850639187378806361073721159075733629897056657468837735159852306207834856672673994501972457061604170286561431266850797557168950806738619613357613077933856652942611789955761282203962786163036697657292746317600522624881300262015934469599332301304443908514144069612949095143511324043728180378030527016147459666973182339616557550910094477201123130169927082110437284835364658022798435317648760439520807362259586407873458191531059455825240310753772157432145713447781843098447499918919885723488153921904520156617192555429987533454002381109748520270053711471238979747010158547538626802813231702862012903865851442364486492865523581713720293880175294101022520285691187186079645010876529842532971631174418650752018769292746421061313176203085067906658825606161624512329833385602122519961320728581640702090623127183448482230078940409243916327452408745667813673557003975514278073920034353313212822873286895420618818832914189042392958293492930594813919419210154303243567447699243068489549520239545645503065047097125895308641001156968732728057534628882092894998037694276715237246907452768749411737611248907019198792964232474948371863913292204033404762728529048057020058877226359767881747157982142176417664349005485153222335130502004742660842602758111430811587735785368141365683667133917403160705650379085284322678216464359301519207099123433844476197489701363751895168498630633471243935719934533251192434024867226850967122444228095486209670642071460389235934010684400475369638649751359735833109378326001909251574431920376122937708905574543628477384533513756498116412336892295228886685199915916299617867208191837173473070068228127018606502753029833901466999574794461070267161116027871706500234454852655318046152798030135889431096643822247543977162304676463531802819964493756623711511605197875870834292146749800015297141091672570579693615487561571782358311177101359012535395568712745799720175926065461900593796089784619027221814507235879548427149913315039620305124110916504419669755825132181861783569427554061455972705352382673571102318081972085394860182205482689866360286956681834866852454461440840695218263328048760444691900826696762964549075457223692332744166491319556486439945889933877587009880543318639985540493230677615918285928743896057804640984208974055068329611397239222226979036469776787551730396664474157472658465478065963956489535819557003579716689122694699271512844864772273981174181488663319289946594706008921131898942967719657048618527686134236881500004172380028297670052779227655408485543334861688984973871867886189873232380042400963864067984351716251126972592465867872110705380153194957716494850629815798946941714282042164165586659907286198493849175480269584619642294779314981223836415385570380897890076139010323497179696325471965649122745582635413234142436435745947492979278569607763591484728012121820571237229125443324556605340748495181446769058959806952003492300124986619376210850051236442547826435733821329660966973165353542562473080902881776113373972062983643050540861940622183850244985475668721260067633974373153257838354874824409780973933614873102023904533809474159776645603137681106298921409016612327003900505022947613518859124106470656031298014608889949278623547812337075637352432127180061053085517170340536033073763018711366935321769842826017611218600635848965341436067091419977924640972114274495469891463555482864340110401472230084740058971939425556775578440399365701263770092330401772015709714022618972549024996396256689084858977504157130429271592893380146276281780424512433461156729170872181169866958713126106655810971551555696334819844224937727899849001691334065013922558374525364458711315377496428451540053640421859769093297900720083629620246732239658837413175290586626269446735210442603791931521103560615613271779583324238941011378308624546295140958171894165381882609858136255070281472074410103228385697701212667932146472801159682437711016405882920381222982282550564885020009031599084096698014250159959742561022026318361725571114913921443611018533845568286070315766448605768250919462158506950828494085301806644991207142867598986688412790646539483571531979162968219164287626912567216947228774367226907463108534195440611336084871630083220781537154815435464583702594850361674707073027584996723132809601629361233574085051675867047032285987247398086473267940394913937913084973632414139029439284576638351984218676346643018086896069214338319604221009472098439766652282254436830422205470143256511942687039719929342480639118311471596792882765901606584811613722944199433263769016822243435592607990882034002343509905859139297715760494727077028309575842707091369770437135759020267227121355344973304305067410370544077345958430922769374840395638204885926470438636211199354225500002561144970850527050091628929604984739830597708931412041983770187000638580784426177361278758099551595038466620748481572501821235408254337982027525680745741779553025894681945776460653749932699328882053951518474085147443635682109242501710525863495345791590287152212995365959158076973734068649381356148346862593974252934937239229911260953527890147415209461916937523396079180058881837850668857882217408930223767078926490559017835733029049861047566240884046301744209164607927659240335005213697505366658033405013128071242798970006273729152590701666746437245667874325600195554242094453363343939195676804590871330983447962129663258116376546648089007112474028151564343463108144532733971543233454492686193074483735329034242902270632344509081553795123775716104927121798185353585099415538718219449427086114969262082228311054505260176469442149847969162493833508643899797943725725850349473321123642015645445958323210258673382120827201102361718132916281347693613362316300055518541699451237030874717693475306380949148828231811460148473591765019683057147047139716805417120760854152779061484081543527705471113866193551918255549673768753756559018915892076743526148852937632107873123875720648408237375303288464023488292875867457517411964259554732547129988784413376971744782895148060629750159810410965179248737254241586060709263434511221805151576805039523207983907038445590802489767512428111868311223535944953623328051564284509116382532846827690377989405609730496598216774794290605229064271154090759630490750045786694806442407914160424989736396223835534265688248924903094013532275982922676180213994468018996032067580342939794795005811235633986972790236701977628984073319861429708994553409037260576822344748869201029764887194618758629342131709327277769165187100249899666585508381133567896174811392400806920441462566538294522339155160459482487027752402656030802416084063358310499159313085394742690732347208841191820248470757329115072124544689852685531159985111793938108020977347381749339998889738565369940387595253362174823947154783480058946039366591889289962175210471630466038444412373450910382932483894560012983649341732042243216564275828626964629870549437086474634277118529382480439358216019860700621711965918325918075744936556603190574210330697537073223014044293913607299742314821862057127972408432297422253064784702228772898891720445413641683018620592669478106500157727303468399829551105996427519834420909942982394136155832653884068529837501961002674327960832267660898243739923045838193599445520364710959082518991662915931963986386099844252455919444237409807650556117505789614643591992556426759631196277837512874653796523866525681695700326964287850720184716605737922725209523210990761127024194913962807481696514943204319306489969675235237780133601715355794152722674404383547747834615417136108071971047308860237450312138900813256243172049768868022829255024334939599178274676959411554430985036164313163944257325967461417580663424492506040232202802946987375182931270655413778298861958481093502663645207509319615250820150239512810696188302083787791753142473780066613661071255613809568754909763022481825473369577744250136333465052729624195150307001629823433990910006155502494673712884321972353399452938067223419621701616343292479375744591466577156266828511079209801382360277908524908614061323820470296033614212396789169499234232171528883297993911294665253847268640531873197932267770276017871515711271319022168364169453290451952046150335534734469787141522447087707084561412083149801106667165207465553671878728737469049871627624680530857583522804191995607327665917569577300287920706287306356228290710931722541244102899656219439303393597931272982490188505998207530280581826873453626207698842883892896355177269977552708928071198383271264164981358505660929746681941433220376360160317023864540103804193375688745593512383982760565299379694631115736236765803515756436802079790980697358928950333631027509478478135700064703167653179843748938593199284467970505014658422277826960675919777431422848983462296380957522453292343592235130441203459096101274485891405058274767759110361971874811262596027245866765571472754939412055513362289169042638208357399520615723946451744498991297021106570959449855647567105391013640465590616591177906243645957393460718577711706111845170015454508099885004059315587509512061655456314620073873944332743915654082222655166711498136135073739954893391748086374196648093278171002639550259140477751934720526936117215529192894891128512312563105277097234938677089309885624797358932759808463423218516249853050362731645550860024480112879487089021875287345392941316146620881482680861416201591554912204198602598488609910010089355219860042743405731012142734029475943567269776285427772767597954067832154999870802605838132869028183862100061003376423791980019442370442063331998932146516974334576991282231826114090708986144154081991473747433681644982432526608166696697336196953321277769129772635798430150971081585627795241014031219725399500985483700699157263817493342319841708678485963309129366977383562887078408002392235782310361229231334313870871375607264795530687856767876140867978538841839750850468350928414471968343566924539145396972670386570317296241838979235453687070629105358409586252881729281692471046395913765433977510330386186905416278540679671885645231462534683464300203066362430077280418391505048399774639065235270047668220337015691585237701399054126383476484663841179107634163945096265761345248340913898753793488871084408225150247944719876888399200357379260736576854930155343026843848388931402721966820387276849040650786414983954838623991443271003548414285714663675814108685756849749642492058856984374594686574480184934228027958235637756438826823262418776221622607090451984593267734773501828543606939352416589601174507376114064068959882929944645381868606647472888991909822960178929780473579124796321869153687036559529444334995425160580908304927359408810125128045910650504766496267582224133933158027094209234354824137545730590871565675676701092095054671117837732104759766979436357024999172477640990996184223422593896684699154418877209465300703443718311572870573206739875957821407940736334236084963832333591790227712682630327694877532004680184757705394343007951196667752439615916630827808395905383229511272338207550744153078897776286771662518810911875351973300986377174786188154764116022239030319559678981537333332582983600451889734131385796009297774588061424010459150147820679739436362919935582276023675103478275564866271218825552853178253586010351082258145026112047470924017186025646900684617317679905734901100727287689261945275883358758221947384320834578633052807557454938289523900598456827291413464323488171485846067830594826014535968762159670812495532305763781564934456525782552293824962657511707494988668765441038270533740898921040368677365604542858451695031402232363375702641796577852081754489246557099240813236655786985264535388801118891932862519259222135566768155760927630615575930662647392608983278347680214605557131593915751341973623814379449788885811963343728292321966320335780126113077010857215989820280124527014194405510821109126282616707080627427106208073756237473911790188063039151918982517186661375757275971038981146281320941182432120115782881787555919083128416589810129599397245828288503470905302829222517897243132948789737432150734138953199236450940330089444177994978550611469561529485655311222946235263060515601499246416469416535817179065975346477474751894490338863769454910133847537957012434353283214492982757320649460057035879741372847308556850024140578069949444209656454542067040671269177034205589354592147513994658656379532449893948072963453595989773250352242536697552026259661902239113744647015156377494681734403794532885953949267776387559086479724780886800681723558531314356329754317660439253838540575689974298509517127782488540660920326559828127019571356428139254066130983872519138828743230385070066019921570688871565313698645866717928365735525658627188144014431714367937481059691370932121680624247162372966171539343995336805414569867938971784889101598603095412935298746169109192523809742944551488558318499498594795902426366425548655563314934689356150341488374884631294653005659807467697736019455981528630627612626766355773597675811384216123733145970872986047138417401248888918797133273636262511311334676537629299840890377895200008539399763584744281979857678072104896345990778015426697174567542617238402203277336476397551754916653384472733685352496691562976924834362650474619882335945593854238873901364177046945395798118752712159776844251179958071694546686174982003891413675742529519923536302864099584773808066759416971558083354262399667913719181197456509501421574144502465594282308668548345475504175328090492439697577338340692003659626982380632105842116831153608063960003029834869862501418951961597709853098934159069182644746212429836075434644624346418375891269938235380143849573643323589088034003650356294509895717318211938753606040337502573311825257046693447027575665724602024343580517617980430500157661220685910711916447836787755287555765149553864629003147784335242018223228186288983604995567100947130736251175046568288749334511080043705700857207322750831967368410921087264603086269870121760440904028069794911183964366052184314923073516315889044454805679783225559628577325030639073862370333133937948649073559546851796504296661825531052645982451735375632502837394355101805927205309010514290924335273127869001515130558740539553595264903028131275892668785026838027753980878419695424447075982652771476368013445122704646965861601405000598135542660045553041256453856489931603128055964697097277176477513623793186953564285143044563012761042826494036797480293301901344399860928405868810026888328778606907005752229163788459542951127123641629041724925928703351812177724572063474441407104579870116834865389408608793464288581405323722052203338827824916065507514284988950267304733868941466577151917067007154628493341305459532617825762474557786052890705568120939213636020794840019045348227175019919985035172181982915553739405244748816084011428682985421981541739946151944675665399110862570266172891572116167086128078644225968780654055240840769809262297989089743886487188124121528586210714417131468273941512454023152718464160210458750969483759431807362021929374001190274750271765673435942473670661803986776730560640185899053575123002306608370871168691475791336384086232538434926718606613904668433787965167900709509607700445453556313624051358161617384399700872078005727973747669733000195181571665144821563406218186569555695230599732096135279604360849164645440098534029608616745334380968998239436938249495509471695416706412839424517141260191624738270866976931180696097101557258147853194625746145350397626055465125435021452414343298249241381217713203403237186715206273592816337441031547104639631117708345350154482594576086659775717391457660958775366724984051724570082595821245485219616437893131098824817003842233206328850043254208492159442373470693012469333391888763956241425406832442961396568624031641284030587825646523428183365665189585503699094325953094250608082468414255314370373906651098967653980873587499377033458953019495195170217522645207320360275463941311371161162228990045708028475403614063814770890413618963981467936090582948205418580676537456845215201141451358474004249171418349791085267557869236460840510296405685471629114796051660512986011642189235847067744783697916343692203021988896384901524172648351087367313458395344215022462615533663361483478643233561380530074966762084287575307448476761221295204640268425615740219898496340903610921847604312888296926638081824774162432149180517457605165276714859567236058544814854402132907532311933789705421376692598941462443758062516153217997346963717964554733535492490014056074366310647417667998572569863025283994443463799305182425984125798358649590627890695365185495918160282523112964886245466247414987802348961990493472819666583071475772532015868355470778367282575623992435546393774544779733829602922395391013639248424579908952046563980451217891118683684611173674956595237321588319222476966429594969400736850502840377689062658085002467172958976399152885528712794692079212206720132052809396452263227086822123147580066031785861841069345045525790977739566180123341874179413622157860500783390345912525245404857543632770893637348137625065838802048457015329172877536585102843043037380946458279446317034769613448682880549387474207836072091819669560779780786595574070960443029786093090797207307496070108155868501594809753435305272934116171483174733966100517521700230147990108690345229770487759840572862989418102152969007455565972433483618503777150550860330111505317616416961877236613812722787109865173452038573787302166127222580623945634238951182710638999382819394680890891714268678748870323697423698254355888832460845820284023483626235883643493266480175590460342821517219563963495304300848416621782715144945954090117944885259504947265569119457920367936540376113867493761913528838976548861213181153030471606196867043644288434988225523312968750291635458654268660889460469293705964951284489740485678003585270403993562604898282215255571996993525794545261740743270859891130014290671400225943274690218982995179553442748718111642117429343466185812595775017541353411801559140012523994839390176617521611923006320392693503074408005564853217364811681583302031705897646782329202381824767644909239971574846690066268487079269797454361050266597917187256545818722599567184718953968963563982739116945400828677220839735648520196059606726455519342925230681863759467716574716398510375801026645131490589465320117025939029809267215532618811216870595841647293227196915373233155149878813034739889489625427170463108520020308934976074748096952314381448595233628759639315703476429000525190908752531657407924492946317614112816050060433236781492170244718104090002523572907450940087541909448501323427737790282037687775988388910224289465863071885783632584011400402958201515727775055220497671741806522968128144535963077468399197436150775560849014830488152662261688754968034628330406849672488458314489610898411164185347246790495429842336879295028505356227380869303629064349610638902734239816444371298967524622134998071790983253853751824514318229817014980471474405208206771734829307574244607177847252459461857489049305096509795390542253069212360701703837910857146983022577248525173845914560791055885370470662930526861151496257016777566050987152218931199319086080409589327271465200315991180436374064955449852221163110792402530841208587432750830257360467355905024287620096058217825407072535881942427482290612611565067099069000096462286669193502613356980448499030606977087917964203449470664734358313049859323970595890765212059389769761799954609902557501292529505175646332819377848179827289216268839791503902841548928484050101832934301693930859769188207609832728889211355169823445644473332530729623985792356457676844465574078818475328003206204091248503790790336969679985756985481175481183866884928262489337313463656209623643601760475628848255746879835231668920327581208311926727387077628308791944164060207462803182215764029456583397476087986917525550317049629196191712150721245277331363754728630499003750245934859600321151449928406621582574367422744755010639122242188903912068857149902812503322293010196259879383127482079514574663690869011102131053057387506102876258248047297829759703788665270217441124608373700727640915037133336149717400905160213542870186599060553712590929896988757268780006791586909108457407802739901018725834025027067523492790845564584723383879369483932121937056631027358110963094423462935733587439546101715097484176032594835362175167124900482878786934431786340777895613431476530447271015873083591865442275335060945004542709438295952345006179508154991222606770536954034708723167037735800385888201853606077407859203091001307366861533205143094832971286108366025245559269732660010329761411191743742767827897475103029546503081040604842126629274922587131958043783255838142797282061046716445453966782750663376119561547180811410663728904450860711216506603398923855553767532053879934685050349218586536215611625607737850783368139484509250569703460543116890143456562307724317804512844149902118799309048288989666196447742952614868975745732046817013139309051170561296813362465657670327529978842563672610468451395578761745542614079499278851594193234557306458553637676662779045651946875235905070702902642359376892174112583357143985547271796933471669904524573857657346363234020958011223544764441723301996887594841115885919388026520824126254157759239535571390099406192578857624383439670825359850867717452030647712597168716292719811087226407167316203119950574953533507855790580552280567687094003588621450841939451102129664180301025071900414351802625839184169633428710839244701121728427303277470134379841173301244691377597488172808378086328358480604109242208657677287522099632400804299449293049868849898458249983713858916691314115948053797704200159706893471118315733890104746479878081565219264411241753662668216817707694323814663364194867908638258471341439078678526625420255079875005983442086433532034033854071697004858954238194164632023644992186969351976251487589536447516344494064161989416711341044350148248437987463916000978580071488654135135723460466234792972728314241559208002510346789545427521942413257040263069769465401613548546879857144294868030391018441086389041448112375443712853308239937328366819623130295691856958566274113770338858536646227471931672503361104073315657007652071242407975699950151716821900645117887028746352292980881877100729033972992256642113056013757759771901399412363267280845389400319096154214993192613364112255536011836627327838526740198754781876353935733949284710295825287103809975654397325671294875582247836268074527390349037453906581151941957264558587882696188599474918395265496354475713650412286059311783277470431717021755542733811316446122057779146073657791463076230156987779427994708000666933390808663128520372580428713945527569344186438283216307542493576743406689842924817540762456348435859978947995073584089721127260109801859131872698582043602154493537342282099832151279967547715108672556888219897690679432319918500345646597546894209085865186885415650053017704347774479438672703930952508071748114388066769440408803370027622892294039495464568694673656276512157444272755618547272970923160771008330327612046440019501088255436661183840175064330798789601849572564092270264536383848782826443778467646788945218613735355436563776064766781708984505435511469123142741416483679764597496100751751595807391647993195111269366016485848293907331879739169087881956186743588313735155390613140986275515212954448771045808977219105827633989474849102783391699522543776814394074186682375671244233235148234658676499645194524763308705364406871414568326066397694548019309437100867957512398911906085980795618977028617046714020263900407552116967903967972007171335597714677918457136111494079667124629229993314776342165412277835748258627534990067921119780603078857495469732841964644872481549238845041687488440326562774709529606774811952785925148107028490709150186522875342941836314061123708587326294024339098198386808979186012746208189395020988748831959202092020419914311024328861840438672146984472180588274776118855314334547759499157081121547243048811098267530850187927122360672654247225549511677834995137607049303136759892216457674176156088948829950931142765681879504457390726038660155812138169555771358420435493478953642023389746495492766853536201317528657055058809440977166826187785035656932488370061916868813257698988921537701642941547703528005611948422472985187487774953546599864731283766810231684783864208035715066104376080275900992417626841020731910411686475234925060364563867772961804953661056181453874745364735629557600768283850026539033822042359255398293284193944942050008998872489180621128704903913002948556514749543445752448228715834065454230746784942749309634700151432631241612982110976577978086462089636434720880591553642322648312645150216051965026584720667061301204933869699220607212055074846983132504456790361979375114510561099405972270610245531643418423159313539053072773643156367264580132267637726686186334792960994124327001774495398230432040025449854464125821814920560149218878884850042818418295383774717036791912893763087010427207210527934076159095560569028788415435937041294487067737642712638215283791146308614599688138515495896934947775300910908956450628879874949987918977330055395549969672231130329962237357438567780028847289642133583266974725834606152803712627432217243252933925759249244741154505859760314253954019027327179534824534471181832675337725688313193570020831617831857934695550625098741480850738372620144835846400353369127055621195890629893555627791783990885764956240379714308839097111026422589746293176689672234040127892499944003014646792202038304216198807717346647351646810982056584456771849874997429162956952777441709563128459610269014542233395364432479089882752945116320992753074993793818983147567944412459596372625788487798245921701280055758027161475792168773028767724142783904590739127392942678843857719239680522994034053347073573334518367251554265826396199993098367307950372448686461149373049576129415707070662032891811072389155275383366638170804303305567072752616774194630606087015556574452308746558396124050301480579106145816309013148988618821079382747513047641248682780160190849678442189011101839255967801588844050853939768387360141912309606008688848409587590939798875457125098902772115401440192622172796546564989599214375691142902020411115792487312650807559597284727869968278916268278694911524767458519228110865267700981927943533791355350051468985793823713882735357271717893830142216485717141029006997282353232884846219281128940817079740244219054436930380174929970320843401108733211145368423599993209089515669085964915227766722963969422424234188318035210991164028064348473544379832000036280819097685584925611752392977416582041844810908951268364708462474117396127148810193294558673819432508612653588373685599202590781539608212879073060653335449059883474701016808696373177373258291394020149923292096927067831675968147669667520807748268071111678492935846198418626172110925322160685253881591855988062776872164381835160495538527936421090313103607816243891471254331653700492954357313119180428419650321615780904252013312485605320360859144817671705497669073927648951405521520609254132916570249181716644372036661368578767332511082859038192154476652862252463592191750130342843933195491229727926976395317486223207878920268445083520412496126094785976476405051344616457799579741920939413873112767240579405410462075597015741827181915656118320966587774081467691697748376641838608175254785968515246948077528179062939927065252312930894866450147904547107615155399799638954573549956164209646047474598537724051945204244695155110576014942214459850785628980052001501442172360303944283424448708887381117569548458688101588473050820293605143013701045069902681581989459515045374857234879807161323689988928620499341347784459648262388689344956413068869396801624022569609725905836903591447830464096918458265475815349450077651607581956641240074336117286666057806409790685068438390865501366034171566121774136535246662924038527316315842924751071820737619974257005266362873424852769709124146326043911646825719384474976527412791288332764753400458797875672197285080251587765490565589220471496205252104012016698764453817493876153962176209981866956434937752040786704550275749542082834382652727990664040463085556015793541580183887088771405230057777479101336075834637081603741403358166217105237795477803108287893113898944795861169392281377248209766223153741655518707243003784468387344461018587649662483023535529068562088936705012914503374712977082985920552405187831056216521322461228800347547325593257117509161765941664823949729133523705438862724084837055281700296298090586508047949546245822401357141584900673308445738818119674451429115214342793926996556225719864391960677530383746866722217035568908425034832947667841503678368198974756263607605617395949590453787288708801196541878924765307820255412342152755546537527848511642193002104006960154442855007174370354007033593565053986517857070065820998041957449512358764478124861041475565904500553778745425732766313738825020172648969616129101048127932637456731347387116638770998454206702700296011172263762727267452101811865591052586145338819701289911963847350290174000706806314623013080539754577602872474099097506917882619283197164721284958737918035495590854500617988132119821142982583753056350978991235940544860179024862607671948351844234905871907533729443395924091853528029572010383942096233427756208747723170117527568724101224530281538795845096348579839104519213186349569030391256411390596412540194362929494919213530717153448409684207106422822898118640267635071607969350470210023187810985613567910659306600789776255319789825006631515629833544391644492580570078010616280321022019570475798656581168093324230005606648967369487624261724101199075962069434685940406164109057115534545376809232712872353999074435919539839737211013349491656927142993028020314774560505446618457532305901707861564430381970179149567653940459435606066050701739389313213462585038107319503867448355601949182280516773057685026884325495890895608141995075256518935540226366100848161462038654464771071218795163069833620214074612432738560733007417290853413714676466208233265300757784578012755078726278301618250870084281877453320787977894296485859758192842049964829620427354073385310054699395412546194734721703995270227035779385851296836644067889837465656361354447806668384669765176614999618543989623502371767110274089091939958314514687236128713849724206908095044223678551028762868042518816358402616298518072115283322375809709057453569178401938160024396543257825045445196940348840924340857899982771915123030947380554030823155608186071615834339556172810637331106060152649641481568404319462356043630174317509207713049088685604727385517309538084750144865176049756773607833154472292534335963845630215217104987385925310203978958143336638415592992550894460278070179622745210555067119131632626527993669635989238300609698160016708813443002039117719163070163778003830037112641824146014987041714805662603384977517560384954919157914179295368495970628632971745221494526436400040116851275873879434866688375722889961342993866402364058944824529124282016580047816694184780636604784838176185651558401746037289782158565908314893065117791985723171647647241893043153199908815499713774207210118331968619684944051847134805103762448875818172772334427215708740008524939194933981030831999522885426263085181455141049674896425768172031457741976055401166514371933763721881865065248544503999376609226777707479399801422580866214987191247013874698956765809816342407951357037334868399460740014838188091091227850498742256394710285890361789248694551999049171162317092974081951721636250623714208252611907131791876380037382099894155167362903105494029053725379895773700088178658870490439209102611278111129355194227781921470074363737351900832947336873223965494763299282753183518126240071189203456588554680950302630425192198797773744326372609289111090052198687553722810530557641476148246398586371897727977619373087670426497044115114128900621261138853060373672295958161170213950300741417661128483328860167367167320358804701580247848646398079995767647079233106445662603373073615899226178752674260135360072952785114473129927914524506233402909639717592321979580111914669928396066090546200798237452122450360169104115632219532972695445551518284094539550786740409371853236603877962805143126766274036439823983188176059785281346639469560555811845893980705011357516820680694894385529135088285447348281517609715423859522132730861322041292330776565586927909570047843039556819940159642233595945502281056543779954708624485590800370695015608019307214648972673163938925538159958617022059139730270900638588414953461627642604428373891251918478198500254982630358510063410344376334073346990312703558308011243548158661164679904704099547923812878971867801098152049788060504766682036629672509369396073136693374720367243003189666204997506525201754713578657346438364676379268501958461510696765363902447489954321997231906116932962287789461226566830643518956163899574507722109451279918853244493764877890405442242334709795872652176937776370796040732789702455829538696164126324657549210448122380893363807649499671963486155406090914159497678087746191227708286844605325727180192324631999466767892603035979578118279000471394092171939987407600099970695816344792336051061664600778755939545785813561911797348472427564395444690018537030388994721998308058834058367204730105933716458537773337382618819978607406745090629225548899083443584470718683462839079294708011696863948511850811643813460281234771266500937086434980810611925116998390691124112788492250107404670010024987554980352405636737156440483483522461021967504033422680901960919183676975391844888981030769313603684649075185192089980796748495206425281503988219929450163122444192907905821755002124641564387801147363534860323181769769925688623422436511614137835848603457291845645973101458014423391034366190912117514143224004338147146495702803681747815733992552787675813633597536055953938401768676743047462011227916421387901627178293633202573540649829431595005547141144066372802259064990772972153184835396210592075094818702230994825467297018483782461121232263919435007317776200669540599603740376544106287192417866624208821464827827943811361974467588435956400543384035329212785957488140007374970832504832785755627877386652839778888430937242195945555354368165329371988636343681790751801961273509345804109446551725884968026121015346697273811614985607135933184212517820869764413662803131959266299800800499938017991534491839141860014917652009555057429439030632354051291327228528953318386128009002420185920683012455768851599860366708821440361799497576930101581684048963695057071941618192298699854618110664316242154343885744834338880719947667423092554142522046461326333021925412332655422517900396237001187722488012189973986745402327831011155813888762532752346656497928456091175839397247695692295816479170577534606301700752743140171314093470826207580556365138365779777856686672314338997158540512838175395172886726792433519324279446404274845572204271370383384282433585631425510375691018147458356414678953450868562901848676091677061998800659230534436395717282508884259966392897124775740130935543924733240791820455538176637235332220935125401324815902989026429742592787894547500654994692121246662066260821434932002080552240572239843830449363282819228454889328958740225793208207774992126360859118902964660983895888100292388204924622971332292970377519931361009803526705244868532263744780463843256463010008144862912199457156447900994460842936828479652744612765333244881103324202517473862223449069723675537880339959666403072143753602331036965733231523772298744269056689617796282321898718909625100096673816079948561699112561646645110175597163799499487451735865867708404716844747708499097699794470710722164628013946275459233625336185844576023868690373404023429979586621889714158804575375650785042610212069743697096921440941134689942630874378569318126994043871459489599835002482339043529602141043479871030683534297708298332077518071528480882833701459951573669234089522074675311090200040877667734520830410725541593900525760346091208140284177420377130700842437158672936059348066492560890600621400735246220346694340437762973714172956577384435940054753577833647871738588319957253806398099602645405327205628731511229781571608629573746845665423600829004305765331541271689897462285133851076706642751110612635113161609242434665697007093299521780947571129105148114698468163620994912119157375909346546661760859252499642964904995300849587607819636004710267394007407320843624420034614494703242395176785324245348099377528028052592404865762846714121867299740770308393074261740145003221049726207151701671849128134389819559697665219201908137000367278208254808444077054889497735290074093964115215928130985243276068247595225330802824831409114550349648055883363143637880869268509840227543561095303877707012120002898032517901049232507788502590832634143548516877220099829477199602305243885580448738331603586172269203006710187874260694178604070699902507500493233626929932140946580996465314285894029505075993837424671389269904330889696893171221522509329615283223140401522472006962251931218769483286742002917366443568066358210533280417672615156230212428885543250193477471628043834193928479334861222057352401287750089411533192309765082818111896355024958467106845292644845557427712134742858861286553169290497678456625964182472669277834400266072794741444083706645758512376709200048312194034837292085600229027797730864854147461858811157024028731490423374710220512254210599660703538395064823345926097124425018477808097717267392473194016550396078670123047395765332806585083484125260088946584673119157291745742241779493354979891900782062130861080386551622375812464835540650724329292911545092667131859296769309032438050050470579802957471634654618685966633481647375637582530295286292373436789494660108835291361314666383280711983717491455000642982081727450617511533164317850686055995804144705051451344346613543491323777336900047757585040469935495286508212310688552096189971243934341116809879539624817085293385576090027022794974124179740475717835891513010194831142088683249433148178023376509533242995528594436834355197273185178049465583509919430937022568193180246844883186770873093472780380591552502312040642236094709885301607583705436778374146441160534217600459326489012510109436888394937501080782355178495090823589954072647462043742888105083964558842665486927650484032831218209192252549114726640636220307934550660398838572486005108528078987509229541520536859292619877916892215922052205519853201479261471085918843186865741159637899311216099897611097963356544490273435909832894786788397496610903105796567898848146337793780972063390584010251514800188040123088613129755420721536964927058014552750216146780869136607498122516216343548510063344349103534205339346945249747695508626569362762126109157268918512773037638397957159366930679492986483866338445448631276085510051818945811041464708454015362914582274572901534105798816935405528318673603825088352304739202146070349331910672726512771799141383722670503004288951549134802923632392882422079577308657735443007871499407960630325769589926239205966013855541803419669893243670285104942836217902424447773819256545997264421416458801833242657385618786789598523634784235368090599271199955978540144835966062156329516389073004275682540019235888320300191134975232861300651097876929455311396689555834764370807033156924647705668317087358183948045388753075171478337119507687976407728846486649791823184502315381055175873407189625387985376214371724368207104688142052492393655087044891355416556266667131541921763666664454613419706588440480395862840116136033685481345505093590314165725257605525869878703051193190755363634544025154523395823365871603816085282185007141035499360846627840750612368387644621458919217791425930064973124185463655995675129585020308227841032613715113519839061241596463339823900878973879933716728872035678948696127846918029884000770240461416843570964611623794845800243691534462319297027637045810546686186489200648185788447046137629428206142107034803630844111678006148150239136901396657580309396590441591251209695297358127309790325832927479399692824383149206259029330928601033239174038383427457113513984577478320244883860219680767163316534986730347454013999215982211167111512544258537609167343276999040058449743475905564206307694693472835650649910777679589265079832348108401822448911707496651040618759184748576972103674326815148420195697220747344822087928699608362935876316538904783900487427479351515284197270786143219658284170693904968157725682805012202075109236346551769315157232381050180225855175182478223413643178816520685066139422626534469728935978057557926078321667388980661251923880001695343252262005288995610861328799507595735547495524742430832870191803056477082736701434453937593763155017509351851587985050694639052319582925230975140740525459563140074366313653185988575773788784190261411868954456504216033706478625262724708543417597795006926490269511202750263095436740580164721315926794537943694975261018446608580007831271913160212350913829704258702336416046448461284709186343151986536546609026761822474718012253559968132352238667955973692580689597530371264802448204581370182034328690863716598337757108583301036874346577411062181431765563396210063858316746748091887170773765355898662202949987382744425547924116346546794060365024746024561895259093499667359512271273205240111113918523027067614277230922294728810133192963339978185503182934432632206469801012951704557043006325015625043150836576283267412300204950639717367841889100514252530524968862567387384777966286621649736240288369309617354373373136677583583570179447145747081249069802297768156882572257089498908991206605540252060801322450482512081375674376619867964264129860594311283000540888188123313347297473121267444431186759432091066818417810265573353262138773747375534578279041511593132185182858877744177229662046913866020934969425605364506621333173259619876825885942987942670938011410541539939189608363619248741879169306463578448072156583993120379401183244802015567141428598637278598469707404755436182348158796011413662352454806720345614756939780122895658521622561696712983690085390043834510362995911887655548585010382420007282573831915399075270712724127201395819955356637355128909069762510703048920279452591556500485530466782494374123417108451112727160221094193145540157999752575970623571196509207796535145582849694641247127262752026385688988076835163458821474438221218629646612627082674226350571950473923863507541211664830262009712767100489826716132451910352783620701285444467011130523252269301508703063384519741892706340692454588091376803729575334680677935046864787458770737621925305287481361985113857578454292910766542928340713435022508828188929152445277839874721900813143807204302072454679317587784666266568465288615076884031223212187332960724426849433913948234400487947318100156723452617702576708867907794884357597613518177223303246999116657596635615488804049732012975600952659882349602233294960423551178727855292408028587766780633702288000221810335470733819373826226757192925933563709540615727780572441483111640428020011737810453773569712267028220634931269054549816718499502811568901079688029001125658917905559234547229213785287232821812125034518205954809677227766071310177860343882957331820642358723699341009810617234963824686830091332565344923468406806939017473532015044406113834755190428877540607758191617811541300399257403786443591301907846113155981228743338330985378397280207272868923202989439733948198177571392474916946466667896123429109370338793251233773971388025498350706646550164356596853145826507561070572470299837409048601724376419814227043148037384529368743600536391267265076156807813142004122411959494039297701634281240787208085216663064592305670320709816172252902696023063081292602279781774357161381029192980622509729023421402721191693803271329832008372850667961628159235828668657609990441599158720394183682247309036694969071774570121777144672683511194579923576437894693565354208606297301046730719822766077439302309468861548281095152021597052550236156478355794196881755560913857785219222596477699410230570038366747623550697882318965569824146502867863189211312240606180938604883264517308401695014208215732606429222886911152502549936021800510419326096907384748832391402415585332601152850704306609322444248252414417460744488445341855282414037622464301160849294866458299855205426715174054544202062807034332941069337272642970668910815358484014909456938246216847992970706873787740628928325451342260408837187219903835552674722094123126765963381557250244846112695927469752381449321640444689895162240069283709586273806888336291637240041875958645520463746275695830507984538153471523066411007256923629349276393671091313512704030545769699668455358471455918192837712462583521412445812027496607847718105699457043360508168509589453746307951839500347172519484435994948544685268129735901906906535989033569560310064479682631204573191011544496555112268417325152277386303081359758217229059766137627641766163476909125070161999553759643211557534396621688271084036751192999600088624632199987541809436005308741339626929982076296680154880905235587186807616985560604341753925240496799964651760002692691655169875265250677395085130408053884450609260109643688108942026856159073899850990825015494639182209700648455366366899685892286382159711076717976789750115428087230391288788699618678930719828675499197432627093410002685103259296326881852414895791244327648721801452982185749771429294366689378364382229658591114179405184942073570645283259884591225939492744455714667765151145692903139525375804633758579641581163621872276615189824122053513224224882561677424596765412540331784498838411137607350077200856972776264873652783389163614249642106308834930890332084877942864404972226828618599466893437948513348559058282069646123946497574122362831397733819087455803316751727223866473603363229422165312776358477306315342973727749231497394273391681398751716501781032613174550637765770978869597675742214937163528845687419756069536003933733202065164936970814922958343311631037274090986625747050514702272309629622876768936937738712390204651672955925396375704229682701372159784961803623480433790639703585582422108823529872394968853577050451828950991937634747320351938281114420925467393367822925849653220080015263180291408646888248451312773062679808155954764828504172711392640315538504058354882187206324982256830837811447496727888333200287176700343696901126333771406814924856099222370955185473844571790541768739279171785165931986828875641818677687684101914918079399611289070751588545524699476508217675677211646636427681998522410096521305046508340727574484966197616146084059060741022144497622366799448483777754612007723490483468047995536374920022287112718513560661682291232392180055827814185815990440624052625463677109244383173398476328514706535000797831849158240117595659005350270640384087071233412549043005892552683369109471018856806309748638940766073009576591462156505019760734488992170674595990100871084361834433277876536825877230822334434543292752645035082751036885278769677924752905435163484717783060043423068025104169270984042942326154928313761218792561598055496179934882234043222837656531886125750264078045152954197194195477977406155462426767143364705108681554032166445251623107122601230893710475506825086032404639086714436907732441343984928414678828471479332996215272656768340104003538027202527541843522537228344897065811560857105993366677451985660472200841601908600007880595268182669131384173418199055901058235929020135405146103729259840892444057996292612098298196317512145353321039055651854357550155063302303939832174241638876581418283754957382481357953537641564860019910209763533920754849348388692816112409042860516889724156259375795831898950072924596046798855441909311233298527184462335677735993334804074703720532803470697637002715728202307305769614148719664204255727504919503663230046513954181407251089307094439783121107332766875928037765071725136087557193764856367448558888257887661339184493021191882292709019500146842343636992753199546115671386857045074414321633904078029992349058144656520449623351543572010554182060440262989131818118356521480138655484650393917442276899832095994734532614851533809088184406737269357842931940850818005411125012034574453033313973804469488527709899805696000519141141422794776296903922415244615981368125575139849403015890891283903969068237159676228265437559056160300204572745615279459651918250071334871565451017527723448508700166716220881347145595773312518768056485291054073928022211200328627810564024398003807019056977396529787790988003162006689840372155196243342979928100956086160201491088191150979379290036944991206217653774823719553245806361501300980865044242529347835698514942884633840196508628261926818181331453522710221617868856397961804255727094019690419527822189723711576046001639909088872571825104688428346189131812029696413348931760054804610495092798975176311147402264219675764519848872453240032533025182483077491232525668847561695423934889778461915757944227708558205785410061634879826139855509192493376344196938647024154343282328276845684142699438372354025409393730738046343438282071965531403267158470169414833139149967410908125309984316312073108505016906329319101821105395585567039824196291695207657199927230717637308136423894014823262654705509038419616639574583687476267352525581199071918362373584368718343059092217995449969222330034287082269330565446768367767558779608375718328106825559568543168045747689684479201244439748747005737572457408749217827564247332585933827183601185506372711682381424624589045907602969214280818057785601886552690999279221547127089592401794765078445144146455171727245484769416076624783260657354138944619885837567498476780536983929576326602264723992041365216237363614666403231551854151548111858108443398551504367348070980163062524751019715046695459749141410113086616816368604210338807456519949324586116048711164862799838024812539418990136377273111338342667785325923245333448537596647162083385374122635553089374439019515415756799424532380334083072168419947899681242688846165970608333973371771443649867987671879725126150631972885540631915126103864962031374005154413457210449044670519451569227393667324976857391603105431148168922251592576687809534620488181913512012841625814721027809659799919441603443841823262314480816732189123799465974694473719947344754614472906985885420101625230641968059723722842337324511406540283755263039707842698045973210194934570025250559594698145422107028369067651113380082719704304519247809251178562729103526279169742580684026273075841902146284409178984425616298673909100537002978855069858231909288554409934577175078784925479171378543226314655666153587021169160431720984265232313966065488930853830196834019241368671420697276336719758147787236143301726125552055830024756665571711557695597207311136616476492124100074325367211171819026986473496581301013671137322293076821469823309586260175527216725842477594432158344832516677179538137449644406567381383266457517449057480046505684021118589827064600254984222932072749822069747698062260826601109618485569352118066229299403801572610103842829608898746065630467985022929902092919324617716061603848014225088691237342485864417312671847466345121490808553212758118947482517859401758447229142593819966479033908751036666615416468654700720220225459753480984235013648485749478855474592133750963767821654279141354746700628127674422229911882799813572690737854690911015568104297173057788424763853740267974152370946246394346051216392451482105079760326859866094008732341564235356676663753122763480101077045489051032405795659667413083115792797480966954347260724741069201533920909334582777447339616500935752471124170750635032088677174121934951466676387126373728461160408770630158376001115336492121902033180685003246663792217379792680466363761955836204719574558817255112000804199114613633955520113003942391597535667411367022325519019341764557314694822022252295483332977455605137307742517709774446598076075945466065931031273487155532643890833837027738220743145689445864371754121066049337745424904700149039594657459437712378972800584293962105526750395663214923767298140663500612023607935950725002611882298817024409323060665400972298243353765243779941591851493390417225014699742533537805043621410935772354900881869073902695140166972148362616723323851117638972737557228116899199803995729374603221728192845340933258441169630406238300354268874290211824298564512457952073479846273461951045524256137362994330149839372911108705299695191835336505348442428480463104765220834208593651730965844961302858336548195435981867562202941613843211632576859825629672018289067811241868687845973133871404187297007119198677012931062930969498993548139218759288048398451387407586430276561571473351835440735062553123436649600531091488130323844626520435136290262659333068120511588851043585699456499388695707061119235727571102941969289941876554368842569280638614351303106384443343133961969797335615232426664170663902403623655935749442510383568249385430663695656283813497578319090242770499094451411112412302060434223288925974914382315759079844235177845411287242594935333309857109787553868398175482521217518103082181765051555634524299484539045775626744657855175914891622511780705328811704597405975986458300800561032233253843007509811343101204508331904228654685877994401229656165638908159592239403439222600101972217657362171163599025757529000338660227492594219355961294755185136993932496927866350652388267689411676389089823146190959683386123118586714957572705756863997454271130365918183847178081808417520100655662130476326752494668205997463936880649990764134258089308204090236323835178306322176172064336320110403440994091584051468783262604775680407126154842603468338802680940447930891937342390363864402549244811573907631680266467996790175567187064136332402887050874571658713959164292536144025978402908713437744417589566558113073762968893475271737113137790003100827293871224879869141242800845027251225463527219920187624235080278447967843370236807361439928590481111125419311013509593127276611248889546891945355636218793299748845867834814486269804703990091628952883689113746167315617024100451577570016037783703395725392613540532501146574192248012182431698530353639459885750411326222400541097051949162925743792819168762049267568477748603451383969467990943530558615004279444831120630905934432470009375367100560449265560347274778079078363950451876244839269798731353528434846388813323043979277480220152961923554860004734273095078678062530767364333228241961324270565577945226606569501618926256269482380056950336491504711624285796896829089690583637582782838928955203632239309604204622878106376581117827427625323405055645853432873936828810555823020155443402566605611991608331245276376749383219523349563178625842213416657482628877447179338703290836250399594515911132550505060040551933106785402214013928930774710317833410559482918371307692456979522064140227958467058688577578468725289470075085185004530687570783974666384507360195357370737853567003625855820667372433386238350663573235272550298747371571049578276193935635016759283674230853838573512761288261732009487808731297810994013720875321879621767507234310420409830054307545430893475609999670530062600893958753980300478168171271950939341910683317924294515954385112109091722673218321181622795705954478225361268295095486221723123631665072572186345317410723976503826472612065862723390028195090885740960057687874591353731461515897681028944673460860109973678031561291557189237969413783512316274075169456949086805441787597920036554692634446181773732271670034442667760460949248120587970646584973528807924153156393243441257891779357259017863758256938063425044305458827958137410756022875844478109654276517670622237069724197918021522914548339562562284607838662926681060526376677358438248733782586428850121233292472070960759606827560580289356980680090424779414480522461408019298274453591426130067315399742203980804453750119539726194484844951991140281906600326280269709544871657792318799155265031123235536396866845302430159619734922623522743230536042233756064177773162385607180504055918235089414216126043893732003497532633969317683963974083408761489660534676500201801809501790152475738159051446684042332046251958596479602895315590775472041875168042210488273979524827374967425882212290841842673273540506297473956251860978458070132276611517332515928012500661030784565522793390661195546769846706931144543416538587299991177255340758362673072059819231864158196833440775617358760115854106288590251485970663025662727818819343204435440594264174728744463849708875389243654826954256770519550050304857396719259369183132249952382903951907875007477419288341283393151436054565549927400340005147528601176491368819754058351813010642819185427723979888911556544206132952148340397465595374693176797126059326227357889369439528140371554981256229183602897098844835199959092724761429273847611342739427076465965860996751230503243760925283745354475985587192797451354560409284463123838891929763872245094869466433164585861170878840725956634464887728389814480697593346348920920847479336641147691694830437595998302984485104669711676118031575670430748683191350151086626814811080662676444881876373411910463014864339513331694386486719125305119771222260512927206628882836514602219447081969546319782481806230642959193438031910707567289113034166693906837665143733400982917691778335023511377237807008013449375124805050073219738123851625063208104966695365173928688581397749077190782452979419561688697223167521045066713791920865389367499863148664101700444576299589453219559866395809179418510560086861372835205544642033275428459604284332904254398613235909889616104911040370538129550774681638755768131629919025081570271907649077578436021697722790417283215248311154673779867534863300970984071885291772936383789686704544938022017157424305990922776633024297441704500745899447515007657427829025938963776349353159478320022542432672518423005068820208254972129214056337255815811271047415701853893178293987877127982748865671504632246643855553484887868766413556127610485824205891865197234353363957236099480816817397403119030930451000439618069123447708555149247296678508952198610901655248983577004961920373861655837363132652345982453199510591605837900039799695177706979524695229836760743149900854856414332722003498903384042853124211234021004981624291858924222434957536080826030676240154695788064729619266845275111600959053785483163671245484867788201725205463985586500358235002021508516423663500787760715198561452562649515910555074772785379815406327168195111754102288929837822254533675665190251216823016918198394259899975941176958752150927946376619633608719250944468590221362185710407220499663863587129905305552702841046772620212744667454521545772370823644453357064522514975678705171948005008025678246078181854875838922588816417620490361129043128167483207669348522857760679348464586576690952066100878790643016816753391621152056810844678941591233741463682113883375773261402746246664515098921044063818083056080401370100890741719376629584442169122790893283198267723332127920076809166102683872384324544206867975603948267365820673451550426763088181585580393191617327544295576436516201516644668557593725940971151878369217329993841578827660226709252914746182341866367219311226984236086854520418831280199780334878756588271058702370961302747991323482258137696121704622742249610167337547880106340855148662286995691527162633501789803398273644877428231538148290013432567888322876071651101159587187145010578347629752887433927458182768600045277571772478802098965643852942388173879991874712975874116541332391556510890877525768628661680719210903432650301463542749204474931246520147323197577036120450117479398628215253549720267179089505195085909795621538912180564878996785730688499639032778132294015207305052020960765468832525175264101355065145029802134353365875559161683674942894412148048659982256111987972086693021284995016647952381706495642735155258468462892001418813857435106708068039340064939802782040845015597431112977796802358220439971891827408195202452301617599479708280586003288928867410624713286909469466843904201205774106699462157238511091569237592785586844939773606880019229349147175801631652547472728540411178250031540494164953211474507549665480231018551844742049336821498678673878924957514706902466239047396630200661578109357920463627713503946978434359174142643778031190219547522692089547968878254856457071355666985023275461239882302786890131757321917167849301636501389552913159011742248960737494602029485127985592450773793569081333869747037415739655825885737413490358278143407462554235516439689046077958386649966494450747565796993514935135973200133033720811662891676509869480729440329917612907230111404658911382427272632968517609428418793980260523956540664593300789657415766970867192092945253931552743735282800482345750914485335424049182058302117366937604973842272159134835520404257616992806428547140193685561411027658280857040342325875865694650092023084983082678432727748692779550406611100435976476867865384955027225588542249861365736317396148099893608474097176495471543340623707326586975276459213374297141242070511225644949907914419244483283937913804206362380029700282062393180756192264853973949330832519708731384581198570171002491365252271986840831840478469364290251112927517669939886203438789175172675722174421453857611002834874321905243332939928094883906152940641101879375394113430317191685263553167352985363986776163506611968224723486403409681038585046067296014761310740240074265340243680379210684461534197080808812207680711064389058863421578528258228774367547014083100311384298534935282493585040362345923926688311448077546710591069406547237346587789419248732364370240202401751759704682954025507967730984443179863541346459539022765743203518843111559754635233045235505529285063631152408117678464547141327981340659274673208354528227663430595305473430938175037787231764648909649104425587969404117052776629702325695246367177584587882202846053053054661817220965509818396754440119356702782721083355606446657522809805862870333075787382108211292102103896165231228487920328037665387201958205185618250144240962836609846332252841101574173614882341460287377498491498459046298890328492560839573991405910241206845576248034590472359536883927461900635300602528684434546600578574568725002887974078126995014359696494764149318504962555216944452855745294807232433027736555745610429660883569742530736111303108238000315853873628688492109174918033905482850546278641000131694719989488942095308644650267961007150484392620633117118608612081871573273455137001418676869219670488590103624233151677601727174223305049530615852479196288967594442134623565193122194284407143097895505598588624420173628260735051163846357111878468347158834906233425883436142747938295483412634174168826028887355478166532383215407683590968120548845481718926920620367096536056408987592845081574274786219413671699432294586933049535372296799780048719102034782473949179717197672625388495281730513600892270524308556487450412160335515149310396418638089265951903435019795036622993710706109803283472869345415135967181506297663744309949323695704953495914193527271514187376586945122363671079380115242166244941198004465572125975358046399910239327977083871847534799854360306617746854816743025350911414225363563383883543544686001108638480214792763158479351071062272212328900030400855510346076806651955216865671891813348506806937700390687013762540552466849767101445993496184224689804170186023510196499013377865083234368694437821639202188508599658131112658894829177348973611017473924599639788237708464359325646405544663545645062781650789100006035789584714117881140014704556579246847933898590443560951939559830484119070859683908269696463010331291954054835663347075482559716224095724560789952275137431729204329442145717570211196649273295045892435115422498928418293096801627909990143910006516066465476572330384646243951138306777012416199103093992894039811606167420760338291759306566044008716224229486412092768005484026354604602128643129686176048676854587332459049044581544689760012917675937178287781574634474974431747224571417824959332658959901232631654318097855782577535504957177981990246125777284944635352521703343393134364513830425898151477362367919941816883285991871572172287651994703142482487875964116310081912766602885664731096116466676711893676347212909630086923962342070886293386312556128734065346790974199382881663850602787328004850544918201993378711308294933902544408454452831107906717557815800938675360038603557680639810642357510997331840280685077099666201399383021570574904394911543830905615830011301410991395832903258695837676197074489191132631216409818434725600876621115969513338904625890504021039716887529763411565301637614017241741275415677573385156334096892443014061797497537174425664734934545792469679930110261943376364486675375610876916130436137483304794412259526124151489816998076810184818957800383257633878043531185697199517408404042921573207178938770895931557022742728265816149740801332063433840086890238893918333142004515961400898611215629243641694725431356170181179200559592854391833343694519194514317154135007420063905060716765819058242162028976968440905524544700128188685814354954542055668983878624483207521217410948736474109157860409910258555863940130915517560027976586538407568236397358347233648255335205247722960881930540821053281311304880926255044062395575903919443171415265275408089529865726307163407322439503799871488151262446063128138524107414359794085766578525169438992746556218058869206623250449370292128851274592702137674834292777741271892215540626833008286009017921875382948629150162454072477788669988900709805056925069858183739013507639436541872329303118365816863336447793290070785745106113991480911099712792943849391367015842418969109386238027257645216678140223613229046809772487782686418812287799343297670716387056951199018963230924589999021797571313451742593603251369020883958608546750477732292906284648172031950728149118009595051258134475715705546784844362377691481917998405290667715479291174266933488585670881394734484862143811115954754498528040574225069514647200842462447229932157922646721788145206482083027693611921738523678567409627910852342295609063266671048028819226371390907376844480931844498969929310603687009530872724102621367887069726985697340022803635047552368800495586973590390206919312830707106179135567674215877257598221912943186457454772051328945878273757752103071194255451752885836334459358005524008931209918825706554866392314480862374414595305590030658095292440426176752542067710335536849552465464357701017897964163130386749523961082890325772448991862299651984232782749959589340831031293267661027241080737954628188076342698617617033100934680083065183477132870542549962326032501161928273021299349341397996342615126485063473483275913631786824728944493214660618479650573040671874828415191474168416908972295616067007281977661083114106186927435733553564627254143794098134638322862433641334789788909126415318730406053172477381035370826694106544406226612937662336325906138381976319401303989855820948209539186024819909896648627135664987570149795340067644785868204910762709697757054915087961976919441390159412568326794263957901827825455689699680322317815897782256576138716770132148021155272767311173416531189220384514736990231647764759388060160755374833823285458259506291023936001654473539429828766820737121927529990736974408113423720201314234045052593169727755905856570031320224654790866575834512665456826305546193147547187391279239721184692177837620063262466814563224968776560280104550069682815286575425982348340092647101283284306430256976526446941350270621458319110491793194143493017703487026333460168710291836083741253275877631540223039562887768447232803021429872949464749395031464918041335142023938815248759373715928383266003540642895354169850619922353038292186104869182552690255749889319778472061991980501797226224763718144597964137138462079820908395882118704801556318520813430516852374158421747814580115630583117678770897709425691536078780911362843548240228283945658041952201303119772279659598388409363583559011857427044826650563438421625360498340854389040285430492689930661353029562440020282673436728719262079402973506179692541012917537626608253968221806216418124621731189673347430942208876706063054671699631418215590292435137843643506322620931206801431691638497810122710715021679247205626346870673908875675394424482708382508788265356558197441663577849241763188148362164412222323635499389429907840921650996112353251201103142338355065493889092759611053693980830238610371304756676260555830927849435785197856390534743267450560490940770859188651065545300819826445252817408774654789916151163487539306741930233427583650496415686353883449297026988302128385075011730722531947412188603060660866565477142449026181091509558307427608294858110352011070330305870925795123533892215724742478567167678835897376761772117513058693433553676490367437388170444054369873859392664944715350381525963250553002049067646244585226052139312196299705782550327045779804485895607020990215344669537068428452178214452386671046940810750616731747856971897942787887160528345042902212243983433906947676464131458180704818421658186036693764098943364938142679991971798152335108415706476165027604538632999522443033893844869869487964925415099694766465468976921648614239235682753185096540881335332360315018454309181158979530096088238018229548364665073083461587537390946753112554261080409659275271456272255273501217657824322012822173684540188340911256369605867417354418830302910422954093121391632516652716281214020039348524629267702533556780132121100074687510492729215067733282463405433051464110169458015239281064871651193748496284714520592286022164309227073291131485055146260876549103696897085781125139947748938328842659805612121831611530304191551869772206964070517065583074542955680205586064791985611372083202139733715897180100934195299240863180418622996944159001484453489862067964505307736118399136114400730593042057496786395373172912778358482156291480030842989176364034258219775859099886154229150648818548939194649244244270734606536628241104380687463464244524892172700800269889684009770499068790618994349059987912329939316865429778734053637410860411682122328032144301845079668191420237115246394822017709314272988455433627298647398360676197355206465441486062065827311631505717724208876556248722268292666020371485112146244149649995152029735696346895793491184861387323567372723628672295693070222728261893624209144683434264680026607719950221650936519124299129890949673488691609975570841538563266979992872310669681200387350435700139029251245561252590033221973074262855770905192682914207816015920684685189496026803241645023217978454935003686853112007439987867535318804473478513954317739606005536111440635364216181260212638657309469059325590639721949203805628767882874309190961540686915212318936278924987012453882907430838160748627389678774537823637094678891160341754045508916975405922739404926662391204064685581911120898761302214445697256862545295013041121719980910669115415746874858495998661990839837817126331068153364133204083616858950592515016827684752401634734415535782918949921385910911224831818717219486883865713040482947774244406010996901563835237827612909596748151072258291813299828742705498735967748422085620675206715994218091188510214643881536079623454150921340343006129978686825796029384976591871270680515270714186196057390318885128243387268376641020767175712661092745822335229051299485282816135925469906691601850275940168162449823038608801382424988306996391762309396134854599451780067107822551932420508739012679549784401569898875079123165277472128947915317312845796906128837001975189510916690850679856760516587307479984144568492492127979028812424100884088477837315919361320454826303567474927756541385599873032159054076295143637885222986698185149670834860527446526449817637532110292306259036863585679948914924880896041265110733890966344359338441249583269826824276010209896594546047736523987118017518651367339339449442676775423211910823094237289686802203474395932486237694374108666028201747655631949510872258892022152498032458392717242795866773783806580166137292977711844665025011525812407307096301804069407496556849930872630421830015704120137922456787319402582131094546109369974922261858374651973232203681278216797854825403853579958685209671195632358035567447058723268627928206036487179366605594411753901808983779028084344224796870885659527161278836340432760800058045094816137624175734203394779863032236738284257194060583547437838904464154065790999931856081243084635339679917228812637887991600338337885884554719823167938893362837773206411466170259542085088518051290084316307150433107539545541990796465090231644288344740687197189354667356494568123543049612988845376092977089319942146304822076602353982432157616254876128425412106161133133648822454132448975453566265349142408224913402066175007211269430612496634133218785546802945912491721746410381867136215145716495073219848969572768726883643110536044271571542891366815712744283321333976334300050812739567187482635046210393143243199754919580909613656257002432016658070951887305899197870679368295244048534202386527588450776292787146342219301500563804572513175940122856113554368542010818237158690133941061317832929792041099132745410547130717453300472338395654618716344570340185560471813815780898159470368494257868219263636344774282218605964247457947217015002581733330227320473865732153469489387723270055569460064750620414873316115686228526907416880934990174691276069271989385055648400243370326559752936860238742696015916450956508885490208984849887625009506966763593812316977903451178055406673492287980647697339913892073568086405247056322186738247850716446114309809549488092473731800719660589269647674380197026822410328865611136584927486696312680737684133674344484354915694758172853359440100633227523057839938753032550721678007959541067981610512870123532518904815935617217032398625299239141178571556013166744954143136232251343090938117138972440195123082103278926583628502402959049404929415327768642359797838724580593951390567955604890224296007343177928261847519339555645937150468756199757974316901535721440668758086865545248500482735713085317312441357923209935819400847803553026661789990340016450047094910138334017722946299265642334547881046056477140301707861814478111616247962553239244068009690117909228513527314795503645016130130038280678845335633911351731410242678439770712448559939264307744563271909032088393518523660330523699761313173348345268257728496057439167155395158529563330081941842265634997617320668390993072216558028540545869711890122196602406694608294227814321543243657610175020591296018436712618332914534588474962392709765816939404028638746776848598592213820703486498305225048439168577534548195511374947189521246181415239902153365851133525354141116564403339910148171603055960643734286803239100314070941113262326323998396995376192271369735001483985838849714481681517149745907959017744927744511130627284201316358437641792093329243167440055461231142916162639760706635603860065608371404383030041343474639895484594511269703337758329055336412225359275249734553483337232586257096338433420359664089728564431789587613518100942754520374008880107278848188959516723126211891250019208737338613365013734348864042522520017704620726688200704465618473896823556471471078268263004521490432410553635545255918421354196865113739788666309750081425643198474037759145878959060984574260788578632023144025764605246372483920243154704271119003189042040333817000986422864341807477777798344255598930892290697457018720204681829416752491348559960619800989484474891662876041980060259700127365693936297540932085945466756234080461501354582155086320722660389340137673057625340655516981527778559929988241946426651676877611917362227020922783360525077048070759071803436335707563828365968139953907607270681813656575919866837510546115218083781191964755409670958249560178282456727368563121850209804703624641761986827177484782224634903278108854631415173718143297928832562499371156297157373901158363108704486025103004969469142583869370651203770466308242164894433580005968687302148524928795382422861000736420364967914869424254773064472810425508729193419606670525645064096087900244040642473114135660990065146788809327913849384648065461017890562764563556445267879731766008564598590457594504529363273229140340624093438516314025260021020853250028031418098375233896395830762373673342548118934277189269303398284120364951771760100346751920815833829363212820663131089145602014822523045528829442917400514389131182798098198484322902983869628251487394458203910940653280188754077209490747861179157700171903879128063762366174401440452070229245232045405762806965793085020398121837840206720250120266752955313083494353471936341772734063602625796031365119785548566937284640420468489277157780434586776100852896073693144133464873773525015924521197659754590876950206056175781935910774036258357653600808937653281370843694390227229865322218288437400138825811162971553457567403214986097554286886579874369009497050979860937702783572233883314539804939892101714335826189674003122527997303364571061607284968264026682347704558301545855748271713724358470994861372658713025494024495738558899660535370903389251145405558124569294137888271651990004376107967257280599874820479895678559388584994834696519493089781499727763473305857071790270935682275763063930497022966339552876337991307858593142078113351114320121026019873042167062601435758411797707904580838088498088166626185358835592420063053024643462899230820307080649410730415675977100775239855868675945731744767094556842689038531128494988018144774566505096148989915176299241642878000474138508045203295305391840976899463199695591278676949319592733662054309181205566924621527407866514323526592070708678795586416860452775357502074876714333770601191294031585743107677777952135902613080828983248839483209499884568307672417592994303402094399322708275483573885074199171369400498798586194234462796084144473566520379282953170163351181530293127230254356291055458639577778022116588666112693357407294436145574905637200712825448113557834029016048517605243296981355027471470526354293526481366238869584898195167904761247474468008477258871394552736710887847508425688259839636830667647664513308234299538406371493965512602596412691663955329422216277976078749552917485688421824863746324747783244929832354402571567607928674259528494338989676434365754823075754784033503696537687365498022398780119203544049128826835941953971843647255409053142105566632073204638848382768379261055003805739537940215136413662496749353732410440434862382336249204953544285790530654527726507220346592904432022017163242358313783512521095764152741244657762616754360947097433564007690414362218068299355151091385565737341194890321845622044387715270048211012761208140782452649886361038326508480852529514952263554264606718445430426533826668610066557716951714429565559054236819339387175320386411552242884740879638726559965035453160178728429959062489756943146572532979956564427538102595666725587611303086354595086848420817023090377601073137106234293378074547508237856054947987690213905665585892860091990456026032063782729076155397038311018008449011214811927779674839102728820575597820535088346150021903483765764631105684014250421063783316509790934725949942661704520723269101718680689315989500806239975869483897052416122301717289403904669984942721339295681261610046509028456212675739414392795031958650235048110471685635783540426485721275402638812871946209203813254648116170313586767106436587660551655133113317022718232156877362195848216856465284606970661905439540140651063097333651381196333165949030392164270853542280497980267149118956364251748913441214263615547808921452836708221694025987112632114388529939169630480481789296298820112380749013052942492948016114353302390080670657213781679719856861302903012993994451249846901001989193605982791697305147594346496028833289696608150563450566093781292361334905857805509456421035309073601958446371216507319820156424220132684566877418323310247319218685156434120327170305730660785175385097069171707917252855117436278713016009522089202424050305756402153727369592667997478107072793723912355777093468284756010763012791311995391762818615943038207783982432617319663133362063793496768750895240236424692319045416738623583604828374392788665477594859028920402019395937706567321194909910433528551798714035020307605578201914838828809464964820842417669924567583122624780703905576531412632602429224362037195329185547180915964431856852057882350103091076128060445704425147997589608880281259978623877435496599049296732208449724434582435036897803651849099512142294015669174534168383090352847796430676086115997636787204955057956365166938345210212057124671890236358379083391190802068995968969901881223218552528693485736518886301604529410281797360806895495240360664889446834853573711706079943054719216487594313141269759525166102522909575375509509337185449000729076761263467652916646455803715330602055347416205556683808723310114567060821971360199116696011772653512414405109362036010017584053344689875653490024475801849902851129056036281543727967628831238165774375176624564045783704964856909042818467414341076607549841146574215334379628252377393517758770399425521318169017399018616421413543927797334708765973694817101033181863768927283763660230192059197929591791482244163940318041477900282857125177644841059315644675363309241579702126264813042808389337706723982286543417317364814245629661807931369532509112875469498015503179945166912284138446463087410279878209558773461766677933200636161412998361123878526984496762249494601622241984818828441759725089650432388388267762115386944907223140800386409667479556596033658655008345015746681003715498121545591770828552690587827462680189548409854806477673225930833646432666789519813230343847805542571189332448803371027660806642619768000401457681926141234214210908378826034880398715896746918681275950354190406896727813951321988421183256109487473527648664367133593683737190716713615344289207252730570778056160659161544235891078464655473695634397073722178185912301094436923139522030101136740734570595261330293674379321204061599708906812035078623541278054168265823537425938569664357627109735408652303333957492497719953466625694281212119266748886652563151697066072400219396266842825154475614963579333658452377240996873579532275919009797415517213348453335786814228739938519020936782740215599914204564464383816000999065053718814849381608655035722706417743866297516789666554999878895721790262309084544806465185693092556964531722410894516454267967618197288329584139351338445960416728545739914150804959446613534398450142761805422096598486710994408250815132392521360695106267337367922332214259952302229364090476645961545055948420488131144131720464692670497597490599351169204390276051574466773968708032478040634377784167250219888494354098282116000727729150507598693656847220169410461894445826185511600415494510628158872485140345190055563466615244737496076611357787483740038862938848861019502812807817927450349584057529284529838909157649132473101056333147813464026504626291567537790921372478289700319632596891251330215246561205435837622686092820307774168700459043526358174946367245517897849317506753904640416033638472405464980750039300245766107146606057194951091402482327352669122149601607089722072205462881003873076229689062152629711142892734633921437857583816799570965129751212882470762293756572134890623618601418995950002939343301174633003329729078340263825278379605300004735592754684871892997206561365337515374779219624955179692200855731479445742882259242287677732128859806537046540246199387296499359435632302131108482424950180067571893986118972621824307783178334458570361181609413976344651627256582886168782130134255890738184057342227527909440150796335069630683158584259597583441339316667997304805147104205162135621754090487773302273969806564959009456956985365843208356206159345292542418929161730522209793524657122706640054135392126209537416070259881312679566674617093237174052362963196089365298444250743022804976641640382829257137163603061762596724995717615369585248664493172010960853457234236254503854441441271638476726283333081895855936476006163524985906328874450325511377681813053346646699501547749324209856865935049010621141299141773099804599788653998555997208865272973882165087748001986686031630561230114449331935784076334183313859772732345270212652657729626488462044050323775092702644091599212652486267716599659132457154139254001538116996614014497922059852865463119881458741918733755185509581187101969241766429242389375494516315947724531101984145080087615562644078821720935112593426184468303521073794000418382893605854407065172644916885787285452650728104911722412941522346848448989734965331556939326855402116655944907515310397083246234459570196856432675680385445193586873351496819597696008201253799008400105463352336418912796054468763570371065141356837155124483618491925094994141446246321784596766719116487767444895994644315839584871818846627420278441899928803275124496669648679345894132986023303482928876260637136445807371340101726992400314099962898759328239973248787138226525474190348822177498195455707963780042780145879194411890770714358011030266245429362515054346165151986079342385623906645515459086899700987275783385647691033468638899428963619169533138310635144431946929978952150427343027450548912822404656751683738409173741484373181971188226411967029514001048449736868836048926288540745371246015784688794778131708392027701850083959940135078751064535614615484503534678749015340275140901834645675419760454833086921693902489806750922992294071550692377787826669912301589909380813372850555299059934716784235078673905803655389520181114771552751613837266566870550325145683158295906535700608065726990227214337914923752422195825551552739047664151524230841309327935561940500532444145395061094916327038715303701528100887540809332947909865917839654089741191987143734113651271643824052441584288769757149771141471427950829588702992792468332133705152675643942311350262877689034464663632184445921715758792411319963298754131201832522267869678996413293411317636653889683205119163622399637364006506242186919822306441981351532197319859101563625698621817485470888837822021617101491243249216532386557690852747254785968298124948068606644449351918303748366550817554225733526851403898786503007040289933438197230196147340864828347612607301982226861441179898436755838915900846999131405413831939181656430884349788299151717429748649096383896734306517121736027545375783431135217215018269592914932278747374257245721360256626384138952626279302130009966196300323252201313821884482221538525312767676304855187006831468403992681854876538405638483192100247223191661009134395076785551383704821428491510169897533907897563233992177890388047633681374846516892263571623071840641566324924108669239676012160108144560923213374291457844880612478637738826410208618024951305733883694158508782319709815158671170951738802867958015106788044933902480689099052919532844669682882545529207870809050166148536753308133690700480133882858546165406413320250693835596317424365884064726157576009934784114084062998236648235748554353359050536126274282001878480529530447698632263662782963274163701153111823408178673987661072812732577851392113807681541894440417632946304900618647807598912642832572998735287161277418336805175637941952440232128885491177415065311168183622698953190049592292508376260805003317433385637848674958223105863188940739807614496920179175139335329885885343364499791300165712868099995155763688357969034499847234260419431859912204658274956441376367770216114312700143477161201646483213292711825713287910584135786193118937459532363102391270889013912909166527192377458686417036480120329532875161201291706095927090777356167401939117441244712460141784967972824936614589907255008243499708909680963641689156962089845192562671934304717145630443239981556886935433726230261498003528371665135912169317838230979648522206285418847348693935943843252998753765119249233509919666893106839343099291774291126087972830433166387584023702201121723945611447336541276334027058454177857748524863164999917048547694843205312092927399866107526313197643376538029522141637423602372218506779113887258057677755437425357442389979633581971403227793561397447071194611416517615151238823627905648863589472686057334479728309257094391377951656305853890416816898769258083650688250093611926107891124270988122269346853198517066371742046809637665572893641713249386443340528873527902550868995093761512046498450930848209464606417794077592727351875061493452818176751710845023652044236776815132674319325109519200587674918493027769559654098122539635771169467112606023606943945721364807646499016637843748410973573009874973387215572695976033113712883158380306249032383304861952114982623586673336359436081533096204352318069905867253166796719897757396719850563320391627692961278450432509302784936557570466366500504235380700021043379054365452676915632116230708153866793287528039918102228796675492741413814600656548508777948994478550508894914805288265876884445662729390819614400683983080524037256950641143899331811663770163075193044500215661609123977876500738743398612137767631637994991603580029425394150936118287792564890199706361151183343773228780513781700685461893977078002754504705746574409611518650168872167815808016185486410808986322233409912474922580811185326998795736203036360120248633970529467124019239868886269983543109200456227916998441698832120180955945505348853261754254953638515063118962530921766529165824315900458349693970687658654243281945647647853735525153068989109796668878100256983906871131921425419886641928666875453772443176144635415665762871405535364287851801766219647126689962431948273100939741710425905524374968733303659687214601889996692802582305000250494743195788736177439811819412948004602950542736866923100793833552779750038359156208164728629951618141511824304864955870476420387157706452758723677080818059040842352377577575400884687756111665813925119356731909402096142890110964899571503972071590504247857829641913981864645698069003883646798367981012376946322888360915854430104942614876035037990344177685999567599330502253234765254688995525806289317811721823163795087784593437287864151446387303443730098248049249554003322343437805888464426565167111725408902425165680743457602957148128224094784605585432107534563821848048375625891575170601371468196421689717760549530199246953023901996148262601706284818796357991239697001594441468677531856458312725471743944500821629828304937569597521339743912031065212616962292811787214991497537254721293068703850875650615027522642033730412161623496397880994352708041669332272183593224279111657363092546649671249929614399075000097635710205091352172102674878381800459683310699995590778255464891283674339451582478152805746103415113435638105663770354879809403265266548458248684582906755643586324591807534607758016958399758064881377043434130105968843929917931741747428671251433132551775956673912061135467364831151979354208615472228327585604017733891732111418623652027644917630825994309391671301603555506639664006376991774482383984045272776417201122912290611855951275066506498354602961029657475437590695555075101859350758837894692340808844242104044351784510184494697766022432572757633721382667328318485104191372257279900302301951988145702121716572276518919027375580323980856028541791086963303805028305825415520792215467550998816607126379666906266962228804105219437555359934786322393330880742944031636339297431845742947964530484812667242960554778937241659254754257272948183035852407989706013833901921881647311557850526432810671078304253827862550735751441780943794515208769644180392945053371069580028806009592615542404295384939223669282518654578715415505437681721619494162439802366970176458516822418482349498561226122052594069468684335582880004236042671649205198300304006390821604948418223179378001878971473265413916596941466285446072011663385275508319000328193491650079157574254157264221073192131424033453260766000540883242243039536428517010190719596899622216857242058270080448845866160085246854711766440337454171697257316643571299349388718199291759466318132864866184797194493997567376889688942187412505181286522654368902847895239453189075978183784293738692711233245224027048550113680713014991275390637656776195040824729457795161472517833405829363143893747277449678965136481140700231327461989829246746688558984335554557604277573762760912058048480271999849553952672342626971751222462169690127800810984444255359151750836095039154280956032294024501253444800135907132943742644076571567194141395791922713654100901617029910319986570525840925799843414159079094047612707383047817895510947309066257504993635142278626507467665960409187273722547794729752121567356857260978856646457541013819301847821233651569977226361516999711623081473538687445595345401386655999956253624683462963168340979755045640501027726108378785182034937053327921389434083704172860535162743180971964185158133463861786405808528993261626747920282290077980614873787741173358302761312079602560784881890468622896278439020499837036853688102771127764916480789399444390409250759048332890872832414244933523646308167981840710198476936630553895402873674490337398474907585950356060720035878450430168811021442649884729717744959410584520038230125316607870885990663037128041215289078551534221312154711394784386313780256937275762215857679289152126300066971699384726344308284630682783195321247975797640301436814373461526469198950210342181762593659784532667602506674488467124609668661730097066252450176922788520569067359008431604124592847480566894697818276779475588470103788134571631881749442899892987167278685725466553677372831124446176730408752350650543917283196198305056380900140711890771221329209083766220493049679457866788418100358637383427091353528093942551819807934978546448024964273686684335521670808965836820495433367410868993443622970414443439610988612701962123616829423893580447197020973891992082302323146423505671064991136035773195638847191819769880710058067038705725015301906153585559014641266966919236290595038548687337612191372174427144615555267452282574000580347074835030814855107153993891683837311092750205817019512313117767785184487776872680421393928603421323899581851327766693655981806455715585403801215929712677686438428537188809179099573080680102254116516429854798597801200530325322575249974103543108838019843220023575674082733060839664255593659517583051615349713443826367990287717942890826604259749491147707142297025251125860603900529602402545826248325755757561216131279581281215685384085591627805709293724661243672058886815767907693035051789575639340031112592979725357775442005699664022021383473566037691695441318906191606144682518131601766098616772320663497456046509728826595127539727333686941755084872178893886406183984600371686896850918522983446577551641562981490543467626842114452483994131230385258051848680195708892261883252235536436873645834791469035678722598255759755960216814522299491973792689788065727749960206183123619125984229997445917931919070044699554058436069326731670892612617013398426718889342124987556990243059505953676654027533075503094906893359337655573217538335664890410728780373174267309618140745156207212598314724574830121106609479787962949043813324270611655269733179812220467342712122664138192914732789436609182787888276414614697642220502911444841844138184923763527714914690697433608081450429276576158754217052493940928386373294735778423424077954882095312623534027550350571028903943133681481995153566109244774270469991167237898955163904637498396603242741993113944290390576059074155553325065548215179292254764254508718962213113516699330454312000074718298006506387389892625648905439739686679432127054939232744427995717336359106333484418514695342981280896868740832375408026260594329862056291817544122229001840210059258435570500116263341389111647224103293543067992468631553900279513923299722276621299513099409795053020739055958119151243330404078852497109253724174743013883031797018441085704513576815129153624429492503752616110118373210046518961467826972444261780434649844070818194648857015566472912494001832315747489212272150548567617331055173286755555513727525722807015844443069091168420794485271927516752388469452014058436541244190068829957459005435743080561559465242288193127203292340924903397654714651811131459251905725804935151124366891654022600627554580176117435281431489499916146718935238144336846404276729538716752608133950987596207785727789249855982834823289177208117777338346633424188492279198052968309263756731847097048722337076247583698147177421148043213630941487254781492630874667847895245556100534989078888984592118410223597827373165212801974854134198697705439538874973901457412211904805390085525475177691827060709796771265972488441968233810582599435298238267236317342426715578296460105068310046137927489065603076363259810279366112357062254609303845922309569944746489959435280359572812207359002148467487609628497018798980716170871860113170396984354371096843517664924795544202742247063771600035752294276137432881027737424376338465481823242545858652299370190888474776740026800100967319726684955864544676707987877175135398088398320732770178046249932786188807671330925433892842895473399804678267914598196746901983068398922634392903571857330959662853884503112265863257014951784436813918535839204296433758389492384812217565502103554067105827726887575137843597979044491452691790592703508814671877816814014900991554621690142569780350359587247391497616190334804564991698043894828487160573309708072050466548034875571233312222486247330163998671379512788679864381025542560425357927516241316245495529731023645919930113496142952218531698295710406851480382213988837696390758142551957119935917111875508775962547737751359233870322994013917636580370678440085956246876399514014714572246854340128078585643043939470699712197594064592144290107129319140574265334713416412866451075856458812395114011779550807321636781016037343376015731556349255659393736716561935500458810732233559302448256969965558388305341318667616899808566682827713235687068122625484629821031317607718012390587255347242047415200161766602180588246194966487460645638789963150712442915388404232450756032140477624258036526092051914829101027157745924142628710445597292699956501128606688546274875718766506696977960282304138110846930878716848357909254627803494426425458612045997199608003166303479589928945632553125425344317399853694598058360286745185081053313047647528537628745709777767541307714243002325347404093030694218291168164390391655747003216588110006242071852475797469805276517097274515302509461865993728504011681495778142596361240147809683786888511251471276223179153314870448712057937765503040166429701507673885504773832888178731212460074527612354176665768817010114942899257349101235646676396258065112713396498422824502730566937089237358164609535611643437505650299631516797453409382353289997025627180216562436255117986972162498323095658719682960254668065000046716222402396653824185505730658144606359055955496419820113969652844393015739310520628308914921806342871553537005900350470864609635410978841060965660343653544490617007078995831805614533906504770527431566417609721517919489283364812866046083530718819480534421773042360408411915761644613091367593152863992339638705407205479884795798861699621806442015353531790044765255822727670645936350572878042757348558987682966892335724288086806246324897918958416944579002959286322888293828009160324606353202382231247377367874061794090104138153305761028300884886494159225575438094606302586267698917318461563936799577053825149341530483493122434806333316884026997670244732749061897363345433278280820774402667097781782078312085726344560947085548521426584891018495735031866421748229856734063285256420887466425340533950450231027544934290191600084415039849520215325600163927669366477809584126560429064525680617095585204187128148134743445153937464754963442205389261099549442891463675389578760558424841902583118172885021588583788068989305945215392813746540887775361004235101493108460765432909460867969100188403841622500908888374112448306461237752331765454201486843335315258075266734685821776462554798771580037807371524124840869256907049289006667811402797916365374333951451614111072264561762822599124788490992848729888705298083065245993551737408241133677579727233568268033781163575499834766699082383781455439162155128563855768188044803432132102939421624081354802623088222419123119256612052550161349899775372113033318398096362166247186330045413600338330530579386079021129320328871749951452720450623958005426893173481835408084873470938873886190102136217565025959113514421270210116480930930374941672915936245687860034660224003395352251424491516060429976479424234983779611349866591027178292993124652842563039824406078979869734206039517007531875786306161264714500100320811594169604357882471847656444135133850918620897857462180539472705749147588858463426651824146838798580804824882080550201928877634902053551585624001893464332426863663411740303122342371725194337451401469092871472905890150615238956228461520314617026175667585862095154776828356254506431626437458076071417857800275876080483325967588788531809595965814816008065212981791958439859252951844584692724664770760915168517463856471876221491932156230101271310528445074810700265024464178587243567799221303996521838279141848265281625104614721163047907822420234842176235064391415298230055436257014763699588784501440513057481801186730872375965246520464350934313039666558562939251568103816946666203136394399173448967139829815627411988262723510952512218217047506862533992675377978466809995420421499113435407010220569268199940425166589339284985656673473325794934373118520489614803989074911035031394683340777866936873547549110776112694702987821125647656814915666919095529367320559577279295129820907151577300917884779633743002145803603144778906200771554904764805424270513167766893532669437359097224008315940237583883147635421404408604212995770165367296599020483630577798545770670281905871864830613825275278600758790702435874381211840974392908362239891253893167318426595596595484958814557352731191074691798283457437678588414439809369945323260657259969758824219293587914543693491043904226378176755732249873147569570134160414988729796068385741483909738944823408130109565830165946280719178447982633284555363597451218726033253578179240687001068616506202782368106342928741450813730609548908924744506622773308385268109020908132431315118495335969689890391031708643714328426824906481266624069267042133671604705742655313824243422085609793500650141268388679333024186546223074720253207178938050317199178734911226776218997084782360811160079801956068213562664092459514059419198886596052780459618987988978124604450752043911951087425762535033742853443599668025487721129385619101220742965112088842954685544392519090409345969976232251366844939593914310582200549776165119323633557844773870072751670887701833608973105333061674009407487608485728705025403965220624984387807914212329203806188310481723210930017201914851255372112309151571901612713740653683546403459090175169190773763122126257226586645496449591237496183719395515196650457314903486981404538174573697589822751137745630786723562169766825239245298159046756218528584558914530148222658405359526390985393717661971015878387327823837558472442882536372621081866574074402013077213982940343245984550348898469160893504606046029720752430522250508848409813445599990758681315475222046561457662331404526326965352792923797929373929190374869671964630718060724784747396550517097475096606260234290376468444505822472220213238638855714513234749820349966040662117777729786064434146736621110648053316143070546516482946603376435620929127032409021043510275954039706547299792721089618396731508470303622049840208056686992252465953583737496013314179003537005246456058694776746889730944136910107442020272238575142052254708190896349914219443174041123748517288954308018457409103199946112805564334422622895793405173650295313360283143297024936562201188073837965968669385630403655424493757197421024937405701936945138482569860019532151625689714018351165254960063601103120281995349670461609746208291773657299785645713069651650016227778852738340725983559673970824046315259176738042297431785283156494449545036956401109369855817985115027211915917638004829658130789859470397312065378020322760344162973296980120590668246901430294939952501589890477105080253835157158428051781526426400657458402791703655628341155199917788499516885789808814050968676482560815758716892137852614348240198670085959491834379968727493803924399001240892926764545234221922075784137853342487883353547493246859780197430738916781429610504444966285797198684931704497491550675521279111615838057069681965725948152986672133352580867678999596495159606109888930622886966132631217557575864832627968571141533502647214079502359859585276482031363986556281374476129381484774020225044508591218250956247790738896549452650203707851005311569656220298499374750861361904397629959903131190080431975245809400009145582174545266258052740399813169325700182768421722318051406820050230929661772701854460037043301432345251646866456105217206929060367202733353961577082848882372881358894045344902269945387687846572485781928755820170263348795417825355455575490682500699797395059504613420534309269819057255312303387133029128503192281356963960128385345521159435691409774601581987774123819889586672711142729583108270898639204621803453794556243397185624971271409579259619230781884045355529797774221068893673388554858810722367687848593822515403544099482252905928348478013601350091515811453292144235396298755483068015588531659665633944781862223936580697312612851200242204741143375961776991063339146375805203581547030622952772170351482123853049326570584461131965622545238528606444933091816747127236972720295002626694938676067390723574413268607147813063279625225213583451461753197073528090113543146777394534710240060895178155583075721182150799500558837744547319261292538304998174304023070223890981607615311099288865287256021794988663396420618209213160431768011778154296636735078724191834058059780194136413801628579298183208684244469747609594675465935139271920270860666700964469126425789697600503752819096615375661855458062643522949216579083498437925743197158770646868200181823204868998256456334050138496655764029708344806187866968931216351339668783136235117749794199305482289866190400647154359595792275442777794396672633729746627797753573196084347249181190210119294392590380260264841748444782005168568430346614412500612254411855360366968299480657213953513340788692453270591291498280174112107188413426878788829800210711931841547690632321330356647042801998341625726105167041311684938677002775094988441085136931695644486075931708354676736901777389429731545511459227701110360843055771824121223403292822987443986446401919560923000143949934530604425799693849177239781614945113120420486863791675253063490066523958044028984353925557848458072200332029250346597448132614017337334841522087264985836723648805643312830469305304873539059684897769410662489968164655101825562769089233065437474773251574823464207618269372020011128849083740841566637879049177157916261744725335692110279631363639619333830316909605856347865158364104095218542189253938453651900094568218823512196785349129074727334576190879527700714534296428857778919797005177373318942564746778705951416709501512543632545858505909277772235744136906107059254179657940736448940133684621259740377694362926710786480691656941449476496275547975269975061123929065905556029980618277579232119869045159059424907676014494433021447538110788616839417362682473795362048578667366194340183753995078873570769569736334890609662341520330327366441684091559726750606818691954289729554967800742088808731999842293318016422639183011407959704912671956726619387623534230677837450373992155604973161965453791841362376013666098734374056156461634598523847828523319730791370198250905853269294286401288966155623665336680867967626902193385870094706204085027017894505168178682770319342784307016451931313911485790961696844160662092837320833387867641488391352989258481845308669975884128896586702428755687731235900349616499576082923775226893655570763541340826557724889024357548539752579091134201798302611534745174893942282388277104497423443592282036621472973991367403671012159709430824875344769801066976990314194078502080100063845162203542748953285695525801669871401279094554658446853172976638859223272280239229572551621704395377986809188708511955501483450065354205895881728190715946327770613634760904731651841773200177627496686192983004847842222516625268124106031714365194567283488928109589044695107654103618988534832669434021847931347638061335551520236021763656182711315453253152483185016002550353002350998118745684013978413245041292489951063561883988605939985186066266983743068215608935364080372210569221706210654029033468957152390066799698439819719944948847363799265627137914408554512627737680336924879096474511063094304810474408259752902764930190996182867206680083812477082804253485451549448267335177099158651397207444535596290620297896514822799643822846241004949253809663171584947464968773242941714860117757925464809222939256348473448497344768767897255186768445780419301043588384787449847191575466125277421065198340368876821770985647989749664179637585327608894833993789803869359050038859150041822476926213916322211511707329740757299950592161419534179545395648258069575581914101054740858366976388974854435670380887776225342372523668586252868607011120737664441770347592390220540292118336359207682874681916357344362122584685518491173782814989331732943286878667341277094195061406784309559634661183009377235593155008408188204299011125362549515865879877793320160602302539963958208885785246406838930603148815511881851063392801380688294775533868576870062873818717550962023016789082957729937039481235532251177306514137747970534389379645194776233680444566103772824237746406531747191228550875257012485553034958425477551119231041741260896041764530473844861849598768824455494974223707962742522613785956150815270717355225140609247146628770765759232800006362366178185182014661299689732045067019387912233902801967928485764215175360503242804953741260170275740303053422716418639495786000064599523927669172889510347832507317813674423737276438574252177536186049961577845164056212512007571126869254391270548041741306290852654801964879811114373415755475499917082236619650715279722050896985205136490535547278448297207107814574514568460861115729565963175793886474842463316376564944811616192160462873702904040975367288613066251380909350984914309152013685940349903629793136440331259011869648801208786661412089289781050701755926315932894759333535558539615357374864732778846929005148375626964569271383010871929842282561144132628796930855435148219592948067080592226824590669598704980565202263218860004581338482133838010714011937050319998655891249460661314089799465045029166977232883060195184978556532435522347947617679257654458205266051679944760722705502604025380693054988610650921746556588887301788838412895999596591593227930457380841437898235779781221663915400107412133609571689636670057484589520547926161961736661796689247300318163307768429123981774002938069046482005059305672109704707235857627655971528668574058099115356058690572447224208349859427076514578043398793416795768137963620833903950832934495580595363760485462231136251679236438135424774841948043589332145988194213605792941674122615999836108550167244026493529026929476241342582563872303197435078616064617695101218541063220308171661124148867644033887297576584439522022196100737434541485089168713374426783595270561315212526207386933218305935658930621030492920953553814549511601214641984397939037189643986934878415890922090939070427578219059357094307672370243890053453120967003508961922242988160876864329829397148824960412446513280821124892241883314447492688036342391829666716628224156781839675243796659674581169914928136901450227978013597693138653945547206845777717459138536178479266953710369508963772279061281236547915708886907667689081937493406103684106738600541100262787008747059471065864514391969805597069505565050151233936665890571733133644764213070656757319919039388118938253075210882859516147506809468839245740011135470274786982168621274321497665188300319603334562235534421417368117005957663493676223290691848803237345192434912465665329718238417396919865871333134120710517073683417241234472371867249415108427049615549503795501528738224860538460676720392875868626261698438228056015875786683092512230401599897538489228360095980752159490258074717157735374806690050015349853590369767229710437159210984693912049054262463396085508249182328658439340262938268563715259623894744717833699966180201154788249913323652215956653404857011232582770818862150130715779346002743951689275243551823962408391501234739246686510022276735154153398174438062936818843187021953946745788068387330450266993482047409308509529400887069518186325483548249662607066502499564681941064704071227311004215441855491231634073401961809074987236703389974993439243991658806512836679056416957365216050282244885217573611331742947356357748308478330984929574305730604504128402971148973655233370252933328593415448831374005810726242464775155356118977342742942596840194068133338141610749091640443078052777297700938276873668269280836283467725910032841281289357876118865330379943915710991731308768414829814731674389241507081233304663866652688517152287734958086507090211027130801148807052510861641816152556748171047862194001056128001346471000489600816181363398613143759537835734463470097380223970667333178847121742166237978339505084945840564804300591120184173005022419629811376432555086259936672979212123968336262543307920197457555379857786033399361139731479735858804674826631905550317147510740826575455384526005243911716394798545438546404774452744423208201158058940110410945383309204755983130127803405876733811345178470423962088493582933994762948927492630761519594758086352305003906352697550897371963214320279758088695852977316219835944256689466634986556641828527840530710394603837055319530705781433206165483720876373054215104981963982316223946155540162448192274889889915481816161014129111422332742480710512027849723849044026429680769803440316010136598808564229607540695695571335080053565951888414562653198365459981493547035333965788049476127320900485531135908697471453536890157189698415775481177794107604190191456527288840405188279508490082645360132429152288889379751999559985968288936089112710910309973067570621865972967346398430619284295504292105466916091541828035178323684155218186556796340711124306438551541562489751763977188126209840873609829923836373030275059418770626263573784813688683682933396988927744468696966294996896602769160036986059689047184171600019718412362651997930127874191392722798698022724595229401524322084048175398124008257637136067030334477654114042743699620541251450482700210515174118908825492609774721462055366779007552008799892323465359252612737727695456712154449995014845268543259740875744450235595031758880946786706242795049681223173819531934699556151004209215360832603215306918572722599298600395392547343180646477064441544096308598332098942811738979506827495524870662827328053647924741072354611945944265379787498697959643221449501435206166327360833877895746269008896094162137344263820026765753391034189247610563598881700835396449558521922407698130525217319501323741964534289761658135407331302630302854780224851925520783232374548326796328907125627475246122929296414094248502905947415575992751242508506996634735376429407383918207419091625416097284459162561447272170590829385767671304543843359908261608628467196328751602860804035347208536219374949413665519915085368923735127485074294814451965416938229179315309180378204728722389455877264858456583583688835417610564721255643864015185687695779882751742224347111155262343697211707633450466532724766334237821195879117615783397228747084512798865992451832791641445982802144372701894626680357923333751748064104993185218845506821183608568975632511813875046094241955744326397198431078927752472356672288395527355236066225987885985396328772844546836949236760648441227353682921913245547040744216668206746126567079643012005535159904741708546163733620270386595227380642312621874062689090399816710861502195826500644977817357318505215771516084763131429710068248249139162492892556126384767386218233345228302857013815543747650578465690588394825313419981396295736250191985710580846679236491105929088055068338217718370944062699938269197068244705320057945408351861003661161560945082423986504199873162383835746664545218873590261219345316048583392126663772506208519054623623733732811425816643842498897985966795417592003691300453703719627536068718301376481212741056148244879598635108500548734902984477529757534939665530715055154410390938653741666521591833549973825668932645268620823596214023963409712242682687002533955826932243805998324269084530478141991498931107101571694749555763521945874576862963018389905824201278786755796934723185030744610603483914598794977948711391354629025486282224974389447438682661643606831812488598723268791076616230538008602921583381443284532240746235541879988817472381285359683828950062022524646357316108266360364314856355316050499154144130887215414433174525373210651396119733069487813913096873318613666961939402572004993080999953482194276558781132352187781245718342397646806973069793406081383018907785379227621548466408823126429816421239417456971356661539825555435294981722390145222359192574194314642182664776888667725021712329415228978446162910566285420071453883416781489134566744506929129063191356184691533158558135076487541321859455745770156486652616746620858010700235568168758105959676998901985472706417531288487494139070866420808062769445013196701970335518100417192425136442744852197815370357770961797803655471501006418180502754073583631210075848690420360453063743034388761523828983557372852602790109658113583990082025106415006848860377851451703993626938322618882301899591271000879075416628748322394452285023918486791381569205686354321704163358637035324353038603138245178894425200804853014804232640065209962960096641776937613082080687020130883472099991664558057470297265064248590310071846989531069017432283784757153675098497043483482059931223224751985485354554519808422814507464169325174171166032932667762278190834897227510030808975252050302466493512646127848908741183038587799856966390634505200221239345266865799204423861484757242890105114328883814583700148678228333016407276114036941362115737169985605841735445608033688890692524353381053971593150452592094012886826761957851131323839763615662128576482640972356689220650459488317985864101056438186988942899276314816131141197839485143896402016161447028222175648273420064615301617015673045186184377052127062573422587150628959854886176205229616886565215837784247149479866487707067324817990842497441413030772781221727570393898531076626569482761976332874465960455935018021232313616829469105165367996131496561881423079790028197020753072041377449667453062511078456579246380038273856860224589540614393614994048484286969806483262108464380743336558398688089988471514295701014512054966842896674866101866876512973139628321441026834165860359911438931807625644344609274750282537324722439635823144186618983533732369168086950292204814362372048123472392174822684291066611784943531672592385041053779311049081572958008218904109965374052294046201984820594719565468430076822037328399061467920788031306210807428878267456522279510397530185492450108066714356522034098520971712751588390486131129466673396409924349264716231223460568160044054572146286566256168928699746838216339043317628637080958285081909697417621207405508511001815330208171813671768543487272089172606743181038687549909642874280410652857444783139948749789244343537320188375097795346044005281197852692754424896325741629879428825506076395165108387117664673766387526975088379398903288357402112295635432087437414162494910515768227117417711932232945391974092136590860000476202432818881161163644928715559908299814543584037170956530527567900610385822005025774224292569773732296609385467336929449681543260568582340850739091504592315081322676781063632505958627455148922828565406945222105635580286224167640557695260322183356239637398808014246118755054609555094122720020016673290789780007096384828312446295596545022120743326436571869713451446896888922951080200162568079951218413160983309702178276860244871443361314459232060147349748148691320774245973643394920073088574820672241184792682405330459869275458970721315458415404772322220839208036324127217631162891881643394036869317135582680006351732097450524378305263342982051585729293729065144082252093140038334428600943717769650829294111897120873707840935527547594667607700739582996325838861067374507926180433067251405352116133767896036538579850322184508372345725893974482449203287338602799204201279950628458617692934934748645046491968635338391449569329353499139922453664188100631030710950568773445423096458954361418630876241494447419866698347713405300957797872079291462389626390884639299690639310163833638321319539379304280498487596279495977933648358480037841610186331741498133643427387980302577970218308865036418106221571029282021587181445626643551912892390746449491042735969276652311469566584458181144763773752350128593126592576075055650198433567754320917506901135878671619549365520291390943771733201558080722733319100177931651968154228088370576507598837597021754117738087137985338962896830262981628055301107557758978534823854812982810501496288588718232218048882601827461644879029172841840002936746970665260086282843883088133563358024351057763528593351544438010102449942174781896553188470873781552236440714542829548321311895375408182160748659797776227910230823364843617233660291719339926167882868980057891191156961286113730404222996244445645228811797471536635791461504943812179699911719553392915467985888569082819110314718381129967865651453059679813190800422182709005693044807483008345642515023609363752556383193517427034362926840234776413899039043362351851350263930095966444898776041743786038172342060790714371194447539522843551677888570909340590984262800755500248725830650557511259353896315171826065846001289326829742161791308116878212721039217579698337007055600479265997432364952544755986234844740409617147566288275325091737591546032508096011443270411987315969680079689360407597750180374094171469981885046628982630503406281730282319799125530918362807799251133065557772589580549721937547685450346607218411557053096747424723286992072949541768648905189668750773621842979151157585159066981543346997356951876553230061572819957408798433268786548387703704838867969634471044881036662552958628343438480462678122147642516601976422702036294508798790923068997762622023363411771182015399050173071493996115548403715228268577998385109384004528263675761260563984391352940873945574277648499241414685824291385791775623295402016824786676002102151382666411013004217800623443217919523686177696138805006592509070252900155749948752601372319426962837691739012328002602992780683106302734901011003140670779004579276982793136849451630895091829048302965001908928336498837214396180793208742328768068649099204449507359860528957211699519040408338984083563306643854128890071475438665670708501846953790032571643627157135734722510592958651109840684568971565825455725633355594576577747618020156837852364031497853809831566253185809425785105813904615465248072719832909577295805530088357643935465714579135927674664325448384545582730913986167177799594349945503174771436597966834564542345782349530220337939230896227344286671746679865568253732514537743009223721202753169385665977610782359801886307507560408367712741871458966983457027538487036030425842802127788310713511327727774992046483037340486427902258367600773900836561591221966284269036366602985432353631799451470339639496138687167177630565460918856551844344516890334624584682912414317535865749891247595560896040292155393977446428877279516223061246477930882654235748010717809152774016548710468265535703098981310831043094866753941511631676658281403700866865547643833977042757125044749221422969080622787608544404858813995712747561301902637515073878311885144100537103141831634743367511749232053176825839150342354505860226305868702779243229691617545953440457447399711712119207789915812180624709441550694727351401234550204629067783378176214191890146908807079818100673485939679726693487696523832201910820873136965799813776062143345608391307991994916188426151766201151633013365240268650603921725403434552867518082580104629058208364681107351833729751961456122525371356771188784251994023543962242477517373345353389150726288232132196100844063151547998599521588884711599783751001062597243954442905647837242827112768861308729717667450387784470605049817926326301121793285779630213417290584506938423127857447098281990368933332322524565878486499097175032022167285214998827754658306559015958435161855520548978267361357962795749330522011191610842080236996138900439932835066345181640768389987922413230641588672500479862191487276091383655534567175784547455676041291332244609551483125353611287145210743043635547898213697720092793013726170489082803939099983557408289800561303263280487840702588019085387730318818712730746136642050910874961241901769134499707745752836339783231561103564821247090359536816103938413756883377157827938294135462391627057605602271779835321108182513441990267728610496870350607337208935530864008142659916508722359726946248604836665891130395850751047449472699392645264605522665189249764530807213109352096231576084883113826036479166824680084142235887774104611556932270788793268743612837957576853818407467782098467762736724469111891654655430484797104215239779289206763896635896383566418058944214745396226231753265579725268146631176978012993711098245340522927093300399629513714438319513505731788056663961042122577872528013252838483308299728818250749885183147176842056425852484751295545343386763129354644077734050007219968380140522695947091991189551884053700772316581952105304731149144913758587914656238871946479845265284802689647131727151501040126023071212228792246888113632874334667237820558111794202721647922565370422448776329697012927691315004252022598108009997988559023568904329023147853873872402094744838539417783679432332561309381772050173430979624532495103390555419373115567810960057360469040879350621298748824052849743939646946584677743623702801414300304401661790116579760269790511369309091941300404399250566495624246838020340508948029000263762200578640552156227401553880280034689559175431276218613147605255689989509498932383472879082539984234639757912004701170765647978008566264746119214932018152685676334858437821473311767753820642489458096582004134726957162370383720779356597620052278022518225296320032536927653198445965838103755079283425278582591745643500626084344163112970195537547485185666661090821301768897917608118674529452988157107661286021403190196538623956291513139154058784966307201942185802070548054644775476955678720896015971790736172414061141977276502529013859928135313797092560361206849838882151922518132179980933359782131751070483806021942235771089945917470518247086038195757880028161556161166585331628472637285890244233722087246293327028353174928410044347263041799008694169287372227838080288266378013920532928677292804236565912564514894549289320084006096841831783905934902376205000224339124261918283291801084770695741558673641192801283496458206833115754626233916641813906198852245734368306773983610104642316464133135532352273752664453382030040955103219288976104028788257165434018178388741015541294894921097507774609559771524786912881124482928425719746882048856549095615768512861059352678026561439383358592178867356600596530098536546206425434637910629888573898318354369679219264775780379760991519977631569730191138816967770383136174316445378545700731936052197001517354100766869601305437275881607049987789365017422246617438193269192862429301061984254163460485330613122444410053811904217052950210203949284993280229187520880003182408337953638642237831826693545467637857036064039922133069977838159195259555588878191552733115500131708794901667727284263034494974713565876728143942654920526300619080005910944956218545217579084841829846693841949558812074700106037683563441033205450016151657240720125298604958894707972183425970164384759848658280980869054903677261462021539863629416377179304762721831365968096850029180311410797043113811864184914158697584986602245464927651310287275862938670400213000595178163586440778748117806522568506530713507342458944602683462083458031339214535422338754448630386070872785027777775086776299202224027107432459134004028928720902658654473562108425271922286631314180112202868765811959272712835132421508816450191208996690219737367720181554670989399273542199116273165262450694992002848523663471619210135317944601819327396072124887398157503934618170208223027956393354316765552788502935163273459472657951040114997344823774206587573034636025051615613927268982066048321085542322084072024003091375158254174604210574559615339198458900273971574375380224264155677787593079348042453601445500804634412405440897265939966330079979725921292231094194707838420418307596625539432445609635895414225661367379692854237137647495263375569771626021992267349139427236091784676196587205759703367639965915756363993425058788943766830142891641757385033888100786002186250388008817542820476784272595671960484060571210079656164926916996939208557744994249775621141413333243237951509364096641340808447528614157971242508505925805081064620512457221688482019793441153229915524820485989751301007559884796958676495248802794232312419807388735906666496491511396292448871057045643419978174371093169216647620690940566563479122208766735316201439579444576216638684660165500533947931580877471076476445478396109992723489002851457979744344660440511176045586177008433876053148008853673570211565036104548799284037532175914820188299399708652690645538159173954184083082629694214229603619265688038545999145315531953051939183455018588454934955788237465098560821298424007951804176372673129537115995329871379480968186645546885144362583503666244085255859306244147002018821220464219259172345933989619257901631775292386555197656249237162846568538934472706908824411028132584191077575505481596675431195699439784151633240688940704392660811215618619025303220713906467697732683681506611237692800248968355757137231128842582768928782310956781189966969774094893487241466149739727949412661076369402958236283034824223717633199718432399903981284939398586827244646054071699259408451818357188910943512641768469147790922528378375323956019474534909055101642338078115996634482620714158723813542032404931757575337079350969461348285274651377146834205626236321971729619991708666383043815049988726067172676572483899667394934781864059973119900529660035329941393264852632809300822108367705019712870766990024781300851305272966844060610164378230719136307049422049383419600953509993987135158792521973942806151356564313408161568884901747824857836606800403926759962908630937903111506727671941876882462830751887950689739054897988939998836266317622380542165500973438436075892142420468068102248730738778094787723527390164557430678984175586097805980115965586660818087835319300271259737913358957897334008763443118861486976837881121510877126677572310183325111391985166650796809644853255663841758311669493885921614166745675555382378604424455712633396677214622446741586901295620545652768104736368260978986496300568279073769198631560129161425693064781006989197020226538674162603049633997127366767957428955566314014881184615445820075931678835668267089919455698580240906776542744450798568453549054758781082742772021979660038202099786595196994492933543169491649170554412944820929676092514799032258890049539549957229930180621792621124071101622095785527048886053819284236085295701406576742213483133260263421770543730953570108907807302213549826362852887826558691568563466259473132585195659138468924462445834402277049670665349938723547520909770648817090001106391255718740682470471367225709217122286721119172532204691459692215612297524374555068820561736954940666273325260413704462908654461510442560076329179486145106922588794437481577891250885911134172233031567497381920863972206513520158280086982468765373753233446669783773281011145261959958866650108216881597594956660290352758332149372864358745996764765258208605552447339121171297976729814037989097286506976492032209927924040206629297956083333483709734371103831364074116484760050698520156744722778358999608425578842724735306117051602021864568180148423771285876616591199011868814095160940245806826199051129611212754574119275346382293994753499107485956141079594010471612965889159165679925544442250779692987057697058479143040118254545356111724273371399999432672127719323193391300068902626785230042044775981367284743790128671709651764782559460090760126770386665955450974046848589127133239909729337983586535080972670948531616454530790871573529955075169242502752012548206339883390344782848948625326384370394044505434363120240495681948503862902856933719155477929628988453250576597682076434462946898145244334205580449946585823750536595705362244038184299359354415068135070920577444979990516676905380209621766365606835781587320379231026760528625950776545290579527210420413852461568605765628218747553890252057850800740693372942987737463057925699377504026856615866168040761542216193889794638536338311259582441879709719549522407479595395194229768582513900769548365478993386356880618290567934076519758024674217910250332216964377600441282077990490323308123176112379972572146928331218471752129580119166422739351443766983751998453064578736640777380699652918703123194595004164514120225826972469814614881846289049872728361923812720419779161557131344799687575703393540193254612893602565440312289217822034095434438836935460408954458024790180847629703419796230216029451611247691650186005981164172743826673072895297840924401656957765725555729576130242533547909506761981919701424151665935744603959673618532551061007924434665329441818070121476460301248629639975333472474598343390086851604672402252161362633437520040663234254993084214185882609820943615743240845647108254431018830907726258570251121046551644620072039153746473932152920633797970985170747730380605362838981511969546064420171139295668853118832806264334317017170205170264852813184125163439247307171335549506051586713611010580504697835880611507229261275769395214080302982839704314172657091329508291125343176943080754686551329222427649904174047481341076368194957397746437968651830444656683983184841948244176059863821383782353137304522859498310101762249439405390186494271323242724894320227208505266704016110654929802726886299503201407835500681783266124429473379347087040369339474448836401463014307665488869199951906540631166476781940497301003751985705416725276470230859199227399842341493349983909786403439076922427293376689266049349441694715697155470599042174219258825753425929995659864267684514106123846878806544579177175040277628236063300794375840743669481319018301570912676662079893317001720205395490686409451497740977410943734521094285968471727023406450671007142874586355868678236996339079944880743760883533682031211373244515710404186429258794496377751457723511758660881749387826753877641303779519060504064763026806474269068794144744826935195393809701784967319464528914389222386328010121834314118098075047970243899193572725705270605470472814746474462082224540747141694065206969516760010559177013648971322784201700335664320555114622179331323222171193273734777157788658376969907911711317283537401935719863182444704761544818457702523441248455096812811666497090604322747183366809811678365157004680187681709568893241844073623106025662747574796976374720906354840294917347274873081201950527096375836074625454793529542341712726819813399026419025763373611656973855087441302411046998364322210012677286821809498907623686892633844175188562628321296599412137517969890520924751998789466845120578373584504314890844568816138401588039698729200985408629694713225986323131712732194289141354943233591229372423096601546164996985579627632755545779844544032230409049346593466633088573695960232857501802685021200071271420765556577264079830207291948065129360217761136093911359393530812177362843189441739621355453605002461387879606760408053169300250934418257134216136144401191522895306530077790539720033966289417946596417779835592534222877746564000343935264773517835159330557199471598121250380175595475777459515207139084336100115379049015078907056708818445741145088305122997002099696113097121893728533083594288099049270074679601280969718292839412819896052132336107052144317601499501995895358971833690782831386342368579567965634192930497698152099745288783121459736846075674766360600396879174354213850348953262958205447487692413303661183286891127783175460291279129556760074187332255429082447596730430080458966345337819875369948633505377224451590105416566588706989890137538880243275851514118584543536529874915727188653564082683272251101470090989862716772241528776898622677036983969959782816557940888253718376453740221818841187448133828794719644549375700207234696253360159221820280817972604912829242072671298002423760022464850087988988572315884221469461474910278915546521230594248610272604712698132414938149901767357489609411826805047717301316458946823454090750518616610154107017955417597598280422938627155510777799674591224661638474771460111789648586772191861044175307319060399730981271821910672442441948147115278343039206536812214246550226930206567588127647543438557347426328154927705626600665467118487652072673356547316696621770698336458358268302077663377786474895873125521947859905262932469843638246857387232842777898399257375979040382852977873976846638096241754775914830964299155281451658037282442319575209277265826932305975246124505643557559140534014297675082443347466243985834376148793899641444025141130024688693719521578304486934438407345590866909464481382353532042192534791688998014391786232376017552145946542744591797476063616652401862061888475586487380583089379600294714755490167949590428156184287251585293982983632066919799567389478800199587980348283125992532975991050207350736266025424310513286294034955417639910947632944854290444810268915259589521457320122663991033216800068635048620073570348589610617902776607181677068179366318045382379191259561984388576095180289432157965212056576110939899154968840313775493935408569534499080090127038401726261801820466737959946829543697194232579220647470975895251070020377417194263893464967571542725040469387188357277563444876944595084986388776168355058849700286857269280542129179585813191422838038713728275528683064543331486880921516972378760137552798110459669882917779624109707091370378839304506450124598867858957886370910482165298115205833227808177991560826384334655419760315048884191986084840626490039958781693294270619622974531271365326944415146362569734275241608734402697978790021463626962620120377533883677549691572082415463924241350575749432317953795546323852419930894060511341098518780558840927355911671616701871181553505823660985691939227000646822883589944865752267148004631656752194201966183070345216392823182511277834283289541424721726008101478758030212294751534403712723321670865724341810804779578414426518997788601140202712329482376233826892096411116301103221754850809433535043407762834159300300053391341804464235262400380739510951370111585095347324822374380350893528935216587780976003257121283541953122550820412698760354189007713651108604718194108088431110742536391713898813597531932334651579864775046845758698939196311882411441543035704000826401267779538411066650964079049875221717226415649043495962670656328990457837601136851326246834602134845575646260777352188360216622168327326752466009077868093484338791981564661208248486780506442969584602102930453724633487602599622427009937073587107459968463323761050293787408079067362688314322240026342541834946497494337876425107862940494355970889509680133762402481909558113491329791361379976702061469804350149070673315063787624020662390702718327904802851482956061154740695997256194929668302102119305025062268263880896540629845561979338912841975881135820072574356168576772366593657751853637407687010082486727325827055947358759499152718354765991563039137857167298544040275171738826587384991774630988127769334111333640702276667861050716885045092417768179812507691095090914411583370303122408506723054581245437271259392013793712989504976889641046583485074819454011857702359172469012966511482150074342299282812227997873756699200712962845547283485924965768203078846795064702194730980149497744309949779104146628500906670090421960298663311030110011132782301805889845558966393460875372851907436002284230389621517161956418065627000999956013489692855739326265725163640020407998471412336038886746834087295761469762659715075739705145216740388083854201531984940935620834941808448216518439071864548579354119886526224032719177493852757822503822693597054005494545632486688166937021367054984886527552679637592542953115273943389962168015529068835137032902484582581507127636005483568596542941065170419630389669909871302275853459041651175097486133027113604353170371718416809873141819585031564870772149478854628003926277518456650430912603414221842304210133140285691502890354177509096542281408332982473259563282470188681318906977341224009824572047781021244257867941962179708245494715165738807912130559425579829365910185929521458891989736410574890894887746130638684259775642325268634634396779838391211928481559046325726844298069038018489373878662677601466755693021431752909926805769995789731762891660092351933832885941822434444837337458570622675049768273613929212565903885590939178962936286792195698567220771145167687115170363840099018030189287795668529739177054160961453069937591596227833917112798101298430027748909358748945398117353381576846139508418563804583298672849362869287801275472398663892413528204505780353885364847097327544925680094275596516029103457751245135941932152689509014544595241696113698064708110231533338827666229870284100724886605287603754043021857842964223163531335034068040278444147520082689003786354784156536368956731168839504335456317801016615510364384488614982713956079572913905790086466129824415228134778644226453349015863717448862610877742837337586277208196830696383180588110789389572837677830118699970089433656062457189838150176746551248089349447700083734530619482002243872523604954757117394662913618252446057626009488669025658132931135067443779323202503802054350185299498077810525998530448875507249312550651003885719082485478389932660286033739356873644557467569660119191601438807752987664394513579476071447098889327766053074116311530139110492328219311058809736704743234405890882856400267975943534642742107841490615409296240833879108156578990949881571269023662004328021528958961577522206062145798828404918233836573512543126936803798726868475523692007777213811796492400361590234577003494115340683355738248739131353919147581585276254133758998420361887955138073173462244771235853672790530083551436917470851610091475448224060922455757610398609663567882894550033360433372084655672516489462327278693098950945586309830114378782588321229906713291819397652202572455840081402413093213342095068969419077870202615357580218210512329081352831950915725992555006719879687514630234571315295363312886696129887510461508593563383915070262240450567951168869460511094662767237607237505288455533235047477489980158288045753005046091690215964523830382629210630322585173215675280891358488354854871241265327424716575220157935604338198464883776605527026552678470835601024356860883266117880977031360613779093609113087234077209618102390157853292035471271969105674794704414643312131439560967516626112894440503663881934028642048503807286098791982980487313349900484552194065734654155537801466230578392118511432796651242618604478370665694246510969746211106625572671764171963200006067946154444738300958784936312325235285189985719809160006814191918616838901518124804643471901284000707041173800540248415993671028492407559303963487240301375351991157511804441626152220088089789683333245220004404297312612251617655694246030207535958932402085289249243527073965651388572918316494763448810446032143908764832655167298762199973683709458549393433833258846205940157298446429786277862823329069044923276593292449912404613383396901524758560101968276123720343055108979231752867773878201326684509880718026820392202804849215743424256804673069717712187345608571520356706217008389369827536191719737107940739990603683952061279228549713860022565446739856276967564477699256300949570927013119192982495577576375085942369144906834763454604394437131867956302588382681792897579073867577438197352081312680685284194436531551097133568125748283469790178901431827752618088331363997360282959901000051972437701525586481910612361767641145832369347955064737525034060992789723071950827784970011960313162475551008728852173812918560876774785619606389351240925078580628668215537123624648969325920348921913067134717109977033736289595978350953252359827128964919871104481561301082918581273929221101792694864281968328624692921084643895996928816550769582289873372386157832942848807562193230957406308380891462836413811692922908323367569040678765357616396175426664593802436019747199540348365085688712885529242935186799465568445132086630207489953169878887983908989545654675923206058192261778837661222533547338637096772959302399118055662280926495004498775277334625217332638938949491465403821243218073615845361140460215552597536672022391988105028468107377043772329312159753622750515723876452943634838791352898878790582155011110423358451831022761133433580478971414977152515778984829893616449182897931779032646722874941867545326918364087982826661910595314252866309267070173240595070622738667057928733882718495187976068532280614808818646593287994277974612452954095267124969044104613107390919211239694068351844696993047168661742405051922297675298529668486734836811625766352554575224403184392246233255616522514104235923273201888336360890136050472633749620582370618484689529986526746636302195871613693678672483535610994037381399698900440515388959039103282794572815113975877627474453184293053661363795169817274605208854646923204175911435001350395075348489615692495090020755605575438417029014607818186992492393911943824110025705182138823009803545858781164004553031127717926661474377483736623746020207353840348230968767789362305616789380673178566313716353870471587401728905272491252082716893043739822965883776322658705827681347353299478638582774381654779360985613156779341800020147580424559377378303603956313491357634013503034840739927578659534391275516020753086523653852745037888597124866716500398774192653741450111604950710018649301535827573069553026842287584834032104779305348522095490792573563977027573732045507991015818436798097731303516449897806847700924124658901717949986390152345242314464073314623970454745260504301874212994382125706449150735469297093206380290377591188187390157910382794684926286064935577057927535699984474878454484558005063460310194327718272203125080977502995191976880246589639811415337135068436100113109962982510923400768862681738142858204141106078957011495068943086279652602887953539761168458073043529965627122092196855252288491697344907527823409037934366431756882408319294978354314731449399148449444634289657179655332850400946759399635949907338642665621874810726324787243040629049467920253848591539802660863028206837106819258636756161674883003149343012810529959988806188629972368964165204568060779510100917746573081454691925813273129673025592058716565880420339131539744159172871948757014262221471927891106602750761289442732242913669946659270657251041936310238598175490798699438924388900893934634121382813621947180798111450300020433901579204393125539951922260908899971256309233027142912501440398187050042025960878087081358686649017724447369521944670349065022384096930518259399680394210385832160164007694778919242121489543593744009993796437285613036289431167437089467447379716761820864159316835618424004845427076218560664395978802142164316651900960728174606413768465552889186181960348825852074845556619089693189055115991626908725698821763884637459550647377739141580667407665009778341493484216184403838831093760153938893631063154871345972529048370368834150168607515857990254115319535607077038149712274469609689409530526009808174927009219332674213887448974859582609816278112393479338277056197406663789713662110111506206417832730909438642104434100156848794624469675999352470493084992705731112482397592335989864528277041548277629085165037960815057835098230275874215779597790045920608880043548743473529828147036766578453926047834167045941769174894680825377283621606685686911351945238338908918911109127985145874140765028525906720911115279925914212843554397575899852207175909946241446928463268626340215826602498292115869480107657666054916190877864527586671942368344343143419381233500212897771314250005292249716731077710017168511888229988920847294675210622424553471607991208322047262682159688664508167350961643933992447751146236967030823020942646253674913470340742458766524088261910336251980464113711612273934979644756701454581288427010677196263293691784822862791205618498280909007323886154644578857828584097096047744112659161889517766291662527168721718762516513631708979617646484309698655020383274990369013956616772453347773594284105079107689335238793554981878467812308125958197651326354256394023461702890360708166424177501440151789871339407195406803684014377753823023274168651273314467179277067541525937370934213197597040931481491994889872286782267469651931566305291459571361839749552474801943392794936563511497990843542657131020197144345952011778759458037507874625180499505221398981478459503317862578489997751009183675879921922826055038028507810017854415807312470071381244813199018918287915172974806315354184027249731986676050304698921400122077849186541670628894614373987362169714665740339540354657042071325868663336279283212156148810545073264464398983800241706849219912974800942850816694356492957834344123652616984823031940948633410216606988284623109833870141892807820737483205430749541642896324813950945589933704491826186642654150819005827072358841898280998019151035177063881643966427934704377364802695785368103679866531939037687765826608503687181035728366643365057717227866672879309080997221922188813671309348050105257264157381340641178162104806787143023891668115663107287605369457537784780650585029952691170323330371671960112352344407475268128928355868286840263257160569745001944449517018066181081906441054552466219974605510837665828858129814451526749038022695678115007030523761609761607516474358393341040779805577229347759913433136721597866105507342278371167761831994859302758572613970586584709868667953396094629188678055717113687861007855007438818571064126920509669914928942274974254510850292688489395447482286306749939427340324868374491455647358303787886059847569183700454233012866275857927095106789690533359734293614200328824671488045835314413863079762659740489308711076885123230786079342451220171545580184169216407608957713287564519943138023272075005128755637620339753300605391520811588010542944317855589339824635645831046924158286611788490100463414076094998214465414603928375102473505894407349196495403702722453457220124463687003138483398423091832402490157951865933785992829470159857959196859838685981944905441298097484199553689636996354717206181813585525926232995399169375917092428613664218558467667720623054441488582625370532082454374482290302780270657510380017108817832818651459865583258719554645852534197577697821772923612071333641240281634970014373150088552712917589196082897388980202176082104877545001333613191713197620856414914813796406630406540354290848751446093045428797888157247969800565660799594388364820283160338946679044511365530731423327605787108207926760439535354664225367818502682922884743863930395837400973858701426510863446204705175847605499045727257503150850585856819746842929041706716614133188504384698079735601777104811768366410779396794362026848191177314824089976925551288263145278012643813913756963948911084647998499767790629954544951573178700804071248028333711170264272301544239136020661853406307113082815207497537193146840097106225037195921638658242822894083649272628245596051552523505912078414670760567587367336189411174276167915553017199436756847928532673226578045593297864425666944433892545689917122537729840428963254728255533679890350772231031642222559368662240293289707900774962130957134962928964929387875975644766633100100120853804913657780486947710046538421970875553324956543022798404918623196790625317699314735845280277782058867692232477965323935598599179926338256860793129715306595539487832777388807136981497464050662517514314106466975480788825062108036930301495236024766871701778304594493982135466681201891555895109323779106639743217171528610129007333518011331114135668468007910399622453150596207162070402855157026143358103007802778165023775172009678562401690788151274926741016063023195786733309667419533263179154869008772125173072357898092522530225632265419023399141038030993435384580270680334442716519277258234253690592492756444995993189337302024156133921728688211168862565852709987290601656571088073894875836169521706209563268246090399618378897872018226870237853568344181001214934617230676752863599011280889100896473779245979568825007398502380775095912981555306692489535737276413238566846781778140576387723487604032512946764713594366594134553106314069585626346336897310651638074355343126100690967453765014405198118349235318871940799399909553892895779875047727780327084660936154885596579969702595623280284617474416482632048724128298949478102988228377461856185823233466718586883495818421919438832220412925662182136162779449004102238014024216582366043639132312295443465694982722206790823288070241513735241623122747757303256124704268544338532247012797778599783518199543021487594778160761885270838202084834997471275528202579694699665538193959379828961377844300795301854003696616611576286812079579716153560662027357626724712099348262911458725856610030202616546006848143871460837279792596145993239211017039733769873495439047451665419547377441161880916700728524973472353480092459473691441023228343634384103720771001346205794664067075309824085550357688699700784814367551040154533652214918883832021327917374952250859104094126462615872664616191769631733141663374449384885148595135867901870079581736475850407096563444530063108651340154568645460985779376822846423033101732799271214469555313966505481727640197265790621953881325350963250947445989891087859016969225819860487325161631487225332086811525038778390309210963973140870146326277487361999251603690351640181322863841015778913834548208695394911416541921224410372588235373528329662254040539599551254188046955347016927965818084221691146779495770903181471995224200489058855937464416153490934682109527381906924934012585401621298388823606711299047278538251093221267600863567887299111060647443854063130702691579329114716835748930860734176203484242255797432510010038643688160552466827732801481669787349633209963417237792378830351660548716717928740011191447262456712470024976224582240273977070270235032377124169131491308448027264009944972595720923593023069927300052249073651419777811827203052590605053664793101848708283976243597654102454719021296462440721878685429130719911560221343598109261278099244929883532142115168804430524223133517203668759109206121817157215013230491503852431276016026780710277905987836302849099513323332565542428323312697082604828410911646293553079701347159992856426889889700767442334648965004511482489448843811905203162023956125155080114293455938402258904452354916067705752641775197360904402044833678818915689702778936604499831675503334609974345390667968123798331363984458622049182698598018506280836505817585632828672397021647037926115754368783456640465906078885859361572607337647947362839418949283576050483364494011349865491208210048132550683756281970256869699549187621976397204502790044667563951193761315600645448648552507497994208500289544449953357450468366227668720824831641359948030706016118223091561752595284900289952934287376173510267424188159371599489096979222577214401390912722461788838743608051967515303147911414335732073658590493042773379844712919544464543044009597518309741823376186337811529128015178663600901647697454495895732314679554993893375139495643626014549592646737347216021885313265446860088537207722134527510310595262530711102355378856916499591169220838887707805173543839856786701509637808868647575766982532354044245428400882687477770328538261997625425819929342059121797780827787051185845230897298563876865112750727634100359941466012227948957495592036099460378048483855259599108171236282744204017849802110317627877887503036302263616097666758010603955547997874569981579733423399742444758845313933453664591755258134755046344267161094890817996895922670464402169176805100590718447352631235416442486477743878776517385347897501402520406932991135325561481360435329683129289912953561529040275913176773412777046365308522132575486307933547882996383406999371515422494380882406473326312335046138821594795169175925450984809791108923311377895396640746083457300976511706075241436288346609180038490635692685329640055165359978579130606640474557190848662504146276335720442508766033207641200276837147202583957757254830817635228170657759415327083266255391096897305850456225936898498975622702158265265280620025184416489819196909558212078989726717646133800839566487722019320463671881723954704930209279866104118469570486847004963864125953067376666038942176189387542375224018745815972284425229079773722925510180886739908398854921449138635625388637891615918884240512998193651713692591695779199884949414977115194315755826307059948575863534749639756855970386267805400720089745025270519397969812529688311916459045209756305283373094860238329627213225690073767533911168294719812770574262437522137582503200873637532046450005738917934659235577083622041452850139079464067246673601827537985447814076921256085694481054166195675264750745239025451705310940662636682474575734607040652757535777432010239133411381357750332256114390097609946952139817702841461088413608565918393299393135808195270706927092760772171777909876385463446024051690499497747577482873009339789406414736945719850482990513484286707099150933044579663919535589147801094434509827017367724097904948059288384657526908214068409367522488842466125605269509780101260577282287359937984997704573176117586941984674742904864012319967446222686363326007641107029348897236012621498459684160318742453158435205489185904535694196446063337988493153116954758361115749766774070315448057897817050457319225881549431143902579345049989550037270423618264568041589970013697709364618431829666069073135476364512034680880448544639479881054680984967013179549428668138827658444650585179771236814267458547557138229072663460316438137501465429194535993436082062827907253188657517973424574661225027443019092242962776936653158716809444242786249840749466556352680450276843578211362734069435616425153792322466645823710793214590444611109221070397604565101012869760593556579799723039393868396179918986917991593869470863242416010161030988737854395677314829723489659476714272134128400437621066020055056620233395195755864512830241771428237157769328767978452275710423728172468445461622447270366618640546724925014467120456547835726921447053879805427443650665491900369785230070372006141837257113091116810217228672125895948574600435329503311469579656490062446226953912511252868037826375208346201091939205299406735316501758378263276410048994464890719508214784102083666996441555489973118544459531232788198843519364669075619174436387489862636276503027206860925188097236088479380162529503922552102831859119520952160308797092230631824304905136125178526678309896484076261871121193856452332588015635845663256815365974140063516653852783302799332761818731642928434366351615663255280877405476696700018814831299264949756061744994556048405651692066062944190747116474057556195518345387406404646634465233320351037784476758856666609017287520982244711564504556724311091957346662677919503511119124849140645554352577254965663926785221917623854753819710831983228483946922294953737493172577554258096479498589102686359453576135514660375139149684512296745547842471779306074999924871503917371133105984182400457742575917866712195051742896119673898889045793126077836316129782569411368450788843444978664044958957817797753763317503868656921432845659076387703508545492288177459213464479036409671937884800156599085262761750977394016437406423215378834130050262017131975912486458792300685002533813548915131998471093397988436544604827289154971076037317445126097171706215491523093558078456283921799509366499044096091569942149387112429146631205469132238606335268740464186976497513460031842898257475120258445983103982014060948468707691618383086238789106146824197283200526150385110681990583517695632365696941423626101521553817250369391988202927136854440106294367264512033344244808295285077865022358866847987292336334526758265461364764488099277633165502130074494529895433961752661174901691213005810955424491226738528512234383695983978048397524645101205882674283063999608907655734436344801490488298357189816409645101192898539876088229692264354208244568412368752332589778385243845422759205676092607958467279386639764013337529817410380083971366987501792518889005096162725302906385122448156294734866718079216757439502335418797146370341359507068879603101501646447422392328672923717256538429014706590688672940694842542715905205340933901432108131385458259704348580931485506339418705437548201917022688231751090132941361718770058091133457961642203012598022043107382966864907037504453868442844087909458071383896209544920759961553665571306844046952712994878309713450788275724844899897349703962246511049877700417937126319866550424826450427132291612309324616413533039167689451483585692702166031906568999303527296694254093298585047142854083867108892734431087363457002691119243249637729822940094402075202466206644738391720442575483401453940803546273409990964069072075622907374684131198586578798855914252147080351784967358936933535007544672324613125258268704637563439646390594790703928961259764866705690718158460299360428566416523782711376077456210903179808657173199934312817969129429620455695201243315446083595765650783244672112585007760996890714299062146372250183703199851692200508139102053789839156229925006468735679795406627829502247459266561768688629321162565605008454294559032917372009820858817353746878318206447022686127649760906343394156649026426219449599972627879887420686537748400124027120252747334436166813022720475458702704640986434675736414944556040180469025649085325167271670951279005239342170274303288614132330961696475560201838621599787236096212275704210996873700071225799429518696300412954188779628724093278461798048647907699890577733886055838249114228316374869287853814814314622428398496233785577350860511010509261293230994924741892675131618818620753257403868480696490469827999122161138665663820326019135968402515649247906443983330031807895236961651840561410338434799376178182100474351909070654806403205691171664322099215471240461694247104315222205104885366382704720835222072281792307724378621462986066830039443184031897119593875880719811504839775086249284520537660993570351138469597842959544064857515050620849712281233606395414804523183037590392304193129358047025322396391151279375936015140870535146062989951940745755354886861982269324695538210219472021248849044263655395305394353300405061335996832016669879477207952586691433189909211865226058496088149626836546723498404814381094319857403683774663709365806373392945879466445168261148333459808948132301423449736300081770030290154167401795744361620184220760535776542316284564276440937556897155378728695987224574072558628891627542274001393924890937205554561607842415395618839990558247974029707414788143572707914922104355774546093490057376815968281968019771590645796605754942541814453299247981996657119645518856556568121513349098046580376847618266013737175683727413061704644380829243916537132963826165307231060682333889999510255307327441209426994137920110104663208749715410587445826115995906877240942869787594626942988054778607764580052294075703084063851604360593125556585533123116554638655410300726993447731181690786628011955322480995617127881556393519012560771128846947322636357783025965642326973847446967479381719183498441201028423519219594794118886452077960231343063217174354069248862375881350795013019542125685389606693125427932944450460414399751105930683075898666312089709178673814431062673285729135247335737334139964981622560564197417879844156021330123029600421489114784857526438625181429619136898382227494155863957874082378090383414087929764451188880233720098864012236174176430506370381076927834118901729401329462385639308531532244222768818571728893885168650075904844157097366365393941138141433007084179831172343974321289826930882817908454608352276168839236706701819377906387518688982678985926122487707255370774680909173812195568154246781758249863590845775282210873370947100534470431626453265098754187048260408504943289449671151155640450375992218315315062189417680797400402678059163735949230580218910561624590130191307342309220118774890541763475234787205095750830124580097608944902014228321517081786382971517875410232779377854072683639518037227273990724613281166726202385362958044768744894558935561294166787711514445952150728011245289783898892439805792611339511716337272476322035613413766554936091076077542886394153750911283550953891017569927348105802052447498860656941406880598157145534961021164041299207119157382239649687900615771795957511675590848192969043559344490289369648619008661184836408445470922988082018696435010241658928067289346189212883998058867547233822662874674898276007213969179081994180723645143829894301735530322511478911846799356943769256545351140882462644178781754058520462752091194551715071532232290031783786392997264579504136224307388747429588420386537963008878284974910153671404487270605223983274654434529356528076960477221503024060329960820144287406646309024369558220175148190212769591948548065002515966276672115626582703870721458114744697943698506765768823503506327908552602752457845213931189712195956022277801052170563123963444611270021258672357370900902467406949257666965304797371427626570535957448790876199299797549154709567456866266693317816026949924563786133450401286482682564546781442573431384860066826797672708278086896403276259416788405714594114804629164881285200102610561984527854316767343019418002873928094615194818546866310990795150448813365012546122141354279122839130369472625897800273316800303122198079222723393023339699024932381363017812136011313683103886773390012252524103762883920011468747397830196815162344845844170847115405630671221502524006009566845020996544235778554788006584453063354586519748517271104686923708210374238344516214463591642683264697674851191611783934195142162634345728069393696716440345231117981331367472558103023300335647091931311841549327154187214539550089621519955776480953224728170568462835256462754305762000017214990289645138438331171165858417764510618582508210472454698908552605715433473640776605980218446223023035764928698353547722866911672550929264234953591129778086706764009141760472511018422954289469724271931395782511177137364661288610993859615446366855566406324240965511527124487408138633958403290683016637505159378894470032446794442050062323805678075861405161794915675878485475379803613320458867201313746842227773933830101592787382664035207938573727331878722116006978868491056887673735468207179344205169186912073390602304035953144024848275524988496686390561518129135491333068919805095831954745243476885587738310414344539933978264379056007932577903268772389335970408929063798623591326882769120482353226853311130949276614545789111470718167829879548739779664939334049995804451114426378780550061812019428565801151160496597514709360848244784071510165688191515476308537089917774950031546779199405543023845556843295871228070339303655080520359026902225743269417733783302077850881645997749984355147030418993109278863628555954986664521514608322432702939865354711714611209786446464432561800235200048641692809012519555879677770712014158540324292727965139982142625427852383618248974400837646571991833956603365094970785232889745881493347730994863973831820193244687919192275981928705919005907540673571852348118683464347785054157828224490798584087005861205284471633587772330438082709137396889505684555352326182211102373127136881420583983854747049000536093865761777730487830785597217538818617272005256836873008672176915441262877549503239222116487221786152262091124259237746705501612558235461544208744584214964776025595727402918471645315888525882788428685588949650842703942989935442747557848840925342436759646126543810920255629982051541480193747004803579667745874100884131811872582385785448488816682771330320509148049902706338669469099351248792271005092774614149529146261051764859906929923817599024416187949702356571809514425854995765179296210567446002214133673754807986035969594685698337977267285287592506044418464357782403623776670298728323706045274425550681518095558886835891475330457011692173081904136821961979244460426499343848452732374619113711082446433501694801550253284184628733492266134568944139002470663355470788141605485679668656432669813031783621646465882083005036445481292288496446164101250237576828218945511845805957320909394620648677509380243791289601800827940474817422063327914712842095137010561943271762928685790909493218055568979066286289154737548673198693738466419585618899770827990016924649425190347377703988630149201118352837232791996507771558163406176196984072223186782701235403499438429168556505151743837735392032256115992975687965574856371399849841889818723863447747735515013535079191081808269895360125247825470432140977846932329438014725512584376086099814602199698631548473576292080996702231230779999766892614937094813131176126725029020251125017695385831757933248237475871601959893096899542945715238027789223568504876418241391023269149165574444845124608305145787417507387176744173551101307645537897887522221852058613301075912720128415816099012918291185666715739299809291799149161000466033329225776086756566635965341818542256059884318442721810942318109063106059677332784039505960669772102777361411827206434298538442465877284718517883633752819325425830054996146148373504141918616198629106706387911951762050556410548148530782364372016539996520950423890411674976436029024341956762244685142089456568032327777818280402353171727161613847452643425617030040388071688888421475795728132416306939771904869321017748493439522088977977460641321606591235428730663498564951384299151193754156826880464034407400319164875242281289908496049108875248189766295443946375362198306085302662976776229728237088410640306798395704550798642556241329569706903126069372722704973858490635481194665353366026431535545612762002245436501409287070103845024942299682469894819311063805848963834966842315468958573941781004780274310243436170639373226671414047645055320685254527772713379959897191293351095335218376237814482821238983318392269540362944194447793933862947820856539160276865474221602197454162503479486573308748696362146050796657211558568264712564019832368722180162737027408546123315314874653193936261343872784984098267899861969122026697545901203347487171527203423784853201997739410893991832399353436083831944835040717016050019719407955692916944124826846029055460248055663749256769023585654963056305499094738338682002253272751014765382015718968917643861760384669147127050209010166793143538898179926138949582056843152542717333984584967784219554228496937753821419875398362804151385327095150706778317618492686749245187887825652388078755933987418992394106466084284159517680029189967446045623476841746284361490524099614609132990782507767172994873799300497060952190291591878815655029486924994826388639682384956086850057999208125916980957625006325227429775722353244646312991916029527828387808637437948487816007986691844944952033890911819968400143601937093305472219047178616199521109291127917001976672020216396691842224134953526405415034347849373009481075000992303709153882015508200330120076040367400475028238121723533105469837101009657554881166142817419714224111146539649408810687135316799674897427937226351358103899882545160553672510213641692900321073122343007239955691422524643012627356668178228590169033995255886470851754284397934232749253399892584039232079835993252157435842523037436661389938632000800645747508807093799846274709665708094369299361070027345381568480143981800226497961654983924247214953855166490613388699479448764070625660160551717891131051578981248406744154043863432180804960357763693369650750249675465965351715008599750764000455954263701196268335042396940932473254073217465365771218978633545568241703910378182426567244157818438494538256203497811749471046589508232140820478205399922170830963792471914357052689273788296301720459841639676597939924684512021673155759406108501108401501493958481324314326483170638352293389835732862962500645396532323409016634553497614539777543545510180022729878166610572423124306235039912669272559398387044682244056902175272089059731403171949939375760651704430817843584689023226409067025582563156527103991987874499600566965311694201789033319307912876404500245292607775735544830851499121604626040796635700429294141521078517939512489293113108723403687549333211997169415582242253234526991651484270807496498243209108709130271922073605282398890333776482440248216436744892838932717872463012952137775840656766503422548447952734389296263521706924829572233723726052121486755901243751068863616862068481075325255190808700823937566799300052564004105686873213457742011004302127479640462677207960288680754533284461163963670296167636106120956409159039226759772561277082336910179793240276009477905049390594990355097623285524569201492338038955511453694537989642439077531543866107961725493579716448034461266623538041455573676426251445905719258022229306403304943177399110774599480518484341690301247105284001145301170159264176031004668798434006763661357541593810739490233845959978566490063310019258076179659274890217308818654512491561008456492191733984184936400789242534005288512740978260728184499362334439677783416430328617074655574470958871066122859798438328988827786089949825934445706255208466693362073645613299517534649909660709934312563597490296567184680351887876443719273432284967575348743806058683938732087107123411960330893060235219350237964753015141593728621182295259067018575855904869810336131061953704410772086023300066943559822989972003894205071241309633012473989889865016134460416369764129918551398564133480244010903820420980509818816370765602535422885206425047489586808991794668611719325033248230241059805584766380455213789323057235020097155747602593772076776087468148213452253163020878882398535566840846201887763338893823940059693823475558119660440536601708515543140928633570921594481160175329658341333471773027110597090517811589017086602990160512479450702430123230670262179701141510682002268139997507258321303561667949126100542012864532298006726890009482097075854102198848852954596019747306361328429698553852265238161308896659145091248868131259535362960576603197504295041188439397247053605789479862831714003968480764211909414275681202732454233195931119523950562906226110099643989483816464487458668307548577853287408199375727485219741371809429677774117222393641356033211909334407556787838113045199845148628980006084838694206218527192801877804248668080299512897034732944631709460038595125453386835579689058465172300670448889684061086304061213515520387421392844962022257546585820866986406049865542588590814553099484349384273384217864505139854273974290958570085614625618349527002281417325367653979469127529747013170063835415965446342449683526350594853447447210780561078108296494264788100259793187756392390432917853276342037522975657527434082950845479470152452608993138857831239117512692255667572885133404397696254039311749337139944952935680106037969445956859752498772673480790732676182452335521216214968023449292542886551457337565576594555709239533428142462903172781540399834155641983771801898211247608559555189995062073007140345208155033298149750702442677264360338737539731484313740709266544922952042319900734594639311996535056807332981486584110919944394627232845367711284847362246063313602859105963523719387163459869636443906854053223193152413546932487576730463381703029447983522602051814944458504961203269092337527162355133526234320721943009358815033935989744933526957874572783140396703969100170734149325310220632630169252370180120244226884929098195551171956120838155014485836571665102690866487173238190148609924699131546082001992705047305688761418932981083102352648281081024854502208757221283441343794849997279202583543417204425984693274091417821439492801799745659873698287428268267484421213715468232751128534165237031653070432582833721123713760969593993754953622322221974659619332529074042487602513819524269739101756371975343004479617825043115331506758256273534347625253914251527570478784376788524187196634624199270080257610839274976226365490018653206454995155802908398513272627321967284783025385221904792786893895387803686993188466031043633524373271546998988111864436701140284262026150473882358997472814933432570654746370224518872890612550302737919026403965774176068989769834566464705204716359214483070995843064717275076337180207145974456525141885050371637738189029696852844092581931744100555760898502923271016008982572238173945436985296547694901873840464656437307131959011407613174282203883313602970852614512349073071476245340502454237636666855757401206040598869556301144154431416969860740322078860031327905539178696741635552402507676530856322427378471497460377840646093468129918719028927597630701598408877817451926901476910300302349794585110001808866062162868011109151161040983273088089954337551187183173786558776487358854490366879074169182538313306362338205820154885449827883821742437580549238159729640619631058215167091903263187309338138501130913327709303425112210972155056104913870504262198052602476116075059710379436647715293534917186125066116367383304995648787793656979112931958782777740601075333724327900097324072560703888008711373096596344570960411750894447911916217455169709648447620461741281545361284226015513015895258628069570639244435478023905168613385498619266567622760358234985569192248906901164598660961567955415492157581283540920253931708073781465078832035266513457070655368569928112426567084480177864614974045492118431227621845224410884715075701908834950224375698850494542410572662460945832095962572872030994776540107398558069966198019534500506514501054924018861089134173060759238439461246569861605609094541772907364009391321956768364333299619997965424348026569406836986706175874131676505060271358825744337072164588195226133970545205234412809231730650519899545028585383522873787286982917275807824209826106060901509252110908989964389297862943014111400676287749920781723794746209168998389618948630773060274910267038839433524742434212367121770246101160240611185716870508244049162389434350470250813649155155104327250747941024737478192265205933551362553018121964249924882129926017740801037198842125474472160296950027742685077521758669179938013625842241739856076699165432757061230452867280707631894705895440618842131571380033984874086809414461845854230344951448521053991248932455486659305335584578277144237743385339208241277632165967538326650643063880695569156202622259469414290079987698344209146999897956832667090414139806863332515652569687878992257432796139643702654314463933379900081985753079788176133743609483928302233803279732038653646242498055114022469226478931592944918040382983649034888638697564414855608560537177228737148228236864278113657203947496906937239915610036828075141178473782562212775995916775814038532986888513655232313938431742258535628070191544007763016347647781261324380248421865669855274007641051190109545289838256348407045580809052214769722042873822020644511165580202158137220466347663335175617990500897780885600932081454176443903235241939731547218920920202474270405857913543792600976807636298756614782644338926121213456594456801042227616524183764018673453391488079001363603528432174780401683146726188067936493046865873646311483282698049202278762554540178509177497728294675692935451666098641948145836444789096038304582853698956080665666190360310045304720024226393881572068674690061929873082248490016816348921255433754447580388736158658859248597558742783859992954170991722511534025422229692234366177781929653313496747757220978430193818445059850750805649483189679220583434147890510257617490997582001234724410285079412318437601471421378295110218735899391708168680559881335469913794537831377114135491971243465810931127833266217592227589369934770498435251921073517573702005457345130587313221438462087602775184053489371323766290711205526949053003888228042048082108519287610767728145489279440322723628412479431926441924307968137038294820058697420150132353198720519920353877314215882211485974318238790989199325393415037876899596958043272517776898661258893954420139171306418862951066526896062414520844803403474113314880043138647317158446815754836531670512601746640760728095967213272942245361042667928094697735836383498228114766916959695573277028279120997926086381701765421015111581109268328748595064626236299259249694378182229169234325485361604152514206369252147745980941988926814776443905376111917463026074170414492241949800170623866816946607989247516971850009428744446624100586380355863065063609572709797349307096488907606301907923346170197456656248712884986738267854626894512094622905482754233025173213282785316517586934054111845715104834632832008101152525413119367954561261216103197427832103879548253917431409877065257006037671968383047869291003267483442066840667351508858609166297657227799692600386827334964187583321180809168618517134591156850893149404481996107250233789677989918872582686705377574351246508137986281348350664313246627092452365469835174070426513698824143308835526319454754253248458840939937846318673381336610310058114645515187730501413081566601806113226835296397114624010498314846460439520061637354258469826052125453859150536462014165930615241377433037246441039759850015689210279093786786031851767240469599157234052900381676072424770169781521486151947462705461422112569127225381590502039583051468585003602420054909455026826185095875426210973991322095029548958289174232981343154069257570588015736545351789274152712894131431826947690258885478659919689883599904388542274846947311875197488771215019159190888581326376998121590808969182335059079714874613336803970635003695553942259073453693326389696162384254104794629483793746381324612408253069026914650215171965524256788471272297526679202803841296615750218468110886939399252687943950326728700875818861049300859750196928095204823757138945438844241621756626373518033643277401734125942745582026754402788121409286880412030002270631808259318676648149044725799446704594238281114878611771247129940234353193476389778948446256041745478020529553081502542980157090392382147214574805502696844438096038016443726195300440399081842658748795326360174773439634741333029275581820008464886098183291707862124370345940428150160414770581856441322231887793921639889612736992400225160535128293723655737319319389834175384397083090358533308571836931136503700819056545043298422099381490045445400448618221405506052871683134142627896441695333980296879517536667847550967256739077347181693399759001189891113962465206160718856491192664269401606959061610443780149866699828433246525760882571010899195911118083503036507974281230709395198402548016944626205923636351071990148156774400012313072541025605601593168405328169973390707153720880901326541540840848694648513376227482849916127474705322255057918337197829980217375914243447148663438084599101392554944659667423730119121569104847330698050817129727313806629229678493165707003108305567889791232981303751031746783401120813530914660733675118762187223247896837038279501239544495396758853738446641347202470015885201761312154814372133479265672244691795625863300306994583628910381264895233888076384381880921180739792768314123086880946917176552671971341129027158146752944276252132950154301153369038922138410133788327539359202090519420939389794128938076595308702735507730422191143004325668462407228903402171151273168905339467851873822784851582247048412773926828056517260376445844006828466737354482592496916214239033889318117011389131501922285410738181452292592185148575252476183848077583829866667556762888310086015263589358635712742177728951544583129347098008471782896727341290370760715970897838993427926255738188956319405072752087325999456545608586855358263133708493406413934913749179077218228531160094982703667927892358788431608491838953362361576576833422289592702393915386811958152996066452081886184389697200189356785489494221651236101718473760460603829616442733117304025869985215372164775363206607206123292932396240780047428067808124542992795093505143976021192911303780217039508295099069944393911955003407215741480177592299719328271630397133938003492679133416508911394642479661320947250898195723750491133129166984273711489586628649336133970303624716301283210070841520262768996306818969526666944051675113293786905003412004284173942954144584447541246771850871030194976373064645661863494065661595559022203881357136176823477846310988547480314160751831305440342811270350719599014203058814923214884129356944529643170313190357793773919016569125771780698512180115203637847182328949534446551462678468202630396663019906922610623240862574936674402658139719248013316060412804309403011781839533845697347778755496505226719892039806465088098765959904026835458290840488743590121024857071905695585182299648163245701570374833507162561778784026024807954364314277409752046296007705952321593783926560584763183164539460869129139029707529324575283112206316530779455997093588019101795478468222029813794967339008709934835236592521531747809149296359576803641645315741984082949704240390235340265922135259853080332431785857740605690039517496624783114615470747101524109270990190694605559239683056148077265373998499618880204526136957223089073682258369725346732930434907962315838626126344424086314103499740365508692160500462809793942595737077522421277559627928584177313693090364594363844939823392918548955367647356087898997197780703866209274631851985085192685262453825870249573805010993816323870820228564474021890350370205158682457112552023153087809016194370538717681644829394491186589768122858228286305889861029605283254438604524159887904370477377371368502135393822653949023421710889783710051749817597020686825702725971239990477731332089067421121200821839867778705656294246938200423781349130666302875875209256477327316746369664746257061200346715640903478963148186821345980612729682565455767498591972867379753810674217385801948693932923297854556100790005472533051670818549550829573316453038966728057387828058258833867439567213201612236427190239990318506978094847298037705172000913056269672052843166496490463110313400903781521749243406714466245262478844479703267080920479660215253622977798413035291824916677547333861097577175208925700627095398419276724681021271464465163618290386785573635507001183672415428954047748343284348374756430452744506808442943288003263534813266047601721422694003496285639702572562837188280089547602386663065497470453498437664038598946458144805319509199259451498233613653904412316740712966326187042419884078656034688944098073565111719088416213133703832847527158014023337408746055090197337083604720090201650957663760378637218832003863900863187002521159432783932847926470562069061394036488309455202394372760011556448767844754083561603998488513772923034323530097939678336983009127779979497170462853141004353493338226748496581775235312719601590617282846213714010305334392027034513019491070344617456577179219132414373649693969048965732825756691327645310834456871594499005092022404757994214851413924545725326078271647130569958137234896227241015135814633935985739176240573446271578414318958068767448800803490104731595819072414641729115982896970259377776750067320383367599920898141119898575770545690088066735105347037213293489055455497205353010557324696610538066099500702754752262676383165272527915483314536193916719551030251519417178123912448276111453221886677717673417406452378993015037104211023223884776937314255347983888883741324601694849452299051071089558793216205632208515653007407950559249445974351034919044113379156636661772461772342505771351604426630343126850879654103973473927452905140551241030298362589336235834267865532047780753909090946014043806764382911478302964651821538618920140071149455186269299132473757299220611525247829166545756956638325114786725256097578274064438046070715424617738733768071930679719130310725974717095148873747469503491520242571874386619420798287288310571028157936402714634532798473494139024208229738660143735485609080295713469226533118264067965254434989996978086293470385536157001037969986461806802893285729725290142829019704050111709396040179940077279073005957406453592391666388114459764187426920093782970522564055698299485145116253966586742236308393508148778211469714515626421839723245197256393926186481618297743853241064349252541686264352270431372380466259855686036939297507794006992109272687025326458806166692255729635224420485867181204509342716663189051926245014908460068805223509444346582740225829051295030497996140166077255644874614627097868897325672101929230098245476543800864374001097572366609241372318680077447626862945263917248970267674567927348695426329629330779938306069517425895653753303319825137466974625871617196767115785959129389464190051959423116255426558903604042611724998909306405095319996461071997051693828158842491614923639600111384532591716540276495476617295659031279164951736029421362818726459267767827689602966497224763374234588532554323573191763216539724350146857623916565043387680021015694435823608634845735010253174638070912058156818796838583945104236795876705668608026594829523255942029210268875291154369222894717898363306284089773039313699219114714816289438323424291014432554651237764299212082763929737715940641397405209230530964078416316554355424023706082178182299215828215654017676697661208991448060059529906543762363612026305988951007723575565165921971451678367435512908451113629555953087586708377800191996181655683100455702282789191613024036183516412231627090454293979674128235084330945220216062668426891971808149654830769221468092724377218327397092955067524792981311566988231593310969899391225434479357745606611269046429656407405419288226478547979797445592299821353002931553127176172218631970898223531161069406848815755289481620820918166724813128908104623769907013229353284450081408941518931109879654072146182757480558580243538161513918772004445850657984792025456944114779663992297905320277130234997864403442182496163201891811804326478311151594681114816472645477617634978713086688756952976260303166684121463430262440794686978285987418395031713942900135590877225577053738582054889531696018068632325879151070588932716859422071560763890785976077655084303731907717669314552391351862236311427116085445804084750002479987582300587088265491462207872672680636374537598067416479448481497389238754728459343875279286766443272564795561569831372462510454288850073348951302504367500924192903435436010856692082942618503883972921380359209785263348133849959272530132582108608715627994119122426533013518546830147588361727164882181498350287788557539659788906106832228618619529827640257722566057247446559340325286581601438651853736161141630755729703799944665114114054079427147537781111425513397283496115287533038864432816081165190097196055850403199345652798222234280729918171305432277487592302825294802655057174086199252370629681498124204263776859881953959968475068012031703913507600700194920848368879638514240583538606896803775442070642716519419088448177490953805258104482473913499622829643783561309374571147615093589594579265351844458244073484489100939557560229105606244845612560043821227900342790703931871075238085638921136403935835401058207371156598072563030772823585173136193707794908570998474013366850020841298191122359596968222596454588321433935711948347789268345889740076030693945402135727476634284866657596679093779764676816301584881677064603897065832759236308140929955039458378138514377201135323628926420377834841213595082140727120895337331687881000034208405761803890377556602679235794264582504634285826405824664704136419947470546611833543879107633145242000537808999550347417398247970896323065778806615087882093271595756544842616883205894028796721171980537283624065611890799913802883209434331124691268141432182067023539066525496563617615132401567956891035488079558258253280000374072431650591530590694165524402644222655346570827097143842841856265032262749319629589024754165345761282409353540627014400709114820954833364938657662856625027302154425979845382948191301499938168390326408029823488774147168249587848181800555206691015613702532736823984640258918801203376500920647729115868497705912814253936463325614938138098819347295892191223730295843415750510217738760027425700671307213271558502718326316567322974165569938789693238288866660475346398736332850561625487738543568830057262497407546851550544779206649515963229258022932661722962213907725474952264621797546086820993904542065712223201937656293829780886180306195284931320849673872332603947486973079385678500759409394786742549882024204154706671982406807377080366075125464173710459356950619561033855527322098109391227546654430715285653966082482186099201307482570769885348946915431971656972247661616176670651988734448966245862862515222538429015608740899543421769517541033533634037347503819645696162086050486414145849222445318556939210460917094993512309706812433674499298196274387393132097040166953757317336392406620673366066435460951047803390531981705875771238273780252473499031335004611778877727476072034257314815970711634540909184231751982744277637794025829492137246161424412299249358946143400880938914467003203465218983727289742397437971531983072961242850269656158846639448405567776686058195053148337097686851718630667649597890678887068315052510880215627001700423292565257755357147488071703303840646594213132225602881837518818002778199301674099864410627199825274556959680616423014905837129420328352608681346582068661120881999425608719239598657559906884794479895728471897115760112663523321187199746658400358021813404365355789510224096323064467036239649691027401415384026186040025210407010782659915044971893946376538974233959444780941259644679388105954017706171034931790601028584817942869277680251606346981864876158623370152516023637181787999034379595511508651454025879726423200572504444194331712013746825419070853107215208512693984662801771110264244563807915882495667434928755342215336739800701841459689064069363816415346937335804134862168236281248551962820737251711644710048433926771290470954498217712459973537949895925018192667009919231981513968720392407813173328822740618348993689159625882779434181259782237468233565569661617070377394245553860213043349364007531953398491086996333561330849820046220523794212611273864697734352984061412029335747698542837985073142302960860064583902032668329710664748592802807062228941198468523711846288178252337801817573627386563385765251145897691425173865797681334553312596108921679675992162004777773660173969815700518930556320934768057520823924709307505648653540147096925863324475352400235795142080886099352369049792716495297330731217627022775828058433099277819938043921726811176593651677463485868115239136038172399380436191370870417832458368707326879275915124213279306924936806725671640937958115437410084474318079847981845622953378315920943705859879306743149584212809177146937159988393383659676333285508452144871734987298280228722459721110033706788519570863646932674715906123201811286192207037816689825406153183076538439839566907198048513952994033311865280881232170777351327009709343772864506905524832018864054459121311179044127994901780460651193462138351820079194171186947790208647877508811872244776343972876005334911972357654068682019368086771886415436808009906851236046326960994085099039694836217157071869815680859943192755078361763106352286244358297577723971617124439000785272578744254553882651665801545049441516401692449890426834573456261734020571401179382531553966917865085328616022779776182844821286729462937149110911635104493201078007237074496349256912189049313573617672737075794898819870814803294560802701424574027992891569507497718776325901218558321168332456383246354264136630474420695339068746180487426957308252892854977557044655307253726535449091655058544905009080736081330077728805917621134078127022071577217991846919996476476550010097766017279646966552244526699337699312900316835211790528327287495447512981340250629138109549668572838779529050442889661515542282376017449137351386273975389837428783645708577787917772282941837862509262813945141402838181071249937085703496006797685633696864767208107940134332689922920321079715285432230936878389824978469977558977758416212889666118309718939561805589888734788223858629836061482819706388537663870236997190568879142001500589327815766795541265615324077751183701666268023336345078784136697950895864028584925040484933796171180328045570796932170830887117625919959435644139714952826220987117939305641225493818743814308084727553083891726934629489967863754936115462433363099267699468701922308814839034814606660954452470388376120831651420100763183375893493999620082480099860462830624324904927573357191805826053249355127411073586030225305769820499460021459863975785058321391016158208938102536640432838562215605048187456596545074877137045502581458868787094158414236369582539050044102606727943451061502477228062235096633157361251426679434140746652063534546583922261146323557839399370970262019162213473885624539830201655471462084762972652574642687233863623153135535568166360519035718952446642375866198041144802521990130259589349990701834644312706805990043256138711210450689055750679076762563050384262622513729065225654942654827321349984841605395004718249856560184731449074269196457452658113570265107162387733468833725899778643672591741155701655292484206315218737915952464483195251598063394603742186735024198039034291728820585693526786658158201195876069825239649292348914679443084786574974508366962329607901893079624458748437251749229859571678125574842331673035806137323872079009336336925742457891953867586676113412582471603070894316874964912571672763444303055435879439672798391605502135148333240544829591240121878313403045929441621292750499845016709464849534409152471837782557600293979425014893421463386758834589638702611272977948184530344423147131244078498214846735862732653628625501039736030179463212553543423298346504287829926979525076211766041627496983635949960324349579121030004621920146211722288584413301742909151997456174122142548151012748826300946974835123007217022380251636265424573166829154744421810027776127607297892368258611620666702210658425698166382179841203878410264487735566199629191877992434897623591813120793421262858085245471431809776763721364584043359927672555158766872926818986466457737181567137271273270691744607683702302787924243821403830439878125470062137965560074412906471083531304202892912152146345225675356683968136278189995449676285459172951332462312686271207307031686740866015957099166315864652238874562344964515990749792099459034313921494067984830272254572430514353045490785504685756559850314186308483486501057512449287567182899127645724607259255296433846454729452076411844381790283425846409298456812175616938935965975740429295571529150768297078020239789169692521995691674357951072811013584487803476120458651798666327827480150636490227523192057452153557288024819586565693666305469970629511442206125550456869148032744860281726828102742488640261601893418136540881702751903632798220382703820898351245577903536165344698442851334548386435254810831284998328941817291612083907139068486878921381010367965044352512042221465614364722014989420021438344201240970146623634385827269296108625255251189212907148360456679559516865330531054510197832165741762682855934691871492472425479123271529093087674353283875056316259536391996859258022570941304541646785723973762668711162282093474137383953097453856228395401248478081748766221827151570135695466014514527686148821945134110598019590863768978510290474547665743821518113451025024651282130788257311518251357320827342206955041620563142444929775785418104799619444293639466973981359366911184515777799264350643544477890786688566763655567510133020392064109944674869723800189018577123739333851891151761529179033570357835979595544489785949895424664715432770670827265189437837948064033422143377240478678694063066207205650277370025852374393455794943717575948222394848213090905392311698664096483735068307724944504687929063370538796371011704409037520385264029625703004417508984780077854740069098315941092887358718953394735828847351202477751441528641433301523760202571654663931351516958028866473153834042344370579637648669804291749897294330983715121568619296541976790875435900658851911949101426075596946536884456188099014507149283559365332865878073446563488103298867967164678135738438860393567548126731638346326081522267743361034256279904458071024372908605563941984409751355348193689894438585629536549986258860485713492088747953260910977030346501294040228602836133422350547868311753104804378870682882815000408270466690072446076608132834861647163816967844605155176165371188763515235927858975553158127353916830280196887220255186609054347841455916346645871317346752404232051378466514548485210827433728001348672450682567941253261976165988765239668887392524079984935281412709665420506976947910909196918431017573132250706433908790786086732900306398353516515980007405308268960241703702326706976447029760260469815761395292209643118412199081244329745349697140355250428613898420598735576265543534721231099641807557394304984758358977867534082777525594534690720294929013861369117193813173601646476625497435511923723190337566403995542447783944298351828774246412327916622487261166153119556515318379303744830710564919086376924643039253332818232102651629843824798894081615315260981783582054204757574239190790661089061726333635275358836728525323566999568627018308121674052801800025536899293369386788116744077729916542788044678413562009362975545691518076713312963755314816579909072931041379628475994177907248909988399465812988705098836726884172624560065468114480637174295084587982931253382289570642635558951957479210047487800990674713490817711659702787400484855846184436218804559755361397818771100160012097380658520602274673984321980195069095331623045898291761625860113602182893530594673628712855570420487403580738017522416010536449207270031358736274465470777935266484464080671832023727942014344723474168049821435321906618542992546902783902394693675658550471520114175000886374437528098633553566630531447427801085599461612399029562865316383085174797943117702616621107506672591136795657312610790687425271321020893420430686442656219088980102687881677586333919879360681779680015207386458111864332223002760660979237284918816522192627682090188547803894435603204243307256873460617370232452680436617589619974446116911030486059055319970563600863393574676825493273026102929726522199970137847456683369278196032684120538725039677338741009430233106594985975756289440887494502324471045141157592838543190436560997944177869456505908673727940501810358913300780225183670471294785839325894520337371154096525172614324582136510949286496372790675667757029078810824521987372794038199950249285273634074361722349146013133741882615777539449981758244493738170620495051672294242853747166776178806443475674224096592080380341627847256942682902292521252384858533734791367159246949973608350100908415999161378048415807766179309191594718856909961023256006367965097758829543573818629851803285928477041372436648951461450501920694469100554517531628065330522640076777089331089867475923631142492119647379838595425577854479230575068063861269020901325063079395192221338609185950651259496621115675247703172613236327036342371720466923617527296437171794845104623856042582227382057466941639979217811594135596464692984830670920142577974238009352953076421311879630325003384984642860363407249831285559398096274868244319578185903888755009025913675504375891472026058362137766642009090107059305338719095934833833029991281661449330234883242862780945037445941996227719259121297396187159202084731553469808229179455741106929562277074646829225064076988440475901917347741466498926352361347170216506656059047328036496824398368514816737296969861572310728805030865542054653459983217996813769385218793864713741529934848299188089577576066975496074257348997204999445924747765506558813098857791532212534825426618429008335815330042553324053214212483604361281922172957838444800154600298950501182389646309785607091078801026493793765650947187932258338844608895546152946266400196083891130912856890749524410992955918508708629877492462935098430541631892065189010221083687385076860449558367008844971994147118076441320231950290439872981974058817957555924943246941547994050095786346491078935958277278660074156011277589271569746691856720880461585956897392923464608651825973480987627803273578312282423971491807934995218964891498748911954466018464859793933432798169521734810473007464831253068075519706380791066795589876645300045068524334584450141943807605732159724289332940953577690289281327309503733441374448424049652672649123074576028003390297467260071906965178930568460857048624192192189552950120649938297904522189071154499699379144340897775117026140825840144415357391257526878211204779567643328875396972624473187903295250147526864259374561435487996402355502556241286564188871149563905477942768587250411279911978525278635555326054907754163728187879421667567485785614162304336382407650378801560198809577238048798808776868188531550715521356754582486210745365289042299172215641243296548596040476034010896079300019701881603401870668767349301168067625375834101944939599597517992945290138196724876429435303494038404548902069081145170358019381915900539925385499042811644320959810429725600989398297814280181586790336160128834089182426560769657275476319967224533077566356514988924033280178529096715912155922079660592005166471511308401574719857331559508149313274438609677728968456286694798136503135660944529386858762164723841947266752648279780364616646165460093843200963866510587938358408749636141970634373244074406175963950405430230842045311689261869054774551230814292867131454787249367226271401948058072089560729540266035730001659184622869442970735359279779135141545723636680561351033735941605798693509445930764592536435012949183407465682210680243295447211988604208897044877259785222935514414359586661710840576191296480249689572963361908106473429291580124923341595072790860874734729777928310221170360078554576950931364786905913019289750813682069374766244097973906085819570369479562173390922423568787195448887076554041753864894947001250532659549065911585793127048165934568764771061383451657286356567308144810722413625202977151230115216366436175554153777313531260736738451161060841513583749649991446718312384781726612783229101190230569342678897476884530592788790534903105077614255429962938754841751963997912067148771056699673222538913932234015644585015038358971663177969650337608726334162566515216857077375304022479440398754569309976118475950363021128888392344959267003790422257102806512980545469553211495375827664971867066319707916922605079089218874076177663472692934300002854445172960164718901564120699430998616936685189833401054866295948994656903536055415702937086950368322581323917400113357891228386438186621427639112016762850917015801323940797165867875199335922606774097310151174226890239632200130165011170089640856609159641996020206039985951675993361646087251610537383060830138547011469178633538023410741772497712969498238933474609781466633088906239419319707976848862203944896652185530855371967667509635988051779747261793032691283182674862057809265256529034280190882705901405466374700138330258893616017150154888689359105694404497217202113924564847498885836600119303093340504248190948084678987600382766921817190867696601829782035599207189778042923618366306679457260518896053823472875932823011951586555180178283133565830986137316525935030805823962559082865729213865472195779312243359147323752403786908253602164629481320488457398705136724638246505998731146037622534977822103010145429875113822448213673526737210704666777974242250838584648872949096005218614774771519966024655226069621270620854168787239515997826861207922328864955994712943920009967608462614452966881819111809448899195588147137993148152932958251607601071166249515565937202893034513965776120215825001792716582114749398982521641313983316292159116787863114903503708046729113467566457367760316704471187228697777493720498411552534228368936469948659928163890293333295967050233310631864547159461989211746960440747930112114166497492276966387934136055436280135652188591691916012650170347349219857791215599655450788459028002419792836146886166968729406732657944855141210293316476780504320302389291620949699409462681126884776194192988872830204532548355595645610497507526105244255809386273420635892776828442281295814647347367073622559728294372637748776839928637632345393663445058464032220274973415024875765991021519544839141489452822383268148398051997076559268898315447157695118315551061873006768568040571230783243356862781303169868434085520815414852556772088289519403587858372024544781686346084119703605994692042050223895050999054746225247328128667550756059266570238196798544369738430363475513530101422313185966598355017290912266356068396272443084046523628652842323814234990867660915808115299856731882700013109382157619132965931457997811998234263059141198338941256260215214745561859783940816914555513000175131020838255631736162154590351291061800153799212994811409282642152270031879995958336372414326471243780519752445258629866091397653631205034855196870142616427373944255387041040934011786902848317324446696438392741321758809800049498861502455683932136997226039513159990952783701454801275952792565706687603394301212911978505936574394130654178468202190033810503607149529696827193408249954082421616396553900931007144638876203134913407756275562058777480798439458119495188200713205259403344213400124368874611015102666890106725161058423245264855139823924004357219566830736578634636284713947718760514239870777535371198854467657293463584698847810339146678478547087315150429087424592394613261089291950371011825492318420721043794200626722449362643509595503375838171951054431168732796056753298291613125754356825245646500812280522636814611597532119917066036435974480828856219322673936865606254293822490061995607753330652464844307273487208879767292696814797485326374608211517122721743446121372624336324011843291889863711234758307389741059168181881668955953718239958310915895586515510793911051537159282391972723851893459502417779055151515726497570872428767944097314530204095907691738750096132648370745595341535133134490003875280310133785644191147423502245236200886553420535485956209777634859173787806212255440225925273848307765179996373823009096197593801747525783079615632336266463730838957384671116709275064415747632824210968186670214207763268375526077611108988944964673277534390149108961636184144351402764581222896050603815546531573231035915735922758911349256900935607147977688700731954102283427174875749070918716304762388723409696302534078247465097250027224145260335082791705095244089375733331231982030215416350786778265509321713781712313716114212318124408063309815360743763950265425574723877774795160370760254863489482815303352021941346466963751432715280802910028162934418264108275919524951817369371136515145376975746303550396881557703938983487154988401323876915333088608396152038792659834262724317749276862696354131068465624484349311650896687484469347103405348229548440424944548029015008712091167917658606527872481257977534747880316689003510874585681745497070497359957113398345543688948216100537152614530056399124244539962580313280228578155567533705179614335935483126071990025851110866754290799917035370060643683886576034328421346749363284798134599509524459413666885886365358016564396724558897521380576361590214842158335086871769121384576004437560818745484730537879160685430938408101949720610599381353773087430936080254374618360436914874112722209890114767287794789539517337789411265620467480077129380534584076556161636714032813645067389621785209078922246439167986043804019848760595357572978480805364654179647434163208018815226299727917536184190105725391023526100666128579386128482872115114433121748164404005618360186728632793253969282324260140007259899509705126468119851380702881169297470365138827816180181143146872793323314543151025048027376973590692969718888934545315353695151898759688924675788779434750697095948389187091999856782139078432637031657987840807613470059542315330631356291972347631112370126374371698836456993918020402360170654847410448271684991511973761915708006875431889672294915351919561931247877010488364900343071220216932716448737890748697168890556697893495574826859945388159342379901066924553808660356930934748516271997000837266625946091636911918668340876039816053457187304488378784459945641066194649282790298714485138296622770697710186797262748362345055249868433462175825351994893583892640008216042578581501014868869194413913566869688314459862119923349722584933741055324623722317841154042257919783776260572497686118088856865797980045007436559961684910508497230735345599811561675513166841957334475132922964429136515799663255383479450766103289684869876281724653418103830016943452175880854960747849007567303970474979941243512618421371502775616682736902616881508892134935073218269322806605182315763054160723036713898748377933405015841980710583153109134517143956718801250305988695063116544061961806470807361237675368395022824398752860510511351814191973795694693638681274531652810635038346828357384405514229348007993668210804493606862164600676634483031922495893155954045816949724136805749636567933079196367152569807186187473119745962143444787453875567679230213614859728630338941823745049891769740071428842397668062831729011908574032503385452223540337598944008979329603741205460354384182007632588093628697893595580850949756506799535033458370680057239672681329462140754013128286368823074537737549664487670662370586745285605262876843710312085978307077429889423331966599337067247096895252498544582098143949212079393436556802569455922608937043796808830592173549902808187239423500831667258629898918865217070485809184394517416456009022597384114577622103057688690926001961997563649835723155371164800780419034073499583084414551229428177602152104935813182396627678715737149982841408036881971422738830208745015739858523972510668956996234962835492727345082689120271475257042705061118459464718285320545427233451594086986241199063270746182667956011701275258350864738849204602785712850234784675339031318786296649552070645507689584383918676790667856947756213003776080245180827345252143205516063315040369941548606130675953365971680023592160894781404681853314710609546833691621848065587071341055193617451037101599216136199509708650137780533897593988366937873954822789683336138162870025109398023076921640166695991773931224839082644791280998578064053243409137186218853230491028901137161083086808748672381158597421815653709296744655184929287500406515807192028280529922444162735432238256495251742467157748268961216185256399893656944505583510328185664131997626697439111167780948717936965736903761431922383476655463730888517770884496832380581866104908902147878769073115712614123453649639008426994470802551462468087502320398977365460713304328417053734413903893234842503181688302691387388458847942035579891651177287920689338631682700432147008424675785294166046964037538411912376432743868418340633769086563342469199412844660048651217780432768985518402277518098790110696764581909532313211287890901497686946981263359885419545567175712676678837155763126702761525977769925616437210301084993130354371898992470093957528242987296922410711118009672641573072618623927137157828061141430020171114264825848892720722572122032771300998294999206516489224551883661421595958912823752483606217204449590248575680996915586234438165167146316331004873922932262219431953654657677812098448625420396083011277674528313406762294368841354220939496071825983260013557530996909691637349665597450373805541787929382030075698430766954390311872706744220840025986793092414366290522730548733203749931817038992564161674496493569266521534815077105717773031882845221753638550909028760052076444558521723466926597049347060455327562960679060663231026724420595594961738355220588146676672261525390990922373470014065613975006335694487509687715208483235189794212322592920100695072008942754098085726809450590641548218430923520598808493156199837134863086316081775309934313568261193911313197553117878918315599227750248461596706646640528488092119285325699549573270133662891020185295971510209873181846394428005269519090433002235567601977870530906642648447231165417685422211916748623508214055524163362856193729156026563037485196337983124937125125846685449441793989395036130563585381465349742945202428280473039319639196656867950978121194503715184948395534618570760753296976206042126445050572723736239756574400005188506438255472818396964755953980263000973297590967668112501920350862913964308563802687805424226912067084666956677938084288797590663333851918316580733312886410779699802773881216321646181972297993823279225034392320715570655636931529218829355461902365071690769166585341141620278688145206333435182444586927795980466279701274348819999836714161593004038549093477123216230853924966881367722657236650480074286645066723197281356544204314442205442795569289248165106790636054314227622982051060394683907359874274419025274298058005737842467721405075868932757823896493302953931675436558263682933422786679969086201880895596168898194833665683085048883617646031216687630865949198367526097189379850864296154278013157388422626909720754930123834769332599468506448850358448438659834930060179435497954684711880581531834838854670090003623901656750909851974382608917629705175162644632104682240045354860639954363499876179329543924509327532211671851255361710720256583335435269680085114896326771841394897101579682237123237779981704531349779534409755378224041468783103118732043028771398412667428430830099637565151994256408235324995905280936608017708154802977468046987301844281722489133366907642573498314953015491797186038684886416413668203152784150730160382876090478550704679705102972376240049732679654044375743461492630923299395310213857334039465464313803932847546016682894570398520289897056199050058566331681025424796122497994161923808081718695617683355593082034329171118611940661424593023416858928325402281122375144878383804375333860052459837715219808574847409115965605101261021357390877587448522307072786751026934059525840044387691660888998376929711576754644468668682258216315938415334021845430200445567878616535387790068479648161154614774256766434666786165714321395605805106852492930203486311187697906757373061308658049805399624983088516297448323420918709324865566316859988821807634263361803803309370806856552116308357042659878493962774257427221268652608755377034324279721316247186562181502127210015338143527640446743840817921398524717656064532716663053443606587885020021620083222433975474388465690808482297610959890936151291814324694190177542972016826029260693628677593944130399807004856247227074616381708027260932449104071616943112721693245961346699250726493583327369223637207752705679531859869893932974519234065803202897787347160231747227460805571629448861637690049880287681783446200622032710191351233577036490080845554425576826710914815596736553858259438221951358015637711971679367020622245686348546905987780346589745658447852408819268830922777054604946355615841409745355423947767342753050083936054265338583429240886791409368144232858790092230529152799915905009065192474414170910047708499889030338563394194410486439219020225662877398462669712962868737572216188171278212356334904715499470758868040594632498061324505338954523862725524564400813036863468726841379219379578507749890278243158382732350331096708993301570664195240164048025986195829466611465708789699312666194868191195168899785713826088972016502211515000045916759183141379528429240162630759069281025915047690687227211554583699847244222110127830084214948985427598928757962681408284246202734481156377615885856666062870759798453898588853973591506784666774407355889621176490263887730463122881500824148640352512607007505904268551545873081994483614251750096919881214717769429055846364755781593888066239542018937490840322751020634892328309341028237894088989531725707278146698392546761505090113385627347482282653535901008952817868923851305483370801216375706186876378595480214881006720711402705172446818076076012994222575783785152623729804437548974460375910029399148776753477242411230998381469118795725444744960420094875863210496756226171098065703754579778452875550670681333011940370283684631830050668075306247064752243618574382697783983354212993579342251352034923550310322632422449618848671977535580316521471061995841040622119083596690789796338081213639892843731074315823093529694423351893330134370824326438532789908261497650024662233601347971746464208079836954651332945377557662272524462050785169967201989999340101333507207580771040382655836481700018825204873862694727977686819841244971301436744461773836037845058867731041552138029551148294138196811165301623559891014775948075941177157011650869218541147100498530766154450326362434342050527856128683711788698624228453711227804753731921404895699108618357580954983844456601308474652765120152251640460086388254089210102461583536189885561567954555943415393774502910066121558706401665298168145491504870910453636023369626790074204524510787476711108581603883350490730198454596575431151627225013288264132732720045864750400359753884115085871236676733053671651766723592347410822055662073897145896736124428601318448099009966194185512659140312448268215050509682117223862123115265230071316586542736092478521373501526308736450420970868697527750651953873468375231671703179386470783338125470305674216067595718124481724154900677955395033949743440651101402668832339813840729952577942686050980385710038847224848237875870249233921727160672323783759668280655877905336621109097334341997978443348526532435072253360398719460987064301678895409084338318327380095549056808509279132189616199663626200962269637110459230585985793321394571812184970469239746847119409031628654826727816023346641245867553153722069865707588845615920039276376761595539143811410641071280366418273848570213166476675524075009491137683189196875945945767797550505435913958847686279204416073899438660597048755736032076189399290784732570121893863512434504025611153110615981604106293472125903381033962210769101359206418442727572563624499218841929692845048865571680814766789660936346427193755563009580265716674060696704507005597645239753093566926721347565632231052170979726788201175673384420258585856309958277223767012426195014021412415170170625748239199375731539805651844747814978850715687141423536244332730212268108547082779756822570093257014058836963664043602801865735583944918479033626350155432400879444552885841494511564094270922406588405815702746990628262912354038024579975749327018239144762628671972800674151064615784260870892100884337577739685600881081369285756508018435930996339224874822734697948078406477677577435081064813113854120266818014621696063486386935182283330213466133693279168595030799246911478332513082076691015178579716958660185792729967194005523669049880576522883405403829572329495666610618163109789226399407301157002457628374773576308183798161638119079736031587212198313819620344976981620642398507522832773373258332437288216059788610987355191377855881403729865083817511632667454759408345296967092628169980844889010443639929417133550491721853044413612755372740438019661670623338297380240490629825860951393502749589875052807206731837864730248913057905481562736693420315336593480354522123759323198928884374803732410786208605622462175566914066496560325627015246939470098514711600994089128351947568274832967227217668299349444534067907365525417174886583901039319287413336870559291380027727314775486977554119840138896045288554164615529596730625328830411855501188829841586911577081853736377506071335054326871353825913285097958561423027436039576496067859801089379556543087594553873213235007603007730107917896408379918870861963208679051158891374126204838541157848822039592359433270452459141147350780545504033581903384706481014248689197256381168631933216497629814849539646083874849543969458515257951809116266545236733517450163608333529739655892210921156911978316729184425792575755004030749046664227090664322428513245440807605030997258302179025792182169082377943883480865654516580322492664139624733960511524759583935636607443829936677311897124381434507144263490668336746267965144875760421649004657804566810897623735246630448651394648231966040726712639274053714806002028814119479141742109645063130559424100563987780307683154549550715730058201479251595904602466115178393678560161253240627524204371192506137964850891981909587770580992490842085600103886023943155706409262296585461940599098696476507408909037102041073773228330001943441313189898291146076879347947563792607660871483258647930931942606503765031220789605973721194264580743339322946456217152992869877572374421745243510593701522448697613048297775612559901751454759543095729786727400721774104428762419527057513081889666990390251341804618791396391751999610688039579457814086994355792939886140071141724989460512023152862732692324098027034403935721351903458402887798823381422660989331849667478892669887427451477269584954658077358949663204319684227293905402342069936593465517594644019356968088757365135655273782755845600317812578547257973901689044629670212624861217876626477548370653350285918705939390177804647175942432362408204797958379349852045596799025405159404945477441760839577973686737690585564791827948871367856297647036197192772736875817422061934212158392214716939705250724783165836869092120660602977814422914515406119505865265141288187110649187969794316047996512884740365408399967083236314679272132449362698570740704713058434826329318845440510586619403755873250257315665275392902152362207415301446575930722750888326706370582148843196156531041890179125548457874634053818750561404423146119784513097056545369126825579444878042588295007696823218986262381111072368744992142469150404040031332186682305915435954967189013559031469691373622407761443103122648603764791939267717493540753416257102558871122830098045539403337048732823588397650909521672656474725802054809063989279095949756542290618460679476258129147809703755742924808981654174485509672708892033514269360692215766563468441714251418841300734634211770913388497281568269755648308409133263367172477250081903833257398187374366036429341681541608528746458725565350762115073088506880345696823291535406069272424136126383496243025222734822076674328244625195343816866329833335123189264153753902689802092306902469188086616534259713703199646563655178418522520774003775501336093586141637044909219989129808172359620295384773165945159325457512762182658826965023083274877952126416176015483903845869845831937117209368199083288932591601683152378984175095542145657354244770307986890738854236551194035529997686151218503691185811806196552576296458247439549463884952305229390431920834700408595906247758692673900383856751959635718838147734081913671101305078535558976019724131868873517693888960920970811996086393237611436761070356756751954509856677260928307830333384947896302610290498277851677349656630179240458141888901686110371492187075536854421284230029436184629978447099023892090870282586775997932900240687404128958781800155126238506698352076101525810292220691850589879780761031752744058602314927111485381252502212065908659017820258780104224742644030508149340088935536994215541242794024288330163556008454806114251973600079468367674392891368037545225852503564337492304061188134789864950179120395213927258935188503227479728304555377830648563922152548181723320806672527665964316205418059448070937337627385191779318699473024590811653170846477848979352443357203806146987009232700653873512378118935558807382761431387104773213306585242921769520098652215583227076240478674720185383578343770223504250814245712843756571479689310363418089373299722019185677528387336013394417726381562202849015960447422841069146815777966019357848536075667691643346140295482150176278079402653275401698834354341953169825972572703237672327104388502145755116078107849036727341375685054751283331828168180687923483942357902830465325709099698933929319568594221510427531613778589133026238399572492462565209238098216310022009938517838786291284754647499738084609884915717838740446198137448390687340591284238313992268355061730953776007733441551971134477801136367129304953999001983705760561472107745833441235752258798197320154370849321291768820404507449491093051786970567117701141965616954874695699554579466490245988058182052267828055440063055171620109170645496657728091231282730371179344888819275752509942568057204571560030883512548354531821670031202098881756656024815643339856121033521803122203872454617649277197607561639899925558844824712539754441995752875533816075238289074957943408478409819050499547223491767808998973555428169119866029105054819004663413715557369930816878792785736669646282662826784498376781127049916168005880869983507642972740292518890639492218318736923256039915873045117744833426791251685385329353340557406954661639399223125662373328913082446605159607568186413772904955157885328899061541234378136169948046390831109473541619189442527956102391550363062024648582096751952056686309608898274241602664868431018535792010934148995913294012970080979209338728524506836770635227193756121070552995770056852165473956309340145995070906849439995261099503701149114858356584035694439244018137587295066820507129554209918508765071118127238305255094270970180836733246047964391637119624816712878168808667228632754357219976027958550212499604293420723785566103352134288354032472088407536227477076722657032216145985308480701432711332327955896270335331133019138930987426335720748101442606041221949987395209820431409400117396015001163746493739333742500935967983549598081681749426411617589002974453790246451001157325681153660550492182290718208490667306837347413540876864688036281053463660636396370508400603225944423680684070109041479140807437243253754204529454923205488540944727773308677289572844835199306240623336014894657010295372769319239800791374246128988062094042510718216870035418271782469358852896936838712339508180711265203231606942139435044164221180458659728470198747058770491745236140621664718268422765043098722130253292080624410135651901924297683194184224795323048872227619999813059343435409634087341494009836113799290104049021651980016965345105093201186528895001349855481579764869199753554001996239218303715570495661114074906989061468803162745650430929296856492049391426632560049095467246245060386702779065977825588642987245795155182788954929379136186433549495607479606299394332898956071018500741297402790275983298534453665473738254430506492187558490547253663137453707765892998875453181707580339014469761261208012192364849601319145375873842088703277363104544410317520421681702024924246854339384818323972011733672714375914035732497421907662839518726209487736422890355550709956806448138539121394944076998176571221767587769774137476930080385309241470259267309724342514738979433308220709198444296349368273455599927565430849214500589594985838897219490804800211031010774694575030279867204560296682902433004901958656561523385066010860852470512592510723689039144260448041910688569171156055467655775413133784673435728191355792152125244163426728793514579872623606847687942449245432959375932256803824124308040441517032330354680593025545980840181419388391309913137803951658668856405344250459768630684647038529304228125371288812406383719196825131550640458658212202703344525150024555697185204494271266175570977907652201631409924345624965823463274199966965919096303150772162295973794133044906912354662899976787063964427543970530720101567866765146256209664985206977071028331992535522210179071542554910668909890157143522523208824935483264058254433228993388181433246077620211927635355605540181246640118064490748656792493045753030540635899858103643050669178836044633760072521059307210192292241895322382915890934128228750510980146316239573671434576541180542227401565044111311050586337680869378330384195969453861337328924716025322293697313224937997292800599267556724797579095349634141700203866341961453441828590549528053409997763087934339975978910568604133901260650786125608232043804545448631332510663723910133243023185466526509293911805432574169027595407190841762886773529998642546058514480703245585088002374921985388998257635690469402036938827446681840139984177397803802254291492591957492773178379574501072916189699932883137541980767264918001306438990549637448406914582846426124204961678749190028707996979188534126248108795055420743526441794719404034479651091027244817919032055597758773842727381310581436032811962348249687706680871902988723417289527936418706406948463980108956431535233422900314798101668431369479196147206097308580136150705516651333914433244858694690120492477325571823058188574716991463603187793301384759759861120961707162675773157297613346857048140979691548600125124206029878855353376478465112312928998520040610540065834250345163468563030940509789836252773934123544691012936261701989971395671039397745310096305490105448365702167199187220346357563638244111617093788893854939355612500904793637171542240806103438118860330575561248673326845606941752793440949702599774350146701995027107914478321097845715562188832741071097653063416812979334593467427567072441346943145162167047337673582685317196054281712858870830159316048841492190324363058050330721966018280900940432717917990576993235443881050324067491860691578406289873447376709234225782244945434828081265677173212580402386928936112556530820450653066340561490103696865856206381088416211250724374687218924209263026533476485100648824018753110775238799051914751301701155512593650950277663865604759932677726955347806327049303948934897959809117789256537443265439374227850627165326171004913012764765858878130048084071184414269029062542006789764961699662037240749990183839249623080167971334236069975708749062665937334634933117472389156734441286767762850073286742893474298435416914069489814464185413445247285102226600079613809607527010407727596892661516744436606657917119518927091206931157006078461310486009590279729514654677233831975300392998202306775086147937831034092325166793058858094449717802012406075320584269045332099732793580656207789144551244404825526930353303513359014814445164701717409678054134220952991809060291260715683392766168926744561155320928000933552341934762481168750783337505214486412300469359127245516840949343564359202084008663972887452644764168122243197900574037675204113145935690829486365028866513866718709840191265208719382146104962917716056112413262298472918197350192326469347606735917920473460195021468502042227254990605003905271739830882393469613295460582355961688596144385517732556825720040864066715726142874215865629365346667650305399437264337771175524863334654686617471029474257074711452408406935745933058106647910587257708703941215958349720801434732021667320029592177831146547941567632358090159344983934360311394701960236806436471015526548330332290324948488740174871625554178432345983583131736856741194821648828321983039293782089006668641656356329990025891242536746598742757842445313505681163336650379813616103342876913997790939565375874699178205295126606543587480249531054620790828692382531734870934885092202989974921677075930466511581133383047832465845377999596422451105520528225985513579954331407804687382883091817168865047464734200601615944581759276487831751006154057153340802777001733934869159725448358499570311690890502347900418269611277438910111368249836511243522173294127706038130263418165235751483500779868261068935781083578681115816638025428639454882447431521714465318821226560337168643885527949083722967271505859983902007370435204519621300668261863897112457539798316748358028660902437533659703795530174286017098228525434662822605029782281922967974950706846947014111471827123771794543954247545582317637072002093952480305502486152919425838074644561247566303293621119406438535126173363837578519909303377895635070998487264756328815771858778297353705484562184061665163805211633553595615713655488304023083904849905346402275363505322131262857984748871208797423919712980651571562251453573762296496995785161894725860193048018878841407706427789821115503893404172990784288779139603190909475642774628234645049618558957186727089305050991750825906016230356085410026150659958294094188223171176685610343109409015195560359419762952715191446546570114627356476034166407335530107840661217068804877676582960344592623864758557477341228559099455126197261503356980467429465446524107479989467997846489274548144629270461024277249451728542720251707513725879735089028835651237307514021621311702640482513319750428220989513845528136268841773267008825254317243579889892752698716039884633307640274102072542860753914632056334190051780169548164179493173488781224447251861194100883513137555490494181672864244172188026388165627539857333600411059599433600445109382525788027664814425790955484257632566676861865912705148389804415975502020223084423164817145782010230876136894006217159186369664756680115058939506917948617938811069135739111929119476457163842439850676760927015601387625473877555130821614917863311075676996932639836360199843056398867930350363110146212592618232432920230504873973555103880618396303383920224450218778063418013902925080016547655990603908806917718524407509635151958193085485349436375269314283472601286321556955893475903752173339569860535581813340404683458712039407449236354697080135396702968920564153270576178507436941042162002813859740994458039484371712237808591610625472912894185014337332011394192377699272849879216795704857208482621178953745099590160573191451033015921950477998616399735136343018127076636196256421829613557147414196825197784512923995180948027615779051505299624564676859410800319655247777844310184875368377693048120859493475149575363519083664510383481178383040200872495432943598018399096116144252080810246154834377215900747465469707895682559178102153564440601396893159844515933212019827378778074605279848063188533935925532640568047587139273617127439049444206400176046596009726741995011180194421994703076386808201891521069608033731147927545046918070866330683047177127699388843497520361508386403092367707966596240746653032058855795435358985947775420846585446621311741732136381937611174526719845377107365956594981659688759535272565530522586777874361969955452700888850431275909414330236429519830928170463636710577004082355626345787874785234482399846943780739800388210355197146779367439484397950422615555306393729577597612139082829477616090698661599524434740720825487274741637905412032043763264976757883944911594852617550814823643520144900684490375525495045287112775902440268289660239913812266687287169439142423356907167219748529854906502866938531390027800622281054659491949657677340871738526222585319584765741013650016883548356236992354401223596936006051229704848086706559828336254616249888405808056838747680592416721489925466769707042797594707443992401921713587689294557714824440483700282760938444366726557959205333286363821183436202774646087176456018236920499752142614111949509141365939939598884968732539054561689863096296277455693159627111291389068753371428581683265582291531673412889027734335549344788683553410612823002184662365260252030829905573599629412128403615848769828447672166506050843093323577916341259867252410741162855560887417648349820714209069639040582853918262162289982686959759493805904885753681523517451496466142696587956201997664381005061504180068707658470453477147005963307233577907943767064211961192058242544441864130889629668960333915001324327960992277835339589184662575993194526690242146365986846158650593407148400860403033855263822463815891581183633596643738185621040582013281656985403167355638163019680564587348039675160571644904016838278201603100326068032668396046855898129134031175368012912557689000970360499259145265139775772983468530585536936351824757233378044007504755143509075612721952284629606722106216074612377151537118688504003714786281788426461390580536475028946907239289094722636256621257205691977369329031393413587569782287912428335072502728595632347802504078961201978921641323874369299169139774347271497800996496729789539148727048958122750145899044623890586964294927230354129335323876189211564588764429713638978164132213843945580346265579131440291412501168851998922870799882033327458850878739620195842849169998809625666397846140216095059729972870961243304576253129268156432918037383948191514649529198853619766896498777534700409893333797271594905193918030312440938121636064272059749937430095796162204706746117408573410974428749024072224071920084911858181518124276338523114088091933869905247375517969791533483698607788473417923759000206964547789804654420961655824545657572601098292794621201603586459098001214611081297486526766493775485550163800936391440387470440680741730711149120395595564763786368725212586641996518155272682610249104716189727921996372881405772954371894830012920612558250088095864823435031158427250447144179924088583160443635426313119988381503447473273977326572582918374248682532213362019148473697626755507600478474750713026331527914424648458310542617927325595978995021636498056801672170239863642215138491367894696651895996369818952892920910915814558041583029638779178693541218300409986888887076505606757845234883714489299580313972269250026344239337293778361219989460046080519291815736507140605213243665711748651865109586655317669933181738303448325237239280960676905236851464558272384358920906669573835462780112429104142056474580713944479048166588098158783472998391031027522874694740469677382116151097247127560918182160321327115448287990220915809954467179102398577577600759370662369931528510617800162228001306895034828243805988974280780978633732375367387515639962500202688917156087205681980381321592713346498607978324698826325052172467732321585052767727690807395180206332392022289351307434265978605937025106926387895048939556321921166611355155598132690575754094401663689426009267552040653336553951459594430336472986972522461302873983497304830196186945556575297910677872775472113472308106665122026618370236590083531181275297824104741768120054732854088244838854668374142336505912599422868792294835077262714575470462006165094003489129260399554319578326832004035426871828068254965253831583532577307988741429846387393058843241116758545328754899971955023003383521326423565271107017507937488068307856033254146019433209677063749357415395330037478839909900702531462965980415264558977993948764754107248509319276032948979171741362137841981035068496164039387135610981878533506494822506753456264515252977403298927537561691817485375550733716370480511310820927684935994530695581210082285314541817055339623762767685236462658936773733428035587857812808211157430619791553712435643547688811631808683393775827893152246419954930016978447909000797664761987833614645661921975754528302389984112801986210384988301577437087384108280801447372876668190323709674289419709340243364458161318074772282133775375992468949488568872590487141814602376469599508013866043470594351749860090523183122013945918488907530401736869961254394667213996723140303493622862701101830211066751111569744130936944850884308639209469638005567006340478765610370824098048678842658505599647762752933451721794819545507384938113304238594644463901683723440199071880860774745846502332455205724897116515037354612483953355037071663354695583359220890033148110931050356252415751554607393244446202438951629450718397676169870974697327731850083632859062863381325773471767970860082863657847710142436557087371372940575360685199619901423261535191218781832403826601040993227680387025182826899050139287494337547628268055926443806446358529156983797510240859940571555962016906118060638530479462781011636883711150185564208324098816256980545241961108050107591342574231162743886126499208689264393552121508479061673596495341792033572993192298700945731199911697842268853665105393723073414833627765946108202750720135484799053771977521102080214881391072844348389583374523960791312644616573885318211704659936653431264959034724197008910572073105140310031420016078368342775492638478125557268114790797901786907065870634749514416252532134659135416115937735427112748784426401032091386953545141751045683594010162267754683709086779176383299513414680468895693528680453620097557985880107544175928524296410275443941749831975845436916715453758318798583064671534276462601661707365201502412509413289171747243577279364230528420491538431367186886237867006886699026954982422348265355688667764379757582173536817241785261396212923528146510190330402029598086319943328122202989858917413312941254825530968687233116292184678213100262026568569686333898603114906825151840653582620284920369110801300451065828997688939862230200298730202666823959834337214834359411418680094410242394805971295162152859580318258362458840738919247171307562713626974288333595200543374022971689775651438500239796312208322968868544151807687575048509919864160038519290649018781843282607380365794153750889224733309128902329783915701654709899025909633775625832771152197699012720654276736343144359633866983789906914273142987712102809813540389905181965902575287171101772553598109188971805969066534622525599610871060290385068261037365951903659809459038756802348958120983781845663284751012262558117615391139727878696566364760387833095845869521297413602123039262307275831620171532709809176029470213889754474404764535418138440232395192710500836541126144987477629576646131529273040826246467017087921767316215590235210339715859547058024228382702797149401860222887247744951501920484063908977847063936837638424702769184371401132639953490553916092843649937862708149230848515856910453657203421411183827241925996098440307151328839084613953670714121052722050610253405101940294074975957452717492953907938586063863227169758830913157754808342730845003458209437567851176238291813322850072395652673288180902382192834149414495655428426022137905886102004188339197317863254722606967863498146897954811292456491956275748589910851167660235201086703572062410419111398965080563101776254467899402821164892062993099395041626919363285250565907122368264291345975000114381266244639619402922612493139664600821783860242226340290988260707141310134022518229251811450745324961179827809809090405986688873946543453374152928352732068452037422867061801875774419308457568459008304866895218185054620583640072765206482316024479229457650350271610240236048276091892925914186544310797306158572168975813014599779416671685835670145627974813776287791201997077337600915488505485437349191072444887826850797672742474988775037169509964568506621052359813315597357709655906404999570137621979292143842319021934015133733714638856997560257526096919920416796982308783513389340972127413617967133318021610655335147840122718050005605899625441087429177105963861488871216534202742021940010898234916321433410966455236456415744254761628061499486226281979471209953326569288357570768742314825654762139665761587018860883087352063421381805508095387106264331097921834012391015587323449789928640434008566433244035520634294570835086745978222019072043491820981652741547556192053287163770669883912653893258830090785933097325279803007139032546111667906126220914849586424631374604742928512122584090588471531943843113310747680446329529101441178853360841472418307882287955388926542866644843467401260175278300532377950471739461989498412658617883899732766773092597723637251124093693571530993445334363159572110004778061319562566494190266100292052756670249815648374796640972093861428742821806717729444668642296989806010450055271820474193533036594764842861974188173599121091811051783171735572336204876797734979795164258297228610893435015799839631133567144207775122452215944588812353931831789842776790776195747512520272576345924105999269154185950946053770947153664423368160345377494478203803147994524854190241582254730780105109221383043888730097415958976243928516827241735402495335256497883617447651981462148737973733502013899631749840480314174733112535768108772820544027530157949921224822818831585990321764218085761179589830507631045793941516754013599164596088966112035636072409926071387687035353083602313716182758794943707880262354513499947100575161658408314018141609641484855569557304840323932205248542084091772149915796670505394094970913094260358442410735665967515059412976505726814953177565470672315031304636084548358457214462467208837762651946049230729108575517180870401192629859967437399667039842997856292449157836794560501938232289199784202291438461928771033981179532791964008706484999927364161019298282836441987022831823536960133729526964003143205504271571656300347801719246420651854607568110387948042645886919236548593033626064402769482209740683542342439780194853171920260633603021898499877395705143192427941574283714669171775653622153838039556125883362532556198988813839413151905940783614415697879733902202666436676056612603417723852733817170074654328762267357799173442064014595759856058119852043609907487862010633095050398949713531747581834943611833358525756392124646558514617733143009987470829349366305014653167457492149127422582208884946092094232114334628251716078318242748223680631197587626810722779638741191448120760796135398449987832458778085584707914035804032279332157013895936581773539678475775385919860590770257149851997929188620717554066504414367406195975690246107524513634966072493582493815286236865926413923632758445954235165302660337023066455584086230656244569711087919783006102976488461105742426529547417648662520787040049090179046710359849647006034864761711029493672651497009872703284799059993478928185130602369007493095737937181386951682139546812959146498623414918326207550263876824895095674867632026469345517551029281824983911964679091823935241871555252286326831894208769977596787361174983485889930089824631185447842241011310191145821330652805811241230053589649036369265243691936406940486516075632836894857192461337719895892533652652570482026720647698022098371415108748082727121455265654004946322613711755652255785578543862048439727451281124698930395385132755720873858613633284515498099912162217608194229832953752884308497481526598950959603170767549866453741376304678326072883851651589828190598366244240984123976754338199564138877339025561910404340709254058733122719515004390733257007402291089271063985702642339450723016625621780326505250808879203903983023905630409308301813017261457073083950018428619529012573812442180643661159699702227693367937704896765160022948925518417169030129907212012965013335062700714227663549741111999219819664698709566640066532421003947145178129100001780324540645368945014739497490056690622425714606805692549462264794670488663628935046253209784701286810903059627837913196010909078160372575988890915668049431931958905969736237831810429437253396100728725746329776748022624482511578553027500586014154190875372211315288767244349548893937126811823576507975737559186226095475879390068550537922635207130175199884858141373912082390955291049480886320773452653449560697377315653885478357543068230985809033063451846343524211935900991772519327329122989298239984803314307134208898676864918317664827645516485097831831275719666859409654673991686667380311428772560547672156667644589756821784995803697938800350918275358548373510238035096603225525565991415554441736919449621569243311265081247949877523397160098964043204516324156612432501455034316605675360644354019814710729774780115502323050776586429235572979795505513976023219507014587792644147392121187155759311788108567349467436775790869700486860076104855396740093966826692529948537691346709983406583106232213642074997103676648809063665818289088678365447656052399611687466435038854549657939336678299942212390575467578961132002146388875142770428485161410379085362672854329928261900912400426930018423089741947233718827707653645996344376750730597244890946843733502536860175083172039515236001787907322728885243637033300444409278129059345368663141470104659341883474689282629988236301306013766926988217798851721245414573378488230382467191665951105174632431279031560874148860708155483110213254013356868540558834310188708893876139373250234088079659382014804830316448112317620154024345025897217767005259876857529110799488761703346812320199323113219287434184661259987018174656117914611868926837025201652991198988874948829242061696496543089442346341753064626206632041270524790465222259474852629882180166510377391520956925717676051391512907908330630891313846707678071360829899189944905399843274940243889710601762751648654324350417468217404772053579072978819030064762179565605159378531746997543678504299622806859383605835065216371814375812035946389801353857890087538637799944252751397164285764558538815095998654259961111212635252183537375408938382994071476719479556565333810335609209165135879604317564521490021087374521940701660790742117146389209287184760160902492319110422671510290601789567464238340951983591142408642645711070748530076249802206736383779844598841477515071622932192031026050055150907697894319437834821122313171976968730832874683832939868019319165370266382003482464988882800995308021917638041975946273043423705049816862663146331381992449951350409336852132648622166261430456380155416702997567018107991459837143013400320349765295216438577834202480497460481356556278767001411676453276570915946987857471095170775617589719547014691405289876238634466607521691840515292037064341671434458101488124590410883667693696301612214043030796233418792780707414554309612195098803307323271225143074674379294908470001118157872176047256284368744402999903490723523364779561482607275430475073383579416952085411858141421163366331884361393046086404438120305008737474074303519812587955651210154379618540181768351639553142978892109793350644218922063827926017080859661513409231014455095980500497093334182603462822266136524578624368933828748180808311663214088601896279333796917967023892600395108849232222624879146995246944822132220716228187633754117440717644082563597774910049844113158664565521693479469938534589527648029861584022640999942100043342064493941644651586082274972790568046591058023199814041816664689710703815899178259905244379416476766531363703816495568807841719706669088818711189296355409708944935083808672087408738589167828057846463873013356329005608175565705186898351828853855818941876184643188554188353220558655149196084013505109130429643867372670176920946256840482169559422438162836317605490729939838290187707137864821959627958273728438493021076517011141209712718951367781133634522511943256406092909203989203031142869311029961628971574165135312265097656638725415021881894576960633826540252017462748433137865936683535892728894413722271223237303189976271218756359030552405933440680406716588549910892233951031852280400316307779313938878812426373994576617350578045486470971336561226910545268032335170946578223513263471197754156648001216476189153839445438270741357110988027382524358192945270638724302898388786237397269948101909956476339872677974381882407864696372061345750204043865140481454084863722948089187495333684538332918569261160013609052698074850778808097199220790549384644912998116044510512482015768134230369758459793135250764991726718978359204624413558353968020439011298808208487927059939845208151455527716045554509166391086146598101094364855299583415894050113221759189182274078858545057370754171980793576571347642256640078552027123596498418147809185247540517829859835871945090092645620322145679360032009803658914036592480297059704238934014178494089834058894208281375410845327194765940157849180879884127867128834697304445346330011340784244697467610052163252314696074617972352275188891136610847282504473338769880899788249617457143265389593198919380945373562006977956600732920737598787739533401224262824638117604665529549327760151654443398797796575964213036484953802973362973405409536566027156662095624204018972541002690308873068859675832363484860800313674933788046988108179243487055585861260443351113415506834721028038863079884248647959934426910709807053082895065139289872456094740899115049915932660761263981350418642126839879243828106390190244271673507646240245768175241297734377047211534086168041782949967650685806251274752995065595324988186611187221699214720955606547552197614550491099906975684236752153392973559712252757150876656596645027191717820529388510936944721032791299729978949595372179654148220468484710797133152924225658106596490768857512128315157570089156883907751592339497055571554396120342875806175188670398308678334081013481683943703392193419742431633468771675540102879059518554697024410748369099885315922357683605018587567855736374585771484106340133489759087774905833455397705795352135901682664773827250855655781354887635988320027857706316422404683951616571696563311771164541224971808621652553084508026356189132604359629200964032384354637212951594753702934135578205609103465031482793614106566034544208285371600231136681319091964102873049208500417437038337446281046462094277696378558093427578759878418333403996601935420267148826128194886255395043815153360888198352817494735425296130520588989474529789819276536230214649271640863202923565929941917524547761440843060223793185676064830394341621875362704147497613963842986391528708311459385176684853692245247913397018567966189810070204722123318045419230799439221508991833972212946648542669182478057987878265388133877917479992986271645433393042460911284741410076110542008971258536672836314860898634346456934102417486756764886499932016760769139511745616303273744980446090780906403046763494443155886989737215023060224087689628089967772008295400972862196936979990856286378189206873431243425191257166586084885331322342618432605583673517357559462474494240918913520207424891718440223182667020736467686101862473648492758014735888129615711645307777309918790610298886287149302046792275251671037080716394391237431679286682193444622476572604070545998596828789594818122960996644984189543550512697462222284055821601781563848932415629429410235472447440652982759565085230803988104176753109539450829566866700980596803972387830710888730991670839909866670302161465717224784085226233338425720816810073396534603214984320697266393091865149254801370103838705478495805692390809071470146803194411882916774100108676071463670346097016587747938619865572514916032126199719973803490164842267544912596739312397990074831055385068661830482906443355681392530449017556754977224586553701311488545214557527650034001289474274223755834032167742658602941502854059595734178734907098015908582653022046578069213686344182383358550580440690789048769469523016824226895303019503849045740947723785841308094244812638676254526179071856678494915944757525890432985971556253916870664050033869114702527528774632307639477366220502124317111976697554070733311267595581143076643508377661383937418821198728140243019592577233992497745653599173737048234552569017468386181605906850252368717229255820454717814319918580749491682119101061410175466753076202891546321342918722601569145323392446783536092923925956317992477364265588541429930289457142976436732322262923602401555030564320283705186440270320700941330893074078971459341135466306263658728571889770055691796392094089540494967577669166831282615198053868579516388745693396126973669872220449857426520785733934500552182495973648387278103946120544515637979612030291659476574699341543271014074745772892654422996600802191430751632012114712233628868911003141982697620811610237200462099132116432607069198868028640972266780902380740359354214499157461979683557148136771420102843682700410344318799421436138119770538705702515776750087453539287747201965450490621594472377056510619675999908569487775939149115942015050991367741964053191223539274975510275226212593290315929202063227431563163988355989476949127802825984508358367998620353352020685460559216786552835764981566953231585885723872988882219155944803787090891648567299072137386053604371214396169103856951761602847570707412208855744548038615549299960111090089529305615092834665028803983155291889086590281766493385503602113010042614046121856202729086358517057052077500603308295180906193350336573369268872311459864004662237348473629802877988102147101924585493748777453115962897925405501780747491964778406746552790393195565813896692543928611681270286078016492471757947690040713838418710229217335189894076408089714318830892216393659687537987014204003784913012750100361893552864648042380140726687789499470242525139568329366720126727746887603228486942873013499735546344984108290399024614311248528848255524681487627399427149890898964065884653827774882015498940055948650851084658197861933024860833800725503537057526726162627120895748385707810716790396321406114798575892731652066513874141839901415240806942716415312484146575073671621014372856615067280484820945901214115397057048462215390455053205451408649083481693367506628520708504476168704764247062925198421823405671193175977385071213843566161200541291487091099968133185503456755250273948056094553333242616500497427369923689595571203234581644450618398094463681201084189262133146656721599470819817686659148832682318546016554172883453416704493091663748465689767634231201898326438391034187584136241967457994649202221979834593056563692756849359777671093103041411307312539564248638501455500757943604266544947470225968985102663374383018153260704636104120350698291007740247523365758424349259806781961067661254989366947457932038348011891804623993440204860547400539729198870648908353273846254259781523770165393409066396161418136993626227242206373381984306775264803874177190613456070869512882942134188943261411559837419843096506180799248248599557473975865979178350016251247911768205661124568789795467228944116120724622182150361118719603867594046340815340520931954899452801363923920455820705023281591771107908638599432662526833708351622186279069635134610001892728789722396733421122488552537949623348050174564571416968863601005387174928821497469289625347403249065911079477469955016629027142984650883917957439011915442316633387279050548931573371400843033387711793984550288105152253878558588527678672465468225260139414212638002515110525362020285088336811671179131453518274582690793621433828736367147855025406183150742638171351310767393576500651872257966213558484525199814004650496644293694462643253534227048108735843865153165747836934943817561843938910192099339207935917302351336134333617409378894332436367662102057520640498600339476261177306597900717338435086119046672830919191405487618249035409603611171758738428295310712978874130067815729007187202852534737368305268388208851900652888992067114141756148218048590301612699363022004245730365450630834445212718140481106462655021833491808728134317000593894546477780717800755411594479566368752313028096856384976646741642397940380978024006822393043975148776185510146807492444313049368424027979663806970107218594446946675695263158838285262613400278056513954164726797847201873928734317431956342714686128687031868026805130778331133364970514243458619433993760383134891953616522198571734006026268164233315262753256152699866044674282100016307871335675641760570610365397244034349964075523914459700042488278070090182478520476973060681827286895011123040202596546463916882653440624513894380086858263099263707383047836303898086010994899412575125614015344638442370874909562441301959987563891046520966754587766008659039521526930724947593463765524999573981368704682383578222135022751562771743922399554134549014307806588887145132813370761485025768523236382933147428059668809646209984224762074394269002794291723758974789327985624247296590853215947205332369490434027966266307402731316432230471242896578160810904602256804488197247067993494893743915075505173557882736746630113365128062806763873894435107340477854284494581032402153026889267092892734321622288665308079172552536648253192224860467190401188149796691897238390489921449906378342247258297448757138716393766038353195822125838995005317567009552936485078884042900036232460798510809447041187766965698527002242365421484082307424965912899096508885363087254327321514159891816287567811307051625685105581512671359344832178026783508960472580054261710332895188363891032447371674832059178733650962829745596943462409255652816656642813369025930758740440023467313737677792486726102625840368808169386094183043542160512328994311377533910651173174257919038774427555774666030406620099040630426051492029870431846013273895090998152703064336944690410044571202235451171011328756403959370242331710298393490082072739036495979673246070117441657434325499611780691764675964746879791515572781516247306058334526364851289816778469808818991132100393955511186968360232676578194608392777588773560940755982917754280861145433013950045524655124291004911372885966068671895355711890373330064908975683351650049482437502013368515728499636967464259149536037394115496098234431435109320221809709359780329549759598895081104350136062164200304054253525182009155876233217544217588085941929940166160003634391015340094039861381614185296591895827468622176004007540224052349144874115414450603504256362329696036597208236492559421476520771374574795122002325330757727354406667254606385566002002468570446003727540392329608743253281392448927596263699974608198030761215869443681254346476005823451709865886875789643460227054800708379004133051417219265941576156879115019134029748585051714860817315609739898187117889639975438593851481271228565920278693528607609610014500468628214330810028800342379908031603885040608297629418230827838086035227249810236770590604646347730952402490251187179864243391902530458957320390858507871952255017770376521626642185281981740507340026663725152809340520811671011269698677937225985693349519432693201259024230765182777135271884472532778020551144835864447823011547118441835229325114932572698861749122603284020727778843300201824351288952626434850401801176692189400301384623039255957312898153724381695307731589478556460254890123359844526030584211078366417704984380422727756181463614970822052978940468419642105195952976344279449380087623752745873654043686032392568120396815397806203184411751734063549646449468864312900565992397103980260552719134441217649315767012502328215868291339917094347218601990614994727041937223244811365777364784334202259996962798552988234835813451982181425675924349886313315764355498522016187470094484862457290141545591894888707730437495867207924838385743401098250062896166079971094418369987478443956767929238886241602443690271546527600224939349036905471674482965770830739242100152832723379609356923990338824465601298007919176430314202194237399396437444250881398720311047330446839944062988196979371975773532541936499970332980309505730194490517681341165244535932990515291198614709570353745265578742451856888960135130446546702707588099460903301835695366013279171879444954101560343692286480222247044767586960903220968422563613405634836829717434394913450350154562712113070691281968263867332213184044441497703738450944461754830545368993606820580388987724741195238929242163746784562498542798503144932995331585543002766715402629626516695809146078810174714306991744199865847329040165535665857626308050241495588477533489852364672238934163656532479436451005902522586321364641258499846796161843552340352324721110521226636091573602713021329448208976614103780709193655802622181784957122075851190422878000874592867736276332300969043780313708952520766671757271829986143936555118371669223725419466798082166668111039566043933750372807554514848068166043674678943264045371156658637505315120812713275492053068222000525692985014308858791838338588827226166775683455460042038732166503756308540835999973834420318792535151098838338539003290965874054873988529729683799722936601292312307160205509733930936050345903955144350530779986167924716144327074762450851301978973869927099332578952464554750676366826464527152552254333880535483627391626239252966766458754894673447577273356013838273729005393896656592230598571048482774398049720583821115538200989209661369468931771991114747170373374826981059627061291313996060882187721485255788982496057151197409955071399286692015456583834310142603080858688493271922984158950926435718314092471047051845128758699884109287359028743120393437627985164110324412262926311001109691495544503094533576921409803315676548064212577277675625253662101808506368182957928716083982340214720353625982063645520085231280580032671686683448151104637370484997348399072102721190358008843242221164334445080022597795281797172269973237438645179469844576480639489491833438525180428786932632752902447890475937940428598452749922277972100023891121548938382391382872989931731194761739061150447827928769110237647550252257173219481814737063013088417889819598162999541083390244410692706737595956997119535930938496110286574076506367694490893018558649870372897272343345722492789153260922324770228772629642491769808030278236217239379885400503625715548875361008901145686498282437678150512482820550492067614725271465218966300496885795997677522593974060305110289858039626218819712821705192632230895174681586477249400663476252399854173196026161036924195715977601971694902399328727439746588043656593649688016852863977515522475999764941859502680405006409698435113073797110441197918005746465493078021521252981008731406046947356590646892418148391263600007362471055648198258938088745764536277429937681358765419179735722961270008929684713696493683678963525182303891310399263375859652579616496449908909552435508658902553027859907755325901273060023553112413722883395464048657778331615768298615178650924137474237208870130880543952259278853023943092165956490984077060959426129628247967788111335332629528747975409878835566787900429195451576744148678404482363922335095660072754793914016971072318582441279892338820023779406397575365725162501335163672644359159774750611925713016230090937345100474527618016380709677370094376805966714229413589600824755383245974803932060796044905017692070585123672619845895683093796806254340250957462165951887975505779654919550494928671233251337556738716057356380028942990248851218801240568679236189247556048248749553282638731464641642059885385147743343317259129731711974000426498722243810614211032749924136371337547432406296672518156579138643702562024303964790489005044298526244657566236218820854094942368505732727377622836552938642131946178526062604999062547968847458530441305937394727793077535078193557627344106921558940727573628596944966388909215851327061017106149797620538570852812095752763294985766777194759352152421676877868173437055674237402436509635179971533020571431114640135864028290245151732610767169202252500633762431074161787476243110180290133180972231123824004466527025579134333864823384782408364150914263032146655473661759625616966594331206659851276704614504355650567632319272380345140253542128096185364065860659568650090054298405004609354853062062677047658456432303555796213970401284145071551329589154551669286582783894033915299223882332902538885726058492433074205048077496581896610609181058545419793248020379655682803999261459692054638058771364903148774404809112742816548241917457211102449742316156169247547908473075166326609819523795676463876788253431508822081795667477147068016351059647568318898324971204609208556997133757414465046934783022432710038421476879322142485713565646283401032424128263276542081608944807016915495419078899085838997387070670154166653384195835071697145193419203744574382051040777729732736083932416374562858922413376538636749550495430566377084345083651770046466463815328674448226290496018468605036883440776084482397002567762132357213772691392393095925237942205667698370439260789034826737347545283328576599177610125695553501926205517993980215710312414311453023069858987010303589421288523151506444142065284953493622024421560328509445445462874140740184508573337343507763059426122501925255325129918634214765821403830797952738737610527302639241822426415421509064600988318441525643072600146861460116194913024036693824750171418942259202080670774549157595384542378138860870217866424786028682455382570607007852827332226510563344566490874361582295226450690960831695617260526525349150207041380219034005701788311831237419981786872388251010597475120234906541684015733501431783733524819386198287179971086117048195607925864281956197702496700421100095380047388039200472454678730906292796860054268202283888668402908313352076886505277918656290128921312403151147840465000757126177971158769600362591788995845532035287764184783978631665070737509669088361316739147668310680483001761136059412558390261849754766696217285340358592190345237671511643133726006710559414359332135805934319651546323178338090818578233195716802322563645435465739653891585126961726835665295452993366536165073980298734018388646124416365174666669893892482737826454263142720386501175530970761558733454310267608916815162421264870580775063592788200735717780569088816079843345659706100924240360984178262541720215278830719157976674288514505877381337614484000839126439568917135693227613352816047973256116480024364781339419493919981444634503389773048307901722189787611415267584913782767136404814522241700976380245927541667269859014203411158804515183793647076944899216519582332638281683336325513023426351694440084457734264891932074127715509564322610386891038570095852192162848418489882732686554704236675275075298431229087305419839504408942021416678082196809827976707749289849712423880933541449510829425629732782669230041011618064786854216339301274558922324247867491607615769541168830213454217159658460908480197196494872285422924913322695771899106521926823520973428529362798860921167917076294858474961499783598343087200700477102185689744126172310910355862262499468390249780248231061077389080430317290598477045224303210033049575696595575909808971877355132748296339886457187784691064035564489612527351448682310530027781884310676814363488368688151979359194805864518378586597310271207805878176828347642204580417485465272557925932127542209355067091521746074186345010479544484728043228759042785327989258645322429852338633257207854943441007130491816007509571981783809560002874758275571459591214237982410344201199042980008348466798477917366763391675598123307360449981783300027146207947153962607424019051778269682879307334273726355455968205132147577968851655215785638215061003757442106878698175908797231054718785979450934163531730971342755736848046549368460858932795193878054835351838457955127888971075385264812591819795227144673148897830668144129480904387647541720328836793153948731927842820614083782111123855185925737202642344646616985206338453406008552668716999882546853183684501164335422424676631974561346008496308560574537359030332058584604742117198315800728930013561157562071742314893304796447468064963812931642923523581139029669949468001450688385729504988003174294755623676743764994243612959018878163634223194934072584973173897184738742749355098506472696968441265206780502194204287610736288893858850387324568556438816578846280988661820320357823033380099305913007233341323450960259737460520043570998600298145509578462832001513573592546027351596756441636530112264712786403244824007737996917646650602387339665635679340398356568072219654048851193224882054279809129711007700450022775461206617166915591398097656598227169631737132380233081894643812813486645249599544573599602734037495319810341373545859961495498360917612628539530787384570759463293037148822519303817175115438350026708995826545263811037252548877439260135406025221454919816995798737164535132550990520879677994407822530807758169956027111277585448684402760529394514288800290953802848541101226157784149158140774999841496292240198891308317859666915388229009946947450247844902571367356972639792830403286063454681985901480867741408921089040105765750311041922161494187431458784761367147739183053531438322669545383299223940456133606017821411886509292207929496640912160035905115388056492162705446419123651890820653277589199738922293901200268232222369773672330039382172367465305265074391406830947473212603208840098990148026780199482685855351480657053914005769345471367320387577245130697596060567953900372658461138451132306458337250580531679344725994305521750085317786363398194721774384983941664621448550518877066168902788747419777507278594616784819648879238392429701230219526438487691711692941913676453989753022131894427468986445119523361135808699525657384995132272344858932311386797831195178438771350648230787048299803447155070141882053104142668229481600816095024682359788933239467695015594757502235926020424722638494100311367044097453658610308012059308927527610728526394257529284362186377642535427818993064800665696367275161697181990722601937571168925947974476124876288821798650136747507500638323479883964977400488412357566686571614215831108473609139345000273200513079812815702225616906552683303083665638141347007081942216648482210415934349190820405640859522403880037807349261650300231717999314825929118003774744659501565939981386238692869062652382061233623674596407209835077011082990790280690341091750963573145618231904447704954866187160692280303501373595224123316964183487990807480804086899822172755131619587809677521653989830962034894093683856539421196123081021103471051742416434655171920779277138529506026751864243969265536723344784100681455951149036782838817570535380038946002769070563127023230141413066316801746797335097254146260959957881594107278065966542285301608309809482798087779954151330634185197787230301266392253999559413949621100419546078252067442508032881805033938921875652444516995541376477841671637307558479723386593926352240182260803169276708468269071288406191974911765628699969084970730823375647797687484667530526919298507928036681821437679607305087380808301446429759825417007864397304961083418619696619596322018403591635634118435818598205141363191530912517440662404939092451358851907627068893662709905594646893766800692046828363046250164021027437917854480248512861821612512114570003573467406925367903689095025923989154817162254182524520806003906004061554058929077320687309580061749971920364712097884192446667092044497498748240886590526693588948775257516401354367423792014530722023535768345446812068659513932726355927699659957377744110379091071568358658465622085862107139549354539122567328062952751900754940904896394388806425455707262211593631243949164597256491018425754082200472288884663451280304483190178400740116764773956154364713952355819997693590108417752197336203083262576165968411936614585331142075321195292766971704206705185984249976283460412316390812279089005602391472762547230446561373891934829119845493060944629450961591153675525286261059127121220414468417749781863050111297400394111935081890835733329055114407430444467585330390819867745858706466753105873320444866438195473708480984019014571108015111144466295074606523305173459452577257589307863700719576792849542202391372656825993183849635737174554050387357805408322354286682509834074246191721241065928405281116620092328296030172136384928510477358529839208709892631698435885742206374457995610541443705248822335802675674609925440227768400935931817775078576733453207311853083797369573820246047450096045240556006415683554046864181064155915986925744890303471460863686842071415295195399688863994416298501262198265478995063129214796056471849993133924449529728833783355225306656081139111557599979071382892418373574090519324118083275321057583443407862876642948811335953007811514259578279640928378127631674688525323298028567924732045320938542101580714740180947946116048627767867343775751143759233304925499457206276842336439469327017336108444018756535693160788031270156774329211095460374669864630589643299619579908391638851073583655397358685803947562940402286352096347217039450470385257108531336244754542001052596712178357874633359416592323562570393312801881979934876980850885387379015678885924959933804104507095668197806890979130475312701446911990817138057938235367271579787439956478915490640769381923678366723218190582136399034973143981196742174048660691965065868831513483401876813467904264395573859006548375807152818128951074144096045017043965485359053827804348135830772445160037860973737431472179402649530772942955247321642858586419313390462255573142876790225334478786885637977093220704754382447137072108172807262161922034516766385698542146002937106613178446743494946034274590970779402571198873753139912381326000956320636823628583078987415322744621275917935463121492158563100688909580778060593728283740660451733814756940668968790744643728903240457174689316227991526076700874957946365529810800605632053593234614913221150818691711550065566655477454978755929060742276192490131286777580134210840162883087292122615776509522101508044663744032978226504795848394929088091378349110527018915866659781539522433630203819430779722100749295291901417577525169929771479350013718996448891152064736296676121821839308489926024600418991546699738521967567293096434216988980634192953311166015202689067552639251081017259294741159705724670208362379144576573076310550469479661341506294987476166418457078238555743704747405720187095339272312325000336576544182150162660235171847267215331210750964015851018981377491426545299866692087088903694910230493046303417508983514679902569728765115044510267583560834962773334541439538796196861122862718377702626499995437897566186384522424473949249215054851012216707555240510210387330028459361318458442786733823142617697356364270842120283188436738192834713195087173122191012031672114110939589992288467480174165676099378781968770763447597018787011536350704268062034322219624818967910905627992687206315734435950789785292306967195110433305566783849538409612527795838910548796848486208679717493008452144359425346200112410842665667586897808277627684013469829419295802033057400474913978971059122642210407325578913140477467095216337310954671071478824347469732253620897184341401689515209329372895796179900974531322807631818289943318969568953047237039953890583965748355015081947010033649460754156809390948275449981181003115143112437162060285082116771605290150303839981778749861963500489080522089690682794915503815722397466511442040712132800560653624460196857385732581380945079434740660360543591168103854745541390100521085682696417436459269757301112314276156916406438293041441912580970015014762604508430299473977704434060255848315518370986210437182444909324499909412396968072735574990974754392902557984797093482190328085059102331850565958856934103697521787966167710423049423523510863007281287132147932780402066461426230078561408403259834892557120851189853822385136209728791951877465064186101050110001523921401988115501033319067153914966127363813534906201898801186062648881416943529275130201207444850693949715656963700528104436457965400855804416248425718544837208664333866575252285810948289217257839158191476913646032684476202255833788430706626820136562567060429166096739937396333725598175402369018835353007990159396724928774572310017813388850629426776845236106426208547207080605367376268476687684621043656625525457715582096848955125604270948386990045370602363886713679104249114919963014756467260027940693936292085268041593916556942831013701721500246134125553880321201748024661994057160259811420538497330990958586477131121900577851682135465676925436958683955395922697911981510567862427873863559696351596525780100887775161394859476530289336591762402297065783698536071100495347567572284079338746963969820527548854138638091280465567957867380247796245580749357238874918172010300891988993237953392756249295143063917541756523620565537533747840354751434991801696242127730575175317271408992841799710543799766469304839985765697038891618026889482866498396473822403052368385787917654987361628471601522751105553564227093034129063412140503747065387611044057631277677687955828396936068797492992473055757014507128648776037216713666399647951681218150895635932214508085348626452441380423193763653355274835333215583412888866477801396224946024358430223059175741552754477847166515158060159683143469938602241167033961033143444142152378121270529004152968328358142745720548076341739976854032114278702709946582145669614204935860051783203074959984999453677596390154433298372959877021587984045304241723688539565431132491280016688614321335901814598815345115649693087226879981544016379036258474494027676223140583830246323278355589704912287637551609935228638759482647092345489660404395528296934963273296194539263412540443583064912727969941442577153786602121596283848008077648600684421195128428111186065633816275879668504679093930302438194147134504446109962381417080458893859796343824476120094314750139145110290353458464233986653377503403288751178445621701907008268753712348942548452679529059672899114162168717207252789541303662531312161687184002908491401088247419290331003958533280903056898161959584146403500881838354477661617640834335657628291603652785505334292017344423999912982156065639233096831232606113498474590475348175724793522899893500943495075396373482891154711017298440790711638488229884179218542831749857560164435622264612259464028308647766387359459884245047099086787716750091393003821175198111842564994499619250193938047253373994593337731252524630640434299251006362772644042522129335363983888712558650282148393519537829121923251329550479427077479817573069098139817583642674915675638034024163503008997458846644559510526377303887533487344021772585481657032600335620490417735579097347598439475995845429765463674121075351507013851212617101709438816386818003253445607801138931545723258763168759141418393365682229624660091462055145978337911564647926663543627823302548582197820709974731091603511064700974874000731522287664739629127786218446835550020204307191420072846279018318639787025702772268782391036972445486411058889166911105922029444932943627035413309880526880087934617095630484602882766011907089407300282006643598669430991288386695237929866628178898427269704888604473767609420261537717791790967751278719747104408091559906791907723417208080859904286004545456751422771384737823411005311824430632388715284408626875660506972347847736219620237658441103372159043811894698293130692861159856453139893139948999833404400924228379125175552174621891287605139468988472677187466504785270664362574831916908491537125880541454036326747869539649103724005746130220293199503101987750602880237975002552157499644642453349885915909369543958084528045004936639830563782254105626241683217301132374663650818321551390498019391996251482034852336035202979892243773111150091658570103260035364444751774246989158935734705658751497625632680396958169694903975994610639763432305422721308762466857346704606223493784199198380130993928023652274191986054264249711792282050370537587427136667271485530946080779629080935838546546834984036355521684570343035006341023502853487766353047125068844087232667590565579334784591133212607890192869809935963677578312895726970428837993551303926951240589199844906046319277629905646039476875652776188987807508202115485364253791970754729071126344281360599281191735709921525555198027605603718090518902071857735055523271391396250159427253930237186445017661783595005367424528353346296600400846807272853318083527248634331602064968738739216160955927770747209186383619128575571939484457227933909841306594059996512638479997333289827244713523630011731945879729854695574966414860678319364121215726453407658070668960253185401478248747972806312019166738072237763920872324754210132174021931705246883119566130365670703052191237861779392569076272238477050523927062222837494238143061034403779823821088774143963139015107082031275456607954643371353459928062871969469725559248762340560859976025423380535602919869909560761373682770704428667046412247405699674920985983836128293650677449802452216780957009937928110107393230867893546477556514877507479466500875692695049132556126428060059883949951551625764082779816057275574439612018147497800451321782129786374375109974767337631313444066932216989790648141522459605796036374929385390580458098260355681952893952216695741564220430366437229914696760438644194213013675900169324226934913049246702707782481845523113461103453489273315060001230285383342303638247155025551368745632166936656044414642455569818231927411945082796887046941767029660195074502498516529806186805463813475251438433278991996092710858122008935766222569799359869922149925464717682101276519959597824700501422174754586194296039239459092882841814687748419136141898738281264835534324101696493465526295345563461708335109501680694022867505677634457147413217775167306207782187706492244447520828000983425570457784919191688417677178688630332126895491976457394075370098837140048702542926032963877928754377069560437339990100294852638150032628997285511301036985819326744885052228421918054554082277475276074653898905064374798169834717774907610376006282890619457639678129928802002759672944986154770652047321954189029670858378060569502688599152022861683177931813811133700846648282316429401940350166748929939240870575647942513199958612783309735265384335938416752475309684246977819186243437711155992528282731329513697878214074254516312686452327578082174391542146889435909773181565802205796404419421225370147991892788537903377743287340955117413783520191979152796500139386884855693747482161292716729572785638473863246938584052924674904022413438951883238010793146018342916216331965737001597942739004500063841651314517655908597002647003221302219852249741391577952987929096349728985117601811374469220942531031313834496135599318178835441647145038785547166597698246724797440311660606198912250415690904476466245712836382061667427564702775968974627841810514767013580425903857530620365729378401649166948271359285692735430676917886700049220273231626404070255027956209349621622733861948681106084493589560178708588313384417288763890931537407240007280253256276428402648656501968697974430425922584958047417922792534005525247449502340839265617239093094230060936630323480202108678868089659181684792736833014327146956844570493654212738523641976274894176037602975201615359389448762202357391354683427259462829509057651431942095955160726127413535983319184123578419642134288725668738970843831141046585600376882203246308656515410799296469046577706523795053459602461494020615605448430643787299452582262636091970063423456958121081018804294851368286739852132534519851986806527920161753896561841182522425296893463498323878626573832248821467182212392161452163325275670017042893990524654825877851241251856125788689455531665497546430475350319035590232143812858179275339840124608238907170546058359605867719902183465283057186827751076250665370945298883021196273029318588927084757014856899852966505733847103862059963894320941335957796447699221415378655112464853794392540736219275246848238284997312571864576555150869582415134979815701743782733663799343065090606498092983863033353942502182256638127320974354662244588764349940735538863587706720633681111322942298365405268821561270245962885723548264218314546143319125458331181255979147364840129146862219867375818977195188232785208093327828052850343881380195284554650513932469026911560267684358544393507628566726126650839453589830932080370010789324365829155080132238129887146480913564402924712524410024525254450802324615782206358687167110556932854380162468346196749237552277513105100126776057643879915719948597065176021389146406317350223384643458394835435027981902728797303202850846884019875949870378146179668646287546670399896304248334225490492446701329392472583236231531199712398944621765884271933825466621610382140069902302774264438571417574587943978979594815804972905977772621874827919154213901567104042498796038383987308071550425303932011381726233669143418847662675503258634492672941635544061641605812600689785048902465409536738448508044199481231522643777835892801077052872357981319176422544079026297752232994316244056822824048979585862042095903016753077009841255041439517370577205755550817551260179018120073513341772372476220812000860440795123951426598964340376424506082959966615608890385710684640291412717376571513488794464268910769410895310119099929995630930905035222777233262914701401786445146353118738378495543882500856927308783947452874920176886447311783104110199160063149881892999061015277816870842162138183955707918405119806759776959987531377577268878910886459165446898313347423547929805191092151468307163238553510387271875446767082952974905345953765259319251659451479336850638167973478663688327078954395966772983270966800627905395999829457773168238326073880180654102514617216288678835870661909367729796642225593369082458671032121453015761406563848832046204655115731003310627177636632725355105114011372947974242341799659537348942142140023658440811338831976175255058900924545313775605884224762865238760627246990302126704707809451241471629495570270401899866663201798423005507008440753327962569991771876542652570331254951397086494471914527294488305094601841529556251474040952579800990146338379776902129394085310248856156735060633863492368448950752823340100752025828306207113719059426781552141092186057054209610307132937255536822579473558746256777651645331092982287602837922593025131851658133770605209210865756174301233428908469922349735151163142174525426713978924805002517223209082124574110776116353591686046523764118520831045560051390958949873097070872311142547023121673320381085480920178739148793448883726854568921487783039001654774176228126058072835541533136900793139630006376970200762535050726123344151011142807093681940223698999130824742465401270194011322299993204833287467135538349457963583689928862329043972258449381710772590580394971625950663691604242881282548386971596653055474254354559734332016501747169426140864138038046659532238806099596893049398139891441778108044017768041263118730703803284078136515237865950551008740358384973781723210016623052721994787990743605742314099283345866153030265910880284894388262719286059268854625261181150655431439186047386383201495201419924016510173976740922604325484294565925858177689977165202674986419890749336425882430300822991408842303703349200032109476423574937082515388359612855402857151199968412130951329760106062238446785330430360528332459477151752110913218469296890135992039906751746663771754089316263526915922316675852838151330957335182944234019485759992887571589611373525007335299446864517727781072935550662001116627864068458347421220153546184274562778139563100350380090185222039972627590546827269914375360065865512634531653422399403325698761990327001829322904538021646980531553098829533761896730953445713037712859925458180227261374655690582259578692098980461167400939173233575445142418155942790416484050121752751116222484137648793952894876891106208346787576323688199506508172349368185004920139539693115045084063183316979565001151633008378271107497728604641519331149777186200581721183571765889164635570184488733065674121671104599185285061221968011073225482951877407666997960230384720072533276005946786952679051431952573547714111157306283794871723879901011073719703379511138790244228576611951347093824055168672986987094588552809896555090500583947977681636213599589645466936774116795236559330196254317145982816376377348304158535288710628200928673451317867057905586242287769770380335867189664400760452105077801090263740143632780046286289324312169848956969268126996557009611629781048808333226401158444986578869198915511649877595008201165471079495476162725359744314069895014347915521487018052440688805318244505486151055750824583348306015305152714103401346158717620493273768228117936382237726367695089960600576457607434908380867249533034011936473642216403187735017426283830918160337130530819470054814566633422929439437912961361179742997959789822201838204339375151390081879567578084988196711699577981480046861111020299855976962841938868761232745152462773308044657336954636549384040081977760970663913237654253918686820356685427661932684390288591996788147248350231950588774756415910641899124069125309416312561954109543530881464234340833160970495044930981167353983129373553934118732008867086710676292802662313136660983836430756156824337100324761286608742139189356752130595062633620498264655008206650187746333184048109653726939935499250846093222363891818790058724923861078321577979026003556222664391725444460628932945945429583100156730055075437247426211846516371207702459968277475890212707746082328108777465643762205089221176286259492333732230679917615024643599135638162060740858439742513315938986338310272411438507532080538973380115912508795623407291394530386270706817801468194772402893961722164417584863020451648879583761092985067605371677640104122787817955001823319726057461761188377946845473203989183811701977866220808018101648347143140329254503142495220082111433074466401362422531925987509157512173913243296534940120953928653470846315882150495516801442870649484831563843727263048169479579203556684457786382972288953534411852061006954504177044547449259708669886360993447006199388647273449927912722231658528362329253648259342107355249952854844231273220467471078064243669958423852863743227324420182834397340003224185901923803059005872229289610551499388306141350064936910473902129154397749453605108064872080131190490223110707230770624283391952893722091148778390879044959631522298968270822053048965601639594558607553522222159573834959609286492041366112049876816520941632691258940484528222903607027727550910423476071510260847037204995330735661652016080315883563879622431208900709419217345047787877409407146870679225942590522751818094928229533182148904042084393337728589025366508426327725814394860195937648754924471152085966166588308595533616071705852042479775057905952120494899134627373339351797353749095540180502086242529471556100879915414706965354572999224070932580384255389746776351480895187698836463589425494284220731203645100502716078039833613170002276335732205805047209990128777689353375985741664585200763921687804857367539294950338409822939797065831425555392829591922969806877722796639729390777908217851732476108735564189670849418232302926913249449134037576977880000852120689948851950118704243081970477677656477051666007382064988485717104832272345711925918065271167048969229098580751536275170955052842903922436500482488074481318574364656698445218053666467548379873567916422013296190351708641479733715775410615161742404449579958031556111579103087313472099035301894999465821929921964771056882282986141014201946390542328584438171240836332265624325123838594776356730120676441085014753981446342859310494968693638264004641625964695149031961110485447759191706584392706760240031145212717647083332009417568873875947770632409980920684630534774332419452200217630004662282023808277804197794933893918898522440855068666909872615099934327559421951361489460327548540028247463818557430386722484814571204128940220014152688477096246122211499922887643919191089940007645004267363603359564464427081897852741770774513395840957604462114327655989257121246407049760606889475217788884675365773130888483170413084708302811779259466701208771841286594199018778750963200281102375514363561230486554615329882829990461745177485814776012313343417313877109055770936706573655020317579004306722930314450241991977428096762212425199286327402583704007529728174354804106393450637326750684346881838874833235411216634188042412330340349096757794165377908412586879828861032352788573321553381519883058804585315346904313089809636940664181370415485931496667115981308994408254571535523006525082284961728723967465082519004532455823574868772006674794971216360282085235430278386536117112453214864879424132133170085231543372774607680663766996188951228804910891117659551573649847388606952471668475237514464152133654892467276122585393614841651438581869173841675434827813176631429116937855646181716609663402912720536530254447638306533550451146415224708651212131290099900196815169592152430391022949696439063552199065139432163036534539747151573501445915609700314795373825072228643267911802228545445051006686838264972907481325848087102088749505142696429373925813677184169065452156108761573780205352795800446849136136917468253717280353678435036189012457777583386467700487187551541811503714129454911427269687720886195290311000652148060479389430426121125047463622256753934768192222192006351687668258215068279880160735706110805557861686704947486404202700061440097794418761478549764582395624980544495512570910640270832390814460092511777876520638039371357117644763292216214126564837394710745132290507372055423326208635230121119230099328216475364369237906325033568253135543303478962915330449231153809199575553294498705280190335116740752763665598147220612180438573003072978792173568500012562331806742598872401099689698138523973061919559283369486119032394925359441583659581613839121854119515199265507043722245110633671266896256727586677388238790791336450938651172201396285944786544296218326678451700202781884192400936490366272357443728744856331087287895845848235250820156274220792392203392045082819462261529184460706197582285213387796963236786401331304109955645374774064577757684903513791673253218265004401500646241636404631178277966053575667603716137442026691617218914299163923048497382542894221998545478689482567054577120830606966401517547011398438289931933635228885729811548286913596032428511636219222076679819006388404842715260865907155370497185933522605711810415045793473539632763998872325606368960841031544136421487826119285418384995743044276868385145914918918742400661902831447985922644596334799531028630278018311500893000765762808870776888556671136106186168996249963879937029113619500621550959100266394298058423177896496506627565297834415149733882552363364465203622013216280321350049361959750702691727832370138371576432302888101329633287393824573874624509689508223833084417619240847605102724686019144743039151080377748192387105291127959055174988229390755127440803641693282921255378008849192870285467542546669735739705365362454007222398956201306760481133915634972776056714496409064045114809482486851179621640442806897195762975356223618168885002728569433652880013184412121411238983851952785119481467901665284068838218695868306612959039774599056148703612289809841138200615859142471286229860041718906453010082032794088580385760890512269876008642460648269485048618629651722184875183556528814663127523768706746675269172441672973545695673316677184928439431385995773850485061097313805782920944994446323943060687595811900386026190492109839871969933647463311406629451114715205569480402798735824309185973826397713404114160166237752693577223614775634790555275216648241460998148628132876631187524107417432987436275385045777742542057576627393156984043856772914383783590182351736877088048034374286323665907452288539522835778681347219537660500846861989626330050330936040997822291481514752577183795281384891568049192181238360412271358296116497247108026125459205952486511422783391156497546662744867185218756181629471196471380668777153608541786941838614660748536539552580901696623778000065583681884719769824445873229844530886990299337887795265719728089915979394193436752271866343782907936824440320624639601866990497231903150243625040813055353383065316109237895273339143697925936907286974042623404247587033791700221492583435241015718645398347845451758922412361367352913626017121554410849303321644230075969711058854695869571172632037985137192940144871195015371587916332125383079389694412746892273986101183720851428693197150286469098732848172073873815201591163794512301010196666203644541295629190355481051912534387131600152412478550452245480417085800974416436084037596380188386074895352662695035328164809681679448801761593992935630643145711148351667475654627759421672537822961337952004829042288165999567050760734870429085908499684909529491046326851763652246317013487998937688779842092948512962785230159883015336126834299177661463925494770519302050031055605493677633916328395389557886997769714313544610132496189019170570120182066702116577665414605136853434511733028437410975267518355759247185151889091689894865760416453321241702808114846759077301327254794609415509728678967187961801220443350296879621964404832788637996040983882536293823039583969837394961017123582184217743974270364691125810751594526635546467514367886879782290229559947715764306712652597185561511035747661042096417841247683015840339793601121187811200823174503714075700409271083743540108919934594983756706127409717699213954110952101250839813654956204515024366843113398973858736113065124745242321542571509170983114140086026489053937071277441244066907683167085424057300361178690524323205442682356865003270303065015077480473870024026729241448002051530677327019111454898739634929248920628971290478304492685380028314875358105997056148380692737300968661098886378902955732473773218392968237265964099999476679557605307182161869394599277816445253696965812245009356458994432191727916867639855789253996966098824872270586902492001784902712148635395532805946828846993357856689685299143803410528336938389808106541631250749494609447408886469083652165710685290293790114001017104187582043926198243372615611135685841730762865206310031274971446997819103881992609016646179754069102972565847469045071925244946583352764174639951788616905673265931633412458545178258082449007188501785142887176672083115995559292672621178256119044595069348961757228325071147520441276776575050868936709803366686786798668095854516356450456700098282130467124423758025533584949678345502763107561618567611024200622908622178680112434591564775661362731079617325234681409070011050097945863457244190266200577367179046123274420853797609726268687700946422725868500716364595723606381633847494349975206543190488268758253505156910742713458684179456955827177098027528168620203131954435974916468654922876308046662143131853417398650352264519025805451724237931971335479894431301843024011898085682842876356115113592545051759006609029317534197237037316626763104552677057284108266195395396768023500467639232238198895390409926916785915668921976462053713869576979999088841317689151137434627023755761356023595321292951339330688041066225809559753015227590711430726120998040611204959544702529022458298103260460366610790784614562477180721220945378224379608920847836988153399857843835847623311114552944993163589565451707434941008645637568236524522552890279717199986729963816213783471325388298076612871462553478352971463013937978843229852958454395196768038647708119996215817080944398958038250707113582707983347809856610300809248363340106643785171705008672856057256658249006303816659250276035940142072432533503290715340643720991049554417219296172851893187876675409135877109975306839422832961708480658343497111814009227825302615934813947551736035584089426644749330958461998620681292484299900690495309560199167359270034227705807777257942989192483507500026253575382687483236342276724808711441393032576445162636301415773729913585526476183106154750550543500397887915345327702159604456635703067706610019201793214017147969716738469733339707056058598922830925312952649427953618367607928799401770860176084753039347911247886123969453298233627503274176462432178205058631210032808102535309052281121335769067348278937719290836686403502827994706248624768867044020859538534724137046928259372275289596415597499167757872687009614379339091219386991136301973189710945603730161110976662442440018178065055572462339859256865538611682612704334070095180088689713989492131948076545616095446512264314966934969743616983961687411240926925087916495101225186752483635616057123486384689279645666764984846476716504656126699086548540370528105028232541582319648245828614979004180345759695865716578935991202692404754468625626567071441627711432070572623204570586425486485386428718325923588272100501781925910321862102525429061064196493219738482292467214508802767736310025106146589875281845672592050079006099263317935029302633914975478998055915983874072282012111603184744607313092642236057201406831874074143684735669302813859684496367816355466904575253185482659911617918864750699221326838807888021781507987526270959165282807676731436874076260554027715833284666790562252441503160456864894181125999979503530707283995418800406218376904052860463782206835537443655485694778361506263598993634787027909030997462772184241100176482159012705671182087668782275764676994285411305424284697967712936556371908112434752499188941044238998876558149098163133828344398678830561422069948656437056345681695102097143423812653705290231148917416269759846890675493815136882312553178553493746115050458035667819443184768513482917267953046515495980756411689982379368626545225447682319382165559881689756544989847223360804023621521263789857002732047970983507338475588088526560046011136366410695357973449086862143285777692977138838668754917368355359148530578245719109983029831395137570525256209580954017897695413946151720261764966079521063305486458118903323277535560804209288079548131044308314254117564693796449370088051788439064650598699529934562288497813679005684246906689823480376722839141414639383441970505255527456615243070311689399586409521846800689011361913009089342682782883757056395195330125180182350049293106972725805703196643197756434141864919570951944115202257960157942174332998712495398481643215884016823180156768220588903344340576906238372620605419470830269886808831940015177925067757175174593722384717722050820930704159311736220200038813060788840091117739664188836733320446529646445934419768596428126244512562577886323153831909565428679230834512402761688835965251028829254701745885087785467432335413143581398900523422703880060771431783425266802996652515958052673968256629757854112732459999634827193710570217727679088300584907363364013164799368378780942754761608277906353980263547708948992177734451897291008461649056912644584004920708308526064556605541887941017689160277283372571529263391248090560002823379201775264068935118044977919973237802038054845153464214411215740926117175317752534252312656527895654799495249996613418668561137172657535761612467563936363465852902198835935831392192491393418642454135934428166038405794303405858305951612584120866417970404500557090151031427979014579958567197456136453537244757325971762416221665609815477651079243328459730350221418019104377848724061746812837199614628391664253480309667240241178483790511869883383917902679307649564913279665781977169564574759333133134262607748971367197005879051641105756086803903926865826348706345405515763139861676381077414451225941285507544942159529485739898630568471553514877119332279431038600662876069707269223883921101042205418231418783870028474888838905667506331222092051480787061361084283744060089044614667973715826272029111684229324748247891789685877780597760941818644316340028850264536445513550671213401188690785557499410205012020584369359438338431421187984966957966712318296941911718158049435257952406018375850997934371130880264021542881644344306720286303061244985371567180909678367412752020111345413499839171117253538517021424306732100031441372887105544078958247023764904752320309705960620761202742331730176569032003677492694227330322757762751700794150691302352338229522938042374299195531100137570087357404896049301491001310514828563869984292941736475578552941533379493920244023171942716029023127159436936461304778015704697510260615433560235322727132552378164940552536518894649839034517885744396354358013434976027147384385511984781089286682294577257535978429545434990952690776186980501260973242575667396516641860943350384149618387370350938070380101695366304616092407294362211337355372256317992452086818271670641961004506900017835172681539217865847481240698829943944692847539212047696704008917516980044735013401137800552105630498825434932067996417341838113208226066190871983360217148256562393710727708004426030257864375469141406467379988133306274980434048844433937285851420929071406931327851505346968127345232046363566630091702633597632388614244380188240491008510158252293256556727930099661715167571103702279090057724322645193485395815336762018043079066346938595228276348528073739266954153406812865943469956911804724376608938315621924386564103131340589115080721932867391688323814944776071992081035475388423453896732654849684408063510671575237120307503288768536916612388601773535404009108803958927512100254971669370797871866429220140145588245623424144670313230350128103244201632163057653771387099052725968494087829811861525888492527218603289522182402628298323270081763455612997145774658378547242967461824664384902978653007763159379196442547839488282680655017633162340101463270947259720188233353881335302545653904634831051730084970426153736764062033013790647873873712146452555336583558282531298690853960026366890725505682714100041735228984821717599940268074649141888703063814711532964678955931808651223026636997204711317478634905277669414273422723279580870002598280525801378538783200311808721509846232270743162776152941280404273173876699769554819153808427735709328137376056176693707288061211955806890081599398264876451200332178564869843209063760256299992888973076124774122838326961611075164891522825064454626830641722718033834317376581971246395144787832000935133331865522233895566025164708101900224467477939875010877461626988940950281310748569751286370900657719141437702967548562314383251595038525173136644265502859810576418370704824060732078711770552954530969818351972929411541825195835308336347495599789876319942510417438087738564230771733254051976361123906352198949174390525500247755923939446107776141318676550924068922230286443171562375620553253594758883418841103183260566160857078012412132972749166000048992747414021583437012481574191298877094711693311104113046464573198787106957011354876601684723955558088729089717469122036925118972468059171125745739439114565180610608056378653089578477353911887809522439697800184582364439544824465655627892290237229846083255470549406822187880347317899183416054026859967487218008132077885533824305278895252897097708026085078817526844197474750300894424270027730324729381969579912766676269025359762295246233268788313894840039368170446872185101395713247675408223230437822817504981212218492381106072004410173724029200225719476280314994515478334470303346453163731315274916269277287196580757976562490296241213427394749494996058045828871922218243736016280861644682942178448664330819416549098050350619393537344184449884818559504965026322264508622520870983941795161372926156316664116379086259966195848326953820640610268251704049489883857919242168650982917047583952932601194431057299970094882000646282506414298088578461198438509317434993315875405684618443087248169038284969445491491211283899174426980355442566720592375940150852875841205623818670543118901668180971789190221229351887427909219551551808886890313447708457777145492835784529617248746573332043166606413022240780940992408614861966164617915731781241135208581516991824554105441256762164334410701735120323683692247023947522319864680946657670084414776271127818203706739477302725271299203114384513520199463470898105814668173287078775610244204807475308420410443016348726332678834504450244842310917755167367076052841051752145229349324802842648388484690020994452862646418420347221657095686434779811103662204260528403203412153418624039613679265397630572391767808239419738793739699311857904544687873150027991647682588517407844000561270342803131241594006256008060316896796077526780558515844477375732040986866150895683261795987193471910824256221882689002334105397189176036305647134218859359916610040431195689986685470952963076078686347518088766821399004676927370948474866326257852632299652649029047557265564262817106736122779326818851162138242414638514198006184825602021620796477460122499966967228685245060285138006176482634185967083763616017717878758478721135242571274834527649231762646257436709226621130773355520568338605430705415874024492900357561116555571699857931310006819332853800182877747232509141158198505769545095128707200576522663427177149957535199423758520108327557255910134198306611780920840327015963024197359149660681090192953878864962912091547913184092762346231311444102527801585364435130263119592438461455078334368713210905114872712309587577971222071836071360236141627933630276200661513014317558424364472527128448286083347674941120679990018473193190469613014178604322552671008309502966151612339140072324812740694337484813194585701844194851954609071396254069592655653623192382949857221286126450946391949541107269221906175681772129328239509816329423697312472408434620676415165837242952236930174326841387410209413223159043112309008559178089809863981147242343125977273072587496545079884608503649403556360642136024636725029758258821423970906963894751585219601005670875761743422200688184018678289640797134211987989424200542623226391091608083282217206238321815660095637661311507035253943137043847640671257073659863704705747299557705633292492870667671578426397484164818987464420627326291809186345695140821112621118307784231880550483902301823855961986897258663753836854851880890027567239148796757475871447704496390596664763884055513983208511051808694673344214696438893651987429294500796357933677630658354791344094374984874917811052595293494608869603961792375636352705682866323356938754782849604914955943558112337629627949110896272845630669590312923738949873906464548234526530112459709369166368198429401975703961105018093963707677695746134167365949186840715979940977492129514475364355705104049071822680477534689219219223966559889264013833854256494287750824045655818033979875280750093213251659556264896843264720950845726942676196203246524253611380812855410809861388993231752761000593682748189193057268792705270668165094738441124135225224621640589669773776626694722306047925937658904054510890872719669296026156460569223470830776597249422251734490049588103258711734985129334074828896282286845140658705958220885463566222379692684577270800624286247083910001271322746693291077595784116055523253942755096006076083705334480806961357479866100345694290504874288654158520571824749343029266450201290152285085761374552109727391108825404901954679022537325594370109330222334353367924791554865089056103150920105329770033114909933191441582540393767103856151258970841315151528321798116250944078384463599269824851477998262383671542281850696667162662017616097056709486112509359420925767250273704083583389316097505678303544284000039700202864233335323800308367275769471670632072715632881451354026654528053705616337565756556156045683973582112723349302665713737615780888148416954606951892450897761458277305644711560367234013737512391133422213509952010356177643077090804473048268999177976468760034480364441486413463468999507845551020302988863338483281810726992000889828571936841389153981116763523701359960477679432735219462494183398303417727528719732165352397478366615988300018701354800725499677948156412225073198207773749493693405159261512147252409133124328535226609509917886242062147076181444365168205906693702697284844303506025219140497755126145044657256971231595797642958217968313207204976676286570471311714659716899414141941558552792132916553410803586453942360439763461695335289846339014437097710317188526335297860098669308669843526393418436970318857439062865471068519080023824792265970669579691292282779776008111989619170518765770471548040762342014690147470123007236720063747941465248848800218697254454637056860047232674220196980822142277847213930550996393066658835120573420953623270683351905374323509642416928024349246375291319682400703838920994682079708205085530265060841729064678943292489042266623714939148718520453336050928192722002667835450900672192934483571874004864525843619500945520255338530150193608275455081483677629431734666870183989663273687066717388978381705851435561662657530589349283799568837156619051174693401985358752506727461577175427929766541124306616885792146630482653762362917863634478732060481168564451331963377597452108914206426210773371687162905791090473783763999340317610132958656601786861508413202599439184688026600919412070156736705275210446025424647662225537968562211299822221366194969278051234613589388009378700644588895530093096780802205671222911732449621946663360850150959491680911944318831887557272880726049204842257269502347772736256681742643079240727324305549238831405486394592952167346120593473310812267074435854430639051354861245846923527729555959508163391240344880846155748316511028056596912604738220096242987861895952287301938329285962799349844728509583416182154386610869136544064259089115896981298974427147086063734408895081120792563243439121604867098037269298223248558249957089431108637654840373752138369775403725350930868402408318659218947543425465681993319202869736416876380780559427264909405431860868835870623993038093248937760639588088169278821723284010080077874468552849300953561681336987821881319879609157078006065875120413681055150138991407216054540732098424457112407869027529556371764996922732097345339032749384224697177560429121963794004392913939936963834312381057271231601654623818608034169377923236080648416685167008845800707990539901913898692886788685012546791682529572979509077814007758372919595259230778985290095374969314464885604201830724836681645348889006164184872131401761979206738425388528296023984285540130893392381411757012080830155418887191011712203543960412588136888048929394096629476679405622656481939225363716863010600798228698905371847071955248636144245298398605497226673813992712323269791352678194750815424751582595707182151747793330838053854225259358687900112017697150694846872323977569602190530277291344179895332845717225695951393984500808185505028461731209346332389767439668678411629825366441222235054206323638997861301160460642764252472119953879776525470989913875733370958754446068818103330791592335169400268050996900920168136950287589393771494933112157241590212362251549726987858042362441274878998655931459382697569314305549817950653144186683273288195130275199567217538237057152252291788997389839063017399172994785964732882451480573157662397274681272069283546859972049158200654932142637378536537776577631054256491563772800189810994441267947276921150956072802362828488060198203017705573603550343134769074127602842407027856245018676049368092179666630506285791925690321609215503829815738436504956833388199142037563207628943768460247661039435202294481010140411684096352222244652669840429640253001700640703723317193522076178313500357425684523102015448618474112946240496328898364055154538023000657624314766841533398052677981987237595528463455943508759753081225407831152856459138266985406198907598592026853727923008414753034616218457484881555487518028075008701148602056630051107952626218165099970462460938200305624610355311040342287433668786969896589571460526360133947402955027742886004823589976160326074985704712218455866713227141006978846958171262714993858982858592146253686919607865356133568450075766467433310863247115800710250863570422004275510279692222982886795051603903278422738873811183032977329682416042683236925334343948056151302774756556422435386312834139392655972966202638496945337587293946902596287388740148807094633806597996983165111929088025119256028581730499108412164179968432523640204120266603390613564414013138932212028730629445326131983133356541252058211952929321494053648823003371378130699337526267525734272054718259851934397122847549742322825404076626173085591797748712629887002266741047470611468698028702735148198879330690780405185216982872231913175583775553832930641934332767058711857276687145649647500467923706677199070691387000871163039442974822989518150941074191583828498300089051563374997092344581268411890557203901380937449267263259914733455221666514058384741593179377470138831092920729725748072689274863625450102261803654579949694183630518520334858306138860891537475768145068904830504743231041756725444567867754056535324624426384501125401588113376287922791445769993245490207100571938902433231581806774444726672317664560768234838627921390923872430415110888337404826020756447675776852313457857843464984582933624074648014159794645214350928554441465662367260070571074429471480899305462524615053954667294574547752230988593834922732118140121819937289727478363913024222954228322658127299397886975817429336440054623339798479236619185224022625456201012629622742562381753005177632863755395427686041957675848786829356580164847516468108506725307386935018654431860678211748070671023860613289732571244782397944323926851468558707175932678693358768547160344896167761171634129966733645058979211075460183012363336069114496418838793412184219493537874996652379751539176305915964610347152121465642747239185396502131632591123081652835029486819565713588747677239629019169319916776864587305875528874759709015918885841340231494453516371582046119392953865006309019687811487252002463250058595509732656697594088092488527662674442466726398494549409633358854494438550708277866043263766955889909423392133453243745869236955358408441578541048678823088765914992585877613493789393381723956612673264586058860998331302388177066929334834048048944814411828434656375280816656029472988769848951911289727995059763032773051776937678299759925957344752814862839444189362992099002413580600242332685520325343646493589775270690343598809038877648352811417289852206157665771897459969312690499427459585774890071501771028005051021850874633374802818267238663761105936721215117891006644603828092457244431417385808314417365876863724975750172418050556481564588826944241362569737929225594590205061321039231722794686286895619967419234007390131687938180418212831728509935919804705998908531525506061112902960745527654160555432346261016708812851520318516352330546845016309787686886251609553921820193843043220857880847407848236511516852457920537636285830047248894990623220277150103893542479206727218039032318085454935230021570322404830357516834614195045183770461312945022064049232543372082330956689578982080018613350050687537855173898229608645792613460122933642789412934723737724118347105671994749881325566302417485511254461353073138250801775959002057552568829353541033294058247633459548911914800263059411228562902099198297089226752024511822200112557157924073365057461275883823812394802411040449071889793901792134917798575028751711212449707103662889052674505062509392601996539954670766856145659300467217310496756990455624866338937724735088968724553086783819397974149839080870071248444061484882489613102697330738591249879037418706260010514215839040887612370365371352029294878765054888518285342824841003839855366231337645767092370447705443448028249088623220965866449859194336311920583162054531014457848223373995095568172734145085035650280593064829271852974721285323881753240007762565488990111484683462321804607071758237816362115737939333656351436126557882430018387059786827453486224103312709824869444225463205182429773306319378288052473627727901023657515838777044573638023243101059133025223974603254422842530476392499368741225941252534427457191435790426198559803235541075551717960222573100794037929632241778553617780508804949631587383212867555429706886595155552168285084918184671511976087907235697860364620410919720649300412315018883777045831139762918700923805268182097875166508952119937827049455139920444798943378848423122248762725989299789548257466434857557926460375862242308540160622023123958379396790618608202073848623338500638603716795394641282798171911311961478216700083080895078544581326695481816638625695092523164821917822134624141759133543797902834142377835388892059566846197981052319282576652938328809119668761048185889645442440220542748969112069333534552351730720139527954521612369056345572702560858266064853839180881791607076066138641953390753463104231631434614551495468392152545717652301762790713467029896411934810468624873109129058828693056154855010986571699431794832040020461502892242832539872040350919383645420568065798193492377797399236164339232844122291241613102368123841230940085955594392123890261014800241184367325721856692868521171174389577355671369440365534188266303219673712204778461396724242393438206557571014652108390411058025499057430927093659718121325372945327612925571603381159932729512007956007811205331463611272220893115014719251795352428209704638353628132373305039579921425714309960203390688005783518739818893141181303060737189155369873116976049855114076377510951304991139839324182677506786129309334341944600471092978714189848380110311027418843783292048283906220114592454197652212689145317872121451331267798784556044561595952497545298575352221546817148984145111384250814105501308548962342436284979104194400095354198478294098804365041833757195053081693362546548668506765948602108440320888369791785745623588814599483392712832581756647814893076301831884503175187702543381512172174738086474183691780511854271392830592551520369615442655792743340951740879029284689484767512818289936936963800520966258096309522447841141623347063886751542015041317535385000813287716280810470018834689655555443257656803765673502026726529968266884467810665749563509998596178894324430751583105497717634532380639058204773181162089074001240149200801923869544920213679302425802464651769831056714850197856958739975556787502966173286707949082756613216383025793652727117235764937197729881838765016004696019807626071729733871958649870990996872471749476111410147825901880118245361021522042204981976181635300339885999787260560375797598680307331475224756400757151879220164485890554090220069215710067763592498572399552763201444121684915435778005526595484999851247978090199909088142554531420111741169391548331482057382804145436271804646866262913735823496648287522089699583629003659621294068548508879007970609715361504930307097144793566401490311205530808240950244384198758241647086058648990739406875441311017445035194648723317674626024900661157888610971626885032390425642166579301971423307771445355387862843251433602125018990945261445400526852137717787667494322391925935590651440122799532365738785963366718867982100511224848175402924750136695005047596708441801263734588010662253040018506698181097190490881302291872876366011259816340730258132566262078794293937730883405816982294048034393246806755200085304321405383703681196744973642664329903378153525502252468254277644827260490649082697721388698375592442072377285780670194840754825024590313667177787679458280971200747091410334539792304070212470478959724163063167939042624636533153824680278462999849295582970677703673617809127448651096131947837554214734726097785221422069774417333930237588915451744621841465888174063321925106639986263693688001561290539774891786922752271866000006486886069438433416956897619104793155040737906994805414239314034277212056417610191846519831622755248470937887500888830317863573072829187673035632713538749271862784783688027045784857087073472818436550765235117062567559404561475108174628886513889489019616918735866440178911396503312482862821277323414956625703814366703949649642201742696525412503138667154925779242582471839304062211931552939524729565961088349107731184650661085378223722765072330072986433681676406634827126596611335519405462150242795988260339343777851368966589207774770380912306198797675448538884934886151790229895133551513178169447938984480551016044753872934602081056423999956531329438181181794916820664342298614174888862468891091040157838357890464703385062422545091526178581720960154959041901980817249863332365323996203529983358128818444003123166844128209215710365003177932767165548592678876429119443885218233896509449510829929260775654351813998833350031659441874901573825151534911730252921091190759492242574830715970710339463947729017711117954838753245430821919571097116313655851113361677992674500225456746172702619265822809693016765263536797856218150440685524250206327743120789245928073083160954493228199057876042271412546989922037225580941931329073979529846907496688497302828612768342445094025419733427838637133216298271886802877048859039816542665131221746650688390343880540662876132415147364980113225683524539644591778808774654570209538890575598696204337257885828876643040148602881347856677752231677008528156703135170869936872283959797761427043044338753674046103409626598140079595373380376608206680710192988098346461125352172626474614809062450843560918326623328614765717887367070432644964237558311181086135320630452731355013389325846980396507589459952787098686773661665652729409662709536189923808343523250645354065363667008123808431421291608489392606475750424360773370076978010486226866973272061313087712428838079513682325960493546269875478506976087090621394446709870504353997170682855777324556183385967258415295843880954100363797690748326392232269676310863039981067968923416082594660541196578250833791005176430719600669142267780803108635894954912666019682168984872798099736518826787773105328505919123036083903834063911136575293847387327396475869511903909612921446578009656278230854852576498319237213841985818804914914081220298366647625638953591530954244210238114009422010543587336021765607515378419898361830584080950957923288723131448256881159002930870419488419522251557714253601969600071163474474393500568456344376900335741760282554910888521532392506087844859788167278966902631720010672064720740459424890050807628233972035138346041011685589515018945459228325869990993583184838883333495905712543219713999285566983682627054269275987881498938895553277521957161988467584092669237122724294525243982523836417638668895023936487670293181515076725859767848492337458449430892319353106512504708445945982293233904494552069195194753050359746278833569846132022212993897490693428402335529626356027699332292725089430202063972785105589058443007897205048804412923489474672886783891502622888529128742952750435565020962942247367934640352551269544793314931432012374843865246657866338104602907702516740675225470354471781686148529224587986189617232446589528197151406141012192732756948471047837285769460924518169168799535580404984124110491975743929251100959314280976592191588701463865514029775960129535847007686116829226443748883090358961861126606849828180729560094573218650739506343957012535482591503536895771466916509576445043362651251199168204088534882183992149037468832063892195839677180721260732788561951313557657524341345366570848659341598443546453769453590903140796550810660494682247214518383466501317890674110392803618900144192600451772699029465191226253027545038060324885188360479364632249905482580495776019740854482383090288704159731204703163934836548926547230251529080407727077303618518251961201662424935513390875866910423295025219622274262425667159298289304043119006795704120100840947826597883650327603103028484313256421105347720758350314603861753293827376171032952138127566993973744418533716325063558390500476440504318465550507304089903892699362886204694026958443150631088978643382529879170065955281987833755417779176288761977750252490672963806218479450140143711027157594365404088338258179644194308333085998477598891768522529027457842168969003684371389240369032563217458039652881882758186777509035040778567728215280374417828553924639303017935575994696195281418099816035856227245541275974536963753619557098053523451326657464468262355483975934275684583454305809159838250894738928769210297688742998711895415173204358065191585613271735168111490983541922118283470365728867448815599802621633472873434300014617603878659001368802558127766026346001449208170959073372666103607362423085988438525246934735966099379697569178349256036933896156460246531209080086702727847741561036000878975336766394492456229509234066383358361325146393239122021141047583736381538827391201590659474884818049489836365636223485421468944007752508002307778637642480862819102818203471183174373034933442617797543695377194812821564298546505610964355938031147766430355133888829485169813786387513074991074046317672875953236553329126594764048735628441175079713904740055133239389619555128569785980204776976005252060680548352054715812429473628012190883115120816936817092279617805040894557835991309347632280801514996988913569688136111051402341987841705950776564048246311888590148083377611155237681938306357143194096425742267143549818473954077948135087788954885441300133174612510004307332540107531424253624326777980106057834007304622567359488688561912669235601232984355772650000647431975147022267052828038895005700215205390805702685168817909665359775812636888591476941979748297001132585765878572669679968003208967718995220502920349071802140169102005628654772960086926380272911146940147119550677284396877248732715812748042859781030245051328997441075754153570752061036910290943137069230002758489532125119784688464230106804490373289192260583773886130912107117705877528703187465304552555815403887856524173249573697748876076701195049289418324591821807077006224950287899840599660972843531403320074981937074803208342455636186316599741500158189254372358414756584357119349433485975635464919175251174560830819180438633576468307192414107500409488685010605996185014204586165368969551147587396066060761951716262525023678143505929992743236542178715953380317592362788987829491326901896017961588736995835363153030503048325861920935222145942082074130397798738379090640621247797034395114163048800821786819413639283924963789204424567103999952897567048617902880627342384547397844728193551281160733812632791742199283209721893969611128149769722842643702754075034764079013453331331324564963028811571355381128154995238826309068009825704032522248214189545731194710504933927455593513204206562153689294936646864090563109585365986127655029652850490850254774598215669295127371133217455907531571802909943258834053869948164099672325312246083210899317524899234438119482066431676943205728014253352052621878287214890835065610874192721644374574088327016759943094565014599538832556482404066112833332293469447382298147582021317975355055545776242963255122256361396446854997894034439749368161016591941235650173277012122574966526646311730711573483666997513141825911584614328108578758134217376132983820767519555975541957172396642226764547465200211986278228782024036452599026354617705964647041183230009657954902487137117915631899562108167542835268880911798918327001510089430933502265509880417268148908812291287082952109766415444761833098113691278977477122980202133212746589852634671926624555388319277144999140834101059524872569030654767321855578141002838442058890414682109669054337555206532913423204111494441007724598556415289012162258426352551147078595553213609880932895069644837618776325259427108701314679076750276325987325766791190434282627051475245364942311690421570359226975853210231171944589747868172321561144409284498744812255972316167944415034458684482061781214268917234825687477876627836168367743249408773244948988691063112600380478865818134246210720845544736421518472876874593713829842803509208275211768993845949109624624375453677491827465418467347459270497448425473396257541989940808113988809617887011452014324499095869529262140219339730031606517359189393323587541379546540821388091274730654354517356644909327584900617263889764584218459134590451977008403452259990961887919339840288954323562790608249368941546323611677529403826834623555194286330995651263696800115648880489294626619364652318434098834586027305854133387446270545353835020397571542522128525212821830130299332661790412226923870614682842645748068445855575824866887213502541730937126041796912427648131997461140265341380050202471813955693977026651364840094792620145897591381816690481772316593805505270690768397746184553099126023123008399979841076047829385141598878724798422390914376454307318765451890953265023109477426368636396795651027995433045501962995102898414290991155800188855761777033734674454678487614755250966994450659033739301500313160838320599729844570358016495399357568734065602219921218156704559208658030544608103653688805197213057760336977912821309760536858063007951517605647629964106247398349695899949168518709749894440934598359352326346812880259885425319651316359589443145420068157243560539801859680943714942865566944149003491115569797346153042368660689450470004538919216435945629122204204541554833978183611551289833126210250769674369298551683203785418677422376337169514555308472609142939192564006809487739878753639043132845210957787024572168036765425369755669337691689372159682642757537449497418005416994427085677468627943345741278193459750892923701449925344551435339662061684616286946318834116381687326356609668442661816850878358302201726827279515949196298894654714150300669941787908569445027324080377784271503413853735560505077429615383765820055942220959407277510193188046442455891294859364538378440501595920916918099209322085122672924749205144015172216109792122102691572302365693498551243092306603059365779850296871735291334499724162964734825673764078783302942775073652195965175395117328425384809993466669701185413116405189495265549500814393148266488144464640209407832353934236123495389862481501646262872514068441540323241030381292120284342758340771587145838104201688625456195295922502893750379438292604020974002976591306686065952755327510698794454143399655516194986920940659152382011727678666162834438312481666252038836576254126699845464566305626956300524145350816449079591479909647782002448130287670724944687100703971599113759347014971086244076651521471989330630186021305048086070345183800627956418712285362423280665412324259297091097700292972121994744426228543308684127337911626984752085482300415690572101220265546980356715481577352519046914043093788933407978357663892407945831053809339861714613321315002679579725818962290576615119916240999193263215059982468159612035086196162185140955383507737097381655129651352026318952939243562395145390317544223633130657390191841231458942990560684292537598977918245736986947330423936923373521115413358476203818142692458622068160517057737223332996119298888705213003969668000446336718096923708853050360875843204027557567729670050070934456292198755900985174161171010498958797084469521957848116947199891507108449626352546703160579177421169382207722093235260057182342362393439411167924584091526061686413002559143056811111779708277736151832307889385667509092809708369331327427004104019029461443725910813483549170741047323029756221693280169277049193289319141114908869724389042049221875825979970675643926559694021381142671289816729574280407646858336987035423399064120619089258734901166405703082400764912261285010187293510024604618222568315323826198069982118384010719482289989607372010907570340147326678500305625838998049807198497734231901917472465983722720742108557695432505903407033405048224226143087628088834201672994184495616288695892134723418576797210819805461815839733317831479781392885064825825088189657616971791871415017060915450039966398970448413092125469123200475844245375100418446477104934773844112579849619665499434168902643712951268056230282085270878043999881177877526438418231405761652466193118860690405132423239531733139514493709568694609307469314164276161660931859705889566352596023775307483043131652545728120657912367284982185753474555387547682602700226624748154671053178253911427371720745827165096276400991584750433634318265463544026404059732843711650722540326513665539498189050993479379819858069782186550218132703931536004981536976329865055365877436341521795877561245185803483099483370886025489091525828237798366834873955709870662763298057251921879145360285571773767137829961577960518685217746247279774458945612549743742831904815350809536033451762018622246012604624880226814489030208699540534068141543851849396599038459111745869040957358146683360303234564462806343052444122209949711134702414560239693118152077552892874878936396189283729487007933111713325796976022839831774557754586129931105181072396948765794282037558844620777071732341338904151955540464755763270276533801079265904501991399911148631955713222124599327298591184973501322417377527672498332161573711800569092997008018124471868966578772680054555115368197971988268480789452275424334870367231884210352035048530872411544593847549658620092222075697993203380369371970118620686785419495255563324660911586550421706176765066648772023067335212871229572864628593292686770613076925551413724934001927652248539432700595619641090703916208440328327989866193987592464676893911495031828083479399860466583725069502132569217564902388765615240185217012211621274685894817898502864744778728805223523568228520359372244127993663796742824483964378068084949230172094688777742518660795932453717290802613994109697676546634094312714343688065892069923889663399237781474789350280943736602759003646241613009187349859596342804784736956735049651242784358854222294503380011326200397158461145519604154209120235447053382014780387410007225248623183888193780192165821037441670975857353741134083939552285787470682184294374504489182475143887812334555863450776262702177165763086242091747050040170866401275592307039259902570961549547425743327576518018968833828549557132288485916402907228197474390843291625499233603130937725911624471648741422681576199443246160572956060077755727121477555028219570885987610308616526997434567736849345330753107855095203683421538202686763679904808755129976825548332690005219503130028482569368881011500900708334010090541605439705010448801241231425172792669780942466246160895311361541680530976880079062255312749586495569879991888536255300611324583354828575063694882255737304037192527978009324019657545394260194974997779469639167367418736987987825059437117506136845125583580071465597991832278671542835371934195490622248935956224872350015965515958203602782874174520513574548409743275382575552195680734777891272429525285475377416310543712273922030540663165394607929542801194972285986886262095970577136576745769464229858567404085499316146892335485678633144181922122136886299706540317111527979213893436282996378841327782939509892054955684786747301183738455056131478157054163011814605181258318152660993266856564474948642723611100639902015319341288259832107369494952916086270297793904223636251591408247034324703681924639827518952691022795031493373089983779927924543941160471591197331541232099717813372288860153630328005321283493922821942798595545541667925851085320640320984885062781566162148812846676727041620168984368806948599100745257530198237645384205604722679798456326015055493416189255332635667717529430341119018787056822355471201598295028936095633683611856083769270231506933402659423041956204596724407701136473169496910613049728321764084695335392064815005835018255851030854903488038337481831944218813095847742203769522647144417245993959341190705441636307972141768559382864112094716562019410130765693954697559964008297600535418866178823111020172715573022550595290335013740258692854277197466984463603029814118345183219329346621191049720611973683629567033419427791676238341546392166558972067100211039085968668390528173719652781392134501547568786291318332843345475807220124754674876828981892346880324971215786221858465238181791603387622054450261053527730169177366478088241739088445258913852404189170539301360562050253228909091314659975223046546496264872705050427985635524999568943548465629053352838905240747682823469442512422052432146049691151599502745119211568291361987775744299750819945714978774047543664667121836718639985938647758480497379574310313556106922648893323794188621034303009967129575625060330359032217667494155356337239116889032366927392379605559478222318350257576956904849957835534199270800453710290967308048719319218734905095783279092933409790112305095355177878797425730259126615147330971950212836644394579639594272143484791826563859652532019504389724159269468392524242186038072871266166423738352176839344656894225000557581315184030850597256194696235696507258485093481378292837221706822897942641654257844542009284748645428513828372778381335135819408279535792283988973991137735931487315643412685577389382827974403739403858089054758537646920265681816610003762245923078253690283197605974266134558262895200074717519866139348452285860670989229139860073767216427450218418990687512821051640714206606389587802832431977581088443726138355462961246061281033813110128147483064925001565512390649263760563155724150594446447578971934930991026680957081484238104884185792550051367684291351141125175793902226258740088453641633871277575302581962372271590742555475734011936308352925466276945714811338665484639021230369169058049540678417310559465918598303503065831399068316976483876101199519366253613888976226616508466733759478466304203938446589038464883472822845237953170699411613641081944696996724440746928392364130567933923015291910836075357808954407226578423150840588341954782356879973662184218680496876430753139516367036626375443913518542939738639303504732241669528654384395492271047001209217380103835760953115694497464875956857723939594612549508301794218645124976069095855328481413039828332195744156994123083932663795175897709125491779731184593992615345221399614109834910618405773674148244441335724652915031005080446257502537452754598551539294860423302145828071311737531913940893517121551804301704622055447973766966747893173096271481780432052415373985016954090511688306812531486809043952323243760231622525043883668986857066165306618190456852747466558716177265851650734155065945175613667842590715951852649232661198941992769783302883777941111750144741042290808902366083391940652111393237267613597885389234282889008977305473363126803325171091298392614849700054268616029942960963848864440600491029455039665291702342363466065042222960210987858800694421569857705366984484108686731050696302960906193423160663874899001882894951256155911024044628205315937709684265648034603378173148140538450449907592035509064459099090914452597256714953028272645215273966122182604134614750102864922445726576575452903240547143706012344312177520657776455271900115395334250541807539121915059837985261573370516229544119703078887431739989145794825349987158969437877343737675161566395464762435208186531597510366689707775832838650575235805017140232362041820853877746798302950844233833110374580653641907944749706284770654767948296218866925906821760067313916066581607858328425138624683306260336679546791249223032388929568772894761215153639603094062765311976690109113804874054937787515860827573236354566858067490627165972159902992186708613896895137370683173156800919554827792046505577775066888521186692976521103907786318443369590672352028399996432396387686732036137916466867950311217912679120494226863196952264941526031838460165370450925925788004244059443494676228555085452556602069422687732189463339027671535820222547033122347985668270282524598801234683953776355174689122536788123818919954637844127033241873737633256130422332711844450749742422378266197046104011122653275889557238498505763648049409248040111162770871555279884079036125727883591241446081033368567697834958256973338399561692398900085029353534299965740696377950214085190300644954777473548411684055102877611086419856726622678722878593933583970287883595451263588076265414634051480829780026991158114186054762951288199430838665320484267405555510253322746134221993103619477720495243388211785032250462292214245695555003313775842857102650520168844871279318563741260727741141786989397154226727632286584861696775818739529467092943452537335065005696013460731802577679099155134503484158398467526505737423974714748125400935781953545973458470765007447097325493931035952440878024276669846308426444638673638016286511939259851334195630392655957116711230449799232117360684897591755826316223902262248984622865793572796249103764038231040804819749428592702463212739006905074988773173218854689364243894209649285664424617526423270727279330815571558866484163195316141173690908132019027389528425154996722430348902376328054372916139822725299083690889249738852299592377545012678088732611954616362090049010456572723812186073402918544779953528995921194551880521382956261774080412733037942090367807531125676008042604950740619056487808050234373558916155389927465633076200800996912907610063205373231269372796200739054334374622102589957213978891909703175501973559378692404636111602720633833840903223989418916722494065846038688359912725214200892792743098661635079572837905143855138729527112983667896161918139486407368579422616671178599051403823472914009009792249130249978704003805414564064290663790392252304492171609589052028178161599011704358289134091358894393049509659960511332429448250983651074985148901512823058472152580251850119996729092301953415910466349751480976575854195444193866030102393289408190947927848078304524045296572175086034722585941757724710712442707798690720995580682225197899864793298473283077934323740885248180241259936076280749955223104632199106829980811820415770202403786723523630415869096428133036466253394949402426868625765918335222413541020048878505699747168524067286575194342570625734736675473650312557208374721707773173242611280307759065469239502290675828206127673498471063519764466442716720938461560725568203791375209490395388168627203084219274933011968906502185542429917425792226204508851936642892877228775513009477364630006424109929900045932466773531374440548668487587771578864754288251325710249958355230509904068164634131457314484939386983313477742735215011666976795032349208702667063334267712152648808795365929937351899242067225119480731326592334357720796452977775486743842476892616068173391692812463591354946096450111565885729253824469117197557285107865529845427871658302341211115530007466352555048245234541048573187791003476233058840725783349844254988058458762713484532692040225683831642322237097645471405091236413440636195922050000387149001957833598078100859888605597284847911653207087459343563080218716211148958962680089733082142060670637691930990581223716105016338135993918359318713030449261801897108928204261003161499659858596679590094337472123334438951788213921316896137345600884721183405537041739088655022155389774248059789541723435365861490158428369474900604308895256061113875543858496272691509108623975548059013623804035826260053073574512487107741426347751250977397730939072528233632100264802882297270641095201052883807867694620371563957604766114500580804771764272878001313127741324430272340885129896856038315246574743679823704601279075780608924227128322264403079900615323141020797123800533820530512191173870930198385367908173470015597347513283321602546122502724867125834953157390056206935329540235971715394692464427438802759614864941292475277337413495071487803353778663631185623061534867577670632549018682958003825878848517645563087087772192083183889862253677915514040364912819332723464641041042088110931260983961840185584637023543594672485749153090804859418312609672994066748441944008425983217548033459861740020043137850828618329975681776571031196315818659950490672379791787367219075156406534377644763062170576698567087492270750280876724620422535389447414241343631101664366396998808785733504534672454066921810426881156695438451339196056976913074521339412192950876911121752555502502270789147173800685423650303237374867787025583890598936305021008716646978571180516617315670294795858844262719841035509462151000546726532666861744293511621047567390241977309661472422087045241117074333885178666262283897595052031288720189523544821739478219424439975899983500607804123879219306567932572487287019768589246523250669611473973008800477104433865437226884395682500885716481309468446127095654313955754758050793514267563138193621702422973187848122776831895740704846233538362165958684330857962853761603136764747847256586609266766292576087452731246222355044158659706369989276817043499411681279792821296922692766507086672448008802330978928203559308288859785353411978502118214004684250546740254977141733336689523049168314443762977348272050599618427960138243826409005405005054389956220325769403114107296693855412386184534165135716337686204154882263119603753953515796511561579168752008167453622412708438608227154950444416068767350715278673616499068407910205043844601230826219496186924400308314293044784092563118632077751264305941995949177170641308906867774638543917793819757616446811106638932358361840915953211635978809063329517326102817101486669486439611310171755365403322789044470100197631212341076463636245830977326893259327741919571499244985596469761730467291526992474055576981593496630773754704071040347974975517710849312135392429329973675722029345975758802576403917756905121552802314521029313049965333937302320092050540968566150405868034163793425219738612936589718569331253741457848278270086059892165403956081731874297587191910693275712179952087320826981863598460067276433876482068156113679122840973794403556138714059739036867993047423692350310653421466641916361401970239342325752694299027469339644081593015791879515442905334626141049155315688450125585550009133220611127010184435006952174617306595986416881093816304249760877061545783954493791871917977821405022579049672212207781602380149238129400854632371404052972776933521421226846185978211744358524205910970289419846246899952324223981655590466771322876361960183848743194653729812296335274062864396104175916247182063541974356857130071675436810628538358587361141488327923310460061344514130864700024719564721679855282367690019636214043564985333197688806488862002046177902558022709496834234610834925724753544521339268873693931289850485958822328147510381188809460451439780369235292336510900341393458467850412291741350494370619605866619482665643182166566296456063733475093289553432517497273791362242708239356455824432730660077315547130178084016931960752234418399227001189768898484463505526607269164237837900804794161768433438322845853768413811825116775638388925839402012061356744691967075752780470693445818276915779568602324958841160289598378405115255979783881841029014784762345089670289667288889647657977823069979881927088351349330445898170864681797111283818200204419749911772154103420516542702703199984663491469520761598650684885220316328732259038150648355010008451778437545074361450592219424024187262824903563412652643119265503040632025753660531509186269423040093331024829860919247004411577693505738700428590486697364230705586127356402054048267764388090325802788508769099480925732901733117165305467839238783985992084494944282354551111075567141794156706197119864199564089819746965038359856000153776319786594268470653207291301834658782449250781987830112350426129913080412937786711714417436494170413095998427749615238523119521635415716204185542617257732897542748964252455836900805206971989783405327952496283264156934156139985728673098742262140288518128600190846032317501333078074831236164178261380511779337144704148121189959190980223746787772812890453035799593400567204305644044935478026963464639719156600092636864217347411761939064145402317939063173828518903652398629007099830986252248923437122606098581030409576388510924389509763364947748584167476644141210442699677685198498165067537953954532870805499052982680916273410272402610841956946273759163057030693604930495517602916771452567323503367130957078176961089025569013133837451158173426087208091976896237615824723279969676265949176968903500018108711473857434983640990927933694547181562903452870089331778646260018484583502750939465657435197966246939627896713327530010336216705802806020327174553177354932757128128972230169431756595295821313773640765032582412095839422766174898757281848476302875186074619815953091451776753761422878153832469158203968556471318706824864146943554341864240898653402265297935042531053074556474458598776518827085892094219965186703306605540243235853057412498897188396465826949814140327296804009856740944722029444144102681929134110942187415132828733107982329251450661078279210121801031119704277690769430354497528305709508933635333331851096902389069806293571634303881507485149898279017106593644127074761129851868177731370472344540374560028621916791322136578270702407950996791418033482196255862669519743611248846594658272876564498977159444421182349275517498968274483846421554452254335777101571115312646908838680103921379271888579610984245440176035892736009257986197434102460936289896955972601919021738070097558023753808355062111992331474090884681435199033503297762255410262247665024469857171353572652882185686112393022122353021905162773569741286349835408390327735481050807116389655729447668457921741120944840199655614355306898308612084948698645171066737076918157254460466820282052648523358699249990805955192782881458694136822989769294696665752303826034310488580760551170830091971011984925364807283615697678187742215071103739953692766152452449653509100345288959777029742778854153397858810660715689492621308277949265494362107345696787855068738556113335206511000951672238444435331586671798353595357645119668095745274000424340154400490626661379629574706527407578371460940023326556772078370794501025269804793497599536312147248881206599950447324540529569491611354376512759235712601428038891439971320628419546819688588417529292266886442621434063384323544903587183699050534709475844958153940545298839146518631815093973623321405450969089453531162350231626454242878880321886191725362579809217969251069766315534866721289025535342766321179954188944080231117124107891063911791380111690841561471043264120324352019466878197773271630704885109519004363450847138672677153789281655621250931993308461735522700918562419626104815284640455268181769832360332944871799050874485624405258466705707820296738438699369354654364564447230044536227375266531452992196223098811764568067671397854379165847320950469443043848837077186501843256927011517134949617369807824269408040645009225068239337956837176121539057082385854829100457156285405230944770923367992115848871886152442294590478039610523547752945184329182177647040126741902556257847710396875503365299622144881793526405867813332621592091349044189412312552153995977952657068257462407649548661139248146700657227719602495734508058408702213078799454350725560360218895109924837033130076618530852539127407692038969809967691756070148475757791425271380220941593877488494049646831202572153355580648888199949024491248744387026964819045617856715182153214214586889657263425577957562652700629297845964506174896425300021092247981808889462516757327350029677147050327998757989962912792874660757819647948475239203522264559406312628324841753975481745701065709260225931723208740932749140097978186970260143742147863179385313081557116718016184198850077060828811446496753514621719552138523925110419841081641404822044249417827953801735743096369443649506351874820396050910708920984431416784064461910936771361505772143004751642927846276061258793264955586447186590298481822016021004997719836180377821189595651689225393418263501037136321157781214602370936691063219118839169527053631999425358449086023980831429872436326258410691536617915011710034582739884502300190025577477431214334215609102142563004729295216805128221564798791314836123033461102775203382979698476487510753086209628464767863531202306860509871808751282265505281989169994450545825287427459706340229603356853886949799382828014710998600870595684841215196473343476633762743513560052413635371901147912029922253153318866025153770683310154889099953699017173694298447066677048279322448234182065674258791467811151897477490725584891554664700433292220398950649452770755329322994262674332988281428255689657332667865756193371959390806642919147503111328446751487396357728793429897564133604265814305092134813679852888292572515952463686670526471898396196359849211341569531986380455814847907178090786952927279184045229430102942836711083950634842506382085558653923276545286227266488341850748741393854930741763027955503102908136770694302897012025317701849418209149792382963165602229836198034820405795231938132665460972135883930448521662872143525751137236845059292982495611474226829218305794265334692259325226372031701919998447675715410489691608200556092938804385615393938861080003889314155142519880728134675709393315430052569037837144515997302344291450569986414675950303181271527278942502383466726331733374558809943544395003677567031091909407161141154055734088483428335359931921443710600685936602646993465720093603162344426382151424428391715961465813174247317051563253482379314749449200697954801646821898843327591528070953988212683989364231810654890448048927684892185471067697886135033352449811386163739573102680251642313394115498106267049750201361285327167945064131000846851005211213639958390314022619108072899098163070206354131115422666078695487177382021410547401402403263196456393009621855171291432652442745944144182756021445515344045400287432495777058449408098403302725818096317965249173507014948466841572546592899494762363700598048903965763138240276942366626226901514789471169049802549490252587822206853726045733035973090775835393170308887085423495312230318022928795990640501773733442130627431431286152209051808992390909028791205122311868460241332786097500246750791712605774045752925643648232591599931664450989019146148028600254823438719690337398705360037631100238503088551562739426231573907145932473869850297213477822607116809960060440749909341853400572171993409130820882341230507612352696212454550842224014986166215731602997904014966994917274623782673017894094249596068843773894743154058947327147016961985825091282157140530857846619186132280610365034200390130814037928612843022537881128448946883053710330312357004346231659076876308980839541591685205458809476237119278899074678575366992814235247044117166525289100360537755973558843542542374651769418514470731452547687692899700595461349680397382329362389980198620565056246066813102252036805483248433496956896531003852375466758785679940094642537266615054675709129876236192670083598762678555030286306687993922650993773988460839066820820662301246129973037801157482964498260524705900201388562441463341058145336313282560532052005929264808303132120350787766295846454418916953734242813903516292914225048390362614442557358107486834892518539656531498196305571241999503513238219511869672381514583393490828597559919669721704534304327316193571896762686397897886844388611904180944185825869579602634563037552477583111543114762035938698507377670742765108248192897681013385969978614342443000676843942075955495740760932501678239929600457403577583331065860411555508146908508483995958616766251290531530322439401172444887403452240718053522187971473853132168896260285312534875858556725137078186863521169633110572031722370604678119508611426666560265806290848488172315565972646242491374667624461437195284569352215618440020898130159548600299025188585073573071529323123181318499178936373414539913411022035565410510107724359860556317482778472401379834746309724538260700785102526381660274367109349768677960974264539232419633798976824844220980191330548596452868142462908735370534116434769696472966752583007869309307984984271168790440833818632677597338032526824224332968073950641806715656027142682112303123429485516536532152694576106468247007076793291110119601654687799208741506218692435255860566081435007054636572825128990898652988276265682300743770361058062226645479965700376271442571577258126868254662946872399564065097283240776143891877042497676234221451309179368774606291685183902468031364398974169613588291859736553890645775130811934551982918149128457651522996407262983389641873938024632247073639276859512913289625226756903128989820889247134957014294468682265559575277458228284299728097773832127325305141699246552250666146559135759865547489426015712380877942847279114372236711153038274775334142424071794886020283405775938586047439950943326511364877543242214726631364859057771943537278581043718337900951798179631135089599605570568421753214407989559231848085248780836755006834594839342478328565635247641894933649224929770885816242315020491398043590449810043149323301059449024747184763989316316844434740475056811723746439216134318381268547094021092795718799369313860000384685143684582116680021828201299917480926398909895665394058295888600282744802699916980106424049242658107592127246906309924560742166116941838972040284553170733152315111420567850949657561203900768315674762721070457356617187840296262487211591769263270635913876784655361999859831823045145540096974268503775012008321332069588601973051218708541843880610883814334713432566689792627702443419921807686310016485733840408240758539913655790811783908542062933068122947293355971639367946203353915270906372069467342338151383426947141024398224388308667689896244157150644747905669323318085246429562923101600511186409568800680522593965491379781356366627865848254046068731516751685658713053052115870559273837534786890808148447224684033527700001191254671233038886156296696015872181330247282478791621978491164332860672224463528831053208583604580514784985209442235498471314113188173524407691698381700780317068336361510531335515330958466236553926008021258336209667955544462962234869224431908474639193517496015959286204453799127924439547619127992304158443289127305216912408131923408866168091854338242402945446101708827516088104274721924920945394697026860285263079403107069099130922043115964504298191085799442609001524514242833415815488227675820036415251050279035800480534280923023699820894145946331693593899070015559835064469082244498619717044307628693201445951564848777012594850115140539797963393010043840531906790743647129958471833213887110909982356672212638054868387418940101075400137881018393159148808747865878795001515539644076162577508186358217931011726144046668884818219456044051379248831971545712438419343896724755144423665893647185182260718836387507045929451981123641178097230743409552194140524464220090222166686548356081018514431715550874520307066813582038843521549879449603949472960654708063982456273947063974406405137892953357285866899900859908690670394343487080081760714050432569032008815369471670760999678083787526081073299247949817333213953183877832823591673701258312428906473547421508878255149841414235013016726750821791110025579725174276007393731921421039260329708107698190589880389161813825799144434322105291569057878847458211103826605498946693764305728200945740752925336116365750936006367349850284388726581710725994107849303081301175864861158329066057327427060306999694824005860864033250510745707713620352068864946234411905631680698924069541256556398194247188892203522432260972317548885317282667739103757237101067393376638089815158426760468520362036724078914901879273556180766175587818153830714572203881772971875938956629614975056785345081345976592828371823671924314009741054372978445101625754395876245790382089029349315014810483645135388892803043860369016426589231622072189666519355916274979550480092555159519046186067918808187226970297962202088800248778717791258102117894250727613197954310962466401977209723226100268637455300186190885982565656265279366085407822811525155118261704821756956154162785139637782479952394359312469752436905921867794263833307337392092318903473965575739664909820526187772708461695587361455929521981268933164433823973142384726159453088525408871886577640223851051087973101722522845299769476173758249952632471411817301602018331119181122281350885698210048181611461676048518736999561147171048969514528496967581258345361297803477323132965359652239063357421420204990479779497140368721532807064357987712128372358671861232848101428938668857037620723484479675929144219538642201210820779887655110250311529371693291996515388780425162560257463240850422884499776238946926963152865729374134301693600760353293697064178277877377930650105697394561162192403366764030907835414551383164348894499792375578158750144552064869347130864983300738980880568943460652073487595248873814528563311886966371772606539290129962451213621618212497585510924608606703292781986026525232632282648357227323918383492582021275938940571530411273628188361027150253648154993700996249826124488262917986728249764948743752377218823270232860787867414464676075600182094890673465740757676455255636422430212091679637261321178552432544516726617845496108737903746066329417692646345850239275544630030638667795115643109766170095008053674662921490319228931546134479522051756730507822406654121643097747251304495228849925423816543796406991093037267686443698771596745583878817823699939072913629511356585921262470605123799207098445306806751021923597625803820917959940362293224160002144948306949888479840257115758866426014882617247760922755278249318006124546804432703694942805199693247405676562139868967945410457780679381898678743896031549308087544850870841396937769738770431774286581696401871131875555139837434149480436738506910996892834084554865883150782980444429217813519681652065459628859248994721733329206073700725483852165986589889077098835465950445851468112519578727298313561434878739357789016506310758644069444839738465088854412407993571718927238760433926754142118240462413909054293870612823904674491829046176385817767365973869331068507357006883922614400496752244109439386794743104730175735221430687079113899275198337431708032830179968893744273125215821356317063512194580243208618521125215636094841086274928276882562501686289940598158930419958816428678871076201109560759741287230522131712605071600536828028137772342999917730050094327364174874089319317228940480334599855226410892982215449118147136348851808329524371156096051075765109787038763128124395958783094617349039834758336946605791545220589591440569186560964276508524589570587748288120413261239285894873523560338104314000357289123785627432502504636500743890095572740636949446188365286660543726152454172205829830850965936482841958696169115725932419827358324585383144016706816148734750861264875198978077618791749682700117124818918466138987978076114957261378239841534622457347391337669061778806054634749248021501000162411212171394543562120000272927378809068638911983351608116287091044323730701597837680528428190952153900899546814560480934772723899921077127088311999408311819022041478882923964542865097988111642859821695566288129031070650000932023736562567548443741799311021817623100802014046166684899134498942412244970191755576492854239923972482065041525370392288105886341191972034439414870165759984553384786876567773477091766714680382367313401639828407880205349546832959001441780461553940129223593044699854458941497443909752401223342354965425154758972141848937914350277894140168852816498143955298295540112830729059554776122500088200251227256136937374376926594900873746044344756874791717024790073562716781833766636490104058900490891903746456201786773831536991028400082287598197485352472502014372421047928487967599705577863311114044746980788275213095399080803117091873922137847363226332007664951635051082589788722053445147150516363923455862358747744662242736212811092579582876119166254153684657318540677262662818074645612365270570261399929161653055198046526503055454849917940375541108398913905394966914995624130865765744020383965166355787306178906142079724617567147885358069361700198445798435091165510200227365198453484798249644618744625830476746482617361233386321767888312504912779200926688484238181854808972739446180692274654904673210947494745911730963142655993105118144649849164657348892990956236056918074537823430166274316235950034507637186799869307186295069833110875567687675209574031434859002288112378236242261019467416930842492958188229097115975301249041505839344052802235065103086218445972740352939276989646953854696237284285171887006227343371697645499882868235530232764350376352044233031219185947358945604266835449612689909240130899833787013512452394879538459690393424706092469339833594451428338166876839060145419707922473108628216859276547233642121807873842997293257587252274196921100888994834956422769640231142753912447443241958951046868251384157117226630817803408346944469160547679329388942043396620864727227134058503469476983784811165925615771535228404276482497291625573147864088200401471973450965477703012847556814101632861813732440985906856266371605889070719967656969369557771869700083478267984657239831280624856641195835594668646336824101470663496905455558926516296221007684166189734544232485587531576541157523508244197744050894099009451558682966610670967090242188567263513022076946164741961012483500488324399099685855418687667730961363628557499053167283427905552087494170066782095830556996249477733433635071383166500916099445860307019912063620947261628162815430505579730019787551337883522833593019170150243774923829395637935896295495380106173507005062115379411613692454017793311067313680790629158577115343529063417402733746525121883693915935520571525480391410141160760734932551286532242006682870834932947027112382304481910806367017055551681660516170852577538970942707296686930226006489657414662072615047086137372372464532543782557590092567538422619308420193014170554457973751975300470416861185897332422455389379399588897257396558578662120421137705850100415363247338063484930878170556606153341128860737674343207140406875176845301024918944788228924670924764545357811472726834119812515793747938590136536319222853772590745949489165008906353103732934604820812754766554480334689750994173377227300800883513866121639608769508033277446327520211238336638907570173658688340714324957376376131890231795720119331834684075713003556003589101914426717948486409750703489157155788012167219481317424387469848401936835506425753888595363540645784595258026348940536848524566120713520282183609121072824486035709848598621499110720560382459194859829823543664747724431874436259385244319349885976950847699830301144277916640235362440694889364336665191206330022706964314289141781565157624136606794086442773931508764532782000051431144169384502136024538595273582412808228405148007249950595042158198022032119117038060227262285315277822507982816018484804463884542381877821710453476165937626072970888421769980440600360950716305937923533727603256790842966377149031844698075924229306159288757880937545566441609888103227332432611609552152055865572880841228200008754923083828398024930370185292062238770987704278101256226828645825820748937450657346805895735712702446993304075235454486384826117949774906522988066396915491619456757341717414665666776155891302285172493749891423154404203600837602319326891099755462658514424413069169998816280890748596904830687724150091092482260722119536627835626888806669171455147204065469867244613418392754666639492422275787260538619426620379390926492695130808143167659282504876472104863583938056093091373069208483881377562730641491551091108441252688428224477997658280451670887896100155962325457841694603139229878054528721555967498040850462270826259860992156066567760591964786619653501186103387301206818626988983175553856349333496203625458890583539704996418141434400220806029988614134685842391393401535642324721425301428591205657638569356277624708771726378207859531814331466842886144057787948439418544145539011896337566375370590242787878298698149149790489982181020529068797424909942843227323929273792293589493756346044711741346181187637755675531713533286944678866336852529977913388840625205355767274522687590942502698802623029029591980071872715439050757092048947427880811216175370570817778606572327394436896759719613240934977338071774850676806611000249709483177585048961316817104715760132811599797966971179648937493658018282931468853266706863564738459193816300614124738538845590045829273118304531949237507394953597139353273415735585162108563929472189809593934148208358495693346918311894798014433218146335283910776628884496086869637826510737550363616449216691808790491033399484824422074745087379193547456961564410207232332009042650394967045947946721723223141046197781792322796891151603338708596999475128428050100075079366668644883362672503775902521102625881334848928731366640495934702802062967005570773406220297557733498918427780848503294924150006562102268729921694084302378690711214874594089050476760915559737701406543115136419939101532216931977506053626463245629378601040851025972253251730926509659234796949922483311768116594806088000826189237040594980770400173967458218924295489507168771331001039785153353453147106859570944506053733591953658617196314970060182160151167816445877799372327454843702167196983240352158951685355139247820559128279615349166301514580517888411480971867069842722647325396278568856218601357551480258411912578616981540276091270507419511403965637928982882852274086014503953521126538953883867793995172958629270947841273911524331129259464000726134649249972681810945151440336063005287128811763455747440049685242334339885902991306423665017309231172549322356936462708264736539614701936146564880823663856871274311814628024296708416102187589986096496923503129824468202286241015811833808695873215776018223789618015767799892633527484089573104084610685377186963984413185846115041482873050231180669598634179338953174698177066866352511778784457585311149522528920915042815749224555913847113304271589135534111423495667324043853073572462286846922284083793734484706029169360139930409506545961900308183802527282563082209372697527529895207663388958110039346705019550272152540707842220315869001599513082638484197487776849916923922196537231665447574407641010099650617126279590178098819258884779270810165459373325352841280200757510482591165251375783401008951847685249101862211735553486369698415740199556028651242236187405834090844768789715421259530355913270720760615089738197994811856383567450625729469513436916789182630665079524311558263643719976037744462018791016135424477006273647656549196267616444680772190922929080866228112959884924781148671534257155367603119524547561565236967703853704768866046980213852480305611763820687575067581364128628780137765140619072670023309784587766918228333916512907870760866937517116891741627690809551757279698052016821027162621360697060416091561788705305407209797684930266376389686627360501139889883673359135139603154742889747138541696939293183086800212328963295993812716537221185295145016710843207469420490209766700742282746672221568338634130232860911046024015612304984559140952392104609756543648344461508550374997059553366602213462604839960122732736419106949439922465245700052391362273333832849727557393356495943155230901233230563434152351056962822867788210930846121568661144438707609582840671518753498089714331027439670232072868301053055854740611207109035935222453189737748928721223938874431654802090390081081088526692277246193143825290972586311246157795502759822070616687080487695005424198755620466992746639886393484868401422335287282144403954784228917454765827194543973721716746000608536862066597343051524283327289391251077992281717140591722360207385278926420803737929278643557802115835757358359060207378135471081449504904591832117553015450198368358598699232679936322436043562460202847050065834538669263343147898299146785381491643329373377064728561197775471780210572065624167806204924960506810145055444000836915853863991964055830272863321210271592547804919890670890668715121943494416990158181216296916452965667288822617346469987438060666365012549193529951563426706148368629787919482858285181278413770269402216755806828356762152712510027225321755011753916761857082441000569786355201545717750960983903500128251287302913885175974609715463747851581629121900284214937284094101651557061686206462220736689554939314543518226625017737147979968920612065325275418413914476113922152134614069286419355821654479670253694488544417123943334998602980270985027141815954167802543245054515169222688322276807058416857108824894008108059824363880693049401400360540588251472745588258232852976555436600609761418817454395068351899430644076770973415827497543346074110326888197363251029598689127139183273239406546776520570126856021583738546587562512867371973052008354520571151156379671524228543756123193671768567009006373542503094551019185119622995140325974379209354374209118431551168349851325491586543819283995573831259453672482506711473896296729908788858488825997010742272525040354818049628522570520823634851226938315628067283671474350559839279732606684295072635138275104197468897676725913690173065123657317195324310128695610725805283363158900958266984173539638487201652004906490640354985449237229427418378411033080777386940393450466333220017422240536339407527505982935749108698818541052273129910222333976612533246907300802700490258911978660954614122133412138919626388266617865561463442108132633077176078663806363424319091832541943227473241152377048775613809279604835764996953687485113088070624761273257503766591078316587857685506619883979458302690860270196411220225736605864073929143877225989074073598764473315527068466191670819909421086085140332806017878514301499679947363423662222918206903244530152501557857601522884736715182349449265482885717976992631635275384557655764406775448906682489966134559521800978142208672688630564291540138296534685734899671972420171760414562999130251414447524884878859521922268437236453296433880788511069933976961277826916254630973235354514622641376521392975068099247765973472612690939787221392807455856470999815894296685155627040336605876230534031098345932290012698322692050220158143430280800022365801546328825529047068250736300630781189568719809407671585126103344019382962718808600861169707239670394318126130974247111717901985743012399075403547165062880512649200956055134533362029263066498091540875817634021299600161949111034937515765588752482721423767972642564269773681988908821722699265553049872479047981000650468434265519305954864635159658341932560199539427254246373171515176352439514038074244238577247656596152456746699316286028264855040685912246340769663976942701366938829185607675820086694383375631459329417145519966697728221814706209062034976317120864660306056756149331091673596869262998033651598521300888024046181683318608779296650027792213476011617481352000602598951502189632641538513117752107146410707257793497182252726790059933701865961579327800661769111831676147157964648741069522453761145688792311508863036238407176919599890035658075472701071991664477592277306588961119394275860246657291646477829595177925217284078607443295113156581166361862904473631555156558233734102054109705539810551185877748472553177016945619773274000762746629160155781498938499154800670015880287271396477885553340501525788846719648020524672424493955186437255844099960063063002898185781127353194003444827534004296065595089225351860155422289176429463530972839057155251922006718225204483456957283024858158777835437195126859654267081696079823466167925926073561893989559028954229820069011350119992783370576175407125834805827806812389428561931111141325049331642605280233039814169006798898037376032099516438489058699369606830710123179615266924530464923746322846279908242334798330374034450178644803988127559225902046536608469102137948423688814526296968662135664767020142672532056443503131171444137713514673671697265452265465106144038202743516102254601111621957755376909012981481368832862481603668992773908339405147143384874769201164261948192396449463200446384746884791115170448439193867653031100824238704981524520405573962058183162486945032953509198580564589890874425683122925434507473734151952742364764180281995487317377212901252421446754042945855402423906471702257004464248759363876636706774796202442768094377854825766512843776900931420986660710187029338593310437732853034371688951848025477991273331396336672506976240044439998428715482735400213622800363878357808619303281309994905965891889375075383442692557033208903758324628467949947720161618492448067072606642394323219232071760037252313600260079381178885240250457731492535024973994254405139909972427789185118923895556724908833225321079886270815640003225278031510976686622833467773834941746122589454209800002909329690743772601386909102791406259851525059776681844010781670669340007514934828540555614304755391105331437574642294862097446790844758764683631789277308598851113550957947449542186298667749669615947444409273113200669786113808590545317626494590167819697149861399492269722338452705143809389513504644375512254861117089139668089366777973099438488086193319091043578607208496730738259379239635993284751004072727938626271670447540757192025039341919725451894831172790246140496689551790799869102537648909648459816709017139351206782839579961226311973314913377818343384193185236753866290190046334332853283434182492107191609276730801323536947264848927644297987068112565462806117260460733219176304741215064030201789320579568760510277525053043612227096046758453127386616521424194086834083758914009511413392954577009473174811688536409418352861099710341672355817860282349820203149986794017404171914028393621051948060481901824518008170137104219745921279840402426896300533553685494164008639217745676953445865088328629821658460164507800003598985212901239590070420266074498878506271760776222550606390745319477188925099058100936729891954099576633538658378098044793537799187712142977461976409472721214023532655177723616341966074376391538660194501776914006240684127316295860806350676293775125293436759607342719967513520158008737395483897343990123825656829078591144258828521366169201402990041314621368063235265086541121808474998758441118362909790891983411875376649604809362648932910439059772563295581388776744695461815797870419159755833500037728672460735185350885495464202930971585636949785764048374150555809918840209343333512819551455518573334888164916769442778240555433697731192014372254154192745059760137984144373599420287605255571893780411489261257983036183801077110050042392392644156922779005702794740136494229184793369253543248404878023177744518417795835582575476184254957539587854945834308480441737087984926741952893230314895899160068542287957892948159000687353733333338638139084209948725511726171087294408886844785081163455852692141540299672098869371588623222033148558174268263595068936234481342247378693946092325660075472125674141034218490131189639676547329167424718993424330280290926985075229490797094430092386728774393625511131362876159197383241349167226826122826312779381175080740895894397190025426412664947980176442016454158813176018972659624614413913192067850352463830657764016522973204708920114691713372287863037038453134194264414249664984474404861773851352937310809985947281511173650719139881269307482690614039286422766278494329558828593837214847507077835511989622491195588237045064582005610170205324844490215022945617655618592145743990095548229413751544136132915043046914179941224609338165136262790282788421381220775894240388406229433172798925941836682936792596042241845941770653019548643948170335524102874704473117150703477508343237333116325876727636834685844486562539187239460827324713500448957086803150325038676401735315079400345572855037001845602769961506156829141611706104616174082484626703351891525518824821272600725957656788991256787020149786679084710663107487646730989091471979879259859062573364973498235031260983098734686162739358057907354908246830497284097732381167082491516373468087051052191917620541698826254760544581771117993776778696542169925785577204263442443042074495489703390434507206119007697363517401952656322139282583120528240037466954590928045259687984608140870719534254761388363353511911214414314850552012358138062649231353833876758091889237975855157320365883176242411691675238145885920751640352366843726791759063705392197981126597708113947351671962999970520901709075898569163890664270423570074450277512010490394814832945744380974626035105789819540763987060787581774072491184506978842994138342060812428390148814872599854181480292949227878324356105549156410917488770670678201198591095890983868839511718380134914825499274914269855259517765361262421572662448896096148297970308420210516027967147856159406461363824775890201102519923421532100601752302574212237542107495918728675189552155329945322689425188409422826757744222275528207615607277103947182566802471066067738312063031466284744338620474325956850568928716265329083278784399650716724220613829453291660046380872563059524153288120937009922989600698139627968627956763519874182401856293198492262333643189930901704881995258827338807953265885144939381241154327320589164578642294526841175188081840509569046913813443077848902114879712116283977344305484614980793562435496714129473332666422483050043644545470274917232078399565086801876173270331906565795475395206929252015307064350471306881289032053854556398799210109566729828730479466100543163584623448744155540713381432344131178842419601903702868696242276246502400420813713504640159934720532755679503533906712721617790603021623997804185763348100544838870317307162552564799599998693531968130101562970978711673069649402749166572674943432081323146138869255334949294118316387788990325940109341115727429801331814578281687913514243955787342059156145877368988080791707114551154762661682081777574724842787971298154823852036895916524054373052466728731303019258295249876393209857312091610561357220176392716995986861088676061338436496169518654848604616848482407438381180741734222448394789399827801473422230578654102177292648209140948503501322415155999901630714781485270516144322582547801434401095336602393626424931385229405475364168364670415743005583729847040181455710029696234698505997788557369980218223035492383187976298941569772123638440889178927527752847144776218920574254531510374799777068623624218990630309628221177321970823034774545506023858591140389896916662207787683260123961741999762365506363266016990661168908868774133378091951614977054921417118191101495434786938206209808278789573132789906002086339112784715368430438149815097030477088688163597419253413412219139628745781099342483271410917827631765420963125071366926365882135751199875401157902802850780669833384183382667394553683196565717031946293364109272667274244992747322913800983574450913407993085683604846778665354210586680052115426486749723953793642156653587208185541259819454742751611841693662556324193591585695088905353141218336623998780221150424566001502364691081599741920254437873610226712941228298888053367943950329404804961677110728788103161467730371502183528902414648175430954905944887541042501680406999981967193798208277334648558158591077617882849750546856791399040113845624360403574402461912376944022007604214335733872603925372466408966491471465473007219529273741767961356523306780426820002423074121866748669462805878878738299523278050107066101385402880119138557309113805727558936819403093807188637937582154443516265599120308784820523937493518955971581551828048148078313105350968235671612355096316152866585785901952871775464250641298494510573035332433489097997209457291700958784083221404405014741143817095657712526715779817097676384786420648761367939457844238586035649664463140131048667056134627690174928322900432711208192295641589481528265584221926189025305138159118034231088514912266539179448174339043227005068742888199670619606885006733283536146804985960814028791196311274825466404370384782884007981579134452321016686737411212944968134510122379842940219479469166481503124318739691196021567121142279430682010408767568093738982054684214785601427768820188071717414127493674678175132277109046730015309467773069223290953495694491601169046818182723477816197512572785153556986162922029188474530269830156638749177021947605094174866841197276604440854832975049890782580615390200301035218027179209950817839121233970070027832906193713368218336961540826520392716151802279152864076831503299740609280483105062551572262871313276818247801169154937862483224017238370727160886419294211817185646748118569400870529961131410594582938703305286297918826493247420179551244232947629034883495272292830804012226372276110275203800120937520885624064531125037264015399643712337079037439512032028535025474827798093030202196632509329094488190574510298521728306996224219547101651939329769370654576333432433256433136391221083529135557700812650539793164681494513412075121883505473968595553878091947374656627903186816171364161521554077453543804147984545840634474745085680280862324126969399311229640560327310927938491691879333596148535170018149698261648003440278228139858790148628521286746175384850348068386520168074767440211476655696438739675796644295886409577559154192615071966537341081706497482220419135035223932036927792390736955880577997552601903081435508492475981857797980298126412519269808310756574659469351128562797590578003419323476001369611447290131137293265188773146721410741275221010515155865713493912768855730064565566635935253545094573789688358002770721080754685197902156776635596085899524492722049775299815458625359295568858655219086203488574294435488340176616830553266024583599445433095297362056428294745396641017593878078757904014319567264450256538964052007148706853706562711746676157191810642280464382686780641781701710145579987859492981028674877471679017435503993169683528592116481487861286289116375992768471088743661617762393098294982340641378280711217412378342224144069984863288239240656377438980846317043398141901704177045856467859934941137671018510482883458475911298599113261806311665209771093260254577766404781139798120273962790521780796565933483031963863726360548172617544026268435726451474111436197474885328135254323132104065537475356091405133576448451265031599499398475912338676258998862826742421410656317028268420274277535478527849806255477967309562135010751357010814376712097361065693389811287700643950868226352419579899875244531513268435771252695511656842606249795300564134236794032686943202212771552845229455906013166300233297861842729369705425640895722473147960842279960643121155722898884134069015706079169855397062706949869226131550595458162406654276265360989882469228424022170510920884522641938004050647235141065446293973629500626870691857435034689078702526688990310590307332020997707019556267080078421417500402487764369382704966754069144895634000929852354991296996046540283212995128817182931733802589343360888639561881453054936332102246702371234907974068125687248833528018208796868376748932865951563500158437345427148615342497125226151780864718350199049932178199155353873785623455087143139050384328696513876903290534015238428243963913256867292722487084779696809273656042151690402300750173661949935854471440415221410647497242161523037246612553017965334543540889800869016307189158808455522198431157422312945196703758626058776263336684850752752847903442501653764916331792832073572043631496293326217198412041496939002157898758405506883631318978280327068182062011470970782464776027629635132451352251922427860447660178455463586895641834408259553254334088710161510703674682452922046780848531852956030260393369987912529602307327858469371627037491448388916337500526216973323321524007087580984856462897791809848253427212024812725655515050305700418119895186092167878092709372414804711203209275216382196930053667750846835893865445281522353475575590763802378521519460182724568236395490568125932747289545698934471141809813153649597485154106854609786330324864298777018635531367450811076763860473346402957688211528898135664493094931043589036451413175524147809925350591481309531471226234135406460905980393007295409692136945644985787813148498347106185885802583353800866348220745875475776920674100675717787021480249068099354034049780869747523182136878867192069420344186215299004686685357497787101475284582152153509827098635277035756293849313931604238871689907398239561898872218842061190277094299032275736687186079770707721559232641813601697172777407028841345717732062530298816172640649801780192696415503872932862487451156694400901469103714665895280769075063099165801904028249123963456798392695655715947613669438739333006837383081812309420441592959517187192492679792971295029491581185269446544888160644890910857473849722526625613598337391783194959915065439983793983509005174338788171829551618447325706942293753652551534711785761849774779733167716071499421452638170475227272955705001733744013560297812168718861307295720086827047281509944936557613530068382030072487238918604555823405676318762623625890434079602395529144081868873503916372993471628157658628534654447671897796640094342024901643410848630536408494091288771199650698045788071379779515912042538025709198604559673886019016344148290099729713922827786387126308017669213704934976904380819565618801297909146507544068453180516940496248454952518633632422222614586995009297904562688659703930983969560235643889686329923323765908114248603580354516978206769488924866383306879176594263820092637789031658270502911378572975097400493867535805163232169847363385841973520487633945539464273928852497451674899046514594738849778743657589470771779435627074325722855361014929296756502658510060032181461536129285910693432148786863743429770205982545109580541744556250811648819563443233555509154070228734506176634898004928111484860336673588052242980276245065806416616460933096583227741201687004618647087354607594600235537343636685846300082989115932174654321735117553157555101863096588560274473288174361764536559262461764387774037997688608018414576447643035712983995556915655942311745306594836250206036438221735440965535395090457436938651043129342716658105214647736285604104271523729397812487106059859320178075773843670656311350685930588860836202347780649879758531784016729059787657028138758026032333379883203038968539991452029129125226423489661976339718268106023709597596629809185348190125040315899625204717076766399868353153196608687529125423115375034755005153674068684699567677330577510792350490345778778263396473876429056401644333168224565090395700668568009825182733058190424322611289485184918822142539686131003371372243018683955964417346708417832040075715124168083755413148247924004524308125367729689704440679643179742681593592031358215146396789238533146916848019237856136657063609422132962567182221408537658070683461685834963756556481521327880020825169618079848404748675428648124718923245727848809951784920023813214950559768609780439227213656679143255838729396288555753189851339047123780845594071844832836115336157802570583643859337129234780510580916071579237173588327126164560656794503480990799720508422730547419077811064940216016666629509459324696808278858738268960848774456118379844865730454320536892684034914234508815351016785757066687495637606663072936364979840910528400845462332617818149797614121818728612686534607116650955135477832306274118114820717164665265427099148478807776892823457954861106715049473647399736480665299537367799934023532749648010344600085639769736337322294714697302776409407753962883901258246629396938987701586208937991855169330846381599653959133926292450056440676097423169030780271559700744418327838639200591504192666472875278979549277034150826391547896926883308166047956420911237931251245238262891323911425925924887235313534140371673379930617119964803740766444036108277815093719892667899588375052554760929420018430744438964934968142535424422875482634672599399787959797254722441172876007712608840939504811921596748873955586267106549030213240224770792652497769449552051080564104822068021729276356152237738510636020972031378948389087608773044443391070371387133163749092821549212966094355995765425050659702392398001339719254398835335819326042355334640709072858048652141533903522297060471220130494123455357789547124863000470556288945504460862226648523847310733172230385641865311802179351207883678931632431925806448500511452822769747028812975567230419389696691151684034252191266686056130038452053893369112100812050252410879522034623660139062940958680638104861567034918952889959443421807536331295702241260765662837857763105841332497008021096395134916086420519405513798037382651472598999021247513597282764870480302409576924624369255111392235317869482928421855572437473618265779560035189015876875981442665762658258377735379880116858111611885458719903282377257659747925555015170352252043295945668950459779859313354603058046287121050992002653919990220328029855134990558952962035081185191162393317684154510610655162478821980694146953140216385429484650993057590184254772587685764147409170800507658641633769358146607818722445058379424375762870854540335011053709267102160168897425190172664771091187734019658761319238244016778669447316036433235910530463926925486473405762211664842699383303050481743973119350053676164505084476304732563764216661398181721671531112891024558516207319700700311254050520823829089312875756421875416786156917970097009380501429846668521200159151132720592321337362451009271857273494135289481232311599234615896909789674454130627626872563304682335313715965130004061533200562642138432231482703547358635091988446533835684004841684653835147529872668521047590091051673159246264853570708194303523598755049297733307531722035573470236517079315932787444549816445932473938377943652780031092775354373492970112030888508113851103629856205948834696156362320828310842502873761364128467264503679574982163446945992440232038663609579652731250489120123599962848087517002713559088212824459212365972636236261931717499306027800672703852044386944202396265943071733875448439649357394016544694254389183159395967500993298475531832019709586811147403411464307749078732347323831843169775800695104759625347803929053122789720283171030770441520409620275360661687750953874913564865489935285108137546623023010441644060787433799388659434319739727628098872553596421836886252528684292094076693531017467606143615040224106100657518385781845943097381666527422822359523265631560043634606066179929543426812782469802311078319221754882824844348942155905096249680955168161417840810580681730090026315272179607472345797447534390082662384080704887676620125669754226324768414436029961270632036424767255662395841363346696342018339637825422544743063280535146449208028401169350717192513434491759163446481547381600589645676084057980165902557489767118772253952700017838346180768335742506196377939729071866416577565549223989511605044361810205941685054187658471590296259403076771869386054624379389529177382974148463926922111853547905990950972997607473872962647276052104595112827435631270960595023755731806195452598765319888191583707806094607301046153140796722525757786092730919024691929884517398716315076857663518649379762973806603165031986181720651187867335919765239567443188879533652290886520080140499811495657664501357148699739221946031665890119202261370639549215000080968080493651561790444139936547321194227076271680662326799317221812574576091524551670509765492798757928496616737619368534354686042600792782105050293510602699110772925833223313894239808716540504631465861786721994997496972905979157918464803703518738864382027060980493400455678609307653826192652631811202186385925165692586594832744831643461459403696172358059717958882905838152369788533168230133145229299915405923022740585503740628535904597657859645738065216002631591774288812480183076664637707719985469471432460415430871067788218769070796941313678460577018382839283094791609157762283512933081599452697606840265942339288587110544086830636638581020473632094496534988776275786269905353915532791188119263351069193127339766674091486139745614525452756883805182285266087134963283884183684848013626458289540073065079156074102889083454659625380869625526263711592359482638454560872583686037619817067263374481287637268299887772294454040770678994016438125002755420169830230695451162998313431071889909862541016002935524415486259137615974787091851534025688881301989218844566111649106326888324234483096288804965797427103408223736673828255772507677153051860616483063355980193407109897163098840874672591044598887595960530329248899363852119394909682837108645713523456015804386429710353846683059689879680835873497857626785565888383649516272354520708779533467658672049161720879813149141698913756646454569742166633880288709311596552908909685832466209423687259552095876586763964525810627609539552914917651817376729189876677984251192168075525816004692672892837696502864920879878222442107140464673074851974371397605307432234515525321212358708516162852145380083686124629515480394533296837736424862964570243581892316862264994992186349832468121494673751199481950450744965970432717604013383552223608153400047959819368522309258814575459795669694756238949572473252484866070654288256287673592883976141961905913290839946916384100532188918694325657206677652323824731643807976960444572969446502834306166522169870802617575705124164111092073577262039704116888594037610584331302931444829065955684296487296377161321950732199716414417025654689461012703082459723841828360403116603489153716076232863966616561856000946715549151974673084232558676741097334029846169675642107632231536789799885806831989228308597633750929464903879107437077400846349362362400830084950073558164966916759777865808111823047707424696436047327935182038471988961170359008300455685125280509551066769960237387823537663727822677405205106153201899838061149198595287500266294554227352605814894880997940795238178862244330133236455432574103883704232398092141614963275539566361768675243817655662510133743046480820755285156491167182834541304723879598488899915627591908215219594535894398739198788544787855883930195317034712402500720728681966631889154092375629824773736358962930373027486492513691978890676358246153690757238118890003868340893039793751993065381722873667753851141716182146406300539934079367210950941233283505714265283194967469485021225058627404548110939587405372888096652279949131350411485737581899491522734135204022017717426975610324053900259385589578491549406875910851090044566987790296358999578580439959472228433554403913845515754590510122367709490042907251632725064389114149403143929338160492141148298696151260756811930048851604289256533437306862399621812008375911431730894419899802933772305065225027098497205959635360606930155405423580935622219990176155133694756828973901009351898868910230562033456067478159556373737243150513104638843684616602221058076605501633844395133927539050471981112677893784252742930717142873760554379041535781461948559847060404010163365311893068369659397595008458513327284730880048487740393171839649232121257591559863968310050334405605278988766114724308920739067717133448999590499556528668704313897455638641950652562633820072560532502544979125893728660693665274756954585549379365494669059562648221660110907222716643362714785994645999926749049549615126423085297640404369503078388756766522322785359375567721700544176152275789006884922246472581006854831676168705370471402932937942957597129456134524552754565682494397143313858049509737206075394125741562910110232605185216108762961134662379674361123425177993400596014944329479641646003108837766887059200488620180196337697614505829217689137668547554193811607470643646183550950427836763844727462071613819711917704444879751377889228995884738200829650704622312728062105126991039445893607890442906612891216488673293277124505955764999531645688888539374049657657168809130392423485693764450199912028784002735463631080280488390398644628663159407840102917796877741898286222270285329191455035549524356674461195336689703928030763361342278481300805902452322986453653475937924700977123725148559789622335055037140823738855989996357257681528249857323029102096633655298097518691642928076192749832296521944816960437154884759085527235864404802017581425754005293438794619643196734902934702696186973283056021266285835941429141764327043883997140379848629650744072265264163463428982919154069458223840053228719781301203428465115000214159693875605989584674337883215104458173349102931408492619625443010694755863267361339601315493600270288226537550169131948172167727277488797907130864591251768962270234348267173744476254036044361238342663685290979347302622177434409361004734383259470556179624247014795775993839612828218670404659473671346740038028868906734350560654196291543982323319166341577275777262556671272875677647403587825186324014293512309926524186105365262390689805767959009378267212512205511131583478239251417189326668486967410493386288058933141258364873085596852364870957352273551564173160005704356833751285864867987776268789119701741989262975037390169668114553105639638913349194784911260028872720224362955411330210328883125217903860915341167857762338801385636434712302531331275834921496268168434618056550643768648443216916009932979358869713263459480476580167302876236263754046417737117123337555290761684576098412031481490671265447881308749669265249507283763395824831279554241699844491415609082123420144663561151439878692836764403819999607361303565876406833411029087823685230451771621814804943262467842034037569121810020485713346838603164091890493318702825651133422596513951836285179232653400316253031177685830439058553031434700094995404289931062006909384298598494625764243642747550200929598219970537138567540242399582249361468818357839052925627662578147628254905215311884516726792585106299641121890474290326898290300195391955649073481812466843389938765229124423119814574662009378080796511082080920250037221765646622654628516780697561651229846904028763819653602313563613649766389022197923617233885491819809573522970142320454913947600203098311826513470831957908274217797322911001498110420929199727079391310541688430564766806828814326393122924847528035155632827952732656083410881616979610239630665231004370268230915339990110185178408534796664576963995643862325907256630756039470551358975851270259376353252345454607115787656777517132314071984930870727417259903834799083775222662385016189000136966533102252957386519369099362589633379104117758605187819207087776560999410980515517605243383814985788441580214830037738072942220576114221873419120173809741916039089694570812869196186877182344133397780597593991704085257402459527953589551683671046122414148488235070420989494640533461029814818149838496287485469500407432484301004237023770269359497780909390095551642812541683795122263408103402400601731856228367117879128635057651221052346487547089228654757979919866349134336745731780800010159228032458041560620405881497336905468838305683111885642692744666825628260569318271149711079080222167427372520560852398097051928761728182949170796810849563420922156800522265765905027081010596468960041915941397134432079748752006197036214365310768194923146657468333019425617725802965628710574635667936196429335090417591547605643722848231520544883264267630871114746063603473283432300941904208674812321963355980892981390137432172319029440338021383503784665824784928237160284570901850939986308768974636121392228744643728222306898144271080876739847451986859735656832475850237902290438743386565016354309204949751394651712042399638048515240438271400499873660922159516794366552097162467190287849723430687941462209330654035151465333534381762121409749952908133436688742196085463005629418718571989796549038922609940064581345769898902937525260315947935205172873837166700721547961956375740701285592607563335804361178569570327151086097332660021100882712319916375934099712303202613810988996422209731755274142553634130615972948437204856730536334535661832196025697236774376640419855390845866547731334424306172126008629760529672078593225622923558462628463331892928319836100025921871137039971505577493204875978319767136286320184428233653934716363794571277158840984176877770551144694652404220885382028249892963950846704657019347597460108210900223798138939388917366199587023532221962941499139604842992793411658670487785711133726534928566536892887508962608405860497308118077965006010068109796230455954801189768566196762423893127565241655983194566147167582205720515073318743864995920772921715411527070251573742932740603038899701817639249284449614498921199600874145592011971106191781356008311793943700218567880801261181157994641471730354790676703916264480369152300163809750954986478577153019332075870767280738241627299798565721981668444519311512147215394626062415474788449253147452223428981444393566896520817283520184910446850123635346659443910177128605907892320369817781441406576579531416934275662744275647924957225617711224415082059057260848147140459239530795970604271724592752165506005137153967772426318259343164959994084881348962944398019280504469903074332958696420234779944060855529802601687627459481652470013204750956993158251056595655451124681216741044189201497129170591132046486929952189360787257198954332687027642112079711125806343717907028536568681881306493152903586491231366257190281160804499253317309331886197389137211839634887920380921481773975151215550607142123784782495146494932858500089951732313341794491957195493738102251620433558509640442999506549482181749182982098028501613576469799306791322247849851295874198976234020482642870620205113048454320745643630546829858997903588405564610067458997230028648958952414533037922186076757219603000199840534610423696739484659819890332264471364177828858318615641089981063332566958801490875489118552944475487777070332542816540487011452902591625351980123874140104360363092052813996081857821750591992044407167990153384458640154205422766039495098525317146476566588668145884224627681547177489770602016193969477385529779517920639342593819635523803884248395810392756705640051774584154536477920170734268207895378424193187181125134001913549075223018853664245615188640302650415206225875269746448305960600086648084673975874694031004430507110080328575618526003370683321783410069730737036403212982503954591566451625180163585488925018864904176713086234741645120009780526716591409458666952971943266261362755466627639747988313242076600247082565551686346541573227303798463349743541760533911805549584851710030650471465709174000822022033342084271621025506998295166962322792052067901249991059790172386421758536906421361877237109133881499560018522736296536092063731683978473714984116231404795457163102850830964929465614289077736030956891413757372422008431953676737207516723402117432726467077757072056644653817086104304913019933047479859635164887964619449295289058257309790409506277206668356944279880549619837512732746507601821215205334922080851917626617083613572333425100696831041782079718606502797325776115716507240273651199086137670389886650327557743894227581566173076972183643680194219584768114175757657802259412293693762854837615011371209444777267883907263765061893274494741092640586931989590585599696009720463567109558642594222507134228108316107878545620838655268622496877558956742840096517078974399836452194028789699296768855225099245481131679811960958449994512830174395658645542534924673319276992922114986442884274282189623437770714914385776080580848564273037171353764245306793786945790575233507643881521810656607927075157252883991851571052600561883391085362212756884261536867998180736017087567364217013332426353061934635454360172603885525567745806213146382054889977943799486592528073247712770153356672430512874551113052270769226215106526147981396130120548259553984982903822165854000278718281794527593457598160626825669353591091970253175878958507864251238169022868440885550462338617680937438712550030627677911446042717502369048260534968220034680627979397528237235197310708566623247325548156691201846615653934486047540357405735326497356594491899073616081176313352491857472402949142219105534669423028663739063083795795265229165823026099765074091873340013305234310103037778507875206351658346277844835368366559027055834947961298350561239433902475739693050522951308110467091324988204831537894226132235566343098114183098668476810282571550286827483833975719258734740115366467168262937015526822442127711052390917969319239127737977176880154224688349620140099732275759329391772408646348928364644435387618113834143988823534353062371783603772709222067901491315749461235248649803680609448488571989384119196847152483689960814722241875431733533374236949008176264368931636788534545428571396360327509922895712580324146305634287293186997117594565836310361683515735192411529174585686548397470920699815889999713360367051251783221658704694156520627129418830367286169732775954748983270093376170910380551593860779751831647911315109183280127525159365150488607939884858609930811934938012778967091084784084709431548945577055045503618218115460265023335986626211907545728433334065465592365267796790097240225590376662770157178745301067836845974624241194146092702551816535744964080370763592182048070317078004950305152791980468414802926237591441093882117584542230025871050989743405380196080967060017294461315943539319021552498639177030603251093959660382062356444137941788427652406438997872152898548739082541948112684974003413805877029331600234975233143783250683468323902948629612891771070449877062308584555830072538581936999562749473165520895617944627647768827751115761470499019482284323868027347074673862814752675333720121010716466861961600633771352137821138857212155477397216933044019471665348302682850980553100367604179853359108399121356009460421182548283826080594511633337459993309854009095675531282250406764600734126635440624826166056357691252799813016159259426864869950047247753327706499938464441139295589691465220429908122439062860004650357381269521702256392168217733673202091586750450047889816870364609615184600485574143988172609738447212746441954501983355932317688295578306458020898295276315490735500546541111137194763043626173297859028465131916146665516766350641193345758667137818109841564659296236576908362716072233814788508550638863177490787234919198767989674636254547126044095416819779922071042764025154843319647739055810496100016470598951578529439919179851978060893956786471973638900985242234000544223763116403151864279380217952656842997814288383213895982439395887701557990783944892067091706552034967699860541559021057651477157873786751371254730446603349942396378779627117683623689624459677644019969786930278957043516744315098022898650128774540393407397242671605002558785498888940993842091001681738748983584562893527517079117054900054362196217064294043278062798737866767302228520183704159213524224275962837503729973495914312511292396853190129753561162967230848617432317638929881754024703915228062546847910309796282934304213394022884129310475940434608356683432324956136475425798625445544988963516713644459379357350070277317673488451748870996682508104389915567709984887401788299074948442331678830180605973715188996429503241991398806477821402001041117774789688395551080742111648042275079877931031511511084338317728872525585366801323192752339690786930159258085241915908837680453626089750834211044419117285563214646123720291167406146603573964319013326735113831808685442753061156822006420507762762431630907633957468027315291779908101253549436125914719887523866639937485253979788879307769281320874570272961219939081254625546254109008343052040387108383857226421767563029049301769295115288579085478954134272967908455152662497710743422153765699549216931190035675588797196959360894440560279853228297459230057292902250191869049960515196346658738457662861655837092622954905255871509887801915359854417167213573070063569746236645069994385958653045816955766814151886375167295828551947025681486752161213458539326242521744695255070076927008328053505369516383702482620563452119086436094550878637455568841651474777446606868027320905274568175395157132037546217069826261484759071069250556887184036300053051386810957538874806334632999487695537434810824541310981083736907075104526381461571373620350563741206115436983956431136731850971749634340583229072358340161829060871658710160130421591917139023645897059027348156810722898671953025796837645639897187692251759331558679733407737330432167556539107557542389161607021227173759207005630713684374782121352889897986682177628325725333451832303927476186540391920879656525892860819307040357396420809893210894322008519941676117175273539788820266187445622820220531528314278483033868602799651751797558198833310256254382304160189423391703863378357921032037786682180618908632648674196620083453772672138030048353496696010662241386427252925300053729177370611623486543873603335731512271393004752577030921799026910568336986814700700466807131900900638769068942035418676510749733938247585986386289190118498516056762720635681836412579224498280289965361861777668677814102903988473476271790234863835367198841815377642843579068363587905670058581213427848601734299273114985258294263813065849793217196027188839888813672103025293737306872842842526768184950327932957470704537523032086408891882046920257811437470677421043931464527865896380704085307448240780539431479682354362054098652425446130960956897299253200046937227651926452523471043868061628441502632729061257192725776763140224201856235148905903061312244081943896347125981067222308073624874038823446428048391759971189069304948686931188157335894633373137830646307582206036072722165120394083173607712722910894553099727713041310614156773024875503030331197459367823569692069290086840655178435506990979613012085913420825236538319721640025784386531552685180455950652762182978072927001626238075398453178749321457176744284224049806304873363455955714192165559906931601168545680475785694458258146525410569094213041518607874243640505075700116978451599285143636331419198562203928363637698073696424802317505295501373358979603598744425903636907172462752084031212380308926131880232071030140461195590396734783221472762103942851915451503469923928686060878948272040131551785488924211858750326012076622758794866107806199431669460231246670036640694569880337894191692790930563800771255696111385511106823071862635087813016591596657199561663926952401328193712268673839971023130237186061442402816750002785237013297428005731412337710767305263002918854321849520377262517251966548985863027520198580555286556701741242478139844114794561403613372359291002402880016954282527637001726055817408445343080511456901070920068537510749800562299567939370360942165585240126826086201398966399798182668381464268876294549868698695601835872133246870517519561716040850360702192659349072702510994757252219108424455952078308514342748979583140906113813687321865624780519973309894011004757071818985229378443814143454127508270984979196457929208023550364363535096012517177168056554998278836687203057953323354892273581439095605122292942545110596156659899801588064005422943187694927076222111028476180826159644660270430972905492918095775775902696247824342719684252106673708953912879269571039131701552419895665937962888409428690519523491907549396833743385108678868311297484077425614288802420254564707508574033953987674644706472412244050841574598773169274280657938451080829334713697457317170780121504655607730879875787050244201825130662513284579379669342674659176754473212872979925532293956541582868358625639296227016169581436104796463370168169038370025573649440139581902290259043029179330141319851960060539395930151180348550630214863817390059278659377962839746005016600245619242505593516523938993857858329225917116476018331586739589226917986771992642677072280445165745545012821713074850073677934454702487148837188476688243781859855683230039182925072221247233954381450812495920572738582163867174121455444072000774625667799993033885814383952246841860609946505511749493126247475454114900899298880244751171439414717156204843166161483490190460011909296255685162877604368512092217653725203066326102792604571211234638430897691005760760382050626948945183133681297570084946503627830445034242988558033635619845445054185239483989082514808667971595308723718732952461752619649890592054696908404522519746654776340655367050839612952694377982971982255074008724675796073755929885119227004014089922309976925072908243725293025365545849629334370195169448316009981695382175397508939318308818349025619452689772640110604134908045313145010713937697105463476654293873327884965077889115704433899875968620677669411702353257219697006335598012767963217354057017373873456002788461555755391888881901579378055441731521247110485252795976660872618979299145615755209797040480867560544694283122745402563321911571044554296315225230436082636308442210335683371003474828646197343120322024724439322933802978839273166096657341966481397117329057631860775941914189828747832911366843302535292524964792110196464906521782428021658444801194148375608706264682217052788555866609397308492117248898807055295004138866907636839943008188779348037755411804546951933743693074015004386915629027469361458814570456637297627949440616093119931117418045204492835456146997128768235017514453738928383768007204168069639536492505786930809325864323795839791850836678526870939433960987834815131423664526254152492755877990653256163320812718635364405049101813148648797280648360849666502489207356975362171904757205540792696638443542621309943524325188309713530823407873141549480966574879196207042981321762437810817966000036278059616864585833110248343312510293526638577653971473510052211816165672635135384136775558921388335613754616690150611753776496372976412757297961854600653058815433746646375024676618736828601359389979661048870373212998988077189303455828424798632586508329716478813687836934043158699441584056073105170080740906242322983421483645937540666898879902452967750380630886424623540006792050169402576684226733377623470073850861041947110699435804534455704891685726842546490009371256247610593669638899731278465862443799144139951569466810839263252231819117286400745587634104562885751255056808152522939279259781486174754526947763804476995955050607030405723074802347057423446724103122965349505065170116543132428521975922325039634918024654316346612918022256977140890212339328788604173941013526311520369111453920038754109001217400800370764068065824627805087557204105425815704573154793095847220829190461794537539554705589553490462381008166373194550235848101992227192912016177520244466860590096640142655724768436533186703522065580145891365214214884279565586627059338874918786393912310949856121262994129219570550982159041459138611252665621879456917858641408418466291812312771701856076429841403475924859795364139295700295399600044765241741180636090891070329935760123567450289489667243683113234827356381370078481809220454448786971363944071406838108537502379067925491990743545391118754416978797744588070612794679102610597267850687549686191026642898726604155400035593706209614687774802119559012974434756190369015032298765074421165940749484642116358360774214267964398310275681555461210571679153107221777930254573228745372929891949546444430214743494433991526199764617560500446876141445197137848176211789772414355467354670242507347836422189788430240648952846314388163435075296533334782074398744784424394834378621580005295941201695844997595662195314594638517065744940644541377088385322747539546226747217816410785971506263948291174373316912308779475584016245243467316076527923038336108403393227859230437069614233618515120201630037106473392360159409348761413931578014737552099930571439690936141780868692008127299950126894063381545942618042524870705529369512012093385006182670089611255740262928428939779819953658533467689013525133165447848621138975793953376384770437896000543746315267922612655403500132944795933203899504403691234100895651264183332718963511651306511767120225793729061014842352467437854740469612582211063998326045158125475467792932216010039689183516686733683039313629853299887287731336514009920077181159495852996478186606788956873041297968193338686403654299825024897608389872787996832247994861290621538119527811750653500768127034638069985321345239607040850382203113837312467354408540035498055988976284821825502984175192421381995295183553440312578431076669819823628904985956993976147201950407415341828849716367955572998115769289902945365175441526532860972531124706097743100642810215723199143928724718284093996741383269759137019206039345242446281820941620536688358917458615199461028929758611633262539363485791650895497475561088704308265783353395487206043619313816874211841752981800450246240132138892154135406316330238216156546453399121918866588028283036730994712897808165487889720625876819014748657643264745543586479660505441931400783305815766575393391766014969017251101351930327641254379081724668999981078707432988286063210542872923068461896542162578575560161255234030058019732943125553442148865206998097004301429834507905380923445824367943874916281483401529428782991908462113223908762350246378918770122675476308791945324149114109125348773470452902228567697375702167027235152036832281449865303019336247358246400226530178178623061318267347574556271918313859370386942322406078341585617375014810320379510019132622268591620758399992841425836075502370367514373472500610845652123178206902693232717071701807175007667107024383008821349562114209666627925762947535365612231196303487297992396129561001441176843099144359806556684733183771111489825166860528824315829668157736742930175053096196635158767553864128836864640168032901020983641453901361820123106000007757966076771445323744903666453819033035659640537748486377056891952143606796432870265114198205871409962188495412759055289662717437163787015463118234995808051672638789869011697057433252523306688114102309063716096539338291754247405722813182485286562201408429483589030543317686693886272529901374301298828533204149259647248708428870868121562155659055520118766992099534928858695129349256205885299759459814735055255033151457349813024963566600571562129412882016229998481452915802727452943367134613398954992519726142954671341106550874868735678990505261841864946700362615455651785900747434683022033530621263319828205481038832943772784801543529854234069099151220711408191653284216286828263663561083432356662184583496584243511408252713418446704388546056408915331118311239118605398781167627676137036584284818073139200562490471623282329910806606066470626403542859190079697347301887058565429921291410650831050249211811525610063742292432939047324285859043691099780873687016127156576086252725630413794618685327159089484682802764387819688303469013986309935348904399396141313859646288438544854517861469894836359302502333888613866057882534938204297542053481966053943726434779791355298709044097516714256549173418657402833105637868993037656181566235182047554994194349715215489121425206470792904376212845403635654004264438858799154465265045884415022083481899808252376263783493919299087741863311950233355350795095501985044294646003792077032647231653837167797632255104615083447057278649843104069195521190290898190955066437540036659891571296690373826058688622094315856762141694627700344614655883709614541838367816532646717988704751624200276984105681049934797417474275556623834482187239492559872480817902886979178082113078266738822717569953681581006834944177014110353141107098279679604574215573467737293131835742900988172510707001027056816105909256197738725262954967064382697487631527099633231538978021419584628370235855228029775802140619125039390009549720689692293515487099579621681865172941430023651007141027555894312623499945262174251834073149518226654136707112054359504770529840551641440823160400941485932276718335610410319523348484607952364661069986963176588502819331709092775438097502969129282902871827186867656056560103883625974768993319181508684635102020444319141590772364683025539168088913774267233213994712884977597953977347922967893621930992511200663011566173906575736837676365937189211422368499120214755719722305574100572545257245385556505686460537112268226795019296310394584417455806521223889346737778117487711085358563651048040070235138414083943449149587336317033745247442076903104658940280706520404901026101806307144095089011836528291001042631126121723016073039142782998260548259374871970789455908633421705653769115599133716964152529125865507192748345937113075626822331441930750599400673536365037293550076798042151214351972532560562264394541411316747298778368714099675896563070199695608246280145049119912407121857480537069396403892123464697871225506696069651615068130060629410740080470757013091617350773347556487725473691225215098135033192993383343821078855438332361873569071608054558098436700574350850753199409765965336872104349332228061883499200482787381125275030492088881748464283190165396006304665029156208905322947319996678910429991774534128768910309099767188148030932716269812365720604331596496493420535930974995546353415998438238620494250693932014266637836894812021997614179860830589838293900673951455175735499971707538924803152941090118514926140875944737211593932892637050695832991810086208404102864899234632603456423704248242570639091293808017046596536307241449281837553304794862335063366363758865610589066033531629111765979002365301217285753662018901016498159777247290540226707862683387773011170094318514035776219454816762064375319687841485184258934481405295839963849702539597621263597859456691106370601332279533419105303795404259783041376675167497687874652996491783423364270007454754819494713598668069156666458532914903082320598902812058781268157674309307210176135822631899928879732309320101492321263732671517964955489689247766118431545671617574939384016165229078440894231508766870546652757932388055491266616937775989539255610804069381182248000513508093720466860200390550091411653944819959417321871903409718825590726295842837197700858179418507010239247599882896135737787564358854963425611467807833405187109513125759999318051909219022665615695039282619479016017023122433057544312606544646250086866227480438667441944201539426038115578275400004040207121819013157464010934273357483361014694036854512564432034707528448389317545617646315722092878102799120290218922382824703505463383094194477974691308829245720502922062498555235510565416430457629886417680620174113480892342272883474543201198072660689569258822932702454477534721765528390806174300254282815982876747135983139248677545318468446083804815081566354194625658132963595505948290763301068156449665178803283777234426495734762093975759557930638671004777439340064983405507236218119894844821271727778513899568490447627008613126978157757229546476033592735563430185152565958292013820915022620088003174972853899821503906535593312828283530229104248499101040960080812922737134515814582959625143817175466341676306580012467619302739397496828271609649437231135575629078101961242402981117679826186714048395466852385580727594056093297312405555373044799293256493279811483183320213731115623240409254441936217129357321551955582693070362086939103095626257928849446571817529163361050844013855636792071157188857988513496298042756138550082816695303908698962080290303553800625563214036681779081802116484387794827851293781711519531292060253499397876175464080018854911265094773779403380813851658217736547421223193282082698080401490534839550396438927820292472373482716964374678135415623079293493072403367516992521889224056696146996814738788518603142897635379762432426981910159665618186293922048809589153523367722568736438466816976741773574492402773244271852172458249037944402883067384456400185365607465417560537108254681792569364696441802072207679501529746750838413523113561625499529176351416883845818879384276920770036330816674413405717150430764455055708620196218750902138849321558849314636118516681921933331068710415721922258451362322199002670838022234873215757971191139682680384884040281459269592328395964188662679614930515982037118628310945019769133557938815895114153272504224953588864505295251885697664767754064198964612563278225970170233375585208862221826002853592814463086109070674171612612300225306229432694397803268357300881624868449638061833812906317206669825392733974004947585695873513934547695113481873226417526311905776885921980237320935229881724959823218020514164654233174602677104795738569517467260280709681525043733589820550474008030133017558152271695309675197201612009205662308775428710696458634713742806675167831937351325652214838331736723081198165342239802624743765589476756921634368776691564947998944908953335482608637982325394916672689941674998347704699021464089968375824950582908145331422006226370265889085675892630506217725045902749909993279197623786666529191863955876879356638777647427669516078960839316235252927832503641558467802461815988051429269144069896524719481933963231368546341865090928413827172521695383620063230092109962062494250608111814867512981608654863784916838914202440746125373499118074444680045657807234762101130684460779794221320441751848161601019084311857783736923028533939927561111606255009383801593115111359078521625604853869143238122459042997729469643222737151895258029733660453560070753438041266967058679143693280921830411392517937860772590433010536938605645312282575394317372233585221168154304436358497427720836342278796178301536250280185857848442597198671328342485127694810821482898998745431722097792403608326198732536158595601419384136517625882323166497136618714988209130428155101622439116045249633842565407862054039684759841372950931581487773712401871797783804789899494365429776732570157053812637852227469724678742413007936423284978184783841870950009202723276546498176971856311594683012099715472735317355702526409742948625381481400785942093756263839468673716324465006694756705315994726878112561704600640744455807429019997012621053694428071409221661518213079348698972837001195293081073666728548798578714822353168796747873575266193854236240007139113056755503388529014237718541648922941556716384588614111063333831204110852764582840261025555845472259375961872346364309939638012344489255652989827202990036784391510418687495824429546262126155525198674509444652902219649632955400007038521056321967658248422650733125362054626026868452266096888043838047437262323316166601591279368819959405025719999329176733931027100125953609469437966385968083266431931649658496339772919441451837316675736885364518202302381482637706530113911289136913462491327912603253534591991632345277581424766602795479540704330509573058571051219829120944316533594324084681380748875387297085375441682806609884935066699637289794431656792687636706605922664955035210430834357140335183877561742096308666225048152511378485882570025040515838618361645076359197566456471215061989852062746107207788534090089741333788845290560643246783723784423811624539607897311433337060960525973019965093743954562466866281243275277881785764509786865491389233961453938720160995472773168875997332167711844199589484861426103891518757536353139008447216715931361056590552306882270163900604646542371934043098508250773501548519931747183573730449150694975724800790842693598291438309313898554875494232274494916279219117441681762258515329230906270288626273271727137367472885363862123221521565981401434617442086412238248701842176211379848001289184611502913407235104009968281635515588496259347022842452965644631458122087796414813974052131898287854284269657822434892186212453402142291873824879831283655208388110223504587132896511975297239395600114252964021960676967957581479359799931418498120411115428221651323925590709874816323371019161139791981311334362875608519136823562637758111952015928301098024561701102225736721118075378393997056197834785899801039586427329468431331010946879646342978777226821944480569992455368546016753353994086181176225929427764715341240000276901027411761923992248717212932198828213214581558330810327676656821576223286102357888866495575706551976714230950420576201061600927036420023404509720835648577181668241511926944850681518629351905611712803659267821369850750877498220731933486197900725897758266414280631975955986314537097065477664768007258785006309940108789455470972063803894836930369700269745829254188935682769767592328677671016980350973276936027288312103987040472950733573175722327139128868230896977588125791454937934298535944730061655931505590245069290180294939653193727641307597943503018619518284940068279455659277338106214901644988342847501530408357214322458926520002752148468861352026832020123565045190191187232355916703723297903459787550694692772157114718237996680746390722945122990853465326174679733821683940916461117621210756826473382614614878022120885461094160724950146164718017557452315757256491655201696462797061834737046196119470719316611275377707519894464868916112464067799340622219650686591370531036233918759281965741610783982987951386477074064514224493029252407623686643359498661139330968200431501561171744028457058929342504889972302803590243885579715131545883284619046631488813005446165010619163392539632499566891885581207683296137502319540263309630469405124798684956587276452876970991565736177473391905312486844946258722691209550207072170716218796791877607055804810151922950743263378200279183115536826437678875799119811679688739631778145299544256657730927567143291248470230227864752245335402514079094918254625352910143935228966648242984559934255755917775857582423523389737474844633400472593135729262448398487770176548131880669706150228893096106568820300579282477684565057591640181294558696880326458117051128812605060822201102948137886762347888324825282503946688656047914724349593624085753393149412855950658025762800089063568814923209519216400318809729991980254670328632185674487704766797400805244494123019257706168607933337726166795237231022560304560734945720635603131707037596272146490194250879542596683656734967847796401786277500941708392596517921137188850269605808592871546564185389115112448280957513693327438297878402591292425270152380183942827764230778659980071499001127186267256977974935585858827620784419210115012275557417797638627058527065459889378332964951877011526441421644875208632942410854193186111409682762851290143784802343912480472466682815277274311548964625567080291229410470366544127961945872451600591100008959934764826857346824604969511368019113143213023072466341637342509019213619905879348610301168491367031251593211223143289163231551486390389204907304675379060333848146223790476336372022317683354114329733331141893942473793198755133365951923692060556418153629274571724953820445747470974338111998252069390559257390707774360691544834954645439455506517513046593883516308482474634109905199496236797103589927135620109785056162499523189050215581468446772463615546978316832482756963135717558314707897091728778337180485198954598438285966997768692505943828099531163809644381799776035011308707394485192851625490589031108723329631488255920742740143440238814712545595907001193665470967389125872702735685273077751939688620387064305373419963678594085215789772443560955383209737122234993636234092989901253196033994721429578747514768554321732167127462276803323300056382327072275452949421725751941251053916721864335859445349268769220823873314300392613546630057296367331556490979598048992472669386456437462022496833800005055789826856676967114280187672621778655766491577003524611009327946825636771615396243792771294838137972344729096852205312331820157895844795748404966542625020395674682354733532589667464821188622077302441641396400574395899344512407081002310766672834298600575549363747498649085556304880457349808974578492631977514473595857773563077254678529823332546870200957197489619002324974468772535045331727309242308890578830620727285549856746790484861180492665365738111300318254729987787422632245052354172183013256341795439649838679382945641196752277218079707950556444508380435789200441015991008710562086545753586198813375442552127302894241653075803033080796360397960666424281579324486052872495607487409036181364062430201765226239558683682892096274924609118894291902212698768197461064344788994633549049367584304851434998064609544967328877300152215440295681234534489469325923497985578607921934790424873864420679228419251327300496390538838157937479116299593373471044258657372191835913423118924681215100564175537835673127527720339420845773309322939337741474629120414336423758453227800104181991754841646907988966638034903140420857975127670234369730901782041202312016332370681609809619376238353166428146780856607220894937814058508265825612064156690803913301450378737470086191634207868965841313273363314363382372598692478567010819887206149431011600932643020534519436686730988893658736185274628304684865086589316628441742815813439912058343184793314382513612576865309377574773719660808241387978909568631924278782136534145351715120124156321455772612571711542375752304356111855891966314442308693667051199138153403226210621594397427120765465231765198966424475262047151909698917445511843743312560411206000481062834177449518999061022134126445340065348576158006336404668827392202261921447571115941454757056524353886708217499556288908901677082397310205194838871835498343288088860711036176903323107813796305572738981129127703868279932165904053146896325986391942915207644121837405335668958199426520915206072234787011150784945992637942582738100456093734037384700526043240047651510339744262915897859421619027654612437100731415331339560670120992357055893555586437332466239368273381376660988561386081756085525751881822982365620593039848026846892564831572720381963427502449053813871227283653813817411890381862937066879655274018351601106777215442748763186693851665268919096693241241457652517547713861679070746876905028630836414931896559562354278624551587599337404868888059363509476404640422669023739434693813198094553983059637952785004028188017151896873158310682541473547504832093766879887868201624977207965462296599869709286344427118784043263484658241672441603790048629063352273962632643689695218637458554773792770810832099800656037854978617928168238018443737773965967582913220601255392869706131183075749736498210147313999513780119583630465784586218819441497849370098402756006854980263357350276903501334915999410634061547078733290603707231161240341870550788379000898176947025974081263663402332052347594946286477202796252113686448377842127754708906075102553014546480725459627611374316793083227144449518251553202530688993058531948318061909762818016677230361216606781369517176487597906417672078274900447456671143903026184811709882218889166496393868513193469112598949862477341922210392931856537346282447189895787586796112815110996593701003783460366990836605499539314209994234926019517200560034985940409635399105472773946979904135787022632069202545498416572677427946396129743913685217948503406180772850987428122769011413681640284675288754276648347172854512389859157160621106210386115041453249787913012138068893780887857411356940236010861172747490768634586796259736100199117029869639675360563303585985059024044857052314430822798558580421066760697846685856139920532524870355545853701010773500886495196354119145399547557065526277584357657458461258415631074749536770190450884604517896103563009644983256798030526371100903483368327380092585578396397697887574550409776166609902795429188589308917950986812311563053892116814233795813108294191301853876649838432666048909688018607869899694639519523554122354444951091490427932659316891653845246476121029773238049491026972063197314457687223018886454723103520336088032734518925146042837827235737381379904451396461458772415780099182945276911489256449554457820811258549746299122723264649039750796423060026194526098123860389417285256976447427429289378164410225978278080809381188489828665645075046990355036823640457028786192640078460831062566896721051510787599806260533102100122358089908786452552773927454483894942460977309768103288181048377558490535754369854782487209796239602856463370367224447256026531392813243226027749446017801180064353804656177241828844153793279733031656426254964457524785225151403332921802994363668920045028087930145836265592745303693208581992368582405824492867970470048929341036743249680787167805287155715269795387317616139356132593003098518745852607460428071453029533444248363527863091514581116770338434981090347138086879895128909270471036033367710778140834844624686061472549883654767143507897165014452769938600227922887312461611888686514548757124587583194866819607135129780973428900934829960916137217184080568891284832030737804399029801197767445952608724501787884827582203141607966468453384013730036339352239132617464228397146920127293410803224014862978907413563620435519583015124060878235799054599370559833996396427254288844432193508373960444126803498854986780142412013984799469474267251345750432841611528318934336257825555762486044698920810829515812130807472484883173797144065755237092962046872292297505739043255293584811980266329093403989497358092902735650265209686282787669265416618779365146499963351891859198281123717705808512908891479895022969802277536978183264365803065946080924008017689072325841441297192824247203800486590762483298432666125302685103349902657657857996330572857815804481506534147291034011865107527575914621385957555798465331746524212479703562965764849716996877845984143281364150626588032373537267205100203918720865488940491633392384480571756388725093012313790697303446402836948914532187479689036890800919107696487522679319688397308313632855164428485454389551192351626705524166101161919395623212154044745884493177603326458648332699995327613115608198673031798777096885473206973611106968735230086661325732823554513288927073584038158089593409540047766863373882209899947758887252513928947102576115811305813730792569508911106036337471430048180745447071235856967018761630440248592810294124481653304300197678125184887324291465465374765308407856299090453737847639163410697134948316414943177259257359898774141042585256506469922575333866702293799929902483384497963616582601770376024042854352514689293826677378840100504077814980106515655297476502302530481848290223516634907089449876811196121510650807088452894029830319134369478860719723091087906545455929044269621024126508962080023775486379219005822137541799451367737550293442139478343845408824968300559698072274271475234618638449633003720110584884442628228471835669510578364180709087118119763413467923048279991929423344434337452657118519582758172429556975365547653558571537158788673155823731791203581943368590246116895493584548438102182098056456671152278111152866314879791224104671503454122635917402310507267578156516907949753545695466102343506351789262820073876715784184485323312647481696410450093295263939107255140263809723450742145266346791248799219504249506398350575631670024222097888845014235493326447708542073295642006479990456728288273089736342401635598151271655857087602631934760357479711367322844254495461412410314411213653295907318446626781110627401990080057408513360217113291910191481723858110359763233621594459068606885817458272106636078324721105539882285311162308307722493207187603142835549723999909543867479119041206409581635030692153653952559398291083644405778947686559064269590785558892780148115312960528297396378305223965687979329134158295623155010561975005747882584350683894802720131680054492417655413415536722967818672262975219357296762159745729299827845769995818570124704106527552347093167602108874620189498309990562680354732391917438803528523945196855902262991234055623668168420261406594601661426898163648963226705671454527615520840319977552181122228306946402827545830907880095255382670011748089440085824422344840901443930995076045874992960929194486787284244655294260355040153663048572784575067890334206375485651802605864654535049231546366067214955979231996128389256606862453821966213790956141809481962680234837370486445390985796041171310701243314722770694381624261607791747358930604032216117319023629010812414634682390910147478453481264736939378034508669020117854092269189072113908427362640084022560952795366222687803631074992951896334937247807842462077385456462974698567818779464133277559594959198587419166844783018668875825985063358095304730592627958788266281356695741856635183662967796335366162569000658834528478932612307942533321209343130986170013940224515939863015330027588574482615552011632165583054011090247991317443186094788894424719176565857393833615293891646315787775206926098992237784272107622675471362967726528338260458031548818429183457905620558523138467486880987475741829951436089527571148969698465913305515718249017264063469473831622484570295688213478321860050219757949327957537140194691987103391921503460117489549350057648311848003832107045510003197299460626690817032846523263802422485817403542298510813693111624820378156824026705402650609276295741300394590674452791979966472993327500323878534455218203096952772541183313194929837454299674345083494569207945583308957219416697425544682533864656106651416194740273233068918055488714423970148248814130243332211602822892880315913275460406393144756504510247078478270031008306239833790350592085387823674384874690715910716613835270975585158434913210350122255865928574296051076914689252902235938279127110071779878737897902060104053792712655426027857235385066544466670386663145087099165571537120692078442628725803234558565314378543259039018168386005327549657925726069037995759888134730688880747447547111932240148505713258006452814851064945062178797173665367581241855617818186509256591508967858838537346006935149766940200854142411958615773819902618019957555810622548361640410620763090175856074573884732645071333857565460417325337113028013789407938579364339953362780923121083970023302836469423386202991033137697450725192819304481060536148898127237275534536451517984386997375729723447961754122638543250152317808397255726878502256871216813534253902834781019191542034324259346091331136425107319399433703843238861375880568271561648549365380237850903934833622482273182074099684532966420066268037268782026486705782985119284503022158150530356417568937754210631387943008169086192587428698754675509234944739615670759250191683691129303774804955199097039823363826364891350584303996481957236211574077257682336990702374463935429270205346044803831023144481145913795384749239157294312780741204406080309758729669731071819844106693340826049698415157716592955194865581648675779423393689882775900357894212761604704734211672187920488769423319638405449947511159325479617623938498538240196477081852094864855924228773249668730030102462610446676908525456097605252767542609722175804231532157673532907534815364111375640334493764477315701074417762358231865170035472053759404317824599133598339181781909632989815139125754319138983372544052815081545703102289680299577227508331211659770422199826896583246941224511283294989872970025288692782008856127159949775135621524144621201185726015252469722909151404640753192199281734280327618599645702580211560174620906358907518617575300004249196720092148567640159697615970405736942590356827057621726980826125845805961670618866332840263385648286426103859307490073261464768345904157879793049982050590432130023886393302978738736196275533218595801266221632584664077546476579363380854496495709655491946816120511556943910807968135393846059750067179506310256122479527199604657086253843127219194520031050931912369479545856122379295846744832208038385192663153238284507062223554163557520160484585957877279643566407928977315177892543246016374195165332485486621259981179724635762805617849167583923257722366843923139046362506364023028317230013785538397844059603568332684279926654616067211095960638834242950430023363651087339459142466082468786791422410972599551213534391932339520885700159038044698266311069545853638464299547406804067960963340089659647612335011815471822156520259380056259062150272901222426040414726158403427816260545987338572456371477792160474827443344111296731237676119862978669863080241795004730990548680786839290099752578360568423252734512493884646426117437845901765446954096515947087299765071127626661175786960190328974286263834806460258351836519591472871025416090341710762667758150465169462544957993828996178666609857273572606855066958690375723054995572090626217139470396850395236312944870874152476422506065216697079552830412810868604973922953659243154172599393270748607956674145938706841232750041669086025761487588798762359367347546293045968347057818243392374739992499318213776303837529903851510492138626855948622828980290986040984011665073222899953224056223484778426908827773333002520957071638789137572836111316150828240586774806128378099765881224500975070984791439925240141622405328598517840602677533819228267849527886672456893337594516073195686216856063512035024630992837418507807604204773843053254838763592412557531636452293163511786522282328964448319102692474163633999280535309366592617986442495494884617481328995681373139483095949958112473555488373871125219033700515468040236778326154424065669062240436357919958919161873198530482800619742223209883669364708401812321417476276732239473306004051726285935485411882461399122545993604628969714134165203093502573559361261145139647646649021062754457374977144715508058882686031359661575978888082513408417512408423142188759570263961666676842178850151166502959559786184159605479201785548116465418583113141209127828459690444808181998063143890380522074970999644592680426847344541557810334493205950156320196305397621418073990862708480643032178002476090143977156423120072263543493273799157315518591100652472774851997101984779766556894491967164861686707903757170664835628080325964867673404584205686501819370242695253648169558145909093659078076868124386399342565535330465056785065548655571282118381739659983633576780308871040572972063848194704823330793522090608439862801838670895297949455903398039750568234493536783744414698853888045281008136062558329519311211934751776284520665192222527386696926300256656057137987467747226321911039544639384612184558577569269211274469656540715714141819794922961446403902152393652171319701682379101625390563079628676903703669998720101055197275883904902666193971648348114974239117387042271429504980391844092035353505646482647090883162717270439141214238422921600927129123600670102952490482688952858136084943203538041356964515930924338277301069829074003637819107214220109190692418721602775558045932649015215059414233531352862778826912685057008770944176708211117803391613231077884547695892356286062676906368115480861944886505985634982420785224821027355717116828604374279300190532421473269807603593366348559246819120239471480921233284186050062585379108555395006935143257214182173424169658289168710477383110597050998134940969399553351724534645472530194525002197042367256339419925959139030043726038976533972333101892731998036678696654613980753800150074994058963965696044446341048889101877254017581364829927018989318743514757195119016432624565142006231074765452195530622094090762265639677031822328595936090281625230627976852910671388077127464190257056024461237830789026485486006490087858777224582811024344938706614774453567937320714533408083249610368600316487116045576385296400092889905659038807872015381686860578453602623953761584365876413156895420184516680425311250906128057586051851261261263727019604236219016699129075528914842550002031663943368032040571141160423757980358565956312474994695698495135867617171614861342118764921998574023604525815531400876092991964744628813382907321688226913157355514901842172781677852130383660376356129007685445315638810905871806940817781907895745143359593839035139959232215815478747867262033422730377952548101343348870112698825270694572970442925473858639589403162524181768010338837389259782856379513349072256643982136040806076951229905479422077455869779933034443904419997357607975028020352529286365622716637530104348154145433270653391650995946735871134933382166989485670557380782200217312093915300782652612868451424290726599905709582548604303545232999965155578146176895285778053665489485926317291170626203829798016084121593188188696290282871579787179368849040257669196947891197016642307944711630047969166029633665411656714129266583864167655842583466265066904169951079819904156389709616578360678034580385887549043983668110794625922809484398900347357457657221278020507663612424745302728327791975368709460269211026412850520464771511319590975978475200954067737217411843995901350727293059963625355275183651258426047228081305017016364582988795296387473523944228984041274230766926575389191293792702273587158906780074048592164839630908392340398840095128732229830618530714944412455289744543189585611874000180952752096285137117256845726219543878785925627372240011892859210973591774453090991376018571051336552689960979827966913016647136456697073237081484653493878889810099483298222045461002017204361275120315381165829910151186943049114475937441511992148277698846672390919809215085158244561052008871854606987301372553634632995644554638726445232695578243816895531108965313406984204121863850069053799029011296556029730496460548219601849771499587160160186321879285776555148260986889146641786743554863988576721640798099307846447004158925298121200807754694044486902285347709395086821323407338738152117640444760483455529305299958930207165021318455760851637824162907159794086617952632265090870625000097852945988034121108255776072014188772749071012838936324373447553276610994629820292478457279595995866906046000101825538486745656582757507158587296867716751114872652122065893051470298169911459357597062405238204272016760908971936440310471427018901122919727832816021135597563255486999922433885045198582826291038182261226559925915970829197862331931668810629752541068411710862598703071440860838890816173401839452178676169102178400070572151153318183463981090485505984190806537984039319676526182549014496282638131368683019053727762902214082282532050315758144911052149693400800591718428867474232818892082210987075100960942227179606118687523108651305487940730324755855158572712956851667115026585753721524970207356655428748048188381689438092947193924970783426911981621047130830957027914404488752944652228809164269322120891437353263434701894141865498758085443897837542761116048219449857339919464163451058827596415074970868687065333087674685517086367220041335506908982270336380872483247736238427671272998279000472375033656913596485058948711797177358953752351727045329880897687060371716893813114926117990763868175722778250303799481053099714133210679111769390824978575950173473432748633566843154997425554342879813872888588408286655506303116923034262400651924618208512940513841094383383099433732356118408341561095254744542667874415394527438085478157481718055429230172577082542155145523116898159841576303310410248678593445139563372056885889069057119083999697995213344839522875922839778656931697054502755249860375938138006589525705654871539925942499971731716797625183078071800651730515295633826327932127180626959480634164969102111602364643235890477243477665172504370188262115843764422666620475127825235188702178980272672802771182277315210303587264208245289884331683157916664992568216114499034246695153246391357047807685268989984893205253372101246744855945116869825165086315065590233506089461332596475857404743071645102198896466685765093083300456818727572416807670592160435546810092925593956489533295027971567218920273257081506277090717387103132384249600991967666572621248871349920569723586933240738111770557323460902157984722345213827715795803472205402589664415390534121374470050890338715383493907836511458079202721014790629798992357303403249969762406078897321843108824493082661908026220499901128597492955627721746461146899392940105949420973381759438287802504440996875340190388601771701245912276768846757152369655212200577242450365397376969028517858272010843359833984544568178406257490431917087743824104031867141420417203681142989503677256546071050128601831884330590267041359144689996884717833470408291468124154743093009981538425850563276047390876890492793224924095349919034162115446082138983645436273452554213715789152132060376564346128773346423265279490788381923864447557705950091194441422576047487273346424607959246298170464153460651330840957147648715521286086578470735295517681275823209533816373144290474179840268935951138362336190365221936869489539292986105606543505797027155112426086430859272820573203824528633753600405371597766322099134912226229821552464413415294565515770151918986924072986258052706984831289548079625435319741712858425766114028200953496918021677875090640963889389104845046640865750372940522104112800095473196600465004394421684859422090144524292722255849059366382440277332836264503030533539930969877703430907123325762494149601610792428731668526388452751267060300570764109526142989664881812039606387340849855500941732198779667532749962011869772569041446902062477656553506566423759146917333072748915434058300807072214809831677481930217368453700212286491519944808643918607136506738526628029015686800738658482695676254210529864116593386924825383378787521349222969889549770334204786174098071621018441516177221481911004373337116936743087732669730859901037197397794961028429161868412757569913986492114247878143531088307012871037747664524240630432837083773152561194473055755237910984617735312906442410447089451669048806950914607318268944927878884930939500099507022903534353921332558947652503280710528542412429468783066310827995140399264853819433461802956014311243285648469653171701739125387897466609714539422772741011442393879589598789105456641042681478911626857280359967830398709786663444404744950237805374940891697917385372097470734527397946057249275908249278258335068256908378083545693636681739559150054891171229458934250193970208963987204233608131092995278188504027712873857443547058197144905713041591925075571511856871245138617084613762199481388155508293884837569145259023563970063111260122118004370384777070672157882914472504703857119508588093475506374838293531777538088558941174192632937495430008507222483922287543944226262695981911896956305252790993462946153609361635494478791750377713741590706231759672455836853259984215588103162562444276554990253275017631362943127796011916430509716959532112992045271774496546336026515365658288419363879337753552210007523306249938917088603055134982454203328601498822518924449789713654388787607325839686941239838808204334626611722043799813307423513678499084586481666628620111016787728549322725897317962900838938093783688622430928160362691807321356465371535050488691647787791858427737908188613147543573704383964161086684544778605185698836435455394146744883622569075822976566805177777484874297315217407172224089962520271344638028938433145251698363807311799214678365333421747888059772842616020358430828924451439079548741920599467031093767769273460011572635478653303787050882558626169169547527360426276524262803824771112903565310920613755010415351635002947736028030426515606870445034565865327374888313887136360128083391312685040569730582623675060661853976157041742174275940940477766295856099304644453696935713123533139018447310167028536689418035023616326193267872577312149724982450873030342047625852256587138441719279864813496990033682366359258820601075142130599354051182398221393595842421288680155694960131634265883922903517029638549314312026857517209243416771675953673854595891563041515434088850041606705334665408281307008328977614882496962892401604211416151036179777932102971347626579979402154699780387784794015988160852142135353041497943485318919528301157500655585264236187716442360830789734582505232932436402643759245918005632908723050762970364843550869676213310828770177163493776400157407706192909977311832715705372092053654029707767867266532779330859965800109221736238904135842795193350888221454365191134340143428094289321478884830738725770497425332464660948353516657817670744653783648028470969261013186450293122961659943735558202928820234450728277138137353108738681566684680584165539524063151157367921549112632477501265298070868653207871804612867924288077555706529278259419430075884278012095910166377504140143144565160939204213995507274987872445710941355550450157228970947059287154785784237549555530688277162786068182464764719997298003673328772074752265359103975496408864254765241431378861906622713920337483035553828434447644598243634065327813631957808343899184020729563312274240406329113697622685654000106238986047816686297777840312794899917073967230675221629509652878963150378284676791610967455848873593475491086691961722460379433265367175326679642757594399604997668066120400165330285049499728607042754250937207738586370041544102605952449370758500363784138186077956760668064617234295007523977651459432948967190018394508535071152508262845453452737577969122483337192342761582030801462801767562825024071460250971605630931767245930760486882487900538471580520750744820305264966898199940251579494232115902784104325425835337177788899239517463665743261372851811005292757346641848185181569944340408818037687535197406636304783372844055818192994312492820699574561423826653050981344664300969883579889993336482496472266767866094838218200691764477995154100648314950923402313298555020760129765976548251432214277265806665755782452114351183573372377304924371425957029585515871156388807799567099240416783945078541847459790898158041308296754681520346603969878439383081839237477162789771382844434051340951168427734092176907252476310892244466478911687943251322200736515345623118550138742152335445030893885398610146110690748910956635966294815046854675622928941510892372943193195614918231825611290602583642878172194929175345388235279936285889636367951806699435539473796067883863943299218278556841255867799549795461330287862146465157139916591402845873487027052610698170625680635866012816449797246668164161969879886773684747096351963496757677241171938898911618410167572490652812301639681693150030825201489745797388900152682402377798309724004631085064997410591209501570775841414891805283246730618351409517491370788512597534824769265004236854623584360159707296182804430916802637005785921511372201216585722336541374444765941395496439553132516160965801809920877908352579037577267506223225185883060756932318956337473318071536686998849863869143703937913796902175096258692842571691290542002081554697777269088469155248117449993657072604850439508091894328530447493989630060318518772745821052465577410812254858746139841024552315469728605615990049197301338745304316023246449926512501704259895981825565238875877954291090967219088355357772498686136615280495876215441732619304117924969971423648039456363099307208351692249539620200838815119183724445227526366889209929576677095667383518896619596160537535008602323364828721267279457182592717871773248430958282735739819410794665642841537352097892288900210373172027586642901183835024010382622694185545174623600553905336844479903780231493500910433515559836118650126049569602591345769365876222655770632075180259102970974492951788854202119297169126631041420914010786425238613208134763454729775317440856732210322546073930167741895602027299203162479753768627807845971052132685726453736242255319250951861718760134511243376299053555461959175254804303890441737617913169627434487853115501952536997807793447126384248899343581917195672961221652053462230855341045461753516028530353170601408812136373334586374744900712868341362130746643149919626458766238324794568554952649366465017373025269911908734889383808220490313999050562754439889044634722325658585987911886688740806970103202682039916459653939827631397675758675630661191248528924856994955452747582595838059266980566909315279118773020597897063137870893388322070950897673353008555615294578493640663912452296012669596009626249236235435006717356575093246211009787638785940003781112255481862865919130265466121607498035325602344356367631241181589646973856150829519318006571541263062289942986318094470882999697782360083731932759312453730293080319708391679211238220377593869128205704012577244486157978289703237209824314199521913569339907013764865723794090189731026773146477049154312463353149231164982846119122320443297987988654550488550281722412719641296214255244081433833184835548531648915655594728454941595183299317885179785723333498219716745220939822794703894830938700688809500950017601865107568261901821225987911067357657410237188662724699351075758553148758506068892653011018387189835211172154353512759382643296902223394938045976378558090731716349568750327089865704509163882052480794235222753568708256026031828129257727003799185301263523799010619425957035219797869460379340909076816903937424032942224485649062429240690413555579781762809939784678087508737889272173505415721686106252435312971752870170021713892652686261966868712382220018081998105567112872178866928665140868573073142030260294175800614754339699614454195780173471307453251846650248739186631226591260156602363786266520161741609131567212837043023831858011836035956376114402196341988517773587153802798083923962306959289445028812707711326597922053836475249006386505384673526547127960139270574253357239928439256682119007592076122827272386085621382765349933921722883132892944445541855911852332513183003512791379252076038822932907683177572843476710568432799744762007968785459609023037060154744372426114673976376141025089181934278782304188311556795804541243119210344135149026909550179999604207232260994274936196212594458470157994267384082691680703420037334281735882422048034577619180553844186706109278647544687110904276564909613367896693206186509904811679659860550340492059617415840318373662444987889103504706165000925499423394566216562460486362752367571958462127097101035867837376285945519035694807841844204611642743268607874808440542518712273222200262143479895429528267493240381500981848046570078416191838634925747769264605691767553183675482278920331802726653109312711643679338196228009595413304787068427586157839815966786353122126491074162834036375848986732387826613769035930136232429615603116634579503348069604146809599985141673315641663661063813593337029105580951861002596596933585381337026672093038574257421678642906364254627773712451614250089638653859527580132228918653790607932844115312395719443330597111674626649023894326671796113079458231044119190079783881715223000670094400240063875922694362285108398908252287558339675045354327424126564539480106648018793370264779678643563015419592850256243936980244407004148981012850384761255766532196799894997511651665525680354364260473149980694157671149571790870619144799725227147952932796307353587611207582906805645927075287717611731266294567603663357133534836225749231609088499733950008239080227083401844218602397156226894697590112111641763528196178800201355089860699803555039550769601752355717349136765805036634809891766237472777944388920986795169389361595325081576104264980771878858319166602587545585580207124960203569014360241160676509441751163995525117604635545835455868373332737835385586657651755653238466588986398386295793497986580783912028837322165418055101504518391046892095056442926187130727188975971985224621314295193673784547251284191391728084319502081487214486818091226214195079624858367872512008495905249253663525575397130128252266631931267472711708740168740198182053009569012107994936932404638634100522606283359784777509936197411021609915334124174563222729142898453154604467932463165850820599008444304452923568356130595857276984976510035763738094889043789814971338944112155340478285383410251586273452209298137895801512526795905016883811079779373785231407545364238326775372591139723168587926879041195675255583255894326247463169595932379328077397215234131651023326955510042567134781656878944325901020307612993187061171311147244684738098761661329821589523733673235671671545614175551623880797120001523453111994541783387246086759196531569649459754343526241471737702735162352186908458816943326495436096306903278636782721734337872342122012779145307361528442917645937575452766551173616624937762583412326694703866180109952641614144694368666554121465355725108823132604443020594782957064696420840506639720639317365073513173003880445262259603654848636596942695148372191940537488664822469551380014166175344131094397669630489259497232083175309962614307845299331801650845208032363582644210162743101366129855870542291846918585358000259657093610688867074083687084907612579947164130996388859772806057254383677775945949487903959265587631921103227650583873043998704354154077217081533712281697253470848046067848153033982742535460673613310625536480782351719373197638292319760687931863997393970932923584652592525487847560669587367260250749646865932053476033302670225878939971559384670734638222108716543115987110832363590150691704625433514220561500233993163621226931614164516346722487008908575597842867209087050350595391102855612564991351759644938784685362718801645021502346566085754400621293280842456354780667137045656851925933592247464344496813893964095728803007741566740902382614245016397148992671505880621404736388771776520916125774301134751954522037490896163122104904353465180190009099352151964047145886477356021465122479417805900423518207667965078580026385108261666788485589507491586451266193098383058348262969071317067310717197280807768484805796587544413799294491070474718297280178725901703403330009230392538061041675484669889573135068038686174263992443690005077832346982406924270331223442533816869554568542413174368857672121852339245514519543662928877490400439455946655074084270251388154225801277993624948276125530109575941070155752457017401978850976999525956172086894340915972589634928359294917641877073511887557335239097533861390461174419754910858237894535948817340978863945061700922735583569004058562272378064911621799257526358767717337825450819281108102159023883118495295970302890454635523927760376697180464550093663893952712937566183649877213557432275835211796176974028937456777117102096019708609988891974822781834064514963240191341985954666751863043821782298053647680859641348784882765133590607031616600807385645023674086326510479565555523905693241365906176731915774394061383800816228694214783660581227966013786881036422393449289901558277560476721452887526965184984097572531141269697999683583131116362301667967637406820847352207648198751988229863052801822887374008463358398398351191797700578244819958671237440728854255425882067330386593512348849979702623134280932584612061873144905739334295261855568315864723465082335631116899039298074623730185896175127462011024135025301650473598739129966877316578879331468114620930068822230887206158330968583647938117175872322118804407563604562665101608344367723134148461871266939435580944729922205809540034174771169249485722497611316668715094906013042427878611700218095472391317944418416770245763014022975018319380448844816047770140408137418939545475965527353961460351911339301223133299133292565079896523080905985857406951069192032793347339726614955417056166160815429521787924208501892615890842770899908154102051635179645981575455968806942601800130355785547027159876006807331451816194078367221223851733177317836585699996221593848758839224899291106871277741693137472569565133430063065227379245510562669218808078118325867313696011209077146657944366288330014408158630986317264190633304404450805822811281548891619832293273181879995885127378387293850969905006909581505599686237771294231761972940408139418136027240514820820737951363148433542279393342776536861035254077258399965486187460681108544159937826344218383938448584852903530456971510991250442313825249252954008960027765387386635741563882743141102359953392227466142808950302357630184738996956968785796476148133852746260001728400766103533599700110742958861790934485688238614022120262810098784194778556695767060208297297284932172835947885074785626883541396045205032733900115976899759234882378960037047435094401262181010948157151330500526967347505159579302414192467718837799078970967419856206206033657762606620039347514589512123138896768052158583214858756210049398274337792910008563459608478727443346055618482163033872291055643309346721926478665631468981442003818721109343897389863038172129579092991127430767197772915783767485462892852180820396714378507933637369500772766426675585419995885697258889417188547324570412654538727929383555423041284137013213116316861676495031820781233528078670360575316926111114131927428779044645590745310830304595611994778892976495070646397168145146294531242943635554886863612488265612400644093270462720991938024993538960597443351284906593630428301040581746061232043944596786199437588182107887055290972403150885180446976720704932193264273274749474657352706314008460022706069559676968769935816122080876142890824382822508271626545101507650711225487767831271048985812589031480801153234822354857562501636134324457554897084018525624878558411615590629157064001861938267871916714542297842701318556353007592339174371504225236871430802869738972306594087472615583200288560564305436754730126975992391214093078205163473056839443576608050549539129145864564189519842126675570326140401652646471819168255617805000436626398681263260515677037375763228255723722403373265634399261010727774913476271761697800242024174542196335423683421089982050983996930900966833517291556051800329123750279741383363465570545278348537476157707297860282642316989566162153641506119169118695850763008877398413314433235221610864807537627562795357326192768075059179197538220805055360859214370642558820407949945680532099845216195290348747172915878804337898027199175755284124951645538973669036679774585106049237316474933485138913107670478168931509280056525080740033602625587974658733895886504554910594418711510789894764277239141320085902731348230514711471086256844244305561264573131797594669083041340349698418952641280813039237953542339551451643685832971767270338799660705027538088446666132495208470595623603513288763569283104042351423073689830225761893982210451471164975086495793133102305164007027404187229255253125550507519626309014190428815837860801872268853303342603241887419947430948709809007796896221521278204036387184986911556892852678851436920811198966991991759394422276598585296073161102727719303922875037352767460313649872860148590878010890276964810178419250513768363944327798589783499670751064591608079978149867462129594299294951034556123952851899664838931513416634256253872290420785700310050576672387824994229304331876293310759921633410348818530789457862130438446990225971510953784248396404519561395264994091054193480278333814105054975038632521344166525325783462410543137242051343656100709750264749750601879329897004952635108038488001221708113442311592330182506552329000805329609505296747617827764990338046492756424607844006224775102298409044645760882840084383965375725163309086936595011316680590317606539941304678318604500629809546411793222760643945450974640311900040461013636375665251476339220564085394881156566515641449954699979896155170851923896417350486164401960282283702310531954944557157779195675885975303666098822024968864962402373769741490896227826267171647090545458964342513581072155099312787001810947933780019428811697138455978130343759117449830503972720050883851002048645276691759729131715166904145869909482996397885788471241582151819151311936465926550224699522520658612371086170777529724800962855738111726435043977239915913533372794371214939748639792624792457463092688060161268332810801373076067896388530352476247957729623303632060797531311700321563157739611414172670968457919889678233174980250090409276983988948694658406197088371187171626789505980379928186879083596767443867394110895371969861829767384589543924411217443260728143441568333778396580093324162653119758863863145759699162822606077903337395378068615499543343966625340413723933605837613571366314849602284656753473188333959769406024258503338228269671602514882648376703139366150304655694403590997958808653064775272076181214153941068185531517358800563179789508106998207123263571467145311627582525008062009835302998598765345615877265590577677705235068007347211604498064883912344314969945662968838109923179375961515198326501205987814416179328900586332095639044967327409677561565792169512569575734306501117727944676997548463963676474095197874698574050025666304304969303782864673088907406762172081629100092708410880219803664690320066048982952654419736165080870899913997268065256227964180494645415644876701280058394443003877713557078046564329913218706063220815142750622404635739633230334171292053079551861594221891341743934642698600396304005080020428704157295937353099577166776152516245240929006876484094452448708296372347946634083467678892429045159840508607169534168927276857026100718961752877525160511457579234875828968827250058296434832572501948870491673293274144146938616110082120730148945094220915611353196601506009515300421518796800500925670277461697526917366335884789531048751627925415229157364741848801293707600826420065741850241704070543171728758494534967559692560581068000917355323392465539765805611506266857145888623136877825027075077938929852212898376757339444061238960194625480149686695371667569202794500414657284567068530994311959103987237024927090104353255259805011571212263284707450745903405964385528208729191184983955166804404872154753233912561994593028105975250334168546567651849453998885243277578350372083477741274638187405458639292544711505554322799818208681879698647010465613411868005396513134672323812494414047414596471311007233355202812338522140507238615369316608946059307567586266790750537016110407034090926282674887750285975237510238545267796205530602752777436781940577953384076593719123390416122993896587754050420933165780695965341258929276900210583534723405610651455542932009170745043947019956698366277022470228830426650690455121943837056846708382357301181632285434001843049497985826217684156199179199351241530949158010079374774040392763688826938414993758057175171344755815931032745774187576371187757132246892272242493377771139575584843469314320561935228175997645633844635236679326941663652938292994731554160262278104340459712825822426701976096925423356800253834894656311249517014689940046400911880740870773299643030944043581834084141758018478995026247389569075478192665221993496740541728819110503325279002158545943175734588732769586397741338302654225157488127285818892732849776969110852593856521723918404258258231447031064760464814502022210286533308656374402259588047132186945014436681753853073158920051906575480158234491548443177708176712520461196493945018862567637414537686456006014215126129242464596730642846488510497611191884672049866454759999268017756643379003400568470375447562878249348984087140077023629650417075010454030069683112353172934030263172213170861762029604344548209543486763695249394153847667538095773551214637499080503829564670902052304673985564355823807120013405179535817759266117929746014869213202630600393179956484944444731611937253694206234756374504782675939732127033728057813431266211173872224928063336398345193036803892593096889952092520352785719809923805762361228496065232769709707647903913942314021333686903948086876847433080122688699462034708237163097247047250281060331416470144741205421382403081283471910093086202697490915360722527512865977495195070144683595703426614602530281533848272776449790077688980744583010805807625802826525398467121849904439425891880218806297599563142816384851120947134995242272909662562131057200278602521302716524357302013219950531711204193338562432181159685353143642809886601095854368526010852934463784118853718262721650745414154290924125763428168346424803581833399866073577309409498606570661584407016735064684551083448304103407143306886135064816123133500844233624141744252203847162068581577800344074422408997737952507722722425221632527079828648342393603199360077015781454854997327914957152420477718325986255747117217600047591868613465766800747913882388825260595036961456375550948364552494331849375795834470825651120297713054890598588936049041984366155680280639101693150794123984426141463145272074906342167466656220820733874054410275552773264257266626032543414164518064646201359107463690481409139488173491501909058878658865756080546331911539579519922691510175261135535365480449153805235243092095683913392366418602184865740565313865858918038882901004954410539504281908521709568970985222660491497703442563415201133543595601620804833457056785828475182886943264572847094155070663900420218474284148150729321142555253848768239840596403694675585587065077805288811843705437076685394020436679087947275769976742717439082411422515170231955326014929205324852331644303361410581348081211878445401680049841863719537750791225098168839594398437434905009276907430497219732166826907868189429886554326039347996027915286663167424520499357683219759829614090609600277500754116118234136595195436476826597435387250343355756076030942645937176844352565845618941330436265854933396448813667814189940353781251863618098614310938046860842389417657170919837530273529460531821774849806764100727806893539487785620807660764628864349757813849167549694801333616458553592342187444390487282202327482790004380974372224090556657982792540792018271917640731568687889908698234433324298461713480779415792607894378693787932181927623832088562198256262053706157053365099866604373352780043029785385825777258208143493068950997469028421232148054362521441099265845132086983569503793412192787701548376684625884851480353282100576225953123843954998455977183661774696948771337360294902432014008936954352464284670390628296129253331756090545801524153362697046334156094771470387833114080455327202669851691655054580885262347227009185683811529132516075575147329831048174511690118544738905002707966281357373328915219473513171507142118196223950640360662507937661011410909757198751950627907671992084156183831262327870536779495872093480853103370037079676981443339865319473005539550361373716903540441227441848250897255434113291414099210105027940607813434527454574891039787039592557677197303266292058500218412430561101471172665885887585811098013622427191783601505630084506126095803511462218689703926560067677522712781150869182409312639832388951433073092080618183670533272221996712213824392494133845030855374291395100606121406401527729920472162474690601996875361612930959443531967021387026224274713425295198346411502152585217190733435287605089694898596618737246471484457540042632111691306610800075901992768527723122943384537537344556192707318420770035251888198510000910588697024636141339463736403629167648502431395922261089143124584310802491853376636547379542810198006394675491656738822093720679550224539749527936043218760416737125294186890416787560507158191846283974995177618984701201417284922531659976424913961553463045596737003669827139244746172240537756388452506057383117220633099522461382751543842624841830545461614239767958075757928929553582315837910599881000136355835802538193049608748484062324421301967312857279756963808915891141510626829367132533904432204439351225627134258357193758075555470995280586509274891485606150149058672218630181453955271543377441157484301460454210472371065909374589455601850747065551250496207976349526296285857419106119868433743595990276751351242842162787382704073617901822642116190565452355982134650098443468474989342551941906125685394712155093835778399733985359799208044091401401301969205884816241657792074385061659298842954287592676532576461278658136538693023064324951487229156834194893397732577238311018607285992138274399553167071797786946310241209656299251563690707097976574622302248111836993379540037289040035528138387916696451463050174466783026773391565848513133733221345559120169428199446355869119901046702572488630391431318926902723427880765595671435508100852332873676188833143306258402854461381790916491511389868861020424410969493039946188156434692259238227154237325561865763731911138393508298447375787630908881906697487503462616077362010561476491958588895261757302986600028449208833098693563896669357365831543219805114630291803035328239125122651457960451129136204814160742634836890487253477414604979289686654718043110963702069366180038156492646017632282354675257725100634810833246049639745818948562507159279851400688234565876643286169649944702876172786074016278793760031340305365372001633610673119735402165742745526613772464146797016342322109483927352053992161846684431657805148578748738995611735615742292710799789378304117463423317231236870629887993956379693234381409307730316673855875833658948792192292991702925321953131063137516995648955562792077326334439956069913401234556618660027238644091295776817456745562042696966397914924854631761555583478849112031329808109382020016670821426195383939135194943324558741577258369481163492140484733546704852527626699095914448570908316042386634335523479952419332174312708264275715015373811447046489614779234323918836597604173276069183964760678663226749291933231611318776739191327131564491305693705855153395058229226297936692800988901273744011072991307584839194837251638752515268120935615506896612815652785043774385673706596865712904074504021396786409805016287163242664226733761382152956236522040211884309169244962016703983772402290077519119901733887256549451670248842314466733016979564931389538586123981116683082572022333724698573778725176730167468852701156427758200593935709812258690125889277275347751245969545250389826116680212877573805636856315644421994581874028106568017531855645652955822886169552862742002819640306143910590032153797953969302185194232688079468527914072587719484690411764169152274721106824390965834936817407243912567260141392055375044387785097186906128308954214450904545348523815226121360913632796256187136414316494221393554422060053382734515307986723066880135629301316501765553770471630091506247921237391937057541387260377844094217302591125049238615493819007039732269827084459330938371631480611283411794863130846199594307896849641116870843379334405700795264780255324299882702122395890715726215449188311989117964922556872579518737643726521041961886235970807637082519160197482234482099443332365004015103308033450987342082127921412004204801805010797985617232164735044013698114855410588119726087395394254908628737839037468098832081722147968307431302693815436368453784576155752019947911774123367085935717692095928402888000062917208716273797741535129580502970994424191380762872308506357855702200290134327092777298737515761662474840473928515508631642153028208352650155756311959083682307340304392715181050027526500337086894984288132356849650072493988474010569473433805637338402382436072538873309111373884076450003773447847091001864804554117110025614054087836992886952741392619379085138522929789581062839805904499241387273763985719482912844834765974014041432598188502453910670591768324622694839736115718148985287706502379213217892695361163793044646771025399165684431444320202981168593661665925520655979568482691676299777340317373780308748208117848767254586837334246334524199414107801536921241598778339974669973954295186818200906496976103678215280989529876069957103569096028371008599789898946334872095708021792336657487071467773673609724639922157532194023698804256015000075840411757319574984167403330352603948097378856539028866590990135840319648037329389860459420398689661622275489436550760002345814107089615093946926452773942351146940111277191491369254378585394835272648575521602087204812491691018527179951837560732844266771847679540711162180153539879182477498161858356464522803086323997713849928359209270555307866515564527689591621869203470156455573402876692638413257703601605964596904032255123102029559970989164180907129145748986244302977071138941462836484848715767856779487814312512432935502476872684689469338789309686193721724524216873927185950326411718319813570892707560107929918514562750286621924369798417811414045403196091642478439214390278338683726417115549439630419405888067523818774291085517880020788117679147787731136388027728566969401182727554750200093592740494837691964174174743764309935882811490241585671721186545181954032744630850849001867213652717887423627513368543825843572609765763398593536487906202036888810270158500580830280052905250059204099540095599338281560551578080569277503764059324228538216945892473083726933480345155440890818030000971359031387603695064629525581193233191042017397696851107854510205884117474295667426408627622606677216076333832609244311716326610442814595860625069986860747754290412444646328607846279208041631617188773654072051469312121432516923429453543324728241729604332479029063540574426435510165761886887575528924905830732266885794063610726347131451280390967940936849793368148757132986978132119247305994960140277818648319506098399949029248482264519690766949366809185292465402548007721990891772919609315660548678027148447837660439060031471464522967233738210187250391731552458699554238861364979298934057309118689822968756922198783526788848165620121799323557181193394789972941131625038237716074760122507890913913600736981616449615507711562475184867186427418752220983699262511079458767442710260549101837714149395384601730899334493604769733019287791380270313507073210981882099042177479582446759902008357116817844883047873914753449351938140117520881370598439846549557055010189474633178513544780605002453222898695956109812744537200340506843316195198363031817037478986266327072440653794392777506117384377391003701560450854244171829462232309874159926137923103063979751962906214954936751493482955342557326734057366254563878208772478017012519108061380763294191048376862061550399017105775493794371981498602274574327687358665472119372473648368884738636955047230458616875778992624179919242888086846632765621548945377584642693660170549041069679139658565047231426979266889208569296287842331651540087970794840446062660205914207157264149118427257725445185179225229922899892552417931329556162933387610416084919966631744230877940588735083947873072830991697739834979436847746344801579069104208387495354926175917185412293597518990089222621721914459306788619760356221881278063881322456355560680694152552978974969052102555871166688039462531658155902647017179900039902483340191847418611177914250879578322003743133899943887879017493217832857091362259345239879921194135829648604238718240674170986228121901857333681568570323594309199084131003274241630856070401839676454219756598215258342288679649061753328803833759251880213557889351191633363591256530761963446885955556790319313426753383306631643406076972503374612045657857542749445605773180947349044636421152998533043536983846609846137669343084617000549083610123916548740215520180743832046374678390499993518567810792289725874690367749579133853503513360755073213256002919103155131072831771162507725515312573049623272208602252146484022028427985932928366887990771408192398837850356220529453361568028203753139540331764315894056325311235868239472892104281477709045295704912875935241205135868760328451425827346944885456431933445606103927719582129219413108746666766592457491385391579446355239886906767996953556594034008392663094891563705155183329394000503226417088488994601744966590766868472286681018342347335807481678608256992636145794143415773796972761953625148160475046445713935285259217578395278564412027696318595151992537064738543750734841980458523109952456640263945256711483053596867831113800408161923406923403260989704104568037934836010544929206927313239109289489416122528772541725880715769800290232769299265396722223125954237897818796172973692312698629041329406930477926903407960859369695530828706334988535898063170379065510234555035981104722630784324378875026808665286661970123584310754871934469961351102465382307632638598946857435306560582753001735912983069515639541943378121211180440701536153143845798731666720361840466592291400072861570470923183888837125901137751101546728156831261731358454449555693404016062515912214452026304007316786242123473984156636061570022957579512596067890949180714872199201151338603342012490334326901903152471111177053767490379250704771080007807243797219997486780512705438658097738366084557141592231311250769943850574957208447061617646428970167342485313072653113141132969224499732589869379336205382310430468811672702967817935315147925262277150873178413472011750829199181400243851651872933219223671393302183937180182843192346206861224877124816144643726238466722738716927043432266762821335957208657592529933570469301671377062937231618402812814665403393929976479945083556352931340448149974608215731436782770602090362000236561479481796166953389820330364315197605893882403131045864624539039457563768870592794191446351316565638530341380551160738301152349650160262898331175266540895142764548739436429000310464975634186467063383937026404327199934445017653621194183980914054354312046611071022949147957282230048881509892880052029822219560313715553191807236758087351573949415863863465924264929827124687428737887107211779609342852822185075176120316328786505095678597846969439706685743639441733419056383504407294386217526100606739944657144525650821851108112347349770923533060731560343833666812802897283552949783468612079306536662298488684458973023686950573180717092710488020936988600525942346855824214663237148360334708879050834675141631859978731821377113609337967922671304808400635712740447619016990212805036249551464937562857255534722015529162736004842071745078807950761845913606957788248618747949602794821468325536369648055794751958042265961817575455372575780063850078828942880154045147286645076936364292616561464092376099194423025307177606647646097489013007128320670095834441486795964288442656533480626985008900143585979343204954700739790197624021831864502251873557681953846695713070062888292637561603278764215965593125292492422161329574504065382201672623986186616485814342988831519203159057960073366305926447801768242805793775192549911613874081655519618008061914487729485116625699772451508213714632819036518087733473753221390179569455469855894609950994481976623160582738973924308531049444078708472699064031783593529046138482240608140130673921194035926589229119690168304343622797153048445980731590371353990852305554135850303305994263075300844749731213292281390041493729257315810390367157343929813723660967707037239975647113138365036061040548871609861903961849936105390323056035908952716521688244120760002937772054200549345059959328476579144513894804179203585085252993874450064907705032042624603929134791860529641815140735430834587703620162613635647536716676059747800859031429361333792933191750084855096043897181104098877520049212223706955858124962571331447606650693367882768887310324454243982890773510726773326678439323322019262193656446632205485521963628598869821245905948414538983552431719342491299006181463959235638285940616902975647631126229146674653662658235758329722166170996892121526322495409725300927609096890929815398547781047546039704805640970194386112437832161330172173520169538667789380518472999961133017530953639202007972943843344271324196298010719595118940802076078542247534707659726795708604373801337156148493023257101981328749438961494854878373297094278163362544363330826939905579688104948920375875078545376405053657575719555719402413921082687609088769052263686540301870822701883547584723999228940340790795136796379635072634422455419128095770590315877255589220778969111186865369280723830240389236271049807288831287553507175113342480969287697201586675189142171434255763904895946985807500609279810043909249452408176625095274172741560161454315945185221718557495526847527727167389139029014720235059895496157417316989042855399440283027838377623650108590936919201540276948681440882683921593425318596862968867707355681783603419705184191167919396618337297000193822980150272483083508010971773091110587089489467230542892715118246415440910664532953239354505193052789909317281149964927253060347021598719613456500206310713361365178616544164970357368209762583749438630392248773435717559667110116693127919204620889828753887107153631368815546679590155314546236533727710941929274840416913145419700177540191661941927952326018882537303377523360121961711612555388978356176708377387852607563134205865681970192980420505034509501358373027020583244706964639692236906385933110811220139677100067477245536145173982465787334364145518521246858040728801878105976487177630797893325464580093215613548419484217791755933093578596719469919505619129316799344119459729424346000102857975899404969436566619097579329566805424670138374499909488656972175297862499944403863256488733167600407677690717691102171332461667136933577677517966874823798119741641389329665109832191318891230612883213061753473064594326312369021942487650442656800640372373565200124319482373191116415861199401623456107055588036662603162216687847134896499772571443635703187500753298600633308289970512791458197779206078069420505494926820444046342562971575340949274355797251601572079797266070199691870098612224188969224783312230698835193026800133351582348097469113783697448676320781546648812639240828418651602491495497986442720986605182035717645689499356020430710489295815865063951917305638559382217514301314348075986693326504874799038056468350956561639841602315510479659885931684745229784532711563022567963824580570873833598486159426999235303174720562022037261527089760668460260887447119518675285250056178297288871967524660489541310791051300257310392626908884742371565183099163546737457239943835000925165391918101842370641827844631996490552888569939325282656262824286907604695912293388882636789052588962979926004365835129285916601681627115850385950992004502382880525787160799914857795117410714587892789285944554229757489266391490606122559018467424204898306960326099241605373198039930958031845874187561196551694103025884274613267715286041675625997166890091974462057078876061938247144306820078699951582186915234809462059947336728416187438018376244684311462271997183540419908572126700675220557081779080207642238770083023145963243769724843022813747480149945967829765245111164756284494882391126580223207233939672487353483796834709037217278071821993045796170874846683226075483119464636316295504614289181870344025516066109960439682279760085105109039362910919942119388266551364311045937739823375470223489709893823833496062224144588181571744869858007680176809831354488908073098010459829884067101286138185559779131126585794627976344020932540464256523214487854998370452126786486295967723599386702875890628269927949214888088902597529717747890672029936712367876345198659570801187477179864845108982519553391404526404027575286220156098390974367883923433686902937949023880629769925569202312504277051089435097832023702609078772210288838691730652029707426870592354303768898474913311508457272408927276852932025683038229026985498309266427981696215482643789646128368380420732092446348106248237628678481958108547337889172165033709317162300827835446095355000157087325853718296069755081704358349922043478239737270858232696362370176097674845003041090604011687748131236415722492541367350659699997435146831130004790437633894683811507504479836224977568918706331215982573656934306098101058107512832028464444446692258358776454107654245446160237778278842301432414837607752722866645863176868757284362034638726464703378104558038408699001847001329490672016291067320866560152720035703770087723639337084619152832048823114035058253541286718497691898740183701119711247408166154018970145776023023745038112311099710264661414041857261089563696058312446625103344217698695531230691835330056188518487114675653747128425378375360270025404781526769638680028149067082684714366270449383420886829795605591530914319592305379389709091235016831752315693892208172366779477179713627192414555888808601903804074946015109518157321992631630815367277863953398265037693509319621749307103605468274638519238401085893804821537960570375541363419453179102144027724400228595051052507885300563625487962039630514167505389028154839893826056184605969254309230501184482024440573533399486462324698616427152552041418394545883390645070021120281626903764372367863270923848083570492855665422565700417166434679427056693169465903559002500981102046159970692226960430393134150112385202084330783492768521280232291152519737913751743284056717195786548200968348394935498706334104510911558023997896555372867167199806356218822908985971359456599565839007199084113529007032127984868173787637691975015965034762104926792800297988281614426247045499318735873796114461220750417737680384233088995124892738217191170599517713453429945729725215214038343046073402932129297183599023367167551902048367988934857854281307409171121274913518896650388059503648866001930517747973772006038594794431466501041077192351722447258169876135731553947360636102260817195494774873346575307697623829299706659381130355666982838308327669547610966886531811220411325508888982062797980648030112172279233418196079841299972072008841839387221139034724731085153277483669837824867965448539605467332451782821837371290684884322609750319063553017941264823895351147387863995054860224600033576913603183825695223930439416276778650226367159054260821794162606278653413781787284203815659300744636406739896675492687649395718490313212113656202390261522984062873095648128169303501869685037131095472329376747222478572964170819858940521696598105253378892335031987258494889372864076832966453384003413973368465664299812962074532556516610754825373816739692277169563653668258137853929592804863934624068004561289736777656499264445275561622239943174891109978681413003408786160964068909193446601068578173996496691929407151979770619673556327808303748676242818953299379935017437703304126784639410742390004075198605918156465947758609699994125596896228698815789024265778977792045289457268597880151203918786449716049993622264612495868772143477181778272154033157908743833318094502935381915728145418326821124819723259721432234940262895469574762101080787425847657147801608833404962554650632414744423711596789923705898277665685897719457925992692904083389327233247930254203274120827944369363547913979579720396366395782104958416314403965424093860475283325924343500781306594917949907703881670567144856475901470819362884606343870830873013999253725298366891041033135943943477132545251112552111092798727785951382708916366590952074170927525129902620455410308034810322700046208199313497741033969935705200813490694208037872203790464382890249902401221380463397980242182106839346850884930167918289662130425493338799654874386109320851491053327587732269026724129296625673645906875591489631205017424394526389397902442323703264903596852578213780965150454498931866068559097566323944226182229519656421572541809032099804496613813953120985347967114699342694938245149667475159852900475180527661226007197757224967081515058039143461824012521809293563442697690775936654520908202506027804671493363267787205816815970250481840076454284365495003371942335655317061100284423030042053052952933086763760286456546110382753741547484910093128725956442056976109993020881040353186694892623960995356572233574757431587861845904831966429563222726105271648198398546337943708365729640939488820397486960694333315145791639720748072343344270697628656850889473094981597190683110612001028675230952011106399785970418819427843873191795483746036719035569303839940154837381862624892618158175467230946628362055651216917470327887284570315345444858522369606979868892249345328209693435676167926010847238262589759905263792325916415032763625594607746274170433254493457444889477216876271827727072947967992940703725682106129508999370246217199889894467876686273457941352264033498177530833993906702966521338034698372728905324760066193925458206592897014152612950727426292279324657917043837162693207536501119601557525946940619181818487377713426834444240529306600573344588869058880393177484511774102397358775282284385958672028239874374352959211556243224389289630027291056872887268161611773035695272316977436959291424844621189894575011690312957425148284517441987133717486576746353974745761595416087815219493803821906317197854636480687724886181039189448975073053855804909207963214830893523184803790906668134527178233532246612521949926765291427590890922621175108174670500059568093135195284008043900757261786657751257452884330535531748414291753374248775094899335437358359554578827060373973912922693703012439656897123773945167318596704193173930742310205394492793725566951434978805545703305908340113045524208837745301823471483685405703839803008349014666157562782972454384494736538947399853428754328227478538137311632469929383670295832152967629316901577016376459707311545568276634901948250420327162355437616062896101031778920813007133134968338654865407252699942438188746548272867272278105469899924363853838917100915927170823049066727659616237816864044108587574547936667543859698670955474999659120236471863025134234286603123083288725426148465049133391408455713489742121332627956375141588593834370232883676361427210910916326438119930711805813705320521818716890340408422833149561397141000910171509937355016250498698021280775524186200458708968444383063445989495551440098765192200443482688701270198303940692242853914434437692525690603785633163635916959756362855116855631624525027754537619629428904366194589680239185158067914386065545763066653855089791671967227739752076358291905766479671803885645388188660350645431683355124532052382832782772109259629794743650827334190694841174771358669416235515154189766502736524377829273750109051093082586789846241868494722187945092867305656472937265721055693249737530172030034298462939903576040553269480197521260030669803843503995362245864967571735364486622960867665022114761971906683670007878619525727724960774953015827040191563034896276315535912935217020929815099957118977712469085446761448508350541333397848261343953149537191502413214925257011457627010326835919788551641036147376475962509762230288111889540471348042461791153854163232840054371084642690950362186833728775644555584451321260709365088896899626104066097271490158259265168477635062365733527671953832978920009067298565323545222748165410194800740749839188230279326391449423695735288995277041099533947552827010819433573369718431950816575181773136178920372220046232022502571019599757952402244477732146208376008348553877306273902091886835251019639767078418503278393034561640141876545693800041666721878598301833249780430668413708789977806097087513122453733179210477653219632269292062444118602403823939582693848769438647992158275076780160750653635601924781632884895067393170475081966462719511896879259504855981422537353491882022522322545270640311004505864934019626832439967502709419772579999621126315498180662935407155836102749719065184274065659372545125747421356527406125514208736831953589153401830056437614755600059018875594324899873423544185362988977246414291129851849531060905307036852909517474704662175927821270284427202763242218865003628293273448127781908247371971787331228262452933903310566123136943767215970190562786251023149650838505178495474625792863354846764750561938956048712724763153542713060257324619707305889144995762866108051940160877383993594759687934206306164976101628938474378762708398093652868909362413539742230974044012337734528350622583007681949535057372712472914630242934201182055942858754096729982477433299525328938891028826238500291868606622306007695414534401415437802743546527798112480595010881568865390958105517925178926168594761989018512885485330019719136580509343086513733915671442531069334558535936906805731112135220901489843226163964326307761140249595727575518017958941940131977457342289223309973919624542378153163739920532476645534806101436730683257957605166743647366202346212054883257962067779465896153466662849622512559988373663561545738099423982234139778573181185266945092193334002783956605221904343907952187695286295362583451142883374188013897668334834519923543727595099724884754998534821287541602121420007167425273228186584713024374038012472127577155173543806869321781709846930477213869343623935185177209438091902476791912350163419749830019434925143922732839989527528454309800613975570079141708167825793398258034505303504355997163018455281682926422796379517399826256972139310348886952365033887672353459179213883115787976624404445856862661187618660778544234578255621751391515121750699702826712148235376167533902997247943869400984398033723926082575914971225249699909162516822418830277064831538112236871275612260858402325217728238991975461696687100468066683951394054683014706632437280971730852617500405405846357996438713060250466532450985137113504784066696740812062280849524708273677848967506686806656952046159359064032782602281023655208379777490999881339305724930668665438786938362894312535175161385304765696084834268921637953176445418916273051752216789720804110223722838862096566304326937505381260580743571556442520301536065982737244631942002726368400072903913523216097806820898002503971154135638074184333838437755945688993432757328763589953934333013215225900120838600512520109318668826735672604998799535122658646076878454488418338341366254221969714632518921172825009741219838894379964774246111828756492740080109580681071631909055544066376841992483030382445386120476391807877747840955329367731266650623046349154209455030131869928385870404977694987623086816011982250603784077829331371486931955769041248096002894285901471563003599521187511349609284646438827763668164442908723542365626241849131109707115881107599568488241862765942931155326435533657810786249366068097352567283282438804714953365163044632204199356237763659235469498248612224043693305064454708669838194561327173167062872112922330882782287685661129367040431097366815821566525309531927357606575536633813081141261504182742591979158468609756617111553592650472452890139797307483656845667637660750300080388682744809256019525018228778677511683518513900923990735105970327066961915407328728911684660750520909200607145646383935659156554266871106258607999663404577588827698230347449917712787416589237797961170443306654990881949703719928121853092042455010101872809707443290433948270288632007292968230071606130096726729562697918386254192392746603900071210997349610532335584725675941583353650389695788836122277161020990818078499423562309210965202007496819097023368204647962109385232105587621508865676768483543211634698215738765508378320373381431990074202634978428101168489575401021897545070983266542762146933390803990467531115202415024832005665615806359792361819323007628827294668878379078853974048969533931470031131324493093227705326130028850543429077890063403191002285599374199590545341982948388657641910838216642991461141910541040721718375771550615135153927714008775520012284097818725816627089312739645464772598088949046387444120338340398470547482648434216601506040978703871976045332968159456039741792770386611691754030605604275947492737317580608753112966079880717230218830918163103554699678999676814113223840584872150451109777541309273348085613994313891956459179137461296122743264902894505828696018397663266768184863672978442961082457532735323785581012799169576075366163284457154796775700222592039479012456471885952733235380132049867071615509158782889567274613439615495902481052675789916395615629228002473414729092945654241442384279751348945730605833955546620662702100141027670794584352116489088168624369796568234197708223331301580282187684116710285191137349625550441565003220132187807208363215672758328941194293009420176277343107493222163016969037110211968178145961129850803567824717557225952337646404023992449941171332270648140922089039340677416590793358224796176127195757906232160753334804425925247216637653281249173787913554545318283886538707564763973408162444498793361431231856965340138644220930574391287276338158138712550673712242883009985818632101563534940227831056311703310767124990400513200129348970272130995215492391507859042140268931300460986561523614052530392725431314097867037236715981350870414441556847409342428580682669188705870133146463205081915056248476004435207080754087821149494621150927923356416767368335016422842786529339283279284533215152892040943012000817086185841075044157621681026060833568283697384319713651082936212468002579767991155399907648403804992817180375653459518384595099340093392603110508797537641335490529395708765991342899729770181614294760801328372843715905906287968664004706149178465951433808979790174722888221305314151452675047969517343623347261533030009304974265653945794747407885636678194708758120346048621221197326839850319839880675123556072123142248397682069335797025454114267856882868576218146166824675502952377526614089492621794102342151635411775702690729443076957090896064414965881671742121668318114963709144779139340867791720363604718337590738200996909450123084402978243198983074299124747509659505402432113462983344156393868466638451130417168804680082835017990969544557428581327744030140033636837871236116275322391852009315108695478540406038514296753370514492285816823175467578599332489704331947481163136568762244209211961639847807493990632550658610472649946278570911848293076400523023957169404530229774843375344969347910427880464975509168928481102733559380944046934895784831966191619156876786647442091767696146015961430071187637115981843570948763419739913808562861781819516833566051319780945322585426552516534052564189836041918098775647547009333545646386374588183707193089927774747776519400712100160212924290428843775188556969379841374619594878664049528851797029944034170922571269836434779234200044508972401956427768435740004691806885788296382555685769552433481059235369632377665412136136594165896489360126908303912189079669346387826994625689894323842694790019544917649079925967283332015020405505639582288322986542152012739038571255115833894601478826796130705936844627140731766358507487735153608785471059945081573750376872175758668974763714204508585934755203715928941449038455518882477822488860567681794844885054248271176560204127562510816987302947899169290417780732082029453912387288505780471150279434067819720679870667734689917596857017096422149884386213172333014036484090622963366139731205126785480197514010687614978678223829515530144775438800942091958111908455931728419128447542459302404344156046849603652232207039181979547390237479288943062875587989550434633272922942658198189938496433903901748591900745498519432437746889715163506178404476581726383698089797509331606867090273629067967365282770315463201164237555377992984746403323273985355161097777810752126229689498605135171656024102871037724129408278075558919925350758497154770214909146833655432231086547487771386228875760810079271785897902598759188635196306045666633363192174079445303345927730124049043232891698863107254908590395013066665927301170260376629810683291888015400774006822293021385957645423568417243649753033910342475954667977697080027375943580064715248683506681994620785001781035428128258352865340395212327966035363240822318089825447710520475037042522647972286991591452243000708332000742959773227257950376529937676872026591893146678879839618766508408972120716214708050532965530683823375864780997017362177525182662259448897555479107900294328073777695412037888193857533624535557555386215137215790485645195524782723839043922555586085459837832420422489960586622158423688887828188750328772057840977870899101239796223592813041542814620670946907294304427637357079519463824063853539753893251455320403986581318766650671801285529209290281388464944991314896215110965735382736711051946125607048321120628812596874969053325465166098551532847050207218448979151303859961827075525350830941788153307371333348324728777479051810609940065062184695791416090258633376537026950336325159012400610772655185040857437205040286964190345060154341482587482135948966805169716220412921890901365194266163349101517770935418782341159443425730184584604796749773411239673674607693758490635429993974545300717430914967401452185883758079084100939528251239939418878000980008529832501179715524696629805239359426053342566834841710659646899602406759318187300760771656964600274918478453928375977395610105436229722833079671242759581913381790783409621408277302609459830241168133924254021024790829584271922720912310498777743600822820404793982383576317324431719483156971330010828525340178091758465229417473591973493722187334865037756637694545173480584127419296480623788474696003236329645607187500856199400629019636181432769610791010248477449948177473036975189922813557693575014468454703817964356041927482029664114842647553884616092843173667326095117141455146642087759372116066400571318718319403782493035660264211455546550963815617175988326306606354150291012138175740705460347589437776573433474433136145706954995855206815968719207955264670235032289325886926552115837404571767926978698309365844160521753983979691416469213052887124734821526840486335441603666716454520572878920653903968965700988330392782283124639883225936818488973007620295019139221746963919008129822447578103017840712413711813334742069153806373196342037227001353128231561282092730787333606573188224330352677536168514401284814216046927928006261490423726475295528980672386898011246352617089223609419514298318505493877642205598397842354960683843080444630918738982811032326174942490245929687054290959893277188672788181490220518594249649786437220191508458725241513773308659016343738990369096183941846604804764128577485733960243288848561594816539130995078432615276124274373041981321913109713823323536521962565656841321009977934658671253098091631236945456552408670990257957373786907357079576233304152045776015138834558474196237479266731639431708110461614928063588389189301292776504366428922229524865961964742501563936513045554221841369811550560226456922426884427092190824913879746046884262153522223215969529720460035628448018051430923514649064831558147073373909909403306351628476364524307039902289069103226906335776036486055194090278268031593780882659283867885892833398144312107432421057444077972553048758075438271808973816058294605104830293838632112044063237985310181200968004784013121041931723115880198941289995094490518235202855017478454727620598636970700962150536736780071040186618081413859627807691530330859735979222742977968064432368930843822216161344502909244442413428682045989239144100586494855598206028492271624778702699558974228142701436725836202019104692411143248113656782388531661678230591013029577237394942182206285322925329662810562789429374661505175320710232540395606954202499821431539771325543297586855252724801325259204962363918642824022950565291717349820738772748645347449926663833468080472843102113780927195036693983708889807928735328153398474260645007408084432945021048660235279258531331296531322453687733089541670661483631106827794190105286544385525475882138943087838755469743892676454966213807228842572393450520834542156644577393590327231975817176591609149922300536477728381273341666225338414722426299424119246224009785447297982912784403926399816969824983199881028202402018949606067126365661007469397089206468940335704923809270107051053509385611794273021697988253541628015272720389796835160423690238188359887210402920190710560875100167903711110517939171375466236838325414471785938653029705646262609481596059731112820725571828111332460761042177477596454839111797136188734748786825398458668974921061770350321736670657082169855598660531527270236429296210603327629512934921752142974883617498973053872979523177137651695656076009410257209652641367228047189019484536577305232471845768564345313341809126025754013903941163886109277630735614771042982037148558809988280770118207688604358180555697428951349392085027036099852913656672420004093406815626648000477503692670100671875654983026784039497790284984080411286490427373187873235749233515777926654640587552701973317415255343693433358781774394766769865341090342418288560046824427173558919562996250797908273745606776538490242262424341394441051476683286260981169869629957329189480313093836578772030544063568880873921733643168563019749588240778565646911005844850632217485602786987082544923435009462428781142479255709287588160371333704989444793554135786176777425930035019948788189354645706998980238842859434023529395735903638779955485801844435598231690842488353550065678400248622885397790591902101008326643914042378583471415392112521196644127196798500140377737816113954694556263934396372291698397034431618022638018535077274790383583877603813757838647012136315206550285043820926854716048049446724877051115295639919846196607048019909225438759193604899417764243237878245127509762457528554900919496634300563250421582478503943865657347030265069800272249653816227554125812383002246685055927019280952766320805532391360748859854952576989950792761407664345764642909718181527040843411686487519529152425069868697209121972727641663998948035293815572061036528542998042279339909846309262878679188844745822818384915413790257576173055737219098917335808706095211813913922837017330476881808509917109050444013024907362722374529981247942216588118589638088129678928602717350247906136422666697096556330601017905052265542575044259197988430962928103065781734716370568213331695467538525704127557040755862586832496666639996077175071424542434763807349935092557265250192876408649276184971730458976251487164885915989512553752282229553578092755157717734942544940646365328643887343342175307027972107888439357840805194777569825417393212928035281904328304226608115277615033728093222216146272802255172759402589140495678040276685368356006483751211956556037929089017497056882892495376800055117044514709040276477095266126178911643527084947663336330375047626681813493831684698386036717861807570903840999441668188850885715673375085945238160582885059497191411577351946916382663291000936319693762626563399714388590830624050022106856248393754516645389779526455014543848991742196831219314013729951184100975097941992374688409542501321236476707532895687164905935102896844431703315138814848447542911565514954932398604734701430994530959296573299640696179056571891557139592252223779966163349292409269002121723513543080937580132161231377545123487290335614609148164275810499520023608713598549648012759693337261148782204827141654286109728738531498106973275369685591326889312465886397377860527964731457744387037551291438363101480880102554975018505634383742326494288403807981432555780016392499296908528458983639132925179370625401502266817359646575985941633224415157573672662192304256955666018622138261908801925812037238815460077600385904490388617664212001571276624408763052928397860029377083531090043918658812000874319507410289980656593798887012309731006970179557992604473869636116078651598376486501679432859334319628128655516084529190591426779204939904118967887787866743039299757616764655468134247356325818313412266269003748336985031872001174603213572511554875102276922014334441704147593650389209545499769900214280493035695458920060089088122898084805497614642398124170653574543043763040631682499554358976779787290679404769481126790951355743782017524164675346132975800098129577909972707119039363809449713956296258726823835894718541656384732924275869509842767377721923321752765396866061772823715965708211303558103638151827913256944611930915881335319427340665428840741599708194924029183884976257483153393752546673650828439655401138966301676390463017835475369478652393655479832094346814763378984065784724561420759944989774128751744945814534657383789979602559586269280739502699277569907760849202215589743467392637791753036664387053071485251947022095708928286369504935855848932090955868667023345755431925451442518128800784991514185003301380182835829191679510151350632589157356879487674191838233061591376859223498332250831999552784862550590848674550469516024205215252356676382666432062440113462461848355382319190307897904891564928816756949512976060226185159575090914427722463313568357223509941125528091622824240694113223256899532000390302021969682173861309879698007213116386203903272971919955577059189465177709310867334359701908675463750777494181642136624587122836257130969042522142409274144442862946764111157333902606899283995914207344591821012987893827130475037383316679578727390062834881721234327931679007801792778205762794247419639511777509457395274438958633533473679660705505270121425442994790804913464473573810923689307860356623664611507441594192307991226358053752635962493588388549945357860888234906479016662455720947882310387009991721086516270017412776478931430636070317268396116681796735997405243721801206234819404677351511011501357530393553613503983876540463630317292404004439345422288665043755952167963855990474148107366357622269326643306422466225136196475599479394475167428303938849538786086663136566087608674016868254243859509309839009508247414611518279715147925387823632311603910159790837053267613356530501089255973694782566935222898154208014466204855019765323210218161662195303465718412880165026448317775303785757210757216727037351922240314148705332812556025237909652855171060447447911806731970710020686033490952336928994351734601699910718450704909528695777413179412053056639315825980800945415945684740167337619934446441859524845857806791846718267214579330271628648423325497020868147406915857052483014262513491301317931897383824525493171754034351063059441518585179933228918463985687661286780829821411290668500392562077476960056653243485162514854282704856142333971063396132693140524821184022802087649328246007079295186711877074641645736456342222618471812428438354882660565417559049879536936295956649725411837193356979846993998266970823283120991093412559948081987322038686457497615007315013080359405040673405601232570978746962918829946496700955322993288831623762277023446084161786295841810033059517722906006608958130305831313955885880482762259625175518394264980631200451271810019222194970576697488445965926929976916207972664234143396980960850145452991168678452787722580150857428597643180504071622549465121526895079761409835692430941746765451817195667472044498428603269680371841082593827335584974386855805135952284552875963613860275898194531001707608944273324746872429589116478218853620984582946830304075110083054667661213169494465638662336973149053630487890788328740420726733833969258348281353332462611966397276729576987444036547136001659167477142386181991645306272289815577356622922661089717797715008346279464409360584315732063783476195170000165810602100928784044356820652019452702856826432217607135816017522219734672233277802743989435971155978038127627806526046703857508556025560810516667781838263691621120275954763575092735610337565179769946577949596114491162131167916004607234256813482210917470416102540842483992404235096219691263681209164349037926693492225463510174034101546543752831620706105390821226693539714144670163871339195724562013513920405091861473232182936195189123645492088239049722488287914257299133977822247818652101339141437160107780810007161296620936804672633770301940591847858596557308893645078579360008786286866338079763689028078061985701002322447725140393303221195720569671864238802321863347761125994354864992447475166117836031669526375416043600635663238710592793579217568711999822811110891424646101546553565962127042099944031975873515343983331956098941730938654745465140999389397693553922458643035887623157615625861587462872818781337112351345878837855804216977643985259927890499624290653889621582122218978878116258382965907363248496977987612007130681883372519003703774034872250429734960993476607284864000163199296066954370714271183192140992442394695825665420541914512045536142364884148160260537748661498641102837595162909996220912329819216783392396425613907277536570773639372511982297369678692468915137165264869759651344357671228268583753144012628041840462286935889735824637378784844748164121073381675877592282230791549822108047959043483193387634330733994992519424337213632119153658108725527549390349701179531056527436888894408547466647272707809098080469973094052028161295824460656291655076968023561451397859995356144918568579496089902281540993189622735210747582448567245261951004826725615270172300934394302906880530192645535304297709997828918871272977567312250801215690898921046206103032654195355883084346331184232432667935024698940574739104932355738728624978680751440498738143435118385255825859650848619765348305165577465354849251847062358463611289612310634756134878291962080802902154188956716954705784126360651280509700448653394569212676107464890218260151360021764042075934304251549604712165606382690726688106032814204741220088866734941517997246444314878523028195667730092434525278035472371332498112111447527196051728526390932400074100850410135349534043775070868269290958964505677769755051816997654774249074987137689708054222310307369986214421344497048083338862903619246209941700659527552349945608408883527711995125641178874877554269069537890166583717050597606881779084911618570218746070392004112101273866342584584512364593848810490498891712468573926962218064811341034779991028533450433635293559946999107974838607309383222418565543650497649458385709575475892418107954937764316896260734364589130152744656521145786141557709921049334371327654855020781975775613019026316273124397224267414660169404353621126647620668955718147149979122203905936045317129530955540122855108112121026572969756546972317828275358932526338331110696576581556117359486795475942419029558201244575090753733704603536226154971039544311293340778323908570180904613579628848552716340269965063129190994269695966225589497975628721287757198542419673475301587463470733050737845796145354542520644230878240841408078462796736873887889585204470927908101071211987798727835924233933557556193713249979593876098414779898213818265034322401306385745448854935897070486251427872429652100656649787070156838838645399590365080171114364104266278696724141998326547334111284879330934395808667890754340702026793784774345535265665129290134337234628978010782011552218872393731201609370970406863255367709261919003989418841145926153701166686589563673150522163304107798488677211494160046621106586052485041079547948381425140499636824970739689414424666717487367463168517045635775424231051505809864764641739106287459904737924888107274308142629524890931985495762898324171908961998384100181546644378082375332840225441604148959931908730084724728557488183769758189534793908801984580628942112361133354632540040466535717316673238652078450308016619577080902713241189165462019807089554609187238543726113874966299766658252314714818800323795003806670118598942195994821840489226045885487688802337594014215791542952871235682271939416595000624391183593426781640483541623849679242080877099637573387339727138570051017216390102814006199640295555510920514823727888939586225063582005762355860460670033354514888308803206990796123184492379733390033115058829483802068767102409164859588883944324656344667574633584953224141651880328254882089918241029406831822065117122105635810950805267608243003755064833828150365835077439401630802437480979848295664872770213417005589113966218009352304353954888255902667090006571188533595233013070087619042828655767907621690733940856070615889361930134878025952499670315914362442199778519830043798444145486551659082820414113937673181040877195965789360890060092985718784824543162180245386116837858586234510782849182169145864330972476771131495903082734618524789221595763617619415803413031319184160775944101215743941774531300010795056442252510930673752322368854324279121353055759262100311221186203829750275381784254173117337551711968165240928436766301402843312361032923452318918370223034445497414188639739865083728606861694362513165598064294041596095582815279474489407960067040156066354233056608882241092462255818735880428279346966420627411245975215220276131826209673609273703418630680429620948015190112156463233546199496049740834443545314211500672682516687795066725418216964868333082337244585492412921673190981802291517170276395390765960845015945874597607378223637182049117249030372172847521476818938282858524186640140709140991778837139569216170769790100601923052662978421951009921840123220629140060482178194901561947902646631312875029083244483715546624849403861524853532736635483810240007269503753672481333156495813195298329582489456994701540983863588375105274450387542374163505345484390591298010160337024065091419654406408930992874563503612249158486023751328733731306177764383349114167974279563535826432656509343897438769712540489099543976103094470122301704959677916134546024092072149464971044874803825509647557923378408501570469654092609937529297506575632445478640178182086899760355012046052898752372284096564154010430487466276071995929003518139082264656278006917499381889757550412455262811876953735750525012728015922292778267737194613719216516400180711103260665465764572568399041112655103269898477620049452573207633661187946685468075655577881616833650598047997528938859344621827274827697573534811670385110008812060026845121931613498729227973543514525162066264467550435130099588759986591144348733027605783273860610819603256783353625213985372146327137143733668525942897840927984778786647466449578835896680820451477672719070312628807710771780875944659287949105828127513178451193902192043621739992710417481747355300551496807137461376682610245822978890268640706208716918408059066840210711797550731636097123210429979833192165994641187673904738358239727102066913868675822234076837140251287860243360137545695612101211186685695275760983876242013180600973001510948770418647501460347190956001644591325816011088700342409510860065966824661861370034045403056501560321089611195643279401133232062441296852718973390029304387526826413252372811818734183772668317079822366819849255173111404842922636004972983664647174703203589251119031455263782036974827376444746579634703436277452109556074920999706859663108318811970526754076084185209907452641268309014347673429855065555504958367106871903849244388501716241895924159706438955179197612480105118326621083951809191931686471500762285491546332100294923138434804057097770139827445193483922197130608237016546337256801393503481012122660511497687829462858623206434741211262663352782157747324524831241354286604414019190563714456193361673409966378271496009780576875416953445440599479396181489149477288393444938623785445710715026668290496140379849969979904177314534985205251546802967974626481966870228616423121477629241242965831276366150132159956875563032138349578504195023669392820440838149111506865684280960304485296973825380024172676987094580558823876675088046999123811364649817803232713886275399981430647461240477541717786963338613965617885964831756351902365389428609879813243105964107502022049060393598709159547794213809864179132509391514302291823591945291150294344931341236215198182158312032029486003940276690126632207066257065165460052747522401019923873469029975061163166192818509767792260931005135445649361164596566028491128455262247857268747061159462603273049260387319098427270223022793637175671192685836471857815155133520340200942557325702413567497929832606616892374772379092315644836993982219062239598351292774874049218848651486180067646836474766349043546852270441815032947346688059802599704514719086726975420909271463724793987242908001465960306126644166022286040507213318150829460988850709805662279815499892792431405323990348617380802149334102633155051103722338875148162043988162961449937118414730654397256358037320605374193767157215516252026287912434751769566274504051833871608859843704646720497692571862630681746111178965071273389413431264004219002284268846322192496026992853768096158931948902304258339012860852902135855253522872936927725731124839805870962208930684664626363416474317898670004740615668576378571075842749474296485796676254876979594106944926811657656925791063739128091743329342766008234744512264681724479134541128328974457551465078695658990528246653499093871511116967951536432826151198278986688971093101695910417845024882873523192384486242263629734975768439282263112020004713218720170178371097575668553713938247585338118980568055245617589253290124104460613862625297201449551884592486107615753201952379210693182246551772858642266047786938398442151913918849477120401248032226146171138594797565685911745747244418275564366755031861737105312840615915488212497193717302126743920082041117549854683639841356774608838167338674171004703304512237269963296753350355683742559327885052848439709953415176590329384028506921996426091089906842903712845293454949079349840370395015943656344631399512982458133353138964830395468537774238675823879959507312791666339121357622930082381374995088042414367706341186794579020222525197702359954488429230463287549234967220873007422618532623944158468650826153186560577857699729253351807440463828973043612131248741664955773205830319852649228400338212296198294000357218896092227607689217373213756128171401278947680860184617347613358304779955557011084658991846526471602906243268230972137919999502600200767792842812801021890465503686449406851637469474009796705228717466533465347668328529930583917529192568422946133303350299266147490355309970592944301756633438343223044154343703476466404927395026581091264882415178063849558473212925984863914337804053563760280606861278168889215248356454361916584590511206537019448479242546205587901558333354325586591018391532755634325304791374070246658885855173264155785108271162140919115020187616175817025131170079441408634863148319055296155411318677747603095539999860807938437497622730370371697491622920021830001353391812999182960402359294816224037573499647898156526226824692246618226600334656315544406919091944613359229476476175309840144569649498541787417212313607795570046231575740701647612827340963897976977401987616019415760152910910925312276183834786795185241937060797916559070575151805129542831018535917318636529202913084205780739267574115631345641060048148590659777277558923397304760176118610946668393831705136767659806086454653275384417193324821035003461438700642574999821742521821218920424698345969460171454108096717354784790289649005709369565850736027996266961684643111823719819499540175555079372487801969337650451347412370232785817170527287540676808677865733191918065414650702346930410760260438076498398418776243353883813581831396332297830451927354200012443477014391410202805835137615248683465400922414855558907372029219460949678309380472522542715397156446139320717562051057479473825563034044998409055189312252581517064469135994549410789766052839379950219126026120477205145883687727742039393492746617423169661272448881420286391420227812419353329742169450946795452067395697738280628009153419557209296208702178162359573153985804940599130964597843674616880332762471313321871636394671809366747344033575552621977254844202499963393174861668116858002416101935718158763913937159153107634250433840677491100623988859795461135553975583965305392425113385151972957150725671949315914454388674809412700929742577221170197678077755411531464441588881354640461003436754633954381365737941755202298370463378124045276311595878742915414204162066248912616238500777039286348472623334350644174622655488896432896084716921233108446333350533714717333033190172115307748181597531874032065206546663038340247240443641929585156620772019573193519488591629815330055105279952540010923346567985970645405142910657105043026284793759359388054120084681207165725958968277943629931119229046287498933815161612418075418388765972717000319388966533656527359657047298370555651002680279238516795033652066530917843546800532221181178456832436800443266590254628594599103854757965209123438950325105958302845145019453098923277198489280787845546749643627564616966261836486662036715578498138398682528761956385736085204193320257641086585308207834609373542674417458791798165097760674803423587943788166111998959566679446483821547715844522357513096308613259832304456646819209725029344903578658988884052055288786406593898270941098662152737161752449269126472228562674431790670660513250331457206783440463795142601733349592062646181273287377940013015357157366237612685283211039112016619481155877955040394086512236041949757935718979740811556373467207427424157737740444109123848555845196736483504888683099313898234421248549562023391981900603548985180440671358033140872413265815580856335529235650556243406221738635871005910916669020110600851921062061521729889870836133794588258419892972813593784638640814620973215748876458545452905648569347625409289910669192256024642545291001498200945147538869058507821574990164238325826612333030842360171331330197402643659281051697460061129741349954361141507789015523161636275821160734521938551112723008960033993710873634008474458582811692917284014715929271271973822535539639876459247383693261128037429940138758081761750693604738088259160765499660285494158397942913044178937413498128512994331756758244076734176951024244331173208054198122503155476482578701650865766702309785271213432609608282808472227355161279802179432486389890602925191544808852944924913238575321489641284456505833651534398394353706322369086818474891634082930268567197857966041601215228834098644950300613637984752788790195341774348444672748004363482761808233991610087405112235165967744517830819216702751251435494699668726687370827849191991682025903711477659826068464297168288715196482705657937945663048499534258282710020287457514253134878869888080123918252754748629359202579750028182197510099462917837851103466716091576507689424057643488232454106255171455768523557408154552326601776743209479015645205466875325651052514797632011122660267524833213955089931268326349301368519242840309426023879053232047876793848815781799120758839989511824201625492439937529250292683380891296512472328149902698230237888614435318987992150720017872694765932161051852405076863648912351751671937073774216243588562940623594770431200526606256976250968421781211488829880026616044059222329331624176122908743379022287804561701357723750619521603426862806290537864968871393385712562416964079324475831369885918272999275782949295751304825043666028532371402054964473380738245775558257092700759153582136224878739519806447536509228338732197378945098948812224316665010698739616672989920964420596817569619231839866191793408474257868154615941458938640602296132950038120038389767450208633855782667988106569036999081567827785163782934599361943366980652979221522153666288839940268038621838784138954997920072289371169507757061724002344872898683808889469325821863378234356912074028956871885668709606127386219349873263224096065960699176020054536038165896602143871771287553098370990207133084712303917975574483810050683280951189329272191231654940906640214568359874463216265575739792837308702860612939772368385814919939258415742549146335154820414128505256116414384738621579485025909591694016701922227152051592446384786736844034101976022548505859620374520210340195867216081712701926460704607959928713121074803511882506823353044969812655209567080884541941022535199131368352911597222819779651917510914125749066752719879928439903727410645886716981183509101205683498176773100954846991006642170375101296402795266807926201346490826570837312730887703498538168830180415910735087802789781444525165407708127488473796550331829893602610515170900920110222071001669479948606498841609925577821033292542220238243161693794552445077116612781957202899490592371787630713791620773280519004359506302783720524286071686319756831994495359654617582379331954922183557140638217262170118990624363016468349879943067324897484029900626756368663934498668702957463295592763582274173904767366468327098725400825658274079373013421250157872246935933602320278802133447547116925472442788234788572020478481096682495732594650693818393289944085629329548452346954732470720957681550003136286818305873597665524456292333709800392024465397081980880975167759000829452339338253873797516636684848199061917189230530293275282052288738997779857757464433066738428466834238197778223941515224363898742495170106566785302676664370854624061450751098238265082329219231169465936055216243701274300239492460008464419137134537390881710543297199625921785958368900227535469344199270563544994464648463569211473954542342093035095619125962942760332314028381564195812399216843570592611552186436729390811404988429954013503045826166856151191924704248067778748838713189871896738261924739749089221696564899815767170428901744966620596800868199091956648398712799600060660098336650850131726705066780738105362533240436156109801108476755494877494236585163719465279328497990577018451049091701533568613632443894879659034367590349560021664265581524443928278722717359459483078938720248473420322290052133606846053129294097497598893201349050155466399788069991700873715889175956776894727061811503019647289132576784816190919388459773052888173913796341910139122828818689576669158175066401906642575911857638875482934362992117191271054977385373015577838101884441860657830592410452724319669227643946881902302936603689392914352790067834549205228896117886051875408310491808917759260962571182883270864363467278181627472557148502535750935601944533705704297279316518324369707363874856092728216957075593521798282931763040398854389505725017946553411966438406118328171225805809313865366901632341550423553948803977100712507041056787741620258599084007176820989414486746229922762892025508580816217315083897553884053494279190567344876604830970791086659225293101759747853825571471946452962908784519565174095947894396337685688784133633407353907274376637220528022445916053457375406618371695805242171800321860228583753225978883501880423178875689402319751974374446133525974578974005546624424324975934404953762682364015057347269539801101002565825131195753891584938212512967996772536212764607639106722691844111059166671823174812066194772280535025793861898710732931143196219558359007573254549265440534485876237997048696398212906230465260237154569746398218504024061606472122473862853691454227582815893032578671920038152313070301231450016203835585597084636288728568661829588038151412597924271222800658072175375995609753028168132431908826758112139786458977991567077123341300614050720737874775422713347772318791387780604116028338928073229462986109438994804268776309041382820082493276437844569466685596913509728092965602968378424831906376648975894022974765233737070759029573229676410744477902854220571083318641606283483284039376713381480941530810038363462098674092314162577259260164241310768383853609677439389645388121987184708783576028465758500662643013183563775983439423256319567388921786474251153914648306105617618522661484986211735299300394196267978351154324719792100999023599501018504522633621366295417587904115529116300595092988709372051119953209519197611911117856568563145823742527336348744262178943734255594438827210995525834404807815336301231817250476112098586213911950381276857684222706022880857922802278992701354502689828981286708469480858690773687310488241352092533779928151782807224730432956057066223456189965692940799043010318005588385154956003710153628833932963083886118375725134429296237436256902862399081808966747840721541648215364669852511183560937695388382477926820540355622931033982346172177499287611431071126186981767165101021328174843226860492899962137442648917874708005217789914597936832576908254470499557365460738332954455037605455616938462993526955598254814369522745135159635012844381657623878219028344778419434849167543322089886572510721638012574559205006261383235333100174635632696788299795223122133592295598777147842562152819660095824803979607418806864814622218467350238464996209482900237216747151301761618348664856900958044527129241361077448550164540165882100946953185167094965320283685563439427552586762309399026264688025210023483988108103139591567221675210364031168276980204470846827510216007652912859618123289239199898376154654015288476402389564008009111707771686632584715188865213418100963097892468142777674442490984819462072099118606178378827256060277489202507756549609224153721848981913999493043561686936215964291771095256950970699006323100610856485554482317681694918920335382593839797795520178060026150453846602234805842806680800540972724248870988991814030172108374085197168446555068686682595762131761853474144377640981168974620203712113186150318053481637099280510057939395818396053815727990531735646204725646756465733752324960442866627542283341194771011586148225132905747233696454593507786302813970350269335586720254206532019113645684278522271130499308474015508320553450220711151829250378245841515954238572909205590931555270937157304365071391970662707208366050653592578075387996624278296260271908636785842034261794272927838720742270392586478996988852017285437329638914179856495498712313174210781117458478347148101130220066918811713906332237746391442787135013391013614654758235473132163877978594229259092873266039806170514510518935261384635649007582348632915202586551031103413814049101573516178860757643964618834101756544414874774396958712593182068392921811680883559712722653711952674639135472889090102527777429906681680053198706232475569631647941994318772899895890737174479138221069168303144302108832718736937223637159824851127773765854395220664987630276981234613453697621047397548443980664968551500182428724139629300207842390407701717530874006211038869812751613311076710422656095342065627964803091959171222256860508660697491958719528511720186301457223111255958058030059590451780162091560033927158135619396152450582940942383067522310487602756833193139537061594056900825467163407688518738062028393764941416952247897644827415924393890738587033683110647482959165636319407597879773893685682536565679811940555829468907562097486397051586280616049553801992987901072698852640686948961003323272842034061884542128979432188689707273827362778501372701149638708846640786079426555525554856648253672623885530195700899094418141196819278225214743673023757726479063021362700929435193537520244824650445028177473530313055878404289052956536166955757460304468400201302583472857878603479642966228563383909385040595996338205201313459775949549591528249136758265577370863098534310316569918647749352355876985616764025694367949650826595164936185639067761340863449496109230852815957594732446929978437875069577965234066270348934399220039331420221596404753079877248547192899031903311360675387409926265876145829524546296274478253060713708610093256561091062901593703234578465109425415658486336759717141036824690682136459502259382358689803420521458424156210977125941988605174184609810521802330913491593055323640211801353993827390760960188127085700221614994202352285301197851514825409266951856567653410404445485488177660629153334239355883040977080382629431894438507702390408475017104093236868309790449784932389215598500214358700771342871584700693024716766312285302839112029615848332287621873127025440275098869777524186719725803984567834528672337262681942591376892237327986963699571947508280574929908016092963856488757743668130599330030106516567168643311600381784331809476982492426608263925647221085630282122858435912911420360327206018252323794629310925410251245417005166491749697850176586800128632544573787252932671277451624334360127340397859302221599617751736148666793967656332219514934298376790374930825170161852849338344242504183230302641005578188318544289364087403203966008892343871002340926852388496732284456687365704234315669893811311708549805563342411090390294020698788366865009641636917052815658583564774755048831911648430645989966327033980010970627143154871743704811217006209186084162459632196275818916875947150823636892761717485163145845180705435637970723278957450538758447100756455874737245671626075875582631624163830175894812372734658328426433498421199067903327699506187886673063449032827837648590916868065398440393171382569665959236573482235687609504600206957367369539435373448928789454142994492422965419920687071717990820275112322883020637409332430828407680236599622307450723954829132510014623152283856699636464816199306108035011934098551287730815954501549790983261007000843516322091409713166839050930777067825793848915921320992865980751664776274042102287069580316910197690665849294116301449041755241528407985584192045942224722408579545248996614996312956745993178744978341350197476002485583093556978815369731363214452511408292841812804502491992959845617297886498365296717374065350275757846534187078421309805735758509870892321833860276680968786744587673937042506105294559344800003379484411869103438489819927217800456984088256180027740246971556963453537058177132496654317079548795257766421120685694340740736941652110453017077751449502966420150856734185613308793690799085988881954177426188031441417486935293012862868769796349716441242177380019690974862799608946093642530679104174593571283190402983113155059303861120619275400347429960129769845672856800757478682568526558880550446502824723406212267230987650952467955511675760755189736710818664873391355547303871771482599249820906556362463688874428163547597380200927033727972357562058520194887311757364152085688799839625539506720457656370866786849616739928990516639547348064688416321612696232140430043034978793765895525591261273349443137493187558515220350488771542061283232155425010369584201177706058113108574067217688447392412151890674297679952843460462085104229892955901538861717778596259659024537479964480573754259033955717369017939751600199875836990940353460200600611457081297272864924415558859750242749010199752785695834533449432500257802043444408682890750774396173670553837615787863853870009535733359025946681197512373898387266536879554300184150448072052764944570257994686803499492941686747104745236313650471152698278105520599626500224544073428713991949802538333850588539364994173363696431899803695321146317461717020388070866349064786340422458469135590424245140281425972094336803940426469576220351976052537466919686468405748522732221411263468200732680991283596804337124898651248471333865999581557036241284311923713805206985546305223962860016932609247618752321257009959416454501759791304831585226900924405531186581531978459314051354967975019715913056364079678742743886974318121596332024245369509081085401074867453223366948874174475845601897763958449021749345971047703154197947217559031048955150713033750922642894743661501146171128540489836287823217755403355815130890086002311190892831719794615273396398147557956104816547218228209282412622440866173161182953146270119621366199594108793583564320932964189356289507521834160949562866054760820233943903693829441070690737842159371100843550809934951258480556142602794888117357782314109215630977556334356892809062401470430406809674541428500105312911014407193181060055619529375994409816126454374436773978928455823616806573056868188932905552483777388697883384821269003385525577296329485036257241617945606880625056743983435840688586527984713205682033268015840118612253710729945929721983140398249546430136414120937944647846329673080412403157916714681071721546579759508437906546392689441643670202671733332142868727930006752568089594724605400773921436623774703669370647989280683436306662357354918836306740896905345419625492185959482963529914425068124219578493976249362699766843201171783094789764534282159211054419253956738906802587429523470246253627205862445299161425787499201547834925160434238534924384341030380727377077657014743734358079845112149890213877261130749312518484971289917459095003932190625680772393254545546917673500211427825159153713922475215102619575181255589919223775605562518625777871520402423564300801544064737868647177454853375685133039577305055429841027452084882456380181174324411508866694172029225138714052593329218903930234849521783732353344653262693777473250410920550827627013601076268805734928341061501432117912584109328122674911529496919441405798335403820079492052726207312385833278588756477905672110416544166147076128836100062438413053105014008101079875557731522504246358724208134651707819681326647305265266870097539010235484005431910303058505073284856662189230736101609798730109604578786272596971821497774593191217242085520383223097743733627260091079170854159065400695404757694645269352738958908946566093553216942712942611401893368175582123366092880936868361084129593136897668254634161807973379931143491994506197674140383673959104332508378960976546321634429684475047180877538796601159469105846985693463154671519673105401894347253273510123305556649244625308979855259889634444538294144883825709671236053389198293136490349913321228421966087365757136943286363383874965694154477107061380343673939543299455488946044328621170422810297576490108461303625809885204445652889253865618355437466905075794821106981116094362272781719468844223901364355582252243301409371154840113662138841082479809005429724928690877078639433835697580891344855483753767771965895936587515432750294934011636286284193306048171093923998791900884203487294343721494612397017034303370791698316245766050613624590549183588052452030731298424258801870960784918163583376321417765526484660862674494777513116337460985326156771682160131478190445605770892030801852154088126888224610854206843331279758480921954444388966711314446178931474129366512819879025932919456527368734483639889338998436121168068986579756748851654888633769003537529198775769308105735517395144379527270380044704900728573092526263167309907400068490459975878713209353348147998072978030685925274921540325080620629679368029096365711965545474983265755760946724722924089206137105621700979339927932066567094589212083904984604758648011445523278136028145344579543873365991854029550601001878962582320644671450963980891996756614659823701412873664688038594032665222408750886052884106719799914085448700729302201722026030478638071088617263141531392374899477819178104077545255536936054590363781619286394200226696480397586822634537581285355079620606463620227634100156253911994632578678836087025243725262830330102104489432622627532207366765291091628199888719161678669769861721068950090236405929175721859458476306892124704365027536328350650043346183189703050828391535850605251722344229331896294372577616315222687395005813591563799500907045720072609689883738753698242621863149512139883571673563880630056290325475145199661817267782078962727991656377480299102250947244094198014686901886252851004233665906643076501671002367873518980417508647603805560882711984788639116966057125758111614332203162398619539960810644891151299038321892449671151819857985027704469785184162807329531875221707375427807836745060608436887769304983023041436468913983700826939640606945628816416952916654437390847572819696146411957158066368813124848782960051923653816696914413164378212808037745822319142506653727318660158555763100054588191460863415120134066056861830539910928422209722277276664200709987582315907629439129515634967208380989724723042038732783508601474116048285204200743959607793967665745457415734381437629295610953115848209200019968349222746222332034922978797720932593734589318530363220021852332922660432632777386992952544003746065480447629498272404229146560052904598661490530533034118423277471347528763241774686005103519680259504893354161773876502389319108406652138046674665296435771960522892728790582333626717180104787074150978653274415552281550979015314325699141091329952502769916412184798903534173418028880785943704747003746871669807291369878105191348231743199718175697324716934112404219323832375815834075050325121024232721599976225595360817163965955459215200626349383277938717450987669553428787897746644363855170650265044857714758789516639052612618767173875404593877592449369724687022198468051519182603434146351533751735439834658403665007800825133761958111253960595894171880472178746360466850775595608766461497997590725725466930950181226605975633832045120846386446499477556747110488258186245181148216024173113511553376394180161986082932584828502972156412493543549370147221837149093135274651614042298840347258735848047100304971036786199690396640031890270141021874714397393047966712714696745248582196159044358857504747116108355827618601159886799252327767007791348806270678430582303768443224083728557775850821627326777552157538549313918894433113709718797654930990630437083812107972731604146887410442732940307277743637828844239775948723462917328964323648950423030339525477232852922518209786329412792277610699764839644615498030391036874763670074420720134868042097834465670780850085124892609127081572378968179538971471665316354179274132493745551049067708830538291046609861801335492736471578823175170229529255747672943807184323528278938787305850717216987840870936084891275829673184503523300910082450089460001683728969855347815677089860663702437991818712713748359424429636432094727572711041804433460130510702217782472919884095444291559247296793147664168646799094563770460369988700796128573467050871763579926726419077586482979580150961497179864393231187059023097451683435712523358744257165025130783843967812489541028789968672155583518182197672923726750882719132592890457053921699623157341359810162606343841974111595598712194855707915404099126084315344947293618259714666352094030430179436126307970778095387707949828645366676326353342206894534303062697485729601880846564902097499552566734013380282307886298068187052054125204011999043042891991240154630648960755234800192945487528805570650554523548791789559874402509130074164191809399729468221035701898118676721549044950284462599683767825168872707929533499355139851172380491169556661244188049351821195423145457932954973290115497632797004257252928851676055670695788818916668926496278266068428178885513568220105986486442689731040420642038862021415931334335650607977648372861174785410131819538820963263739781867501567020103516138276223554990781670817625800632651909072309731132612645394806127461576397469729038199157580630745875385173348334686076088964622701214040165795597908155136431792697143278116000395092953053015664053854401446819567416891439500506012989953252062425640256999735405633568511706263129378820965576305578326756161629221703945185899593927795463337352050168898464364888207314613992856015764619060882700521838829449052835018564065043364175350139349857051006350044232775532805166325015553600168558606321618016788228898592777398070823443012187649829882195076487937452732497757164679437682597865380777090931582686989321856754102218113706628915050719169240557175153729798546795477169440460872858340200716825587850350258068980279430946184672580186255717699914366692567766247888256367102390508929757982489522270941846744341466441191197624863088675226917379560846434163676355883085129548653711250744903732288271992572715199660002166693895605038279519066233710710296452611253548201808162340593161238338327872154509090544271980320064422532360012498934484363675937191423227785159626576845253075848553735830841651524777849983556099679145290553712899338041735803322331380434826019161910280534759866238541512038956061132700556496689281316755512979967633665355404709079398886689530685781017330266056885368956021180772162258921919924311730489252249712553122821175882252826509235822912252041383700828638795994087533142292025537883192590178881759789430772711316048915678508678373881223628875585526611865733674460226117363328802255620686149584672266053779357525558360934098916382963659980073078450013699458821205197427166295188936366178872451938798839149850746367011614623559091808914648782476983237759787096345593154570680055282070629464310763848171836412428448832224163453064177764928060031678970019137344145995290818130082735712024454178146061237267144018753822527453515155242450079079753687991871156710284530318732656311281918735814205042307746297225403696352335748306562048561086409342738331833463432735127159264239390049127973028883783463744236046441965815843840531910829032323939150063705253777010659429219076639318081087876557596907078407317323973235506344135855674600292812281944826263869185813672160413954633187907256169308154099694376002147684823666895958338644584339139734195773954458947379964993965019731801875821543881858049244015386570718876787890605894343970572439680676623307775021542477708237790441269041207606617175145832906568124019088806520592144597223687602261730245554637405620748081399377467009412522215327344884170636815244358256118696626136383402928664497006603799675017937631676391806943767843386214908962356182010564061401237788509883566708473114371688891394268479485387646650984117195433702892158483507258601976515246041543560676274641178103795805511058527509424472965571294588954450204682256720106209862067718216674868855967781333673048941388830396566121918933058714047784551328767280301432209927052902106177139212773759052612468035783233612231672451314301832827898769529904655069884850334348398335992274164810683359631797050404801716357581169611089887526505039455450818904578203339888055273361740589066076256788760234489965581821950713067982798437470147130567036780400279088826260968751798433062161683649757733948961813441882416886502289967808162797562569227498087402088768810359436929920395726561305068128838761441195918624002236445248003947999424405825317268246513520948959665872693663488401509928375984646475342403056155906510544916912421860787811768003899307609069048350672795121403003404594882920845356727163295012007112146837654494140706925962143328567874574683801853930454624313698559873264207073373620952682533002246595654211021883163555532210223258354198699266649135319296318782349014915870014774992191089465012801726186584241199577478446380888179235896723654961582275353549969841302939493205679621375776989665420961561839357548510610187366314026732506199565814384095884354592710427524744855320153629002887902736371511709761157510447444857500232585814856078898512835095561221244135323878162333181656119292576209991851687924286242308017058600765585346450992122213862919320062916671040534441325309940503148420160032899923191032840172480360326411739587737364393158054756344611667442195905341694665636800499746089176326163936997268005671191900811164600029600999062976664950801085080051586703858197181305523173246301735287693034978985330460761267069151980521041879216938619991131368284102584387483086310227556652408281412368889519506244729375224036690315921818643234026919293237688715177080767495238989921492457417629918580433486296060893631106258100141380630601231494362793068733268768771474454961182419660371730117322672115488941447158076434636447645759070334085887937938855117519467423534045394122524064570712144659046656734809242615388417502636499676403979640395064536033058467106591608694936427670638418752507639689615603173119292686338323867446335181133083074391303543372279071410307952822716588411034443485788218090802820829554428122003801952660218635952461056660631495761270251582303335224947078904661050788518613260070870531252100924188140333110980343254472187535643394322040465954026928504488556461425105265479584721663057299456357882715607728021482175044787001124779365707056730989211387219305929058086497839863194346632579224283402027520796201076674604694071705609535133339937607492713011765060222240784478082149383963988120054778938005665780359904311487101637277035214494728448065980210246296286374329333750053421098402485860977159460346265070892757684803201836190549885228928095376821315150435582517203728601695960958764251395013822098404961222624228173404340280893997262257739330366102986819922133775791637356034537807550181325596156935501032832994238499747515243381001151950121317805013879646562849154332489194337183269470192681676759606159187889763652603208651265852264245241199590189818788450828769443767663184922384879924137400767229406807310528039535402366035209984205504305921203882755655930480839116597306245017725252787907988546850842585551738383833851994344288915912253644118669644171242400135887960721910613494230833029789663443088271107467000523629974326102318027142266222618750572543969077381474263522155244832400804375696699071029472640517803015161891026800926358769818418013034526647105519950731606432675504048745317728164797498493168163518881132546149964031831401208499997545056544056651148358387174381071044446819957363462868930027137176430696041478322732756789030508095769143478308670354016162028184911441232008439992821318184843322881342551248886686544852708423042840098831385549010037940264844762363637536465110550081029406609915248147926317308774406420709539199916755639316762475890832242707294829544328151229529031647506098107151709493216616813022200848999073351928484090014332369886937917599779238728056448586363560471696443660204452597048682215144197815912322747578772163986575276098408998893737775089374040658456115404534488982635679449628642247071613265874995955834400802449400525647531127582945824555238339938861602167095409039509622984369753605794438167782815663517171901560867850102297106693787721490988919368454386725973007974938110342945358118921302910485720499673562211673336635007643262740588295448615756961432047896330591725250029655954680487653626281549757676580277875590236787348162504245315702741835390649972371430862395364283337985258809365635808787587211416735820002378585791714654161211202603427255738422155180158746305776779395293678912532977700508226250081937416451141684737365725226777890874579968237345277327360629946429241699671550862292806080316787715019020416166302049350758837769066186746162964701677056344183089676266188744032970517788145243401251222679410412177617218288850815972164208384793333982956699403495937907282033978008796049701378070294014570618322752960348530283719222610059395644991241509277875461366823146128946998167258824711898544761466413597472404001167264640338329990401502635271218579913818751838215422530479921538890284616537929472363796333479312708466427227370435410768537912131903433119245063452076733343809168129039267109298757177148028222733070858590225913929052589740024375710216995532657613335185187663860276199700398052393052742893370901691023675207451770169640472375386382876543190430290357981930446828632045430189142160750516996685123364451883139431581404652068503559767528406209686484001463298802638325495627213258275734485355830002225513318596228864977249448196664152819040702879710950567775583836470750892928012992146550898465270072696571688974013243287957198217231190281099092249421069115194270447735875202660217787299739380432917832163467212887284336979031693485924557721759863321692291013129964934565694568312672848095842925093551561535868203373672201361285171957991790678887948977874155795078582804005198795143793102409735137542445229106658730078654625141882080807307192689839135049253775437442026570165148549039037849153357835239195091842294100795817946261304621688184412174680622072287104625149387649178333892585359415439913580058590242985408557250448942910311306684106105252152943640589428225619515090298853496701185208964643320418793215333668475009093794745862440500944197952593058084705730441714228077856570371279475809345629087704798834697169323551696059155129039465464919469769565801044772122115297178854242063014493599903647048816869639454598739566495684468008279740648593976288861542063449595204778764796022224814045187112205762128289512096424262439769107779187598915091696748849690140417814624882189920472153978970100410044519163746354849377767240489630561760857490190664199208564988244166592591364114979721105709200483463562191125920531594952077285728535022771786911343170950747417740461125977105440663928887571839332360002445026038759995174213594979764940400041440939868093193286423323138073107260523470222699550297533641333336376838307699122239114777055859977842874256964525973045897989161844009118754738104698043805595170062963032943375011243769165920722953015125432139405443377891627819140621551682088473634534197999887951611726102841063233698534566227140898250206912867044411690258204796576506806083389354490862114387382565994643497880323272175829269451699863126735875109548455878463140759717201962433708521996779288308204170836282188671042940242600584400437735875331070418881422192092460714913350296369058466448832031947410173461128786735179422094145466041853403015518155623214316574733266610798980310906817008268873210193645956178585173450547285898007872872115417256740244197902884322531541019214013509123867111032321373145940511561470672128959326381967580376907231303216158247304070138858933463663359767715470701977324954881451714956158891597270403164434951218597470414671715097311329473848085021070730048952123748421540389981859513224901441857291935709437524159215545692963115014493847033948930762435538342354395078579177058758873286872636137723131795763188119174939973645829559955961684714478441518985430774145594300916272777064006784526222188606338106724847269024402642674133907219353005842440622594642539483685654784505343490529674305897486495643892935250696872825573073886534797956973796373941631251221135723661242014026468319875234913753259196515806193872666193916051049359265271321692209622463969924533949416814876975945022756931601737297825225932113922797264469907870797211292701007289316414132897554051129860713004542449721998255923017335593991966625886284890280161029774147281472179960743046863683943583762096637059217800358151699129476731548326243472252980038009595875555451363524852923366036661334521578492026850615194920345290214617851420324233104228486352089687974218454003873494172832011762737822647963978467771365873511193020707222560037507494078103946338951998454416631432297316080844049828135430303833631635314540529914831642560125106820856569001603029729165846789183221058699489100407801076924778257280672186586644935759237706601999726065952554332733642503894798336601431993073084809345161508804807646366675290866716936206249287398148879904365333871639691167273697027312653742840860973486972932552788541993019041684282321395857966024873754065439260849531863413469468678923583360680339445576185648701132596427755820263192568099715894489345407354516693238449214991185549338282445770766882305254697961282244041599668923715929509392373211954789450740806774448900380624434575224611555723894226838593051527754976545431808349023872919846748693162608871792151248292476158935141491415890423510507353496796948749186334430479362520365105567215698882395203498052301531223852125132616644947370461248186099014395654637271017556216112211047224792650608818792187856456477020191870817409827426388517851782319529341904819315715640400178260080474641545364258579688221314712021950687073703931215333223942964710143388176399181150742155542260482199024500820520315515880310767656881219857503845120447360279692388489439850407766939191917803851311790463726457872800566499501595762530276734247490355778730320694669762067937109531408787466090719090054787150227573861562284031199979360148174018140726855934642470818651372676127973427764124089407024122505759128332044876750838248233549006224319625729282648056600967750928532573038883418242504410194438374908292890770441518151343279012631862709344102805833319718393808451124787757790528799614248096853758097666763701569484348743174757489914638891633504338362739885110295590997268995590471511291794555912698359429306738574304869898985594432619896425343492171171761949868813811537360119252837634812218777109439259322057370956269816464526459305254130817680476849179967094590975627099457464166873129985177713155886207655433151026302360849223532018400246442694982220093885619814174235294211012044888786517620477231007235577371175696454026773786987829323848846586854824307251322459971819517637820651677017349639072911973231521104508388963690034363456497713884180568029841405323097836878788733235745843716778596231931182129965442642274603311656218995807385709140748170907770720601258255372559881825540001709679090974133855179150503462413627962943375279803921216124494228573480554092996174221867552670663871540197164959258041982845727233943587273849129806250522990823041441796420186323933597564085626472114098710275684232847105442047692737227958693432551623728706130624894831768300595031627353927222155596037191260927056320900168844642239974599076283603861451560114679086719522744225341537356304363680765820929448168157562440758354209445041481836940072478719937160807471437048052724122720576200148265567384258527615204225756167756634489083551590403475597055278114985130250874121655616058542729230289933165473549907915612178664717813433928249941590501409236320169840868059967723646311800323091723144906596018394433573246799472136366714309332268725922769959786634219848604764038331215159824633481575389136213747050626776094939156543444966503071575601905256149343412398650086334976877258201426160358764218865753091740518241749178412153032223830041880663938545588917876200687881404876692760597626388508418767172390688215137534469074205279687593862965749865441776294251870300911496135284438920514500715511087309466495949907089979305234012957349386688178592724423081521590660649960755027237608127238705851213727455288861773544544959385158956877519518026877985648252026624094448618828672705420747504353679984584680211816124511917916408388220977886418275681058507677565728648482836037024932871581980604355587998037575747633172000054495984987251668856570630335287606809308159018141059372137856078810315129253175041105096097516542537103085517485489928079279216508267024775246374998378504723411487224038878779685621658918415735659396870303193507502981382895299683035730430607120754662998058479510773229041914306816287029509007188141342145828415611632764589797794318524467033357220151830080677300984342814598555943657389719903262861007167469115090265946427923755624937423512174450803121349987410210504026254115763114123064033738402302484473936132777143177832648722787200003132437991158454107320083254717655335778841973881119878308116128253343500137910973264580456753562692848345510253175697613783144368252477854306937063143255096407622494270969727621061679816307458647731362102916913190193505391736338772095930772880211384952253085233564200914758211321508141634559373276638164620996415041814279261478485611225096974418073994012186495761708774298539083941990118885877336373113130171013577790334756204439526260767797656853850415178002862202601739831535789490454442716570559649205222318835447428311193469603711941218609396474369683521630084113092122137612361931555091187753464456042937379215166896202425471680377818274638590796820735640934299433427179208028875221125433179011414911600479638960331877220471455192593058948693350499223357652070639336657861080859200577595735770605634693457603884910805066955160938106943662128758827331613228648314314717672115704619235614650037740538721762741113660178235855845173100298207789993646817768759805771969044293265641492888950616174327395453482331666399791748498402747835405359120022260943990531207076601966727432146673132505991961537491912061092648781953777906142535189223466139609531960625261784257158699243782660916171746497163472047738961314867194294824902919894191675830888923397311741555417268094753310273779799709817565045054736022767862106975404505926143883778151617925379010606402291673802696257343430464530042110425276623030552072475739306792726393713188722880126958554904248663228307022774015552803422055731726091592927513287204433777236381546602242627227955242640479069128534664743956703901536664482511862340278040253780886661135356644106913769723882365405370572032648513307118001886217776805979532180654367532102225042800043994061851812889536140733723950663115170700057138631530213293685538018489869696302851089301202179506470724877503209994836756871724700290558145698405144674694507188717376368028734735561968531753075661201569305703443098761497230689528664441564074834588089865256616643797202895868442203921819431715127564111776147563714059368640001035880263891259692381706227637167628748062838160227594105114626922888091294330277664959472497384473093376327460037108435907859976671800558687028730183229667292566511959261005941581003650892906260399978910764693101952271744645199443616999155564156412151087143820808868075229785081480228623413531843920566639711524608904813184451923149291063281540279224893782282515457682716245961176395668864617423953715865744626643996155478905163732521825783332535644589892905951926058659798671344827447826266678984191962736059352022149668157043655690416708257527445881757281160956148185722436954647505083028443075317077923557132934876117839081302910599183552262237468671157570593774909379757938195247331632266235982695699804734334402616879654751304293461624266134607473252695703114881469691642933690719481545481790829291072069429731875971973101542619933564615328361822870151559033107061465304217006688253379701323449506071416835268609881312272205409030946646066185857999914153978144847741564082258903540644906463510615433719400401386160350714559736014278623451486573479621797846757021898995133336443819291905300857739950452349349571896846127113768895759793323495332089538145398467702851241091399996240942861535615495201564188996212593005126442096865972528994184350366818804807529105972336008365482357019198685509260350048765737882951629237418327132367686584946400059670950677834536100367442594918858195595926902512393110725951212115633824158960673748007183246877841307809693824148291518956042755017542065174420881340145436070713556026763499597575960041036160961213773621820223563980101455924936015689714897933365854991863497304103495007905509710373294892197640588699532018966493350820431004885230594298486801785556564538971529638687139823938927886283130538898704416338748532366550562543023828613176831474399344615609310765384947584648931621515835889893391956732944334790390909645002015254529742236093348737748570906018648070516991257559332518203044120573389116924949793744441817210180048695274815824860757712217241382985252976703526885042133034637032059011127692708423122473740399034467618957001025917858966147045611886905543180001357411454538480916238456019398214576980154036744730933242141647275552190877396917417373506414595184607851240181377454588376298517906609425179969503658723513291154069411855800405756107804357919105154389529301786070568857811721742139155095320721197089841522154253164791930461604981176009994043413190991189215513651226115501813110735194067489641860940284869283055022119924343866309661229983761658981274730669004071331315325819303202814967455702892711980502308342949072461054910957995507893660263469846566281880554901043878989574409314152964143377690260506436409832682176336287098826272397430230055063851675289226483750950886137219833353460698489068556859024446788863364396043781823649316075069795253661777044807862852104682093268266828972207159109800819778019264952538304724636079589391737003693289663580220506598028533870299680922286754271291338699940266335773608637540472021149927333995596386713941415995063555038162271317992876143298924595866321022805072720176632829028139513624639259879408411977424214784974887928534813292261758042969536056849641633358836124647760471766303398537726717373232324351929797334237646067007259056978477822590102247186184955108700414015527634922430585064979174699941224701667003101044327626530993015284206842468595235910530969681058431185510376080853681033317095349081348831311722359377438741462183926501715609032794028189935612694496396714332078290473191666678085182551977172880062773545399159278903401078628896366115708075792637125157532125643458797675822798605621785390463443878260224769831644730911677313769865439441397481344800381829810375495058853983542914632275329122606239178293199621398691881771111842441962771878992305735044724577538311943385179322128576603521216877901140477658976778435696351365329151493096380391047545011699675878027999795538955855005904553329793563702640770333481120559679109660880465445819911756967335381794020297742084467140554762538001665796195719912620080781668202885915862485723615599401625547770791411160067640782608077107894734372899115676130685073224963159123163419758846276472881920236762716375194766953325420490891610249164837334965917270800147115271012908902961211040472462065622820963283626670888972846484919450548524147558133923773626921276628090107039603299462627250947141176912142913353975130151431774671685840290596862221708011103666071463020620642207396736740275444511153186803573711970612632143552346855544382456532551949622309244222627616181076353271218486711038748633241670789046885223329211115019790098723766740155479167534474858911628126868673604222994356076826978331735176394113756818731185310939147331613471464295748025886612098433336264478923277992171893811049025750898332957523113851163841181019244991329300877847253627365880167927323911956677377346029231167147252754387732395409644074174493088103356901689944732650629356812407468591689254650921109142316433966434965355399905226030471148711750195108603621437887928407449825270332425169177953432393380537534154286334492005727579681918742184272188588466626602813391591226508703295562974312100608476462382406120209740885851097134502445345626967484521749379519983660135959959804421055339305799463541215659260373954548130709002681616473580753090700579469859512185766928204335931333658021043935801610790827942664487820352801574984777718753666388687146928492233597970201859216375263706470723923280711774975523653624170626315463270059026630402473980453353020409393130497397130791718151488632385160351409187151727259632060397751818987737942983354896214929883065168797261732334295186029197912354209146617618580812065785097554051812624547853587142349872282450762802185554164393735572873413177079533182641069580231812678272926217247904786733132302602879014764854335809993244372349188499585994862583067600012204733634466868003021774428308956732120657310909298521268530829353520331626096123871927047491031694115164838847479745677123433557442981268446143275337106037702381158730688628896939413236300606050428996520045106037486769613649172511721417104539723698376574825092862531991761037960505070047452751987069243830797208133651074580862533987045295036577394794375194325536600142105564641482243606164677079171658511765610859235634609485497644779621165511318700969902914073151483903908991815918578332650277953957841825197056152467518107456330457082959442889150666715929760412803354745155100439949339911357400368108214520100371663337695212133753239590644515065233379074750428578159695275696181784704238178420315992417112157281753138255289908317222708031933401849974624661506864137178679359480593272851964335736880274143158690076520872345466373639831869120209656207541348874115504351794570520219208662862157046501295951312793744072467620419226655674453334447296817148735449387338480166542826423783384831756543833361744087321879219971430971939075615289979919334816845664869894315760143802862633533136185723793167236606367549438005252967139974035099407121933737585712045559496028444564046130603362226362162934122457615116541938791684813280962469524445695462125087911893539832219637899949870575517487718861051045258709120015502718111214008330339459997728658704523419166730406855700471728611726335884968271071745003538903363106665809112216112279535205973563154238786279221174002792992766027230910087889644867197751064485285423676068067832870271602149122089073835986791677907984654684765443288633275459268997647136118219193637197094309189760958933074195091535789981594562681740310911862136112387032663287459251238017221859237596420397178011973301354548630311562876453973330103535199368908917165821184472025394047093178330601239641672709312163693791933239184259773052761479229302123013163652956137623330528454637744966783855724163055532861053275520784389404424723308700149400756485394938970856366624723511554968426370742241985340721884331711808624785109999817623225805812020490727023675155996038558466728397347325959612710449694899692807040872355613550188348609827334494211927951159638914217013371362540595915840065763710336218594354090721495079719264247416878866135096201313031939816564431842319103674142051255686332809855207709323995574220458372892438309481108423300876415366308472416897637519419399848086392769531790164372780297768880616249084193376410364509612604065127369473343213647516686745418754235332490452514001261991025504942206089908653489121851977852080353829793516473616363948528497562849714885627036425437615253034856791421813834154676563036293594327156888851139645341755011355523422660951773817818038938644309083053992738653198839237082514434976695795125406640558213249534760824464237959520467403716910402286506016440118821281688727839234273692926062064096409195961459043145172341616179151070617767174151129700974362635716917980979131076075544400727482316585363917076912591900555112850732808167705134749074145011950248108427677735773081036084500375556502686582708949066409611462996904292269838084349681389149247988622487167128124089262797006509374129142801201881922065421593897363381932259127071303848942162931911004907149225362821862035617644685446995943076419072713387818263384790269051413488524088341597040931667176458485165390460010963472932317024526860807864918007702454260533859200916633150792778732483259016044217156687494057915189677115913189275017804451824993743874329932914355437468094683402608346425268170735136026784411711754768030257828432741271295550926710857402304746960026445711893018058112189257572500241791066473020112946937549533383927107678381585580887567061329996499158939499040874977823550392105136301646716340862269365394034567695186527752685603128680881568916991604601367935600028878486501738703611861366168233700637624901718703548391653008880657523737679906815547888893864623380433678814473862636975144463533151364503365250987795413093994146760112222850127827345575515956198448726728886216911391278644418265010715934333181605528809809313757602195448423668918140487612969835740368011755189133005722699475919228724396947107244977040473296751338485372898919851448791269339956272762863015717827057355238450193665288694250301571288649098993055897745148064974007108137602067660610028335398320724359456720594945121684402530561416115047237679687125269315631930981608232979504258981667480087815264867736414493569584287953879511112090041388243506999888209156555403289250228805141696787929926626862224670525490667495362501326970031824510114073519298152709116828763161525453362313242268045222889614970917397113535255440123608618815454147085320467229946939071488188603326828261722826964785169840975561328091090492994205890209975868027011829714381130616650165606940509417447084136593172946036832314886783783401584666526277938110347185652734290112646968995135220438138835925408450875742934048304805257026367468199997111392499430823809481473192576011528538247357208314910527160816992228141867532991179552447748792024698247835770179058176843376667776890217764906219369958965467659969428721801097813692136744622097478300409271819051376356123254861272145222616805180293256818310931413966592453103442368843397067352872663830004541951464423032623019071897598561247023586500542075982524898199075031653803249502601693723058314817314752430435942498914879189062802634091227267353344853777985327688970476167261585288351406035252708851992921713307057857638749393745559400967615375217782801162690377265289896203441261598810632168253206443816406129171172120095567473839167222962355574612439015599054488322626441625687126870485003449211415757614315487883822624493825719072052822435654030668643394952786639197826196621288902931708091506933547609363069503877964838065009708771258420744211499716985561589989747876513750578536272453652178066289777507327157034985477471678902956663958351111997725430882108300838719703001636037548232031811034519634199719570801626375425606969661834362972690706622306143131863618116113316841849516129647994635408155166288645312201056179623810144384620141325246851026413793411662166660443555433967260839002933424985605923047725430160485968987816153242523488947992749956804057508785961584656399688277050582480803752624440992284265581071965313962147422223415350770031361866522902424242733975223220119730089596891049854054474276975638059626226908788476436765519375681951996304422809024719659779814112299761130996689484065470304306161542840528984605556105277431670945479765425699944325615151270411776840247262990518468739384403174909227786713746504877565400352618233613582209691595165310030299470261213798326995515479430045282504041161789922994791117641217399269377416582020283502426115579535771019286950264605435924118006680782334174983342235251194039578690357868099795735556646348184109235356638053216250587339612730165179209152696307741603539343614876508656958944166875931028197227084213006069890327681248136434088291450693535007842690028338969289003676630651962125691137082514952641307300205723426006143479478418466207633742474019652349063930296622337730820640228704088095403944892602375593027578381867271119555903626438180369441026989560997022402685189290570563411576345663453530917836449127065514652145274516095709269601981935148250423083093324020856938232573732465561978380507982367839148964413212119032538371930512612143512054346721380249172084457240675607838911836144206172196093241887871539065311934562423143050595975813896800145932726803699031531485898178421841408627035413234057140637242334416230520114600537243354544085804784915273835605370083298419441940878577289428942989055641118489012798817424271309417325022464998977618499584448243196333877136064170050575881120626018903546125859345154561817568409731473384201495189375815899601208752575627603329500301183188095642910867929936491408742632266721386849152241299032914629320268237349095662579032064280453385167557256633596432829836906797154489491441442844573661312147165257729283228387225191227818503331845753752311813889104687301120253329343303322817674447909206656325018838874991783124527795687803251857087877108213218175422991370299903463408243198220018181430169501586756477231845517351601935397411806816255498633469297427936383683122862090150084763296027154205540923472197748755577372771253584379299733675504135390096260754601770478320092090000437030477206239693112361996923069451921228075128062610903396080855119939362576645605845474892984566105164377632302047629334883313664553345734804735715674449977347178219815739262943566148533256352573800753734245856962732264432925391218548350084718726153761193599211755449468751722095340217149673323008543031277343008442170392235658052374699781195238474449333837385774851142746225220393467572123278506610526913279773063462887372622241958467166720221516808291000526702236415126522740776004619794966850442414929033037526153247556530093153145577415607854888437204157140600876512807613311400021517609289824898629450626479863972781208733447929847854531512329334051406847255746928486263150354770925719144201422185887802572791283311779822123368077931168758654777139994623954398600178217140445115877933764582521759199108819238300516633102828372361341272140722462379539129338836418793155329932894879874861538613915230746891741006626186077722679134871363221475165685084419917806948619546019340893708192321419263827753375919457032645023630434756871734529583995536709739473113745139433281977911222269397254591249383798231266070963822259670190083814532862904610606586856320978015085422334848110590617385229862052817896049500732570427222020393613638247958310354325985507262140340985962778601721689559875030328828176804094685209388640336365236494428576533381097953342025875230660994737779174834099640562083733043167671087592982666684354670095997048589537484151152214502249945441528386578029285301765856291013881441726693837902070500341910121386791346354652287481407153382029019192351467212683827510001739480517922357591031062941178267158381863781954648843122973630207590729496131322642355108491026499847418870181274039872030679358312315482878780386867207634549849519911344509912442473105052272527668320660348538056734851263693194665299251629026264658941634139609150972187236402755002697010883868324941421257120488696456582963616098653685988378839028020706070296399620892916924201175646292127178414438660944484153071327538274180512475604700845614196078604954485925581307161527176818710961041702864624451063869927990313298023938322923078600246111212562537492992069623605549739779337090550915061599580746264769307061465473365729538801084659307737092643932709617335897987551332985173533580576198203756071739649512102605682421535394322065787806543336816683791839254310296299786255831381508429023460414642850633182078026674085750429654935395449486518527564708814351323195973497899171415169373256883389331628338964518488703226398930556894518391912430829325156540236753850043094552275229862193634999307995606896844661874598947488234136640851885321936731143758946356570214222303717414812012726282910573318578392273347952606800413122404444690695700343265791095617342284655138302877708170928004370327526445576200902948987017264718228932761788234679959538966801140286687052633670600630426129946084949956382755990602647776521970253758306411814612875438760985782899634221059502253415043982609618760983521652316543316977214412517700380390215981379748913202929277554387117033911632248075246572497296231247650935179435674838114315286413330290891237771466124690448645511649267993463415562118822817564230240516948954442816831414049043805788605901073700671829849936504074947027855738627203271084260273269569006412015558094691371012984255290544957645064575600374031494587908210547355911363990672780648145919170643387069714773665247784433863025569838810258987930950197131284070891871969674939400265719405722159295868834578669810318183594938102719311615251530174090403194517238322459633052678626421000745736336797264614352971498884605529190782295721345692646383479217594057805130367348879544947334464560679667691278267990494200362880699002603522166525266488097224672121294616782282247427178341053585849093818084382076967122622155649252446410116006638391181830873085635422672150172188913491114434074231672018580154409683941721845529247030666331743969920320999137230793920870633268149502702418363237393557565948355864342758527153036475346746011816231218086111379932483545148228986306253693327937473726404693126737565340199730090761426212286501158568944820803714283612048583161747503907712876046503361236135224312142049114096204585829225543574900902717114310056202779664273282036840883514218997367661285154174170155055966929543355338498868702324902061064458071692286334339185539443465974183103315453291025913036064622666879779455734904546748823275317375995937232273103710445211331153382893042477397241957274401165418484315564894048921358055708557627558495534889191385643791638342408939602209788019587504761416457873384344319808735157516674968200379153796102973494432109476073270046363343661259071179260382965776504898339968200528464234206854494699303871249646642485811604420004666933985741685551729836982926358491044717933844683250433844717587252699366862337570798586379951176474378774221029593262173881717992112564960766549050364753011284605971998642239727843391967774038958231917557325994193790085492825980660767894985484333355330520442978146864226215463907056678047938913177651922049935761663882196322357224138758048818728755477834305533714162429159181440724910183373607258613130585839379636913731605046386537876161997656835278960391654122119712316370646384350875058804657553196720080481063208311821537956138009835355952609363700064531708064420288837726690826800942475061577365306953699946473444264179908807236585691623899636517578076237318613662803000677595254569830359350209310340106654882387605906309667152580319027018056510774179659964177889506640602788471706807792755570351022237147306795006509607538053426398202615407127213785603227432886168024173389459790505032137974846614903095301740230095495752617958896983609703142914084804583842017705933308727898829210653986085497841770226800199431723125607279669350937846167380814534710813293763452196474416319331178690649982482372761620561502444394472323379106960839688560326743659447613243668623910583435263725870265527272354681097361367537998854340224782973219586473847079849851417285386752779230658409174320605010991022389298189386457216041689492340208559404805979888719907538994483624575918179587264785482436871784280511816570103599948961675645814411774359994155741564054198094077706078181787327808839235166527298117294704518248948869402539784970404012578501708525229480032644855398293395410250493410544461435613045371236961682202427087546803225777224676453869069173584632909965978927085724136068529472284189988811197694925777567347314920454188249935386075448538327349316024944583018400520110059712112248818992601409033905843014105055980718844415476335609338929558270335638391892072441156624136346793755416738908930918686080312637892309129166075500989808404308771738687684930623853335091504106000383060163948853687921061238941057439403460624016371854842521771675451639760025505022643961152599429430869349869074629783759970161295030843803660660058922658529305637886695846678487572600253291839307185472610120143531812300826282453907565263848166284306712414091535323017373577722317054545331857330398636116290928079651400076258029586832521130356252134998540067832905798100262663767805172062475401635370252168218735528720401996359618873606934730672840960812886498922816545218524083282791281849386363527220300859827544599898999583511157436878788812704855717381485740307803629420485942064433415790169383959681533585277508781574397192432277988317060546340053309696115995437320394129955177197409249372819386910424719168074575580541317281683365537965275951040258293766006937948476305024368669308749861291151557902990891475114714361655097781089168915938904322861163098089616015436542397071317339876255613839334927890605747145381691569264882015102621472183250340916562454293531173283968374175550697887724604398556261085337374028770997288047611491577857651047529089113817806546922207217132541594679780555957405449532558779284323247504820257296107211930542720344543111901843265159983295119242549956886629245120615544354851877843376022845731855255302038578067996423334739432832550797681431749352903653552357083362272954029760362245967870224679610872900653691581103297724112719687184631712015310872022829121678513683286828899841006308305969973295124018343792808075866877889849604377275402758952292936685392267513992823716159644737329827017509083756802744666915911114977994466711356910889243791993094247213080730819842625931443479657908567008256288588361144633070690191063606859951853870417106238568043241122994069976976521718948993497188045038643217598286433134023273173503448755279378348641310419949659552577066904567184355021562018967279397342682162568608592248811316664734142989101387571275704830514594366360992466106272011244098723999710420756543915068631020135759846014673026511990342986506396760006966879582828924339782590587485678262692633034683723321240661577602951565372261068229038366133683415049998959342809320186542470360735907656081621959975934382017246180769581783472212715039912393733080598164349462313671749599994630421176381814783019102133447356926562588057101644687984556617203758742814909984339304652393122000356442486502802002210387238150855436080610859538174278532465497923110151018126674138466294626740034072909243067756491785793427751652950984600098628219865193501486314131133823408186418101959888722959358560343722423672396015146278965654853353317400741984242601360667355298407544025731777149540219275487625663663209795134838923239847309342827299390954922628685258280376257104081404140709215337798247121933464825207183878537445007238525936056765957622040219451924792912413075854648591812784555951253394853773274395465325201686225053728500130453724000464744479074597825102944479047597268994937537469280893311554355051420516123636834410073498429947070865348728261682611949954445988885035960791436711196391393209112009541335128855089924933928537947665616415925452758853479068034859304210143177857711724511374184624321553372240565412149423223467341003286409237227571473170380930584666114105286653492921570438437193875825489184989446589748921123980435592536491908658906691739080886750091323305426654820771573640252081624830165898730360865980837961576736411773627346697615666539213482934564239912928078599798788152042922151909141690785497361872516930999913227000674997233515576579514366474702374876614964404926134860829976097836260492782317388949792246852097759950804988269723924957659872230646951187677991605495672699690851525822652952273858854393021734274755743918744113766339941285948312343848488127945760136710066761659743958963255453067081684294512114091221200910866698998915001020556924848523722554213107166139198282765742981882917518337208417523869676828059102315199253128014453772216474368259508608886364434672080407995745610429010196560880839309828716061604912163604586908622289737564557413574307159108936724233166447733282968241883149217164949725140119493690567095296152704329196175641010185140596083954221011253004320324477290450956867286869283797899445334732540783200542835488045130887413631936955816828746079046566945900407442884187381232567699671646926799869558860520806372983832112386246812028817043481558140629498830626345933449988840386526057374223073857866400023774153128859094551257535393369408694442939407522182847100107766580951275670201477540829825943655390077790618030037104030191092185293284782411655189092287029012404160045214931709357753608163420856552332014438453889583422068417138823995322706356387242611330217236088753196924820117906522275084815465360634684320835251951083321606843173343658468059130157408787018229598765822830020425283556693204501981988171458261171598400011723232484622368023378498390571958420833941883302500041002600378834221148367305474960967792429704499983799479044054349710896265896766913002849909603860630462400933379790920357551625516664005711218771723903001503960954051845816999386430449804010399161286593474495582760668348248909337338629266989646970531741560892296662428914381927372356726030305011034159701503907594115991561792511656228924417675577202639271089785260599471315335700459048301245358602245707716058212332185295875822030519372890200177343206194287342147523788608300702997965315568103011287992589391833877964700675202703688772405840664369190902874387633882097145801017495101346458402812780113168139897806509007407674642209638998045332620765149608259774522758423904134502684618616814579533717594622683030636661453659920280300843252851498178817712725738675355028513383679230567432436869620272756904956947214224246798843604119226316915567882764842223911962740367145989741445431800616886293376356239752548161092018062894420650865088651743884451744029361570891066530518191344083524173853908952947331269090022881476173592405472755741008722118602480706552734785464670810033252880494872818846476645138719484647002739836639678691108722490689445254499301361359823021009664966265824979074179330260447961646789612176304735470941059054767787436276981114648195946765395331326021604518805685201238185383599352509055867304816958939312668888710724516375807869185298046443759849390149864088672912156151469350544680039277537716280028444617088728346133201602784693514171037189813592856544404738893533643422529953563067148643575822661507084722421213957490588123647260807956653918210780697591919627299613768250527190168013501825936503904314892374222182997294359105047665101984354967715836390356050902744094547376200086625518953798973986955249442094528368937291622558644588185723220050973402112420242701338138097506387073687862241346162660761418658903675756728049468513929492469474976704482862785037993942832787912203329713975438436447227794195248300533133083265941268165481431836724185190716453711839456188537671861146345100987635561039688240346932274316386856389366920782628786664631623058656232080344670332241489658442908620119179775183607898117847087626296153194003478154640506345659858453959336783920471778161961151978159915334832397561116212221045289683087138354599880658578013548593749042639560201729578681154940798878998952785944953129124758248171371088590969140706193303618003033238919132168402423711785594147938175122615373552928204846201190878355782410767958987282648380188363060516258745813238071702127070311601599319566532110559086844637230112193935288299328435695606597198930148418941924696514195047131003620913846840871436786883238124871873805822177969166872677052869491723296929757412937157650310486149826499639425425153552278926558176593281228135199049986283389176950986498709388528652246416241498009133604809416167206933424250017253335902412245206966274283806079157097461019323432744228427903009219716781979659790595491272105538644724076008310005880818190724478703436574542794750466602116861532820793670422831576774109787065652889958092151207900910624889386465174860336630488088385858365475419590635290169607959866719791951547267539998847762188847851073660556792237455158009612734637037295470996414489544035707005097959712497079149894057504201650307392100837573941328165780857198028511304247961345145042777636660548705739016497996388006749276335699901742142470860427633687015388954255448605196615601145707431101267836061897633765408595584416739699898991714686664840902419001493111173462062958230778705794867646385567587210995136468309977716094546557201681228539377673740994283039515574945316920658203714520458277535783379827116157535547547595988090288825001513269030621837535588152280080499462199263139514759007671504441201028640422323467572146522255433374645407695544296373365183294408114816553112317888568534493625651092338223250887519700640217856262405043920393115512742419812786611804575203790313522638215002107721305024066241830028624776559111141308947497641704427632877747366695141529627972984736229019636223154363191418417996968962803592775061551398755785367266353781400817153183187933147980316630735418382498547746143475821220350330394913462672508437397313313461349718786522154847952113280655897451002032487297922392568927537490270425986685614904053752845046626144264259912295769949845956168866129342741521686045369508582771055380684247063968607781328993106285511287995439433670099191520888614455564574422792533094751032786399982860866477824697766936469596820933063048325230272861628840918540210758575059523354917451756350558943167491291170862073846960048789782639109056257395994874924959790110901916146590802074849626393582792650583647676708383011968855505051861579809721852980782027546790777352845948855486420957184809577355026418379662201056062017672410164759618231771444198810096102794777608196256246820854574993759391755772555043901644270909099403336820210181891880943144687251194488397607261064289476377050838168092847287045308547161072786663101220366887582906462496532944215040426089607955960284837681158331065639818871541022291856363755468086146768060626175912547513262658963341657062651172681705493010940658630266922042298948302376443236714219463649003200189102951055373197420393993038094287078665529147692881385645878149664779808233148266402166554846713406240185971412175424409787127718287785341343837382580995377745556686390309700061492840773024700917201995246206245391985859237134507423999851718224954288951323435031823344837883192959553348790109921171899225365294293653362582595390946552963581374497293699746511875338537487094217708081745701742251604090438846121574124452850202379839036999113896967347788049704208886393128438915798686149953572063769482149209306281251312280804996662625532242838399173520256674525229908409946325864683411130420845898803241428782414860826210577494753300377060215168255421685888255205289137193877249869082025393362940473047505009970440709469358919699005334783044635811964910483163816068074323974751887377450485393208011892092176200325412859001921285078008780108096121869972156727878783603783428505022335910473861003790033681958215347953124203321923791186979738109328501036782788060812745282883103918315704414803727152691119589138273502062661678813673893005894349871926275421758678377586169291156419695497805005027174414821422531771664564897625594375826764309491260552928577535565273114929560879110821596194017570249204462620779468053776955441637902384442862707600133588293722905895613531099244879237739700126380103906210362971005400902332662052868551292388936540076639663983925724508244968989262459924394384508765578909028189856834334510996196384091164376705960548419525350568787230520679162057973980086958750046561196154504016297677700965470185284334977644679496028037224229231209258155238064515073175826397848971659561076294495873794568519845906093691349732270242823829358483476200972795732039739082440490265245937396257295449117729608598859109798319161919237155743147773056132758650301867128792233399940922106267909462585081169282796692381723798551276299352386088317714689728571559104796911352900853677375489955124718689039574466000484795401447802882232082425670184511475458385946399776041212321829451207207790817682331516184554219598749744558901511992706236051896340735393487564095315603407069359582576081667695587492098240480666527562455192322003251452941755396468271902352195763796378975941750521586754201928536559666201450456338552783571256712051282275196092953909245784188554012712828606220318403041625230457334991986203368394185491917443128141702746834805331236365464080095227986799808167861438767022991764204219357703030288924063382337118831666892347256653147154261973692488185677444236830676285808035577667085249394327267591827130580282047449868310923884518396569291282691413580228508792026381557594458857783917630415382477745027363004796768568959057429077532824031838874195328472505758236998984185573609737934792621075648001276066005684856289529627036503340728499245707682166060043085192144993994615927401867906702492509188084254975382500057364115276562788206831683745613611646610594529609876478761781065732569944130069604044127574848059081543152521914759307810414099180436770663956672634435356245619356407513565467271679094118794884808680923093832873822500428513086155646738231344891197653033059034948850709043640855117089681596818853555968367767082875926959001222681306340790521808314175342883875013165292187663333574314371010163477966588836188698834998328981164007025965502047611990688459306411880137433528093795109830522058657551902553313247393551842157260882310168318176409724179664282170553923573318235997210559146758099096015712545362591465735834510808497696708071726694371830812496641392852932420581483522627446937585856957168703450223775777783598158580954566745546272979473079756932050856264050352830255672286677544482840862099813897930370925326425964038534996170546386083723031489481001371999013197012628010849698683279080599525074937754235999978783744657783712375357578526777106381435613678907947372479242618159928019155423635840922410926951949867583701400806912594594455592546704732039280047011160015595417020287950359292017703968601134563044492333977435455716545727149517353452904622158776693210397256540533868239130580966002121232483113870490726163498817775250633988037352830441378850405352914195734486262214803329495448889085450792480542683741940669188555167572166221109208997318526676782935266132904276171207173433002345258919537355747509268743152936342844964077178567399584381489421046285181038496434277355192443854011056003640918609065983002337368459149958401444990129369372589395288983481155645581061030794545804756646504893576785275211183407994598744205675506984616282974816927434031957448112126921989132435503198370546644424960963633748486558714369342400084268306946647268678216054307605555515711301054996369421412014528605671549281450356360885793542044988312557195995587078583365330551210839284998411268479057129722024655013870820524474927234191950360303939460347677085153472543380769135430210323311827099410525437316371791899608133844403673509209111063173376587401600018697304252984202448885270331725146924974753931982350352522617616094384809705351245708751318689267370050744277412070979040734631226205290006391892909903319643533353377827730338009564355202372811893414222213163841246621876265629262131653747440952305454016919059121029833254873844314996900817917666244456257105500140603668001332495809064102834877164193564714304095505763803857385220987161679591048522208070839544381665295350087746068113602730824885662613928667728371703032378323346716406418651059916248176707063456531467640744926589904002492943382034766548273034152265790423510131092975678304848136329763976322746732729909893927449638572144129084870644807046616306718326269730189550522617503670443765606386089754748091995263944035360465439982377356190246502693129589140222105988734088163222562586861744532441158949303555099774824741515073734119475733373556527627418519164245146201049878262945368950884462321176358003511841835926759864297128139853841446909691719079951674046781893587502744350355118079967776249870628475929132726168844888493914112874532057248359162360674161634463880131235116126332141573507358737890898646033191010479049510880532762436343801953205313641343554593647041984399732731928183025760085767530258321696714646834358840039142037072426708260176162533902989867152675622198130603529594844646404039688560064817661090330560790650387689684467316948543438918368935379334168987646104050602410935985553266431299975939026367969692513769369261591022851172165414889215726223597736677014639845855210470747638897225490221795578347385363008193343789887481568027697599949512125441570271376490277515078779949109561489574262273987940332212825753245784561955271497177374892311071758004485261087533971440933423641670007394747605338766380254295863552936913034769868990613336245908473538052999169523740650576570393490154739065565289258081944696284012213924551119876038074056609941052311643601925684722053285107258758837088787835407461779760153173049500582938124750525030217002361095736709078402235116222597238130144407984791813303210544324431102719791005913738093483775863613997719436720065592456993814702761918466612118042961718665283106957766092437716159831512459361728010390163655204661937092525125363139655920117782142768019428047658653485815874703119926770979133504911072051652432462312538315744875129541560355275026367961454610934441685357810273138996999546867343518103443255259516930023300505925727997815904820223589052604792034825075042171734554664253125285259478440684213337897972455998381452902491341277243424509717951186446150628152839286502372129264368408132689423169315188818953852681800476310307780389924412151871985827222544989996778751458791602397076666044133305940017725196828827618138902540142141154032221880752214931387303943894838634880488587257312960544022675401194443442712395569023790715007138610641985838887956880548633517280844464472481327723859561052130130910151062642932763162472228598525710263715946299940132265505188044657398980037754421846299791933040060517616187986026555760768914956796240330209203533823006419857512128054908768126499986629682021600839357742569239001450967655189683001149858039500662463386168022550668707591274831975300014554060154119807841134948294656806017074182194482694202914591931179729442535235139331011218688316780023266376919519389893049565596364430499826362332222131737958633752729015980267624382084908943642831249679621625001635299668930446258458041672490710904142795447432277640558606449799377481597906129222029306198335261800426117966549675805482901810689473722161202657162630436353022821293372450839435343709678543243805831288950527866356571712880369852845487149507985624665557793170507902899868597143645930779735070140152275447669341982392638989294535343190218016938758502877868797020461682319735199280766975865127606468238391696014867111500960384593882005106152664625627270863739947150257718107230896204362641552557152127904583542959059101205185086051998335829520276445242512357735153614513291221335783411967187075856606350002976645872189965684680983542255567976997861529583162065743207372109968440619460852752139972077460283796182940677826598099698358660897438651036562425562508423543545630151219711116732833655070583247917273565142769410984986357066618802528434536119774234900016041091359806582532510477723487375858846669785802999922419736650411551196281600473215765070051662898453996379194144719612753684963848418407835392194951607607529847670841382746044030177075799966676756861253610514003917168172567805013897837186583796897615017209848060227215120876367111635529356196130402092739641852869360472651396687556304008753585686831314128686092282555124226959567993035024901136677093640349903748458741989108901894570519857812478440357578671393197085549893809997065410579169020959889749873844727261372435180656164993163897351119703310393978040928094799734337726502122497143409823782365196589288627922327799039418205068569837671166237721514412022766337949173743734228317972794011937453904905797144617183602567322140552194621862859145438965623402489453798119559649687070730218607805131930946785284844420212843249930715413564423079386272526585208492269484399394853053527270682335863948608170577407516973852120210628959417716079254130699134608143824632866935231265907343036680953859560845016739322909654282885409786377872218259072743419564661165959340871344812029957960400057641468485638419208402583268552123795496248911586260094009876541358587061925113653719481486085710770837602097237465955311440307339494234844861525237226662531720908162269400021122759183425529828168997196876101438519190128988074242805283555533252325715485875614477520119468011155094405429657310193621595918758219482207475615307833480300854994330873982134027070003112858879279673962736609207126971151381953771554641063374555849196316917552555991892240897978331242735453841796027845958986470600952841808664677110946415984315000959749470220759587493696093489235131553087952267531922887519326905699269590112428008437808975802237272111281427715809215786190314382328222158431197363867972722768495813632814701827652361699870383165480571461752017797801074900520098622253867134378987984881044503027177386068210671823485666103281598409185714908477074125773721529623628951428193949344923100247552946876881422826882633819921070500314822969078127068502360967952456156317625378443908683885454717662505486886145388589401906509184101588520883369612987731672752691975623864276095136945838426185218338957051864132632025229313913483808212879643388136298455390423731285738559006232871979159091218171033492088287365725960067510345169173034840664773124728536498697032255058028512103145813971655005402199912584671247522962330479476204174835733965129338846259860546690206872743107989200936008629962585264955692634224434907588987120754055723917788898374740062831103598936397536831431637915535084459949981517903571916645957972640535635796228522323209995625290729565968625666476118217436889365526584209735880483823563270384629174104274634032764044247217919633892333004523529200287573013563038211172897133169436372206175085815202908497246369055667628921842626517819765195385246430364256203212959160895853359815407065024525216570882264388969553200330712386017719942697998742711966035304852835818441460854913450644431713086666567324744794322805473391376062758189042836565865989546648856170985902335718936471102219155448014160810863286526572025037347796586980289697568759695665517157299781741491255194508337794974466980602686431815234229243167763265101550537467770920415647646247512496723011428848395397060605607246531422732188958383550139850224798061638234945366128994040935591780926586823606419849478639492739255146759621855648434028716399842416564079224320499215193527094274925509720983764055479950763696237008961585314208285497806440657569461074012428301167709175408804880626657504874497001006448172817033718571687699052050431269126758942354642426321926816126071352559377998468768487666374637370848309130230318759755192524399178262640279966163670943691125300862843502978866714838773557009540850951092542672370871628508720499100146666069343525439681324227750520412084311778362086425913741403701893905849130885307671803377759779815450406004508428169265395494242417343968257979429633223312132181078012932197936027503888526310458725788790499330172493716992903363545290749651464056091275487528815748748504665647881571336432427015771206508826472570911545293554151064551035094710720178800179246413597213842994871045977552798427450697742656414883406830080923054646260389483267223960406246465945742025221084288128266889675278980243468265578962656266379745368910929346892092484109702357131627533023890207698673143258427609481838812458575873401409706867189561813112229470021978448241581544509819889152942428906934660562607956566439433934279983588235711675751163292556214994709518352233124581091315865577359175847036941484881503863264098660524416089944214237244673185768540526164596080359046160459477472320562878910886992342019575526455549151862881037098556289818492084536281760741755782246663879072604677554834517443481890496880563765032503535926271374514988624054829562473693334496233090273911370810584071237265540394440666165466698127940161174380314425458361131387001800510642225047421267495399707590971527103141655363347732005496354914667194992566437711135196471224844213383344829914740191692970978273304820965702365744166216404138597571994011075505481383567509753677020862148022476905759312845796120520106065272215959974558956392927416101354477714866027222280787891903104933048606423488894126536509198046804726679290797077022905020257671384436845815634829002226658722453892420758678126480742598431037231448350739349163285687087989353089830355384383950079707801508993166772121535578504768244806681206008160925249005506560688200539439752940429777997773909548121823388281599786284393448937918615556384584794259298949054384503736976473332256852424021601959044724016399444925891545222094738197285735608141629442012082969234213675190569210533735923778160066566876364146366579043573782443665166851049351957765790791933549005424537483625826410516843786445029591835898396440568593688826368637105027687838531277770566599560300157235823714715472190567142601433687966468436491439499957272215058042899218100989507993449442141990214468925539286769175103982467582463734380523973508302806871873446064187629932031217040704830461291642631982086285078695172901899700143428968262441780781916264417195044507576668563242456745817551859136043599958574598825035538466741328204525370108050902351148404819530588806416040823552351294128140484544881037085694262600027163923010086037214242484291264957195698732190524275633949016224645462593474567030056728375084672498252798367349561770898365165478278894261861051832769208503603621780033915249337148444550141579116250506890910713827580224465050986098688327677971183257939187162167678835622419886753868393157565897768652016394528273886744065178756600689498217355748074443255775906927363784818051335709627018971520589097081198620052276793499133040582845672035856647241058894553087522364618384396402596011254852876608866284830763601287006667228026700036149423026125416550458296169931638437058296750705322926910916119674936127372916312058636884790525095273515438062221932730028959924079390744385736690935294925868944010734221780243707715281612425319088227173271543382374014745436218433325680295994077130149833237045109699654532027453350702177037070611381910516358803074747708198082653195105524034346189080408772855887102619129910922959508822518192058518874419863486251882456654507803295363481026348433030837241811365562783019391016183517403223845097914687521623877144239223232455763641079747001255398324712260190530488666649333228486329053808683517096435404402568667911688444342169402517726916720054236587952458648729193194196398370591083465955654573745542747225256387204919648468045612163467555780018391145805072029104091774619788296504861235552872697552000423820381832076425536409632089339245449675981523092151894730501978535100152995735305428112836484236594743595960959569801620275302395941995334462820826497923607942188680411060241587415085751945806156888083430185412537819545969741423677874187066721584275223193527707018877628030323374028626604207305052378520354210425772442559140427008749076435248269386810716376693073037272374171754245852247735758270295996649854102311510138743237047991591787902994485501682558654515388125485742541460429120123228556148895327177172401226279944108268691399729874382556815811126238732626104264249191467303139324078996737861432904142084411467415351674268973370321906902874770602008842219032125165528911717385674777311366153734391751962707954921617093780054340457873789689579406584026092226706663974706474619148511446524438074152055212868620200671723263684717967231549153359492453428928874859317664269936209673407497745053070568431410133263287775921305762314700874373845076260305875774978732420714066513617994956945601081928431937367328417989351895954235197022893472976977104975358649956731850469509873966280139531524733606745957465367342250965950109876696237341406068393503481983827182118684406017615765602547011395373572678345269455960791770944971727234694733436780387223775747916868955520413621538014282548673776952837038414279340044001305689783556227986071360705966044685334333224708199605172761522010806671065237950190709749374182163352993865189170077889883476360923618805269060064082807971343497894275959288720261078515554112397373046097592317883468807253835105908002186604490289791189672593675521396472906857973507367571821697403667069896134578745061097120350147956537516416615312164732544167892775072459436281923825623362981037565328913282392322272506794170946913185669962267630084749332949237724820251680550666316199034578005029621609509712783134975497484970807501469286177972053920877355735426344654046917507878362978303712221263449953760458706825466567329277539722860367819247326075875375036396055575515247044790468927900741744080991621535352379551593168250391708411573389472148337705878936954153482731607170302320249290945466553120552501263225317414273729408935823231304140359670910492571838352019535775111030301893738736672956883475900280466901502804156922062794107897682809626966101213748811955631196777980468124930647837405316274760628345868471645943824367753427608269557653234427605339971298708052089898561442065934722157535135731353150964325686326997601181676887233090478473878261088300271876502608262925233194476909940416700264006555597136991814669791135677806574510572964711963826438069896023388113530721498585368708628587178926879629780160894163936301209416355230277734299630152634357751250413519834118736205833454731185380745726843372069052208562550105061009379428561404741845592117933927270859725115288005694028053614114492402092462087948741836224854453701673479359020150069908947111950095477169960645156934098095760872306116798593054474249458559276375426550790985078262274524142805641961957947016181410188593967029288408817507132694912645147924587138834722095701254537628711546135844710131132320149549094464014760003023763285717139536547149001355586963306925811264047920053172809211791287009678813893732959490687691623091782228643533340593396791602428932748444663155945748561132045178306464916622418132462957675091859029883332306551450236294043474054925561176422160938847117341895740719985035273669869338669851702573938066023027910628085352549353166194585293885401347619818297901927026997553976270972133207752142888313638279403779548104363968462169524948229844322968969208533555308531740953971002744873252835275736247945801278044550361060645585780357362625255636064773490568638324600588264572996728670647068819718804899591820953876986724126105812313371883281538730532406351716048837318634831944878552453402131059605432697873627899027362358152686677286484137632175406689989734882611860180029360022362615884959038938183834781502164731089138369537380868316436990879808593012837352876220600536227587287679465791680576358143240925305502388654829492572512760977104308414241327149223014555024915380116515701072599196608891033445877802018420198687255798348589279411579165489841807965598165292440028600089283308995984612515413473641247553705658072496073372896863956551034497585830017188013929340815934657740749168731401990382842771226233324460588756739838593500769513118556316845738386555122929408030684220362567245918113860635048015522616706356496428673234596566937992435872932911668849839364206979703901915931945597036125926270637083717136079722292448389736599492632218594309529344551705400945927487032843519938814026708591528949635950763638073234705346230932441509575691850480891957173919165310002415714293566869097067553848502610804074340645742634283252211020710345037453834072171927286093079709087864027403756034196203260951802333194466047043934800540635869102941831438198076626369229201519626745478890548730085334220881597403289253567824780457234485556638842993651785938154287147347054077625040798071086832571272096595247028093129849059790306196750805994442179885069831610963804318575734932089702792144339391342829009838902927600998103497167534005535026657548513582069817189431736521873727270386652434205926968399585877165807536293049174582102753301267023622273305213709274757549275403224866536323928428878807181194344775443943157463373774219051446263840148384522306013263650278845147170479058318058348940856949424994415155483863342377204069960193358031375344976028444995154109011381560664132329431053540356633498250090053413621495974752980282398461972836700621058461397781582746765798260178472965764639589418774249633169588422839119159056564022819349680175816384013942920814208820454690299463765205998819783175448012711996556221317324427160802193166446071845067024516046120117976382723921134833943879896290584017968636094325530065062888973239251361632702390752395982653489399468065805948768646275141094064993115341987321729914312591009777188686945571244449358286138125976463755113427984573762023435625689831225304205902149070999674160321546707538816502965863991553151342905513331653248308850347019549055674484101032187658995675839455823828688310814186283547319475525274711575402543480466177480387868598378715694913427853082947288735412043190232090595295432861066132697607626692661135211466252769841277340852419138268582809550758375787518294419538166996475933805810974419704088768832525737438561825911089750196431479372572070809405896055397098285800445563078599861108297845198039988230941625098680263516282280756081650704834896441683618365946329769197332664504433270265296440733260835948712972056368036299922692205555021936131309439292561689825893809531154348132895184916542872546286351978103023730034903799179307688612204532651318101381689879195678466786614433105801438125991279141588766717029067599907122292817274527854431917637751864885446905521418294754607553734560608556346420396176670957528745494901204660351964636873577292974282347505496786544592736062760898924697824189071366910300926678191303055919511695693178319754079624033842110466446524045818686393260964635303347112921315436957144220672372701903216128316366068353535914027988526095314744197670576401090753060472138657067665499726561399562590818508530304555928407614124652218099654353071631850748864789331371598040191058010242554171356618961206011069761203387121769536277481470240462879594479656892916665615162911773694618494617768316635945285117164140087961096558671942116381654578935594374741659601910402650699653760891088490540908807662422362445253132852178568721171075072872580243702749583566462456351397720596477873476721370969778743722222285444150516258147590016001034987342164287379415209172808743852870687452996758506346236156568380656846858665912883929939874919280450975993576219153034533964024162816375645733798596901282927418796276250380640305799822393935095892199527851029164638047832936209192780407715041873006891785738178253793126532269564298480575057043385936993433934560449623259372433043576671477116642620566716193777375770182049361597820655177596044557427140159585062420861432022102794700328644097498531194933972205256017243806783980806301980330387140108237370202178023999196594847420810041624631399989387267812969837139653343697806394667642860024152824873785639412927935383607707608300750085468836684968344738138000194809994639279397254809261755712323072287991472949962782931812117999531191393368291421708003917108392039962532465712426711480762187323888663027326326051022748558768582482996273785630375020526294883169608949012916313726348858049819248754553524887326239439367504501654768934020682145856556617105077511943738058941342569604131394758191970668230263242340902445054095883410876889880583600190580085619949103323884501331396041945468828359061480627917027425505698363038681904080769860746508844236776170546226084543972221940355420265203310445526900704688277458214569663667446999428841734711480702347951794307783615275740011675423810497822651699679327017909913253596925641310212031767596026367955108692598919360515293161163999379060522162182625734473633420263075057264252255255006962503721338053244844653771497170577712173855502140364109117838972141797635473176486099732370208765716623286273640666665252244484423704743126027019405293253920388124561167839226071478001195718475045561161525038448220826918667452950019454795547426703119533884633675047534119243051728905583063960642730093178990339713439315840591610085863938221382022717081924757782100150391638486660170908139091359533406190146269042409568052624010705647776618407365199659831201591486191247910453282084900376962357904520492814748144846581726874291601112567800981177269122209070237851486611243714459198466857630947375120942433520044650532973912516708301825542971302260674660980052603919627557983895090692431900473756401836074549348591017944755771628631505548876102867291818675864766444786596278272940399932099053354969138475743042203580266820050183524856515170342099431107260374750821643495885414321045735574198011829400651638459077831309473009929939541827181805997731995522537656235226168798804828472031495890625696894424278407617197478521211170867529446036705335557033361952699406435233081909574370804656078412350061934156495100497331738362040042273443789157896534958611591918135897244495607070322322782801579148558088663267009240423420313927164689630137056221855039903462294679176978329701524127573584580130897595258639855021546367705090070332907975583265256973309925199423352342674324526287834348780393209901478697413172811254964459042777973691266877075337938105295979219560094519647245214566447811294088842597399502289315673204890035956531488181813352488448698694800612536474277550005042040462103442555588086621442523793246458613086709152614396887816336773496951240900773916726414094124216456185364620858380521948089887377463428514000439792350670242467066706973079235532297655668457047629025632259783196183339724915469525525143514347973072505898539350344143010372769330828701075552612213237948915324248501547845700977456836739570646245323167834271605995132533503844764618045298891008925761423645689209371216233577791901016985274650743313394038605583835605125299114647525104974008392381880409524665697821906750077451273404137469485989032430384217737576080925883639849428524916612397421340306639968399457315314592189561854297369416392912745866021491932560629083547889453870589099102877684263449092427581953822771544550755082820784883600938857504071338064314464351066357725420010721512821487380127832552194772666696435196399513880976645324332723557684264153138097822980463213153774625235404290603580170561927446884847759849178086745549832965851953461620010812542242676672446591985003737246700094531418328513802244338672642501595675921141474962451849120472064675609405933598879179790590013674885386450686962065614990834968225785681134556483957272889037685647348587027874709244378417015400337456982748232469221776707380599850755861668713787186830968096765583702166111407722078522106402682698887307289605168437835203674022500330129422087997280733552033208498251879476366174290552837591285641649741372819365114332541321596654479750889663784405834138448245573385931223675087756917458077706663761431383703360433458674650157199994935709263149831353947601099746000005376581449457332674586106330493215029738393935442737099386415060481731338107605825309439419878575323657233230479592495750580234655485760174078300407648946768258640951038804374399269553415069260955209966849636219609754199025668927300183039884115526354875841019186258565195894991754367013775262962123556260890759814472451063453168437420392696341251225494255324466039223854149218025474882876575364066956656854499049481491528050382535285564672004425228943146357459705605413211134776183459143500680409751657893967117854851652292067783571075255139531452823122246077432648578021471069671258249054953252002980118743298038560982084749878105162425738536217494683456079440138680427259737217799597613484926836925904945447285453485554767285509262696633351543953191992620902229011791650354053205354155732396286587788501001210509448364369355456565298702510427337311270368643270185393046229863901849849779085270466381007410606419934676834879214901823792623153577676004525398309488349953129731567381103576713809506026898810326066044317643550299533074351217835363742263073089411890983341196386055152202496844393942530531427282384519772446016604039958354727913725799487690563099638920470629376050565218205421345799773554893538368033652820760812514894362469001742501483694891032497863941911460054023062161855699086102467315486460988020278107347373777049188343981529606960617171547709155804539147213794488630702751062591007953739995139486174490302297892181523395588210157649640209459194090016061165874111119807343351033819020401202992932403144329877164721941875892567634592321990922901557239337288860713694061776164509345671522804998274750927830263599319816399168556260449567993519483203844703965009899853801126586133337947755213032889161978793373276844741328316215382135050223298247951985584253064406273275670404854215795371733438301365792271697658152542272531902691721583563479065501433932221184545774337318654527185594102106229488252043473087838122229831687235778373373445155994823292339269578929447998242009493926642707394323274713200971603475707441072850307963039075727028380502095916175507000501662779242931812450523867239968585193177959038840467556513325575821494315351795949879017593995401869958616206697153893332575600180920779578501271585250132437026798381532168315105880273745589398225165079655680674055293358041645869285231652892506244103450725475174669695766475991206556847983177883862444164695419191341166383135950942698407897055494658072945983183865462177521063114551043363353661775730503740634292089127750223620941830938203794204943018325648815146217473149531227249665194033266694654817482534172522912474970511461616005428188054035419894723457255907901419851829814814599027140514326607102622963491948125934214533789872458309760486188866958513039072917339207722568960983652091279311482179747506446559761340387575922402239603473570849183378112149892582953233544437853183336101743721712707556161914380532726602449486684750343807525183922459239571783023471419022350350380794112727748728950400230804740722455600124762073159921250457886191338649903391268514724330910608559436605624848676475330103363659857748963154641346528176374126158110078173670124954479654116012249009394603499330999402392749438135040080294489916879393667610867550354692386570894147039461647784558930701189503601696843007815886653291356205568916972515781275439554162151952105300131336221871938145719744354678463679883187413333055129221001574730478222747354362338060820098336645368558689256331574692024315168312340672977314170507985368300211465536273578120633869732468790648595875816722867648874376546504490483805651802297321117954056543794461504202156340664560806217490834492965788882953793035047260862168232015498493360658850369596066660761363412546677142657669669382533335382968667780185547637587413756149740851683629386444454372825282127596573341880697804038637562432135935333827691436403187220519444882699899867804379050317265195333242884761680065162980299075023247883443424065678288128860769637406496025630715656767505203705308391361662839216418450982844674305122844423983346413015302739217504201192661457275082813903767336357639254460529716017653757738989469139770671718421230296681287204971364532552899308640123305232260540816113878892531948786172327631527480204769970108414222399792911010289569196329428033277083535253890351431858828631937429265422212927628526004225453979981005955366783999892392918091503877736140092815308194078606647484238225957635285178492414744484368434252066821565966919769728805736670362156355124994436122668933058039480454627750978873567271612375825713839139410872431955195160533765155558925355182697971475606689317353105319152122983591730230267583927416493142243938974431008744911962224480737158524947552758284137168733885684513971935717435137665104895239029017063092712264684066927834839988628595942396793645641735587184019901875725463460676207062627896232203480537183635179469108776385199110783793669022647896142652819899498944095836469265144316565821247179207892033514059366782849401779896529798150547543580317758562255869061012302340109361295535357635843299746307928840816702336678897012814595884742819942874986614377118597010460786118312228567494691319004482564302826200724878752539439790125220351799067010886444417333294270385047776295948438149909989126253488800224701126853866059437662227036508267221232223515725503765038540952531017575868733835311996936024166003965092807274380713754704848445688684891968721231098199098730747953205414010395973619696752305244216405619005267427599397913726868627853543055179125750471576601849237182239348493919692953944998838019657266250365175749403311969597941172125762371383165114796260557917844027818812255383408963982704978907257430443033411791081090599505417122077373797477503036812582030995844119486799985794011171393324239526270361992706377241703397811133323827156827734201479054726165434019322671442180196105337050263337427319045518794871348524986266822221111131891445576221042289834739034998125977811080901318642567088910367429803049136365142132498203398923826233114577540076316382512686668485031584111114115588642679072134604092217050745982472070245524314035201195653139245833100914253634958789790743937136597095527255566660070242028391007459462466313074544675113059937775120411928055649729151234915055327810229864306084053764409891744431076998717276003815163442860652183069210091799279417093193629424774580681733533597017598932860314853201568769791565212418967004030959172775708160301869459714079982443633328754319221407359969526268303856595845208956554977810132745394340864386526954140660420525015130837808664572997492569037617093002816162250318700303273714486051251640723900700882382390681147399580435559035124122182329827436677789038538586239181478158835325813789319130516472390159051500732925827462042891439266753495215494292409278561294142586937295146893142705444227000932416109334447817626188849164416925608135907757944738620601592404012063374998954252911634095244853142318247458686792135102696628751705210646078470497466615451881415103516734981578308880506290252472784913288358585719687703163300975539049048845664489746888824842250422741076906915478241586198518421957909459139269455393497074170826012991361372933199089961244761127027704388927170172348861763196368502467208266987608481975265151178468397433083172604878540303329427864436091148976287974130203367539268931859458016183291794401009583249805875064583664127695292859826577033300623458265495553231665323056373735121952849214896392942381059559822709275997303299473750568744987281293470260662447761583466617049162697571797587242929114187975074878217153341997452680557322560031417046342203189757820773023738624697850416509797584452716458522043551397592875295089546522806626969434499014880200418118642039774220404270266955446032990925495943520252796488734580054345846849452975353915837929113057037617736633757952397710873933795473321185487906192685422400839536103687789915221045210650200380051808347709316151054412972685089966422824644897764232319476756024380976946310016887760572567989369280086502487446760824545957501328381000122974730565399913766112760678583451295803038405025304166311739822211379220747439396630034070496076432882198733987733380285979360982153546559100724317097157060971059686886906647906795150810115197051363575163611207596373863757385849998378645305790304439430129504109743783727473215821070222676757039661418608774439690962477761429826812572551820738210629142917928982577970023307492988858235399319356394252680619486420670833245104681706704055421341876516419219776188680295892187243673912979296702170026047079540759988069653829470682629475007992091780545010872131836710302140341239939886741014047291317644420908011091980352443211333653582852718284326236725037002411625948225597448808317606737015485628911866544655045630521377904505732818512019796654094302700497446325461212241411283293664379403219844792766561092717076355940122055359024467307073784068108916048402263161316537882261306234764932281552291952234092518396017149557062533930191906745971899007765435853945373057085876733937752255618875908626655726071481360268430480946337810894870533253346931528652281848501503993800336638789733893411288434577352332199976257543876194782906084104923170869792726685650177178453576014440687171686900952806803431893356304270972778706508863333729703100159320223247970041018149467646133696884479094536114901744629897493230037580253191769550524162500655284261143730762265420826822134594675370336621842181656644347757209630013688515145967947203601213939946326114541444682752648661586756681602323921704745125701348659061643086005885568792084783360624630419584641747083033660653300534206204283686318888324266816035175214007464026900758761089479463515084495961700050182770896682426327475529391344648268756009627622242507296272188378746955853968086987312689237481269813501287025948529870938537227129950556301593716628582188659160520740380572603304513197216792914771867563052935572768823902922662197305804873114011753081338921701186180117337251436635308756573420894170480721933598874797364268619879410285421295294104365480616664665609535068126798608377234268522061587747745045440859724123572813629395024877213229181447460352824090500401017736626986417021816703518189746705120427960543666279452174941485648640342337595905490601360969309168410629163679468923218912091274019517061803872122843070879607731137254413060541729899505483788277270466638641911377988697406327767999608103275565628709067701614858118516715255720673109259432660248555938871841243042256167746151083897288342422589148505084729051760618997775830070656525208474082088421733739107673981148807733322016588911410051585422388406367286567250897128850384529403162918837144537878661305400091705011115471854363558310332072119813348586311534236019202937183043526169084401955004814506589376871523847124185820705644135304874205156145120866680968865536473070145171155583996458356780034909490393274451441177991637963103382544506126729662982076892834738348275637617138396079392508938287519388908374248283953342256640130058887766579178359774040670750177108719391145784682542500121104011567813812956625725510917646036596778057996130862820011501251679248494760484988420373339395434686685902354575230954073815304116759191964033950082322121220319485821924434755293375301739351818146692053006768354983260897626736030117845855487527030732200353241223910296706648167195592545322134782497402500270274805998168376214118183387608348792580981381516616041464208075202053745495801305135529753878317955606609534527502899952843052599586314977990312599592685238675997576441360225760470651198719323526264910813019359159967624775420054683329136080933231845309103266426957027363688615868419863558986966216126369423462698706529516460365908897763094369532892149718025971263107919863423433683379854278159243753610595231367670588425147268669259622556233388254449153389514807803531600962362723626293210938381213442925961689776071296109653285812638563528406918707269095087199084875880597680615434384983307862237329950538595446528725800917384821639524761866919428440920203252858635973427365210841779240653376994870919040065362840026579910278085881694281124198678032126766119082120687694390256898318550295073581362833258813293497875611996570647703233546013593301573718699852759527884015523130446664670070445701673747302944778425837971339579810234192743011416633563104720020623034667200434736336209186074063793874108377983726591022622662816683681746145088810586794020916962370702672270785567024669662152359232489065565411423216530012306683158137095011751649747417707710478671144231270308259649702806523097265225953502609376032046418104012825702971529099663017972874967160781873864346043656031260091308019905591344969824305981044812142232391988323305174876177610603802422486933607826983487990531871201936565718811379882854700036618033764616418080056211065665713544573803557216270206698706659611630266928133512859723422734740435504503018436615705975860259189729717629378207585152143663005844137543530152873638639375592024940199122961478312053390204021524957162375177139207404812163206956168783744067514276611819357040926225442812572446747935669902240001616279356999773793622293288995109667188147254724474423324508328161135885062617781347522637741668930679618906981738542620711683452020866172255402151315203014261536352924176248872401938432847031453356855321163460324119109690049806616365370483004401011812918656108974698069557691913585155593833791589067981878573696873349166531702934832744826234967893671344072677226840840390785044733709169016194834174928447685766055823894997626657072609591728102611237088220424048967417981761059712165243418987697325405183576390689675246430494598140399601983368186282170586073372014699356972850002318515413576999413002897984546387206092599165675004257455772138558216066238188184326085590864884230577290245837548332719465922189060822557719303102442845088023804118245874545954059911879389866524346777606716241118610010104090734913030671369690732159434848129745453214650616117015870792378267767522436635663919196042731264289021440187347592854707425670344996917675233598478138865565705899983318601234615036475938171158603856970478924993590444127976041889820913034833021495306782619690302406082509918409496241117147501936682547196684447339851530387850051106979020064973535455938575707883336768892461107934627144419802729030596670946542694668000365572482505385372657003464552984375485605766436548468959198703255509085909374209804862413099267432372863561176180971636873658852587542928998684070667409131052333116913901759061177908405550410409730126750877167686004326404717317308748944579536828065166828841880976387687751677225401507003933693798837135823136755015852875240337553986870947839756157946308525991462120723856095229220102419422643655009643728162123659295649212034193108558048057925207056097073311003610872573365512443639741726877515322065422563933914249879192202992430401513532618304251639821759987994032717706306529601965946603316609193225213978517420275604532822558009110705570160851977806571014316301211880912558064986030948049146676107720745502634506956158153283070441964462644401978953041673808332923846545153725133316840331525638965894711008798811829532364680046133945376701491217704282194282850506622188463050880409783570115326654916255249526385096275796749475771603492347359628017615562674390623303470044538119409528697550938580679702661145684844846308991494315152488178024416974099890603908439441850253047357246937305616185379340688294601425402211423373139724085744945862377619322551855689110364637684070516003606140643570811847797770405995641200104601413000890788089377595295745047655039053183599146854554075702541944535881728230217184087340156065947706698217296638659132127716519251666291242160026082404556418182824207155593041412847921238148595144839965671505764602713610407345488817072271800832968140120396622375240917625930501196457437538992864618902187410750169415517307487965557943412213401861945711114145143476791105087385843795432281462392510321525178061022002985061171511522924684406233670927089226453241078178623493002036486152993070136846970506636958762130387191849673626286128773135307721316622088806901178452231994936532272443177479044080521012426828275776057685207211032353363551733222846585385579072592997658497868869011934529274642275255585048782417415962774392726950863003739197232432809642332098580674697455115723670387955932445758453122600239564518634241370010986150265195096501276333828196736597643559400008983705072192268375625342457964215208141538140352834232745745282188653998454027744122254522942265414501024628838852570646391990412738586374723771970181661501559306552580402449092982449535013277809532564263426263432798995168669229691978769462307638213428791853401663826586138981055665067401063420828539478180020453642269679016347991779681426970196243141837017933239208206963911456865343575178937024664269595259600654326091604270903277334124879376220897854569431847419434510620397466555147205617061019461222686681596904838394290430992831677354144429372219257639217779234223773397148488181910169982018278621131812845363263984386215655096776531988541783185586741582390043053451170737372867280188233545785306959967788067417964300979384132540544812380831903058654085153227854231354283742353758721688236322055070652706495251356963675212104632064184322393563779520998965454720016968351074307701939884197870709476949874864200855470745726706021712740956692665431438337769024013142789997756778724179571357223060632305238563514763132557264467597733776986284175094033938121692142673563864623543402066943063507513940274428897658237003075649301065734518698212694757885041191961361046093431644074153374395772435885256502313780947543195773054518785207209863861162273043345329587547485512733832797221918503504787189788424928710689618210899417158677612083801516188865145400128585971646301364496516055149382279283444908376743281989211429104310611108686921655279207982016493293745813421507655118784892767382548793511783235161120855178410837621175281500785185477818607679428641484323323319109726685003293412891404585820443155761077878576257742383848993157237395983811060781246778635855689965273688452409425287045964359207605793466843241453255963562487488211791208183970347846417549291422486198816983583681912923190240717129570007687463345058546053618974136529114874878826670127663175041210072031578108892437664036773091175530904092817119613621053923413873342259376787685262571351224341348244924378633188527682753743104903544552421435713693138564029040006569936253681779918785587184473077058252974350574866412708465442603847274453318352984893683898897808289018623074484047084490852849403039434295546385274085475901526881600037477252281178116115742371398195074067417534318414635054434243835745192486115808800396066834394019089873781924404002198322845207651547921136925507478741658366024221854621946430775152186135581519887540463551761409590543738570052501358093904859672162021606984416156907877168406812741437661409111813963108559915166148107954451532495992136682549963271237356256841474541431231206048819565493502823579799437677757183566590069020417993369091728241049062313271244249416014285160962807790636038335841419927091542276842581774992219930572580325951237712012994424840701227968679444734180679258265793495891476788837891544093263165670060889473109325610561988030860548652087745645452474853531540501116812428474957904372159415539436702907125778653689754228949640116185024437131408434630354358064772127114350431362548438660924361550031965108550050907158337041502556889102458400418193352025212449845716767925568221802326639623157096458907968699494137343262118149547389785624882172010558278984533333136548489450888785675190404459592653195215811924489811352902213455038356598271936949317656578186760047007731691816455034194766774380181590333099302566595666806010250926530115150160622468616389719309021432141704002191457726858407865209722168098063403409743086907298822309751951983100298612670489081778827687757961178330223290184600190716087476842315224050774360779330699714208266188407940469258063274247275041565742546714723309962603957286538590552888005911222577468976219282389040655521371974945223212768338451551457684661127766882078834758858600648865735763165275569994119108346614456186706812749463392864273661511558912240868597078927007503394219875836535973430041069559226761035533059931059176312793511629714079606501253293619401366506307941570050211188043581494533791320858732548430463659635754453470236895764075477044155714931768679302277753119882184837301911786289306940111589359951274829912053068129551929824938272147795541012944377345175642511716526216166999185835646874649357924097724551332802362936675709907697852514226641191193585434501374096079376005086552834228065726478022042061307951699639533247616622891546684694096914515252563415426976727096542892366968403192535094906738450902029724318091231270182551951383460029378821762077676614701791056987095327706600308416181059206587486560051483952184824992543254856132508585197436417072553803196406928071563221322173345451876615575526390318339396568420029460701119129003740322343976701062591895494110816617775621921623121137090313971995109300060103007153333452901597889358798595884784180052537960087983471109265787548954190753861066220189959789540593437873947063842367677502183369288728660527834544522024058057113629600759746651977711112630969469503423846510531433667095110760686290587829078822087133464200364390366332980988500851337814963166188577108066312558044324207698647512216582361620834681484140831525275396050627066696526301902593848744034126606357473771924725215165229394066955245342248129991832656594423759120559882004728642042067074222872759074097139821572379632145499167296730802864864484068322190336849026989929710200920411865787025178591835750552703347688775638585462739607509976147400572192898182966726201203114582608158553826922251013825611025429443067962436400899781005440067802134276707642549925936710102284674866225941175294051667555818626941750593997115376753996650983301615736970922700557309695955649272385182575787553417888752639788555964624474923264074821628542338036335949374899526806016754142197883509023731057687503281918259052125331849318306100702202678580527851563024324195553938565711330622522462341479711447932578993736265220222845799230346011771041574409412468197295002911413986761550352599819480735239154528581118222981815649447927563553322350629049623760218885772940818935145056394333893533977655456340866555282658136000816463334525449484505955566705163107708872505206626022560573629214451674721138860169162930054205124206415555272401945587359509752625533729093899907528808524234255268789623261274535575780817153091024596353553948147627719691641984261118275886258905804366154875620681637434080047600164419843802937341468286777176160414285412606425641580937439615912924271363136731776124458993385917773061133298846655245748283492523119458706998912381060083820227026598562576333919033672940001264290699668384238179436127469866593189619045322223293603166329601494368718280932743049152389322562551911147300753148128807206426842226981136185520154479808760107287609450269249454061487952597780986360069669101377814123490020686919838926415376722551768749515204014883031204113020227806459645894805871377996768873493918703798214391672064590869651897225691698509990310203096657363301877215791078781426445725617411584185877699635635291576611517161175561912146377213801136522636271278503521453330658424042719346570805618056428626998831932727372468508080637253458677431435647134329913610845871145670176806024156398745240385833637939835633934944595030714427694213921659335151610028068260018621710802758990916345462460226985867174542310977297306019504557502121786672926863366512580710505001747213369207269807192779063301291903342918220130117130206861246373615361763948055611226790359599834582073680303215605083664016691546402608726050665198490757496212963311920460864247010599662752040679908521111887393952622217171839456743584366250259407567787455206883177021018226392892933319946189556214339398753777418233490776385599354008719353215578106343492646921668019730695877934717222544807911811119639263927648001235177257192747883057839711366906064552543319190322289193609549718432491009045406627292385027405633838548590188268149435843645843980262611116171765842816097957652506787611795116323992635170032619534150929750055340488664096583519165979491935086348821926159814484369243754556511220419480552682307533247697408847277874354523592721088040526258353686891993198446098971608446742636735916800552847863406269127172173171756061677171463475561619807884390311358477716426051047474576636143832085499367219745739979786652277503539806189140888838590932137437527203362302578779561047292856386085130915778464960008736333920310489778169199045483721157693261472210169373395677086569137611108691532783540556894860507108229542480918055808095852840667352878148038653802146646757143896547580860434512955393551309586932110862993111060583993942496576010657495240264494636552444240730599036528490896664804046794551760568902763171719187687277257489033656717785638232165305692129115050326412815732707501138355197893094089107488034261090882741413711940912309437167869613636072477657104623486150406068547046457718789166038214014347509730536910311084407969550456237753811982755215952136501877563397073543958012047196601951288251054503317305162163410905181922605255463122643553225929574757288200162627080823604244459035813619904596044916754037553727206181988999514777161493276079799935405323179303743527584995426817187213747300025933561536192111129261638916218469566956203356497059650933237168855187842033304180750306650556062517416050526233166409192522382588709552189028812957505217116559791713082534046084330797746547688166691968144768973284839179217767764271032151745244795073588076328905416731603181192610241700381775659611825654152518096798760261634301727837032796173292508134704765485765605901072767352138545982768929873329758329944685365659919272027231284196896663259359477266722350011371950264673084492628609598526205224095218223592003147069826977926672250423655929192492054350354442390940880576201050465309269773134941085727997638011304927973986558419898876583320159334396104687507963520178472987317304408427266965840609618054654656319302505014959888401925085596318809233280147303879129195795825101292043776533474108918075807247127240276166629686262222231660704487522921471507146159607733512382721669154552729130788761367040033447710520770059428997271177365919242991321208097064896312558843911944264248345550207274615226720992564456528346798994906603417413684761557731344073469800379804214122671320372465321073217357376049193206275564676654903913028689978015277912027247510532924595527398642066245295718008680915733555397019651293100483231470413504942935965118265724049820443139756703147053709850613146155991545967908038206332711270539764389461306833524669156764448058479053185626495783935454683629709750886407255782366929906508127064320767425390436885713810940745855659674181134810267297801287659770581626728457561593281266064575328698356754169437335171869154494298039532809562532967176474278419217105496385341428321986214861895267914830400454230243724462494276958818851304787948051509240221847272687432602896204859856831807437521486290992133913992180695380744363471106230210202399080166428312197903931088989028681277449139877816012369634935383790483373886164973988642408564038860012173560371256630282419328441393715260355025536500684691379951253301570881693176198059576609611328145362486381437470813760997339279340713871021835604437946559576321085972638056113173862779961866282810658000636060566965160500275463200064283833990047068610621589780135918708023883757689557911171327021871913861244609228509466217880091235664671425284581316883233438617026345453106357326861714173268252109927195832490783232192898048512298230337937859269722693195895033354126067763684519202799011294351329008525896049061348176846124481858634526732494412395033702428955285667455763776548313039154490724174469903334896301032696085126405368878222121462152194238250907818894026435367515689104488568329212836025815748009984583205487653084082425613508935972296031858838858038358185664412153867087676012483101046308447443218801447909336747468844785641481744590912453981032300885920637101563587565164309596112739640158617697813140879507371428831776043668981962641347500697194056519504550516774239794019689986252789008523744580732886706974177396357254506098542345678985204250732286070942026394841828669256606166544407204577568393932312265407812478316668801803018422504520053551868684850558453085253849754261205794305353308074775082649608852944557278500344139558937933505118403022529870616291505964225999600585648957233653179869136696994427866578912525684626041479811086568557173907213307893310852590333311371858772870349262790271567329168662716674908199318258316683282850015757078016119316922193151475493775515980465409283999109493742010371708560860588178544900570410413604043513764246899815268060925540112346532950434918053747735616666710469298309567892031648206393173922124840551203478063211131681337322406321645541558823784609194273808850283831236226654974430055809989829957425843235376429863146563505528356047709075747328263677043963097923465629794934456641396085146437130393213677421247090445272154068792154263064259726029201899465529811514261260490076386714173023572727683904155972345066669386646058829201247114417883178223482153389187605836327618181943322769555311258190484751746290562001346899644071619823205434718461102051131555093022682510749199014960817856260510885903658474515037638491513400032951639910621924055728300810352176197961683221398169240835763955621165712611219290508716325525855864961663825419359148218187619592329205699550637645818268557522115278701180299433546741536276207749785405413330313633542368241010846476374906388527984149007646469764854009479635895497546144813763697059163569983681198752505479306935320757076678014844770142471624190816682249007420711186488154772891718653596776539579933503342728214605416964960098470697958559264304287036366471307131478233061157641991322242064609989883076268583605552740990478467610760424178421506285175573529996478625529542836742987066457943375801014074021161861448432976574426342852870477855630830963143527878304194501970294657577773281674685808745393160393725331589928057943463140873586086177882633492774615118491165513068184671367734882334108513640394793920887688633633946138235834479408156961091429387734713893423773619109646056424447477908207604966027135616895410644483213659808293890972961891211834291490616389638610693752089534688398334446718982124347807238740745769755450743684674713502485881839966556819634452881194183317263682505061186490039412552057457120360355780251419043526718372192138482990580322469584243231589844325103965443535053543229216747040778614684859762557446153511880031430569954927847167454497269761283933251838197222328360707522781292813010656941262948730634268837338181742170608647548276394242391402753218042951903411635170469807423351556057857562450999253201787499636640473477038985587306507603870997731843128109897898820854355955094325390237189521682023344245572575307879263398550901645594237339662522335164875058955694217297244895998825089232112034795894154654603037878617591571661398869326873749684730549653293782147564810579380828530053244708050656929422340010959348294614539078890661626402150130735330033192074563726377077099939992288621224324880206263485088853036010723436890136064275814252839878594917997961121963797576519245218670960880921371119775000878159304307293448839309575741592413752859777972918934538505080383198677459002518657917237080857416429715380788406071306868036198241971577476389507253468404569192759531937223702229015580065607604738547359904477996748749969769427137668695533195125337764098587096683863263926164945608684140374568420719405950701743035469182150900466493998551741389385197573121568261622862231881096729747606013028331193716114087472706762558567775119956667486151964912970193318084994109618139296492789360902125354433273750642606242994120327362558244174983450947309453436615907284163193683075719798068231535737155571816122156787936425013887117023275555779302266785803199930810830576307652332050740013939095807901637717629259283764874790177274125678190555562180504876746991140839977919376542320623374717324703369763357925891515260315614033321272849194418437150696552087542450598956787961303311646283996346460422090106105779458151 Exiting SAGE (CPU time 0m19.17s, Wall time 0m19.19s). '87.69.5' ************** SAGE ***************** Host 87.69.59.168 (87.69.59.168) Time: Sat Jun 3 01:17:46 2006 Input: s = pi.str(1000000*log(10,2)) Output: Exiting SAGE (CPU time 0m18.98s, Wall time 0m19.00s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:20:44 2006 Input: integrate(x^2,x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:20:18 2006 Input: int(x^2,x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/polynomial_element.py", line 207, in __int__ TypeError: cannot coerce nonconstant polynomial to int Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:19:59 2006 Input: log(exp(1.)) Output: _3 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:19:52 2006 Input: log(exp(1)) Output: _3 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:19:36 2006 Input: log(3) Output: _3 = 1.0986122886681098 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.08s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:19:27 2006 Input: ln(3) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ln' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:19:10 2006 Input: 2*3 Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:18:34 2006 Input: 2+pi Output: _3 = (2 + pi) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.212.' ************** SAGE ***************** Host 71.212.183.32 (71.212.183.32) Time: Fri Jun 2 21:18:21 2006 Input: 2+Pi Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Pi' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.29.2' ************** SAGE ***************** Host 69.29.204.113 (69.29.204.113) Time: Fri Jun 2 21:00:03 2006 Input: (a-1/a+2)*(a+1/a-1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.29.2' ************** SAGE ***************** Host 69.29.204.113 (69.29.204.113) Time: Fri Jun 2 20:59:36 2006 Input: (a-1/a+2)*(a+1/a-1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.29.2' ************** SAGE ***************** Host 69.29.204.113 (69.29.204.113) Time: Fri Jun 2 20:58:06 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:13:14 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p1 = [(QQ(t),g(QQ(t))) for t in range(5)] p2 = [(QQ(t),g(QQ(t))) for t in range(6)] f = N(p1)-N(p2) f(0.6438) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 _37 = 0.0068316579131361349 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.09s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:13:09 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p1 = [(QQ(t),g(QQ(t))) for t in range(5)] p2 = [(QQ(t),g(QQ(t))) for t in range(6)] f = N(p1)-N(p2) f(.6438) Output: Errors: ------------------------------------------------------------ File "", line 1 f(.ZZ(6438)) ^ SyntaxError: invalid syntax 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.09s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:12:48 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p1 = [(QQ(t),g(QQ(t))) for t in range(5)] p2 = [(QQ(t),g(QQ(t))) for t in range(6)] (N(p1)-N(p2))(QQ(.6438)) Output: Errors: ------------------------------------------------------------ File "", line 1 (N(p1)-N(p2))(QQ(.ZZ(6438))) ^ SyntaxError: invalid syntax 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:12:40 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p1 = [(QQ(t),g(QQ(t))) for t in range(5)] p2 = [(QQ(t),g(QQ(t))) for t in range(6)] (N(p1)-N(p2))(.6438) Output: Errors: ------------------------------------------------------------ File "", line 1 (N(p1)-N(p2))(.ZZ(6438)) ^ SyntaxError: invalid syntax 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:12:05 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p1 = [(QQ(t),g(QQ(t))) for t in range(5)] p2 = [(QQ(t),g(QQ(t))) for t in range(6)] N(p1)-N(p2) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 _36 = 1/360*x^5 - 1/36*x^4 + 7/72*x^3 - 5/36*x^2 + 1/15*x Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.10s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:11:55 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p1 = [(QQ(t),g(QQ(t))) for t in range(5)] p2 = [(QQ(t),g(QQ(t))) for t in range(6)] N(p1)-N(p2) for q in range(5): print f(q) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 _36 = 1/360*x^5 - 1/36*x^4 + 7/72*x^3 - 5/36*x^2 + 1/15*x ....: ....: 2 1 8 23 46 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.09s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:08:38 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p = [(QQ(t),g(QQ(t))) for t in range(5)] f = N(p) for q in range(5): print f(q) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 ....: ....: 1 0 -1/3 -1/2 -3/5 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.09s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:08:08 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p = [(QQ(t),g(QQ(t))) for t in range(5)] f = N(p) f(0) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 _36 = 1 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.09s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 17:07:50 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2a def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) g = (1-x)/(1+x) p = [(QQ(t),g(QQ(t))) for t in range(5)] N(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 2c -x^3 - x^2 + 2*x + 3 _35 = 1/60*x^4 - 11/60*x^3 + 23/30*x^2 - 8/5*x + 1 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.09s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:57:23 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(B)/det(A) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: -1 -1 2 3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:56:49 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print det(A)/det(B) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: -1 -1 1/2 1/3 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:56:42 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) SetCol(B,c,i) print B print det(A)/det(B) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: [ 1 1 -1 1] [ 3 0 0 1] [ 3 1 1 1] [-5 4 2 1] -1 [-1 1 -1 1] [ 0 3 0 1] [ 1 3 1 1] [ 8 -5 2 1] -1 [-1 1 1 1] [ 0 0 3 1] [ 1 1 3 1] [ 8 4 -5 1] 1/2 [-1 1 -1 1] [ 0 0 0 3] [ 1 1 1 3] [ 8 4 2 -5] 1/3 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.08s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:56:34 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = Matrix(A) SetCol(B,c,i) print B print det(A)/det(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 2, in ? TypeError: Matrix() takes at least 3 arguments (1 given) 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:56:22 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = A.clone() SetCol(B,c,i) print B print det(A)/det(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 2, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'clone' 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:55:46 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = A SetCol(B,c,i) print B print det(A)/det(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 5, in ? File "rational.pyx", line 498, in rational.Rational.__div__ File "rational.pyx", line 488, in rational.Rational.__div_ ZeroDivisionError: Rational division by zero 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: ....: [ 1 1 -1 1] [ 3 0 0 1] [ 3 1 1 1] [-5 4 2 1] 1 [ 1 1 -1 1] [ 3 3 0 1] [ 3 3 1 1] [-5 -5 2 1] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:55:30 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) for i in range(4): B = A SetCol(B,c,i) print det(A)/det(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 4, in ? File "rational.pyx", line 498, in rational.Rational.__div__ File "rational.pyx", line 488, in rational.Rational.__div_ ZeroDivisionError: Rational division by zero 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: 1 Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:55:12 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] for i in range(4): B = A SetCol(B,c,i) print det(A)/det(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 4, in ? File "rational.pyx", line 498, in rational.Rational.__div__ File "rational.pyx", line 488, in rational.Rational.__div_ ZeroDivisionError: Rational division by zero 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: 1 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:54:50 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] for i in range(5): B = A SetCol(B,c,i) print det(A)/det(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 4, in ? File "rational.pyx", line 498, in rational.Rational.__div__ File "rational.pyx", line 488, in rational.Rational.__div_ ZeroDivisionError: Rational division by zero 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: 1 Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:54:43 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] for i in range(5): B = A SetCol(B,c,i) print det(A)/det(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 4, in ? File "rational.pyx", line 498, in rational.Rational.__div__ File "rational.pyx", line 488, in rational.Rational.__div_ ZeroDivisionError: Rational division by zero 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: 1 Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:54:34 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] for i in range(5): B = A SetCol(B,c,i) print det(A)/(B) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 4, in ? File "rational.pyx", line 499, in rational.Rational.__div__ File "coerce.pyx", line 133, in coerce.bin_op TypeError: unsupported operand type(s) for /: 'Matrix_dense_rational' and 'Matrix_dense_rational' 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:53:14 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[i]) c = [1,3,3,-5] SetCol(A,c,0) A Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: _32 = [ 1 1 -1 1] [ 3 0 0 1] [ 3 1 1 1] [-5 4 2 1] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:52:54 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[j]) c = [1,3,3,-5] SetCol(A,c,0) A Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 3, in SetCol TypeError: list indices must be integers 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 ....: ....: ....: _32 = [-1 1 -1 1] [ 0 0 0 1] [ 1 1 1 1] [ 8 4 2 1] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:52:38 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(A) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j), c[j]) c = [1,3,3,-5] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 _29 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] ....: ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:52:24 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(A) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j) = c[j]) c = [1,3,3,-5] Output: Errors: ------------------------------------------------------------ File "", line 3 SyntaxError: keyword can't be an expression (, line 3) 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 _29 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:51:54 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(A) def SetCol(A,c,j): for i in range(len(c)): A.set((i,j) = c[j]) c = [1,3,3,-5] SetCol(A,c,0) A Output: Errors: ------------------------------------------------------------ File "", line 3 SyntaxError: keyword can't be an expression (, line 3) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'SetCol' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 _29 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] ....: ....: _33 = [-1 1 -1 1] [ 0 0 0 1] [ 1 1 1 1] [ 8 4 2 1] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:51:44 2006 Input: 1+2*(x+1)-1*x*(x+1)-x*(x+1)*(x-1) Output: _3 = -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:51:07 2006 Input: -1+-1*(x+1)+2*x*(x+1)+x*(x+1)*(x-2) Output: _3 = x^3 + x^2 - x - 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:49:59 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(A) A.columns()[0] = [1,3,3,-5] A Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 _29 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] _31 = [-1 1 -1 1] [ 0 0 0 1] [ 1 1 1 1] [ 8 4 2 1] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:49:51 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(A) A.columns()[0] = [1,3,3,-5] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 _29 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:49:37 2006 Input: 1+2*(x+1)-x*(x+1)-x*(x+1)*(x-2) Output: _3 = -x^3 + 3*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:49:30 2006 Input: 1+2*(x+1)-x*(x+1)-x*(x=1)*(x-2) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(1)+ZZ(2)*(x+ZZ(1))-x*(x+ZZ(1))-x*(x=ZZ(1))*(x-ZZ(2)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:49:10 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(A) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 _29 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:48:59 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,4,4,[-1,,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(A) Output: Errors: ------------------------------------------------------------ File "", line 1 A = Matrix(QQ,ZZ(4),ZZ(4),[-ZZ(1),,ZZ(1),-ZZ(1),ZZ(1),ZZ(0),ZZ(0),ZZ(0),ZZ(1),ZZ(1),ZZ(1),ZZ(1),ZZ(1),ZZ(8),ZZ(4),ZZ(2),ZZ(1)]) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'A' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:48:03 2006 Input: -1*(x-2)*(x-1)*x + -1*(x-1)*x + 2*x + 1*1 Output: _3 = -x^3 + 2*x^2 + x + 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:47:58 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) A = Matrix(QQ,1,1,[1]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:47:45 2006 Input: 1*(x-2)*(x-1)*x + 2*(x-1)*x + -1*x + -1*1 Output: _3 = x^3 - x^2 - x - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:40:18 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c 2*x^2 - x + 2 2c -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:40:04 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret #1c p = [(0,2),(1,3),(2,8)] print "1c" print N(p) #2c p = [(-1,1),(0,3),(1,3),(2,-5)] print "2c" print N(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: 1c [(0, 2)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] [(0, 2), (1, 3), (2, 8)] [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] 2*x^2 - x + 2 2c [(-1, 1)] [(-1, 1), (0, 3)] [(0, 3)] [(-1, 1)] [(-1, 1), (0, 3), (1, 3)] [(0, 3), (1, 3)] [(1, 3)] [(0, 3)] [(-1, 1), (0, 3)] [(0, 3)] [(-1, 1)] [(-1, 1), (0, 3), (1, 3), (2, -5)] [(0, 3), (1, 3), (2, -5)] [(1, 3), (2, -5)] [(2, -5)] [(1, 3)] [(0, 3), (1, 3)] [(1, 3)] [(0, 3)] [(-1, 1), (0, 3), (1, 3)] [(0, 3), (1, 3)] [(1, 3)] [(0, 3)] [(-1, 1), (0, 3)] [(0, 3)] [(-1, 1)] -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:35:19 2006 Input: ((x-0)*(x-1)*(x-2))/-6 + (3/2)*(x+1)*(x-1)*(x-2) + (3/-2)*(x+1)*(x-0)*(x-2) + (-5/6)*(x+1)*(x-0)*(x-1) Output: _3 = -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:34:09 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret p = [(-1,1),(0,3),(1,3),(2,-5)] N(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(-1, 1)] [(-1, 1), (0, 3)] [(0, 3)] [(-1, 1)] [(-1, 1), (0, 3), (1, 3)] [(0, 3), (1, 3)] [(1, 3)] [(0, 3)] [(-1, 1), (0, 3)] [(0, 3)] [(-1, 1)] [(-1, 1), (0, 3), (1, 3), (2, -5)] [(0, 3), (1, 3), (2, -5)] [(1, 3), (2, -5)] [(2, -5)] [(1, 3)] [(0, 3), (1, 3)] [(1, 3)] [(0, 3)] [(-1, 1), (0, 3), (1, 3)] [(0, 3), (1, 3)] [(1, 3)] [(0, 3)] [(-1, 1), (0, 3)] [(0, 3)] [(-1, 1)] _21 = -x^3 - x^2 + 2*x + 3 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:34:00 2006 Input: ((x-0)*(x-1)*(x-2))/-6 + (3/2)*(x+1)*(x-1)*(x-2) + (3/-2)*(x+1)*(x-0)*(x-2) + (-5/12)*(x+1)*(x-0)*(x-1) Output: _3 = -7/12*x^3 - x^2 + 19/12*x + 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:33:27 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = QQ(0) for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret p = [(0,2),(1,3),(2,8)] N(p[0:2]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(0, 2)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _21 = x + 2 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:30:47 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret N(p[0:2]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(0, 2)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _21 = x + 3 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:30:31 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret N(p[0:2]) N(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(0, 2)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _21 = x + 3 [(0, 2)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] [(0, 2), (1, 3), (2, 8)] [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _22 = 2*x^2 - x + 3 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:28:15 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret N(p[0:2]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(0, 2)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _21 = x + 3 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:25:50 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i+1]) return ret DivDiff(p[1:3]) N(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _21 = 5 [(0, 2)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] [(0, 2), (1, 3), (2, 8)] [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _22 = 2*x^2 - x + 3 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:23:15 2006 Input: b = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) c = det(b) det(Matrix(QQ,4,4,[1,-1,1,-1,3,0,0,0,3,1,1,1,-5,2,4,8]))/c det(Matrix(QQ,4,4,[1,1,1,-1,1,3,0,0,1,3,1,1,1,-5,4,8]))/c det(Matrix(QQ,4,4,[1,-1,1,-1,1,0,3,0,1,1,3,1,1,2,-5,8]))/c det(Matrix(QQ,4,4,[1,-1,1,1,1,0,0,3,1,1,1,3,1,2,4,-5]))/c Output: _5 = 3 _6 = 2 _7 = -1 _8 = -1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:22:39 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i]) return ret DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _21 = 5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:22:32 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i]) return ret n(p,3) DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: _21 = x^3 - 3*x^2 + 2*x [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _22 = 5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:21:41 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,i)*DivDiff(p[0:i]) return ret n(p,2) DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: _21 = x^2 - x [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _22 = 5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:21:28 2006 Input: b = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) c = det(b) det(b)/det(b) Output: _5 = 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:20:27 2006 Input: b = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) c = det(b) f = 0 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a.set(0,f,1) a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 1 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 2 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 3 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: set() takes exactly 3 arguments (4 given) _11 = 12 _18 = 12 _25 = 12 _32 = 12 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:20:18 2006 Input: b = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) c = det(b) f = 0 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a.set(0,f) = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 1 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 2 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 3 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call _11 = 12 _18 = 12 _25 = 12 _32 = 12 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:20:13 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,j)*DivDiff(p[0:i]) return ret N(p) DivDiff(p[1:3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N NameError: global name 'j' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _22 = 5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:19:57 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,j)*DivDiff(p[0:i]) return ret #N(p) DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _22 = 5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:19:52 2006 Input: b = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) c = det(b) f = 0 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a)/b f = 1 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a)/b f = 2 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a)/b f = 3 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a)/b Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "rational.pyx", line 499, in rational.Rational.__div__ File "coerce.pyx", line 133, in coerce.bin_op TypeError: unsupported operand type(s) for /: 'Matrix_dense_rational' and 'Matrix_dense_rational' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "rational.pyx", line 499, in rational.Rational.__div__ File "coerce.pyx", line 133, in coerce.bin_op TypeError: unsupported operand type(s) for /: 'Matrix_dense_rational' and 'Matrix_dense_rational' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "rational.pyx", line 499, in rational.Rational.__div__ File "coerce.pyx", line 133, in coerce.bin_op TypeError: unsupported operand type(s) for /: 'Matrix_dense_rational' and 'Matrix_dense_rational' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "rational.pyx", line 499, in rational.Rational.__div__ File "coerce.pyx", line 133, in coerce.bin_op TypeError: unsupported operand type(s) for /: 'Matrix_dense_rational' and 'Matrix_dense_rational' Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:19:51 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,j)*DivDiff(p[0:i]) return ret N(p) DivDiff(p[1:3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N NameError: global name 'j' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _22 = 5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:19:48 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,j)*DivDiff(p[0:i]) return ret N(p) DivDiff(p[1:3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N NameError: global name 'j' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _22 = 5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:19:38 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,3,1,1,1,3,8,4,2,-5]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,1,1,0,0,3,1,1,1,3,1,8,4,-5,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,3,0,1,1,3,1,1,8,-5,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([1,1,-1,1,3,0,0,1,3,1,1,1,-5,4,2,1]) print det(m) f = -(x^3) -(x^2) + 2*x + 3 f(-1) f(0) f(1) f(2) Output: 12 36 24 -12 -12 _14 = 1 _15 = 3 _16 = 3 _17 = -5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:18:49 2006 Input: f = 0 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 1 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 2 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) f = 3 a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0][f] = 1 a[1][f] = 3 a[2][f] = 3 a[3][f] = -5 det(a) Output: _9 = 12 _16 = 12 _23 = 12 _30 = 12 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:18:32 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,3,1,1,1,3,8,4,2,-5]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,1,1,0,0,3,1,1,1,3,1,8,4,-5,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,3,0,1,1,3,1,1,8,-5,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([1,1,-1,1,3,0,0,1,3,1,1,1,-5,4,2,1]) print det(m) f = 3*x^3 + 2*x^2 - x -1 f = -(x^3) -(x^2) + 2*x + 3 f(-1) f(0) f(1) f(2) Output: 12 36 24 -12 -12 _15 = 1 _16 = 3 _17 = 3 _18 = -5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:17:21 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] def n(p,j): ret = 1 for i in range(j): ret *= (x-p[i][0]) return ret def N(p): ret = x^0 for i in range(len(p)): ret += n(p,j)*DivDiff(p[0:i]) return ret N(p) DivDiff(p[1:3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in N NameError: global name 'j' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _22 = 5 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:17:13 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,3,1,1,1,3,8,4,2,-5]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,1,1,0,0,3,1,1,1,3,1,8,4,-5,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,3,0,1,1,3,1,1,8,-5,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([1,1,-1,1,3,0,0,1,3,1,1,1,-5,4,2,1]) print det(m) f = 3*x^3 + 2*x^2 - x -1 f(-1) f(0) f(1) f(2) Output: 12 36 24 -12 -12 _14 = -1 _15 = -1 _16 = 3 _17 = 29 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:16:22 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,3,1,1,1,3,8,4,2,-5]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,1,1,0,0,3,1,1,1,3,1,8,4,-5,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,3,0,1,1,3,1,1,8,-5,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([1,1,-1,1,3,0,0,1,3,1,1,1,-5,4,2,1]) print det(m) Output: 12 36 24 -12 -12 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:16:18 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0] Output: _4 = (1, -1, 1, -1) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:16:13 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0] = [5,5,5,5] Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:16:09 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0] = [5,5,5,5] a[0] Output: _5 = (5, 5, 5, 5) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:16:04 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0] = [5,5,5,5] Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:16:00 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,3,1,1,1,3,8,4,2,-5]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,1,1,0,0,3,1,1,1,3,1,8,4,-5,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,3,0,1,1,3,1,1,8,-5,2,1]) print det(m) Output: 12 36 24 -12 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:15:54 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a[0] Output: _4 = (1, -1, 1, -1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:15:31 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,3,1,1,1,3,8,4,2,-5]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,1,1,0,0,3,1,1,1,3,1,8,4,-5,1]) print det(m) Output: 12 36 24 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:15:13 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) dir(a) Output: _4 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:15:06 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,3,1,1,1,3,8,4,2,-5]) print det(m) Output: 12 36 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:14:57 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a.column(0) = Matrix(QQ,4,1,[5,5,5,5]) a.column? Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to function call Type: instancemethod Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py Definition: a.column(self, i) Docstring: Return the i-th column of this matrix. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:14:16 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a.column(0) a.column? Output: _4 = (1, 1, 1, 1) Type: instancemethod Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py Definition: a.column(self, i) Docstring: Return the i-th column of this matrix. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:14:09 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print det(m) Output: 12 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:14:00 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) a.column(0) Output: _4 = (1, 1, 1, 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:53 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) m.rows? Output: Type: instancemethod Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py Definition: m.rows(self) Docstring: Return a list of the rows of this matrix. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:47 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(m) m.rows? Output: _4 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Type: instancemethod Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py Definition: m.rows(self) Docstring: Return a list of the rows of this matrix. Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:45 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) dir (a.column(0)) Output: _4 = ['Hom', 'Mod', '_FreeModuleElement_generic_dense__entries', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__len__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_multiply', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_rich_to_bool', '_sage_', '_scalar_multiply', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'category', 'change_ring', 'copy', 'db', 'degree', 'denominator', 'dict', 'dot_product', 'dump', 'dumps', 'element', 'entries', 'get', 'inner_product', 'is_dense', 'is_nonzero', 'is_sparse', 'is_vector', 'is_zero', 'lift', 'list', 'nonzero_positions', 'order', 'parent', 'rename', 'reset_name', 'save', 'set', 'support', 'version'] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:25 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) dir(m) Output: _4 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:20 2006 Input: a = Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) dir (a) Output: _4 = ['Hom', 'Mod', '_Matrix__is_compatible', '_Matrix__ncols', '_Matrix__nrows', '_Matrix_dense_rational__entries', '_Matrix_dense_rational__matrix', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_adjoint', '_coeff_repr', '_dense_matrix_mpq_', '_dict', '_div_', '_entries', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_immutable', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_latex_sparse', '_lllgram', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_require_mutable', '_rich_to_bool', '_right_scalar_multiply', '_sage_', '_scalar_multiply', '_set_parent', '_set_pivots', '_set_rank', '_set_row_to_negative_of_row_of_A_using_subset_of_columns', '_singular_', '_singular_init_', '_sub_', 'act_on_polynomial', 'add_multiple_of_column', 'add_multiple_of_row', 'additive_order', 'adjoint', 'augment', 'base_ring', 'block_sum', 'category', 'change_ring', 'characteristic_polynomial', 'charpoly', 'column', 'column_module', 'column_space', 'columns', 'commutator', 'copy', 'db', 'decomposition', 'decomposition_of_subspace', 'denominator', 'dense_matrix', 'dense_row', 'det', 'determinant', 'dump', 'dumps', 'echelon_form', 'fcp', 'get', 'hessenberg_form', 'image', 'integer_kernel', 'is_dense', 'is_immutable', 'is_invertible', 'is_mutable', 'is_nonzero', 'is_sparse', 'is_square', 'is_zero', 'iterates', 'kernel', 'kernel_on', 'lift', 'linear_combination_of_columns', 'linear_combination_of_rows', 'list', 'lllgram', 'matrix_from_columns', 'matrix_from_rows', 'matrix_from_rows_and_columns', 'matrix_over_field', 'matrix_space', 'maxspin', 'minimal_polynomial', 'ncols', 'new_matrix', 'nonpivots', 'nonzero_positions', 'nonzero_positions_in_column', 'nonzero_positions_in_row', 'nrows', 'nullity', 'numeric_array', 'order', 'parent', 'per', 'permanent', 'permanental_minor', 'pivots', 'prod_of_row_sums', 'rank', 'rename', 'rescale_row', 'reset_name', 'restrict', 'restrict_domain', 'rook_vector', 'row', 'row_module', 'row_space', 'row_span', 'rows', 'save', 'set', 'set_immutable', 'set_row_to_multiple_of_row', 'sparse_columns', 'sparse_matrix', 'sparse_rows', 'stack', 'swap_columns', 'swap_rows', 'trace', 'transpose', 'vector_matrix_multiply', 'version', 'wiedemann'] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:17 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) m Output: _4 = [-1 1 -1 1] [ 0 0 0 1] [ 1 1 1 1] [ 8 4 2 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:12 2006 Input: m = Matrix(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_dense_rational' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:07 2006 Input: Matrix(QQ,4,4,[1,-1,1,-1,1,0,0,0,1,1,1,1,1,2,4,8]) dir (Matrix) Output: _3 = [ 1 -1 1 -1] [ 1 0 0 0] [ 1 1 1 1] [ 1 2 4 8] _4 = ['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__get__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:13:05 2006 Input: m = Matrix(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print m Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_dense_rational' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:12:46 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,8,4,2,1]) print m Output: [-1 1 -1 1] [ 0 0 0 1] [ 1 1 1 1] [ 8 4 2 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:12:34 2006 Input: m = MatrixSpace(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,,8,4,2,1]) print m Output: Errors: ------------------------------------------------------------ File "", line 1 m = MatrixSpace(QQ,ZZ(4),ZZ(4))([-ZZ(1),ZZ(1),-ZZ(1),ZZ(1),ZZ(0),ZZ(0),ZZ(0),ZZ(1),ZZ(1),ZZ(1),ZZ(1),ZZ(1),,ZZ(8),ZZ(4),ZZ(2),ZZ(1)]) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:12:29 2006 Input: m = Matrix(QQ,4,4)([-1,1,-1,1,0,0,0,1,1,1,1,1,,8,4,2,1]) print m Output: Errors: ------------------------------------------------------------ File "", line 1 m = Matrix(QQ,ZZ(4),ZZ(4))([-ZZ(1),ZZ(1),-ZZ(1),ZZ(1),ZZ(0),ZZ(0),ZZ(0),ZZ(1),ZZ(1),ZZ(1),ZZ(1),ZZ(1),,ZZ(8),ZZ(4),ZZ(2),ZZ(1)]) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'm' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:06:58 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] _19 = 5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:06:44 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p[0:2]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _19 = 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:06:22 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: [(0, 2), (1, 3), (2, 8)] [(1, 3), (2, 8)] [(2, 8)] [(1, 3)] [(0, 2), (1, 3)] [(1, 3)] [(0, 2)] _19 = 2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:05:58 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( (DivDiff(p[1:len(p)])-DivDiff(p[0:len(p)-1])) / (p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: Errors: ------------------------------------------------------------ File "", line 4 StanloTable.append(Intermediate) ^ SyntaxError: invalid syntax 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: ....: [(0, 2), (1, 3), (2, 8)] _18 = 2 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:05:09 2006 Input: 2+1*x+2*x*(x-1) Output: _3 = 2*x^2 - x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:03:15 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1:3] DivDiff(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = [(1, 3), (2, 8)] [(0, 2), (1, 3), (2, 8)] [(0, 2), (1, 3)] [(0, 2)] [(1, 3)] [(1, 3), (2, 8)] [(1, 3)] [(2, 8)] _20 = 8 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:03:06 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1:3] DivDiff(p[0:2]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = [(1, 3), (2, 8)] [(0, 2), (1, 3)] [(0, 2)] [(1, 3)] _20 = 5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:02:36 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1:3] DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = [(1, 3), (2, 8)] [(1, 3), (2, 8)] [(1, 3)] [(2, 8)] _20 = 6 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:02:18 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p[1:3] DivDiff(p[1:3]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:01:45 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1:3] DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = [(1, 3), (2, 8)] [(1, 3), (2, 8)] [(1, 3)] [(2, 8)] _20 = 6 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:01:04 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1:3] #DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = [(1, 3), (2, 8)] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:00:42 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p[1:3]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: [(1, 3), (2, 8)] [(1, 3)] [(2, 8)] _19 = 6 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 16:00:27 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p[0:2]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: [(0, 2), (1, 3)] [(0, 2)] [(1, 3)] _19 = 5 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:59:48 2006 Input: 2+5*x+8*x*(x-1) Output: _3 = 8*x^2 - 3*x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:59:46 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) DivDiff(p[0:2]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:59:24 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] a = [5,3,8,7] a[1:3] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 _21 = [3, 8] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:59:06 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] a = [5,3,8,7] a[0:3] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 _21 = [5, 3, 8] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:58:20 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-1])+DivDiff(p[1:len(p)]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] DivDiff(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 [(0, 2), (1, 3), (2, 8)] [(0, 2), (1, 3)] [(0, 2)] [(1, 3)] [(1, 3), (2, 8)] [(1, 3)] [(2, 8)] _20 = 8 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '69.233.' ************** SAGE ***************** Host 69.233.138.68 (69.233.138.68) Time: Fri Jun 2 15:58:08 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:57:53 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] DivDiff(p) p[0:1] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 [(0, 2), (1, 3), (2, 8)] [(0, 2)] [(1, 3)] _20 = 7/2 _21 = [(0, 2)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:57:06 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] DivDiff(p) DivDiff(p[0:1]) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 [(0, 2), (1, 3), (2, 8)] [(0, 2)] [(1, 3)] _20 = 7/2 [(0, 2)] _21 = 2 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:49:09 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[len(p)-1][0]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] DivDiff(p) Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 [(0, 2), (1, 3), (2, 8)] [(0, 2)] [(1, 3)] _20 = 7/2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:48:50 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[0][len(p)-1]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] DivDiff(p) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 3, in DivDiff File "", line 2, in Intermediate IndexError: tuple index out of range 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 [(0, 2), (1, 3), (2, 8)] [(0, 2)] [(1, 3)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:48:23 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[0][len(p)-1]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:47:04 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[0][len(p)-1]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[1][0] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 1 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:46:55 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[0][len(p)-1]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] p[0][0] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: _19 = 0 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:46:35 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): print p return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[0][len(p)-1]-p[0][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 3, in DivDiff File "", line 2, in Intermediate IndexError: tuple index out of range 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: ....: [(0, 2), (1, 3), (2, 8)] [(0, 2)] [(1, 3)] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:44:18 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[0][0]-p[len(p)-1][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] Output: 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:44:05 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return ( DivDiff(p[0:len(p)-2])+DivDiff(p[1:len(p)-1]) / p[0][0]-p[len(p)-1][0] ) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in DivDiff File "", line 2, in Intermediate File "integer.pyx", line 554, in integer.Integer.__div__ File "integer.pyx", line 536, in integer.Integer.__div_ File "rational.pyx", line 498, in rational.Rational.__div__ File "rational.pyx", line 488, in rational.Rational.__div_ ZeroDivisionError: Rational division by zero 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:43:03 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return DivDiff(p[0:len(p)-2],p[1:len(p)-1]) StanloTable.append(Intermediate) StanloTable.append(BaseCase) p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in DivDiff File "", line 2, in Intermediate TypeError: DivDiff() takes exactly 1 argument (2 given) 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:42:38 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1](p) def BaseCase(p): return p[0][1] def Intermediate(p): return DivDiff(p[0:len(p)-2],p[1:len(p)-1]) StanloTable[0] = Intermediate StanloTable[1] = BaseCase p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? IndexError: list assignment index out of range ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? IndexError: list assignment index out of range ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in DivDiff IndexError: list index out of range 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:41:55 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] def DivDiff(p): return StanloTable[len(p)==1] StanloTable[0] = Intermediate StanloTable[1] = BaseCase def BaseCase(p): return p[0][1] def Intermediate(p): return DivDiff(p[0:len(p)-2],p[1:len(p)-1]) p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Intermediate' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'BaseCase' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in DivDiff IndexError: list index out of range 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:41:17 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) StanloTable = [] StanloTable[0] = Intermediate StanloTable[1] = BaseCase def DivDiff(p): return StanloTable[len(p)==1] def BaseCase(p): return p[0][1] def Intermediate(p): return DivDiff(p[0:len(p)-2],p[1:len(p)-1]) p = [(0,2),(1,3),(2,8)] DivDiff(p) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Intermediate' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'BaseCase' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in DivDiff IndexError: list index out of range 2 -1 2 _11 = 2 ....: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.03s). '69.152.' ************** SAGE ***************** Host 69.152.205.39 (69.152.205.39) Time: Fri Jun 2 15:36:38 2006 Input: 30% of 78,500 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(30)% of ZZ(78),ZZ(500) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:28:38 2006 Input: f = ((x-1)*(x-2) + -3*(x-0)*(x-2) + 4*(x-0)*(x-1)) print f print f(0) print f(1) print f(2) Output: 2*x^2 - x + 2 2 3 8 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:28:32 2006 Input: f = ((x-1)*(x-2) + -3*(x-0)*(x-2) + 4*(x-0)*(x-1)) print f print f(2) print f(1) print f(0) Output: 2*x^2 - x + 2 8 3 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:27:59 2006 Input: f = ((x-1)*(x-2) + -3*(x-0)*(x-2) + 4*(x-0)*(x-1)) print f(2) print f(1) print f(0) f Output: 8 3 2 _7 = 2*x^2 - x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:27:21 2006 Input: f = ((x-1)*(x-2) + -3*(x-0)*(x-2) + 4*(x-0)*(x-1)) print f(2) print f(1) print f(0) Output: 8 3 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:25:27 2006 Input: f = ((x-1)*(x-2) + -3*(x-0)(x-2) + 4*(x-0)(x-1)) print f(2) print f(1) print f(0) Output: 4 3 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:25:14 2006 Input: f = ((x-1)*(x-2) + -3*(x-0)(x-2) + 4*(x-0)(x-1)) f(2) f(1) f(0) Output: _4 = 4 _5 = 3 _6 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:23:46 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 f(0) Output: 2 -1 2 _11 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:23:07 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) f = 4*x^2-5*x+2 Output: 2 -1 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:23:04 2006 Input: ((x-1)*(x-2) + -3*(x-0)(x-2) + 4*(x-0)(x-1))(0) ((x-1)*(x-2) + -3*(x-0)(x-2) + 4*(x-0)(x-1))(1) ((x-1)*(x-2) + -3*(x-0)(x-2) + 4*(x-0)(x-1))(2) Output: _3 = 4 _4 = 3 _5 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:22:49 2006 Input: ((x-1)*(x-2) + -3*(x-0)(x-2) + 4*(x-0)(x-1)) Output: _3 = x^2 - 2*x + 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:08:58 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) a1 = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) a0 = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) Output: 2 -1 2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:06:57 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a2 = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,2,3,8]) a1 = MatrixSpace(QQ,3,3)([0,0,1,2,3,8,4,2,1]) a0 = MatrixSpace(QQ,3,3)([2,3,8,1,1,1,4,2,1]) print det(a2)/det(a) print det(a1)/det(a) print det(a0)/det(a) Output: -1/2 4 9/2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:05:49 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) det(m) m = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) det(m) m = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) det(m) m = MatrixSpace(QQ,3,3)([2,0,1,3,1,1,8,2,1]) det(m) Output: _4 = -2 _6 = -4 _8 = 2 _10 = -4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:05:31 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) det(m) m = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) det(m) m = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) det(m) m = MatrixSpace(QQ,3,3)([2,0,1,3,1,1,8,2,1]) det(m) Output: _4 = -2 _6 = -4 _8 = 2 _10 = -4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:04:34 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) det(m) m = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) m det(m) m = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) m det(m) m = MatrixSpace(QQ,3,3)([2,0,1,3,1,1,8,2,1]) m det(m) Output: _4 = -2 _6 = [0 0 2] [1 1 3] [4 2 8] _7 = -4 _9 = [0 2 1] [1 3 1] [4 8 1] _10 = 2 _12 = [2 0 1] [3 1 1] [8 2 1] _13 = -4 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:02:38 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) det(m) m = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) m det(m) m = MatrixSpace(QQ,3,3)([0,2,1,1,3,1,4,8,1]) m det(m) Output: _4 = -2 _6 = [0 0 2] [1 1 3] [4 2 8] _7 = -4 _9 = [0 2 1] [1 3 1] [4 8 1] _10 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:02:00 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) det(m) m = MatrixSpace(QQ,3,3)([0,0,2,1,1,3,4,2,8]) m det(m) Output: _4 = -2 _6 = [0 0 2] [1 1 3] [4 2 8] _7 = -4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:01:32 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) det(m) Output: _4 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 15:01:26 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) det(a) Output: _4 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 14:59:53 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) m.determinant() Output: _4 = -2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 14:59:49 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) m.detminant() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'detminant' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 14:58:59 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) a.determinant() Output: _4 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 14:58:52 2006 Input: a = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) ~a Output: _4 = [ 1/2 -1 1/2] [-3/2 2 -1/2] [ 1 0 0] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 14:58:41 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) m.Detminant() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Matrix_dense_rational' object has no attribute 'Detminant' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Fri Jun 2 14:58:28 2006 Input: m = MatrixSpace(QQ,3,3)([0,0,1,1,1,1,4,2,1]) m Output: _4 = [0 0 1] [1 1 1] [4 2 1] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '87.10.1' ************** SAGE ***************** Host 87.10.138.142 (87.10.138.142) Time: Fri Jun 2 14:51:29 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.25s). '87.10.1' ************** SAGE ***************** Host 87.10.138.142 (87.10.138.142) Time: Fri Jun 2 14:51:08 2006 Input: print maxima('tan(x)').integrate(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1173, in integral File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 538, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 482, in function_call File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 391, in new File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 368, in __call__ File "sage_object.pyx", line 332, in sage_object.SageObject._maxima_ File "sage_object.pyx", line 282, in sage_object.SageObject._interface_ NotImplementedError: coercion of x (of type ) to Maxima not implemented: 'Polynomial_rational_dense' object has no attribute '_interface_init_' 'Polynomial_rational_dense' object has no attribute '_interface_init_' Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). '87.10.1' ************** SAGE ***************** Host 87.10.138.142 (87.10.138.142) Time: Fri Jun 2 14:50:59 2006 Input: print maxima('tan(x)'.integrate(x) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.131.' ************** SAGE ***************** Host 71.131.1.160 (71.131.1.160) Time: Fri Jun 2 13:03:44 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.131.' ************** SAGE ***************** Host 71.131.1.160 (71.131.1.160) Time: Fri Jun 2 13:03:34 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '12.47.2' ************** SAGE ***************** Host 12.47.208.34 (12.47.208.34) Time: Fri Jun 2 12:25:01 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.74s). '12.47.2' ************** SAGE ***************** Host 12.47.208.34 (12.47.208.34) Time: Fri Jun 2 12:24:42 2006 Input: print gp('ellinit([1,2,3,4,5])') Output: [1, 2, 3, 4, 5, 9, 11, 29, 35, -183, -3429, -10351, 6128487/10351, [-1.6189099322673713423780009396072169750, -0.31554503386631432881099953019639151248 - 2.0925470969119586079816894466366945829*I, -0.31554503386631432881099953019639151248 + 2.0925470969119586079816894466366945829*I]~, 2.7807400137667297710631976271813584994, -1.3903700068833648855315988135906792497 + 1.0687497763561930661592635474375038788*I, -1.5548241211621901642750745610982915039 + 7.952826799176447336 E-39*I, 0.77741206058109508213753728054914575197 - 1.7273497563868398667141498789110695181*I, 2.9719152678179096707716479509361896060] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). '12.47.2' ************** SAGE ***************** Host 12.47.208.34 (12.47.208.34) Time: Fri Jun 2 12:24:30 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '12.47.2' ************** SAGE ***************** Host 12.47.208.34 (12.47.208.34) Time: Fri Jun 2 12:24:00 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.26s). '87.237.' ************** SAGE ***************** Host 87.237.112.30 (87.237.112.30) Time: Fri Jun 2 11:31:31 2006 Input: NumberField(X^3 + 15*X^2 - 15*X + 15) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'X' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '87.237.' ************** SAGE ***************** Host 87.237.112.30 (87.237.112.30) Time: Fri Jun 2 11:30:44 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '87.237.' ************** SAGE ***************** Host 87.237.112.30 (87.237.112.30) Time: Fri Jun 2 11:29:56 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.00s). '87.237.' ************** SAGE ***************** Host 87.237.112.30 (87.237.112.30) Time: Fri Jun 2 11:28:47 2006 Input: integrate(x^2, x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'integrate' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '87.237.' ************** SAGE ***************** Host 87.237.112.30 (87.237.112.30) Time: Fri Jun 2 11:28:32 2006 Input: intefrate(x^2, x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'intefrate' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.102.' ************** SAGE ***************** Host 65.102.234.144 (65.102.234.144) Time: Fri Jun 2 11:05:35 2006 Input: 4/6 Output: _3 = 2/3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:58:02 2006 Input: 250-45 Output: _3 = 205 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:57:42 2006 Input: 139-45 Output: _3 = 94 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:53:30 2006 Input: 250-139 Output: _3 = 111 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:53:07 2006 Input: 324-250 Output: _3 = 74 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:51:28 2006 Input: 281.71-129.00 Output: _3 = 152.70999999999998 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:50:56 2006 Input: 463.85-182.14 Output: _3 = 281.71000000000004 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:50:17 2006 Input: 755-291.15 Output: _3 = 463.85000000000002 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '72.16.7' ************** SAGE ***************** Host 72.16.7.96 (72.16.7.96) Time: Fri Jun 2 08:49:49 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.141.' ************** SAGE ***************** Host 69.141.137.97 (69.141.137.97) Time: Fri Jun 2 07:48:32 2006 Input: plot(sin,0,10).save('a.svg') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/plot/plot.py", line 498, in save NameError: global name 'Figure' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.09s). '194.214' ************** SAGE ***************** Host 194.214.119.51 (194.214.119.51) Time: Fri Jun 2 02:06:36 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.80s). '194.214' ************** SAGE ***************** Host 194.214.119.51 (194.214.119.51) Time: Fri Jun 2 02:05:15 2006 Input: print kash("Order(x^2+5)") Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Error executing code in Kash CODE: _s_[1]:=Order(x^2+5);; Kash ERROR: _s_[1]:=Order(x^2+5);; Error, the variable 'x' must have a value Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.82s). '194.214' ************** SAGE ***************** Host 194.214.119.51 (194.214.119.51) Time: Fri Jun 2 02:04:19 2006 Input: f=Order(x^2+5); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Order' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '194.214' ************** SAGE ***************** Host 194.214.119.51 (194.214.119.51) Time: Fri Jun 2 02:04:06 2006 Input: f:=Order(x^2+5); Output: Errors: ------------------------------------------------------------ File "", line 1 f:=Order(x**ZZ(2)+ZZ(5)); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '62.107.' ************** SAGE ***************** Host 62.107.107.57 (62.107.107.57) Time: Fri Jun 2 00:01:41 2006 Input: maxima('tan(x)').integrate('x') Output: _3 = log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '62.107.' ************** SAGE ***************** Host 62.107.107.57 (62.107.107.57) Time: Fri Jun 2 00:01:25 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)')print maxima('tan(x)').integrate('x') Output: Errors: ------------------------------------------------------------ File "", line 1 print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)')print maxima('tan(x)').integrate('x') ^ SyntaxError: invalid syntax Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.20s). '62.107.' ************** SAGE ***************** Host 62.107.107.57 (62.107.107.57) Time: Fri Jun 2 00:00:51 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.03s, Wall time 0m1.02s). '62.107.' ************** SAGE ***************** Host 62.107.107.57 (62.107.107.57) Time: Fri Jun 2 00:00:32 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.23s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 22:33:12 2006 Input: maxima('x*atan(x)').integrate('x') maxima('atan(x)').diff('x') Output: _3 = x^2*atan(x)/2 - (x - atan(x))/2 _4 = 1/(x^2 + 1) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.28s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 22:31:19 2006 Input: maxima('(x^2-x+6)/(x^3+3*x)').integrate('x') maxima('atan(x)').diff('x') Output: _3 = -log(x^2 + 3)/2 - atan(x/sqrt(3))/sqrt(3) + 2*log(x) _4 = 1/(x^2 + 1) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.30s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 22:18:18 2006 Input: maxima('(x^2-x+6)/(x^3+3*x)').integrate('x') Output: _3 = -log(x^2 + 3)/2 - atan(x/sqrt(3))/sqrt(3) + 2*log(x) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:51:48 2006 Input: maxima('x^3/(x+1)^3').integrate('x') Output: _3 = -3*log(x + 1) - (6*x + 5)/(2*x^2 + 4*x + 2) + x Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:36:32 2006 Input: maxima('16*e^x^2*log(e)^4*x^4 + 48*e^x^2*log(e)^3*x^2 + 12*e^x^2*log(e)^2').max(0,1).bfloat() Output: _3 = max(1.6B1*e^x^2*log(e)^4*x^4 + 4.8B1*e^x^2*log(e)^3*x^2 + 1.2B1*e^x^2*log(e)^2,1.0B0) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.29s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:35:02 2006 Input: maxima('16*e^x^2*log(e)^4*x^4 + 48*e^x^2*log(e)^3*x^2 + 12*e^x^2*log(e)^2').max(0,1) Output: _3 = max(16*e^x^2*log(e)^4*x^4 + 48*e^x^2*log(e)^3*x^2 + 12*e^x^2*log(e)^2,1) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.29s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:31:09 2006 Input: maxima('e^(x^2)').diff('x', 4) Output: _3 = 16*e^x^2*log(e)^4*x^4 + 48*e^x^2*log(e)^3*x^2 + 12*e^x^2*log(e)^2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:31:01 2006 Input: maxima(e^(x^2)).diff('x', 4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 368, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 393, in _maxima_ File "sage_object.pyx", line 332, in sage_object.SageObject._maxima_ File "sage_object.pyx", line 277, in sage_object.SageObject._interface_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 154, in _maxima_init_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 122, in str File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functions.py", line 197, in _mpfr_ NotImplementedError: computation of this function not implemented yet. Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:30:23 2006 Input: _3 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_3' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:29:32 2006 Input: maxima(_3).max(0, 1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_3' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:29:20 2006 Input: _3.max(0, 1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_3' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:26:55 2006 Input: maxima('e^(x^2)').diff('x',4) Output: _3 = 16*e^x^2*log(e)^4*x^4 + 48*e^x^2*log(e)^3*x^2 + 12*e^x^2*log(e)^2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.143.242 (24.16.143.242) Time: Thu Jun 1 21:26:19 2006 Input: maxima('e^(x^2)').diff('x',4) Output: _3 = 16*e^x^2*log(e)^4*x^4 + 48*e^x^2*log(e)^3*x^2 + 12*e^x^2*log(e)^2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.84s). '24.29.1' ************** SAGE ***************** Host 24.29.194.195 (24.29.194.195) Time: Thu Jun 1 19:34:46 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.83s). '151.201' ************** SAGE ***************** Host 151.201.155.37 (151.201.155.37) Time: Thu Jun 1 19:04:34 2006 Input: 28*7 Output: _3 = 196 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '151.201' ************** SAGE ***************** Host 151.201.155.37 (151.201.155.37) Time: Thu Jun 1 19:04:20 2006 Input: x^2 Output: _3 = x^2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '152.66.' ************** SAGE ***************** Host 152.66.211.110 (152.66.211.110) Time: Thu Jun 1 16:03:26 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.75s). '152.66.' ************** SAGE ***************** Host 152.66.211.110 (152.66.211.110) Time: Thu Jun 1 16:03:01 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '70.245.' ************** SAGE ***************** Host 70.245.120.191 (70.245.120.191) Time: Thu Jun 1 15:50:07 2006 Input: 1-x^3 Output: _3 = -x^3 + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '171.66.' ************** SAGE ***************** Host 171.66.37.115 (171.66.37.115) Time: Thu Jun 1 14:51:39 2006 Input: F:=PolynomialRing(Rationals()); a := b^2 +2*b +1; Factorization(a); F:=PolynomialRing(Rationals()); c2 := 1; Output: Errors: ------------------------------------------------------------ File "", line 1 F:=PolynomialRing(Rationals()); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 a := b**ZZ(2) +ZZ(2)*b +ZZ(1); ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'a' is not defined ------------------------------------------------------------ File "", line 1 F:=PolynomialRing(Rationals()); ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 c2 := ZZ(1); ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:24:10 2006 Input: E = EllipticCurve([0,0,0,0,17117]); E E.analytic_rank() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_rational_field.py", line 565, in analytic_rank File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/gp_cremona.py", line 46, in ellanalyticrank File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 339, in eval File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/gp.py", line 177, in _eval_line File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 310, in _eval_line RuntimeError: GP/PARI interpreter crashed executing ellanalyticrank(ellinit([0, 0, 0, 0, 17117]),0) _3 = Elliptic Curve defined by y^2 = x^3 + 17117 over Rational Field Exiting SAGE (CPU time 0m0.02s, Wall time 0m21.15s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:23:43 2006 Input: E = EllipticCurve([0,0,0,0,1711]); E E.analytic_rank() Output: _3 = Elliptic Curve defined by y^2 = x^3 + 1711 over Rational Field _4 = 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.97s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:23:35 2006 Input: E = EllipticCurve([0,0,0,0,171]); E E.analytic_rank() Output: _3 = Elliptic Curve defined by y^2 = x^3 + 171 over Rational Field _4 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.36s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:23:20 2006 Input: E = EllipticCurve([0,0,0,0,17]); E E.analytic_rank() Output: _3 = Elliptic Curve defined by y^2 = x^3 + 17 over Rational Field _4 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:23:00 2006 Input: E = EllipticCurve('37a'); E E.analytic_rank() Output: _3 = Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field _4 = 1 Exiting SAGE (CPU time 0m0.27s, Wall time 0m0.32s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:22:52 2006 Input: E = EllipticCurve('11a'); E E.analytic_rank() Output: _3 = Elliptic Curve defined by y^2 + y = x^3 - x^2 - 10*x - 20 over Rational Field _4 = 0 Exiting SAGE (CPU time 0m0.27s, Wall time 0m0.30s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:22:30 2006 Input: E = EllipticCurve('681b'); E E.analytic_rank() Output: _3 = Elliptic Curve defined by y^2 + x*y = x^3 + x^2 - 1154*x - 15345 over Rational Field _4 = 0 Exiting SAGE (CPU time 0m0.28s, Wall time 0m0.69s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:18:41 2006 Input: mwrank(EllipticCurve("64a")) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/mwrank.py", line 70, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 339, in eval File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 310, in _eval_line RuntimeError: Mwrank crashed executing Elliptic Curve defined by y^2 = x^3 - 4*x over Rational Field Exiting SAGE (CPU time 0m0.27s, Wall time 0m0.41s). '128.119' ************** SAGE ***************** Host 128.119.47.126 (128.119.47.126) Time: Thu Jun 1 11:18:02 2006 Input: mwrank(EllipticCurve("11a")) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/mwrank.py", line 70, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 339, in eval File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 310, in _eval_line RuntimeError: Mwrank crashed executing Elliptic Curve defined by y^2 + y = x^3 - x^2 - 10*x - 20 over Rational Field Exiting SAGE (CPU time 0m0.34s, Wall time 0m1.96s). '200.217' ************** SAGE ***************** Host 200.217.1.125 (200.217.1.125) Time: Thu Jun 1 09:13:15 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.68s). '200.217' ************** SAGE ***************** Host 200.217.1.125 (200.217.1.125) Time: Thu Jun 1 09:13:00 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.93.1' ************** SAGE ***************** Host 24.93.178.30 (24.93.178.30) Time: Thu Jun 1 07:34:14 2006 Input: 6*8= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(6)*ZZ(8)= ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '220.150' ************** SAGE ***************** Host 220.150.43.53 (220.150.43.53) Time: Thu Jun 1 06:46:08 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.147' ************** SAGE ***************** Host 128.147.28.1 (128.147.28.1) Time: Thu Jun 1 05:50:44 2006 Input: 3+2 Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '62.252.' ************** SAGE ***************** Host 62.252.224.13 (62.252.224.13) Time: Thu Jun 1 05:00:24 2006 Input: 5/6 -2/3 Output: _3 = 1/6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '136.174' ************** SAGE ***************** Host 136.174.187.10 (136.174.187.10) Time: Thu Jun 1 03:38:36 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '164.15.' ************** SAGE ***************** Host 164.15.127.109 (164.15.127.109) Time: Thu Jun 1 03:02:36 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 0m3.52s). '24.132.' ************** SAGE ***************** Host 24.132.176.192 (24.132.176.192) Time: Thu Jun 1 02:04:23 2006 Input: #Sym(4); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.132.' ************** SAGE ***************** Host 24.132.176.192 (24.132.176.192) Time: Thu Jun 1 02:04:22 2006 Input: #Sym(4); Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:59:29 2006 Input: print gap('ResolutionFiniteGroup(SymmetricGroup(3))' ) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Gap produced error output Variable: 'ResolutionFiniteGroup' must have a value executing $sage1:=ResolutionFiniteGroup(SymmetricGroup(3));; Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.17s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:58:55 2006 Input: print gap('Order(SymmetricGroup(3))' ) Output: 6 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.85s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:58:32 2006 Input: Print gap('Order(SymmetricGroup(3))' ) Output: Errors: ------------------------------------------------------------ File "", line 1 Print gap('Order(SymmetricGroup(3))' ) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:57:53 2006 Input: Print (gap(Order(SymmetricGroup(3)))) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Print' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:57:35 2006 Input: Print(gap(Order(SymmetricGroup(3)))) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Print' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:57:18 2006 Input: (Order(SymmetricGroup(3))) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Order' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:57:03 2006 Input: gap(Order(SymmetricGroup(3))) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Order' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:55:38 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '89.52.1' ************** SAGE ***************** Host 89.52.101.47 (89.52.101.47) Time: Thu Jun 1 01:55:21 2006 Input: 2+2; Output: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '209.209' ************** SAGE ***************** Host 209.209.140.20 (209.209.140.20) Time: Wed May 31 23:52:35 2006 Input: 1,025.58-140.65 Output: _3 = (1, -115.07000000000001) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '66.117.' ************** SAGE ***************** Host 66.117.215.253 (66.117.215.253) Time: Wed May 31 19:06:59 2006 Input: 31/60 Output: _3 = 31/60 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.24.1' ************** SAGE ***************** Host 65.24.174.42 (65.24.174.42) Time: Wed May 31 18:35:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '159.71.' ************** SAGE ***************** Host 159.71.254.248 (159.71.254.248) Time: Wed May 31 17:40:12 2006 Input: 100 Output: _3 = 100 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.252.' ************** SAGE ***************** Host 68.252.219.65 (68.252.219.65) Time: Wed May 31 13:39:12 2006 Input: 987+123 Output: _3 = 1110 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.73.5' ************** SAGE ***************** Host 24.73.55.21 (24.73.55.21) Time: Wed May 31 13:29:42 2006 Input: print gap("SymmetricGroup(7)); Output: Errors: ------------------------------------------------------------ File "", line 1 print gap("SymmetricGroup(7)); ^ SyntaxError: EOL while scanning single-quoted string Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.73.5' ************** SAGE ***************** Host 24.73.55.21 (24.73.55.21) Time: Wed May 31 13:29:18 2006 Input: print gap("SymmetricGroup(7)) Output: Errors: ------------------------------------------------------------ File "", line 1 print gap("SymmetricGroup(7)) ^ SyntaxError: EOL while scanning single-quoted string Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.66.9' ************** SAGE ***************** Host 68.66.9.33 (68.66.9.33) Time: Wed May 31 11:38:13 2006 Input: 65465216 Output: _3 = 65465216 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '210.84.' ************** SAGE ***************** Host 210.84.28.73 (210.84.28.73) Time: Wed May 31 08:52:14 2006 Input: 2^10 Output: _3 = 1024 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 08:37:25 2006 Input: sage: f = x^2 sage: f.integrate('x') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'integrate' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 08:36:03 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = x^3 - 1 sage: f.roots() Output: _5 = [(1, 1)] Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 08:35:54 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = x^3 - 1 sage: f.roots() [(1, 1)] sage: f = x^2-4 sage: f.roots() Output: _5 = [(1, 1)] _6 = [(1, 1)] _8 = [(2, 1), (-2, 1)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 08:35:40 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = x^3 - 1 sage: f.roots() [(1, 1)] sage: f = (x^3 - 1)^2 sage: f.roots() Output: _5 = [(1, 1)] _6 = [(1, 1)] _8 = [(1, 2)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 08:35:02 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = x^2-4 sage: f.factor() Output: _5 = (x - 2) * (x + 2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.07s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 08:34:39 2006 Input: sage: x = PolynomialRing(RationalField()).gen() sage: f = (x^3 - 1)^2-(x^2-1)^2 sage: f.factor() Output: _5 = (x - 1)^2 * x^2 * (x^2 + 2*x + 2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.08s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 07:56:27 2006 Input: 2x+x Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)x+x ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '144.39.' ************** SAGE ***************** Host 144.39.151.4 (144.39.151.4) Time: Wed May 31 07:56:15 2006 Input: 3+4 Output: _3 = 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:19:02 2006 Input: 3**(3**15) % 17 Output: _3 = 7 Exiting SAGE (CPU time 0m1.20s, Wall time 0m1.25s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:18:43 2006 Input: 3**(3**20) % 17 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 18238 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:18:35 2006 Input: 3**(3**10) % 17 Output: _3 = 14 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:18:16 2006 Input: Mod(3**(3**100),17) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 18188 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:18:04 2006 Input: Mod(3**(3**100),17) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 18156 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:17:56 2006 Input: Mod(3^(3^100),17) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 18131 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:16:56 2006 Input: 3**(3**100)%17 Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 18082 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:11:32 2006 Input: [i for i in range(200) if is_prime(i)] Output: _3 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:11:10 2006 Input: [i,is_prime(i) for i in range(200)] Output: Errors: ------------------------------------------------------------ File "", line 1 [i,is_prime(i) for i in range(ZZ(200))] ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:10:40 2006 Input: [i for i in range(200) and is_prime(i)] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/arith.py", line 261, in is_prime File "gen.pyx", line 5595, in gen._pari_trap PariError: not an integer argument in an arithmetic function (33) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:10:09 2006 Input: is_prime(103) Output: _3 = True Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:10:03 2006 Input: isprime(103) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'isprime' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:09:15 2006 Input: [i for i in range(200) and isprime(i)] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'isprime' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:09:01 2006 Input: [i for i in range(200)] Output: _3 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:01:25 2006 Input: gcd(2**250-1,2**100-1) Output: _3 = 1125899906842623 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 07:00:11 2006 Input: gcd(x^3+4*x^2+x-6,x^4+14*x^3+59*x^2+46*x-120) Output: _3 = x - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:59:20 2006 Input: gcd(x^2,x) Output: _3 = x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:55:18 2006 Input: -979*3080+379*7956 Output: _3 = 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:54:59 2006 Input: -379*3080+979*7956 Output: _3 = 6621604 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:43:38 2006 Input: gcd(3080,7956) Output: _3 = 4 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:43:30 2006 Input: ext_gcd(3080,7956) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ext_gcd' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:43:23 2006 Input: extgcd(3080,7956) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'extgcd' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:38:16 2006 Input: gcd(3080,7956) Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:38:08 2006 Input: ggt(3080,7956) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ggt' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:38:03 2006 Input: ggt(3080,7056) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ggt' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '134.93.' ************** SAGE ***************** Host 134.93.142.234 (134.93.142.234) Time: Wed May 31 06:34:56 2006 Input: factor(47355) Output: _3 = 3 * 5 * 7 * 11 * 41 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '216.198' ************** SAGE ***************** Host 216.198.123.207 (216.198.123.207) Time: Wed May 31 03:59:06 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:54:35 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) q1 q2 324-423+135 #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _29 = -324*t^2 + 324*t - 63 _30 = 324*t^2 - 432*t + 135 _31 = 36 Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.34s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:45:13 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) 324-423+135 #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _29 = 36 Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.34s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:42:48 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) dir(q1) #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _29 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.34s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:42:32 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) "dir(q1)".sage() #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'str' object has no attribute 'sage' ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.33s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:42:16 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) dir(q1) #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _29 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.34s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:42:05 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) sage(q1) #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'module' object is not callable ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.34s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:41:35 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) q1.sage? #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Type: instancemethod Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py Definition: q1.sage(self) Docstring: Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.34s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:41:10 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) #q1.sage() #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.33s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:40:24 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') #dir(q1) q1.sage() #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? NameError: name 't' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.35s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:40:16 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') dir(q1) q1.sage() #q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? NameError: name 't' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _28 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.34s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:40:08 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') dir(q1) q1.sage() q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? NameError: name 't' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _28 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] _30 = ( - 324*t^2 + 324*t - 63)[1] Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.35s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:39:57 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') dir(q1) q1.sage()(0) q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 667, in sage File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/sage_eval.py", line 106, in sage_eval File "", line 0, in ? NameError: name 't' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _28 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] _30 = ( - 324*t^2 + 324*t - 63)[1] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.35s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:39:29 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') dir(q1) q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _28 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] _29 = ( - 324*t^2 + 324*t - 63)[1] Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.35s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:39:13 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') q1(0) q1(1) #dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _28 = ( - 324*t^2 + 324*t - 63)[0] _29 = ( - 324*t^2 + 324*t - 63)[1] Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.35s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:38:39 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) q1 = maxima(str(p[0])).diff('t') q2 = maxima(str(p[1])).diff('t') dir(q1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _28 = ['Hom', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__del__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__float____', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__len__', '__long__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_check_valid', '_cmp_', '_coeff_repr', '_create', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_', '_maxima_', '_maxima_init_', '_mul_', '_name', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_r_action', '_rational_', '_reduce', '_repr_', '_rich_to_bool', '_sage_', '_sage_doc_', '_session_number', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'bool', 'category', 'comma', 'db', 'derivative', 'diff', 'display2d', 'dump', 'dumps', 'gen', 'hasattr', 'imag', 'integral', 'integrate', 'is_nonzero', 'is_unit', 'is_zero', 'multiplicative_order', 'name', 'nintegral', 'numer', 'order', 'parent', 'partial_fraction_decomposition', 'real', 'rename', 'reset_name', 'sage', 'save', 'str', 'subst', 'version'] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.35s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:33:06 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) maxima(str(p[0])).diff('t')(0) maxima(str(p[1])).diff('t')(1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = ( - 324*t^2 + 324*t - 63)[0] _27 = (324*t^2 - 432*t + 135)[1] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.38s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:32:46 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) maxima(str(p[0])).diff('t').eval(0) maxima(str(p[1])).diff('t').eval(1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = eval( - 324*t^2 + 324*t - 63,0) _27 = eval(324*t^2 - 432*t + 135,1) Exiting SAGE (CPU time 0m0.17s, Wall time 0m0.37s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:23:40 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) maxima(str(p[0])).diff('t') maxima(str(p[1])).diff('t') #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = -324*t^2 + 324*t - 63 _27 = 324*t^2 - 432*t + 135 Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.33s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:23:06 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) maxima(str(p[0])).diff('t') #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = -324*t^2 + 324*t - 63 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.32s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:22:47 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) p = a(3*t-1) maxima(str(p[0])).diff('t') #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 1 - 3*x + 3*x^2 - x^3 (parent: Polynomial Ring in x, y over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:21:29 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) p = a(3*t-1) derivative(p[0],'t') #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 1 - 3*x + 3*x^2 - x^3 (parent: Polynomial Ring in x, y over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:21:01 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) p = a(x) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 1 - 3*x + 3*x^2 - x^3 (parent: Polynomial Ring in x, y over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.05s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:20:42 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(x): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) p = a(3*x-1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 8 - 36*x + 54*x^2 - 27*x^3 (parent: Polynomial Ring in x, y over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:20:24 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.09875 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0008391952966367 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:19:52 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.0975 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 0.99990169529663675 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:19:42 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.095 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 0.99802669529663690 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:19:41 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) p = a(3*x-1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 1 - 3*x + 3*x^2 - x^3 (parent: Polynomial Ring in x, y over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:19:33 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.1 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0017766952966369 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:19:31 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) #p = a(3*x-1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:19:27 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.09 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 0.99427669529663698 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:19:08 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.09999999999999999 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0017766952966369 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:19:05 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.0999999 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0017766202966367 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:18:58 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) p = a(3*x-1) #~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-#25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 1 - 3*x + 3*x^2 - x^3 (parent: Polynomial Ring in x, y over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:54 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.099999 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0017759452966368 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:50 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.09999999999999 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0017766952966296 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:43 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.99999999999 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.6767766952891372 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:39 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.1 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0017766952966369 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:35 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.09 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 0.99427669529663698 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:18:32 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) #p = a(3*x-1) ~BasisToStandard([Bernstein(x,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 2422, in __invert__ ZeroDivisionError: self is not invertible ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:30 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.05 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 0.96427669529663695 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:23 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.1 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0017766952966369 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:18:21 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(x,3,0)*Vec(-2,0)+Bernstein(x,3,1)*Vec(-1,3)+Bernstein(x,3,2)*Vec(2,2)+Bernstein(x,3,3)*Vec(3,1) p = a(3*x-1) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 1 - 3*x + 3*x^2 - x^3 (parent: Polynomial Ring in x, y over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:20 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.2 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.0767766952966369 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:17 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.3 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.1517766952966371 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:14 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.62 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.3917766952966368 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:11 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.61 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.3842766952966370 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:18:05 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) guess = 1.6 f = (sqrt(2)/2)*Bern(0,3) + guess*Bern(1, 3) + guess*Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _8 = 1.3767766952966372 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:17:57 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*x-1) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) #p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 8 - 36*x + 54*x^2 - 27*x^3 (parent: Polynomial Ring in x, y over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:17:48 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*x-1) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) p[0] Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 8 - 36*x + 54*x^2 - 27*x^3 (parent: Polynomial Ring in x, y over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:17:24 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*x-1) derivative(p[0]) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 8 - 36*x + 54*x^2 - 27*x^3 (parent: Polynomial Ring in x, y over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _27 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:17:09 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) f = (sqrt(2)/2)*Bern(0,3) + Bern(1, 3) + Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) f(1/2) Output: ...: ...: ...: ...: ...: ...: _7 = 0.92677669529663687 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:17:03 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) f = (sqrt(2)/2)*Bern(0,3) + Bern(1, 3) + Bern(2, 3) + (sqrt(2)/2)*Bern(3, 3) Output: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:16:54 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*x-1) p[0].derivative() ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 8 - 36*x + 54*x^2 - 27*x^3 (parent: Polynomial Ring in x, y over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _27 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:16:44 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*x-1) p[0].derivative() p[1].derivative() ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) derivative? Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in a File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1574, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1567, in _right_scalar_multiply File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -2 (parent: Univariate Polynomial Ring in t over Rational Field) and 8 - 36*x + 54*x^2 - 27*x^3 (parent: Polynomial Ring in x, y over Rational Field) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'p' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _28 = [-25] [ 20] [ -7] [ 2] Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: derivative(x) Docstring: Return the derivative of a polynomial x. EXAMPLES: f = cyclotomic_polynomial(10) derivative(f) 4*x^3 - 3*x^2 + 2*x - 1 R = PolynomialRing(GF(7)) gen = R.gen(); x = gen; f = x^7 + x derivative(f) 1 Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:16:08 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p p[0].derivative() ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) derivative? Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FreeModuleElement_generic_dense' object has no attribute 'derivative' ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _28 = [-25] [ 20] [ -7] [ 2] Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: derivative(x) Docstring: Return the derivative of a polynomial x. EXAMPLES: f = cyclotomic_polynomial(10) derivative(f) 4*x^3 - 3*x^2 + 2*x - 1 R = PolynomialRing(GF(7)) gen = R.gen(); x = gen; f = x^7 + x derivative(f) 1 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:15:48 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p p[0].derivative() ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) dir(p[0]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FreeModuleElement_generic_dense' object has no attribute 'derivative' ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _28 = [-25] [ 20] [ -7] [ 2] _29 = ['Hom', 'Mod', '_FreeModuleElement_generic_dense__entries', '__abs__', '__add__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__len__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rsub__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__', '__xor__', '_add_', '_coeff_repr', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_matrix_multiply', '_maxima_', '_maxima_init_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_rich_to_bool', '_sage_', '_scalar_multiply', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_vector_', 'additive_order', 'base_ring', 'category', 'change_ring', 'copy', 'db', 'degree', 'denominator', 'dict', 'dot_product', 'dump', 'dumps', 'element', 'entries', 'get', 'inner_product', 'is_dense', 'is_nonzero', 'is_sparse', 'is_vector', 'is_zero', 'lift', 'list', 'nonzero_positions', 'order', 'parent', 'rename', 'reset_name', 'save', 'set', 'support', 'version'] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:15:47 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) sqrt(2)*Bern(2,3) Output: ...: ...: ...: ...: ...: ...: _6 = -4.2426406871192857*x^3 + 4.2426406871192857*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:15:38 2006 Input: x = RR['x'].gen() def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) x Output: ...: ...: ...: ...: ...: ...: _6 = 1.0000000000000000*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:15:29 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p p[0].derivative() ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FreeModuleElement_generic_dense' object has no attribute 'derivative' ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _28 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:15:28 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p p[0].derivative() ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'FreeModuleElement_generic_dense' object has no attribute 'derivative' ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _28 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:15:10 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p derivative(p[0]) derivative(p[1]) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FreeModuleElement_generic_dense' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'FreeModuleElement_generic_dense' object has no attribute 'derivative' ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _29 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.06s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:14:34 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p maxima.eval(maxima(str(p[0])).deriv('t')) maxima(str(p[1])).deriv('t') ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = 'deriv( - 108*t^3 + 162*t^2 - 63*t + 5,t)' _28 = deriv(108*t^3 - 216*t^2 + 135*t - 25,t) _29 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.41s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:14:33 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) x Output: ...: ...: ...: ...: ...: ...: _5 = x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:13:40 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) sqrt(2)*RR(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:13:31 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) sqrt(2)*x Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.4142135623730951 (parent: Real Field with 53 bits of precision) and x (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:13:14 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) sqrt(2)*Bern(0,3) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.4142135623730951 (parent: Real Field with 53 bits of precision) and -x^3 + 3*x^2 - 3*x + 1 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:13:10 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p maxima(str(p[0])).deriv('t') maxima(str(p[1])).deriv('t') ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = deriv( - 108*t^3 + 162*t^2 - 63*t + 5,t) _28 = deriv(108*t^3 - 216*t^2 + 135*t - 25,t) _29 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.33s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 20:12:13 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:06:38 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) f(sqrt(2)/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:06:13 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) f = Bern(2,4) f(sqrt(2)) Output: ...: ...: ...: ...: ...: ...: _6 = 2.0588745030457218 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:06:06 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) f = Bern(2,4) f(1.1) Output: ...: ...: ...: ...: ...: ...: _6 = 0.072600000000000622 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:06:01 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) f = Bern(2,4) f Output: ...: ...: ...: ...: ...: ...: _6 = 6*x^4 - 12*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:05:54 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return (C(d,n))*(pow(x,n))*pow(1-x,d-n) Bern(2,4) Output: ...: ...: ...: ...: ...: ...: _5 = 6*x^4 - 12*x^3 + 6*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:05:39 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return RR(C(d,n))*(pow(x,n))*pow(1-x,d-n) Bern(2,4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 6.0000000000000000 (parent: Real Field with 53 bits of precision) and x^2 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:05:17 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return RR(C(d,n))*(pow(x,n))*(1-x)^(d-n) (RR(2)^RR(2)) Output: ...: ...: ...: ...: ...: ...: _5 = 4.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:05:09 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(pow(x,n))*(1-x)^(d-n) (RR(2)^RR(2)) Output: ...: ...: ...: ...: ...: ...: _5 = 4.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:04:58 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) (RR(2)^RR(2)) Output: ...: ...: ...: ...: ...: ...: _5 = 4.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:04:51 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) pow(RR(2),RR(2)) Output: ...: ...: ...: ...: ...: ...: _5 = 4.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 20:04:44 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) pow(2,2) Output: ...: ...: ...: ...: ...: ...: _5 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:57:02 2006 Input: sqrt(2)-RR(pi/2) Output: _3 = -0.15658276442180141 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:56:58 2006 Input: sqrt(2)-(pi/2) Output: _3 = (1.4142135623730951 - (pi/2)) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:56:14 2006 Input: sqrt(2)-1 Output: _3 = 0.41421356237309515 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:55:58 2006 Input: 1-sqrt(2) Output: _3 = -0.41421356237309515 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '203.123' ************** SAGE ***************** Host 203.123.69.214 (203.123.69.214) Time: Tue May 30 19:53:57 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.78s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:53:24 2006 Input: cos(pi/2) Output: _3 = 0.000000000000000061232339957367660 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:51:38 2006 Input: (x^3).__floordiv__(x^3 + 3*x^2 + 3*x + 1) (x^3).__mod__(x^3 + 3*x^2 + 3*x + 1) 1 + (-3*x^2 - 3*x - 1)/(x^3 + 3*x^2 + 3*x + 1) (1 + (-3*x^2 - 3*x - 1)/(x^3 + 3*x^2 + 3*x + 1))*(x^3 + 3*x^2 + 3*x + 1) (x^3)//(x^3 + 3*x^2 + 3*x + 1) Output: _3 = 1 _4 = -3*x^2 - 3*x - 1 _5 = x^3/(x^3 + 3*x^2 + 3*x + 1) _6 = x^3 _7 = 1 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:51:26 2006 Input: mpi = 3.1415926535897931 dx = derivative(maxima('cos(mpi/2*(x-0.5))')) dy = derivative(maxima('sin(mpi/2*(x-0.5))')) dx dy mpi*cos(mpi*(0)/2)/2 -mpi*sin(mpi*(0)/2)/2 Output: _6 = -mpi*sin(mpi*(x - 0.5)/2)/2 _7 = mpi*cos(mpi*(x - 0.5)/2)/2 _8 = 1.57079632679489656 _9 = -0.000000000000000000 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:51:07 2006 Input: mpi = 3.1415926535897931 dx = derivative(maxima('cos(mpi/2*(x-0.5))')) dy = derivative(maxima('sin(mpi/2*(x-0.5))')) dx dy (mpi*cos(mpi*(x - 0.5)/2)/2)(0.5) (-mpi*sin(mpi*(x - 0.5)/2)/2)(0.5) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 344, in element.RingElement.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and 0.50000000000000000 (parent: Real Field with 53 bits of precision) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 344, in element.RingElement.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and 0.50000000000000000 (parent: Real Field with 53 bits of precision) _6 = -mpi*sin(mpi*(x - 0.5)/2)/2 _7 = mpi*cos(mpi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:50:57 2006 Input: (x^3).__floordiv__(x^3 + 3*x^2 + 3*x + 1) (x^3).__mod__(x^3 + 3*x^2 + 3*x + 1) 1 + (-3*x^2 - 3*x - 1)/(x^3 + 3*x^2 + 3*x + 1) (1 + (-3*x^2 - 3*x - 1)/(x^3 + 3*x^2 + 3*x + 1))*(x^3 + 3*x^2 + 3*x + 1) Output: _3 = 1 _4 = -3*x^2 - 3*x - 1 _5 = x^3/(x^3 + 3*x^2 + 3*x + 1) _6 = x^3 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:50:28 2006 Input: mpi = 3.1415926535897931 dx = derivative(maxima('cos(mpi/2*(x-0.5))')) dy = derivative(maxima('sin(mpi/2*(x-0.5))')) dx dy Output: _6 = -mpi*sin(mpi*(x - 0.5)/2)/2 _7 = mpi*cos(mpi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:50:04 2006 Input: mpi = 3.1415926535897931 dx = derivative(maxima('cos(mpi/2*(x-0.5))')) dy = derivative(maxima('sin(mpi/2*(x-0.5))')) dx dy Output: _6 = -mpi*sin(mpi*(x - 0.5)/2)/2 _7 = mpi*cos(mpi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:59 2006 Input: mpi = 3.1415926535897931 dx = derivative(maxima('cos(mpi/2*(x-0.5))')) dy = derivative(maxima('sin(mpi/2*(x-0.5))').diff('x',0)) dx dy Output: _6 = -mpi*sin(mpi*(x - 0.5)/2)/2 _7 = mpi*cos(mpi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:59 2006 Input: (x^3).__floordiv__(x^3 + 3*x^2 + 3*x + 1) (x^3).__mod__(x^3 + 3*x^2 + 3*x + 1) Output: _3 = 1 _4 = -3*x^2 - 3*x - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:34 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(x-0.5))').diff('x',0) dy = maxima('sin(mpi/2*(x-0.5))').diff('x',0) dx dy Output: _6 = cos(mpi*(x - 0.5)/2) _7 = sin(mpi*(x - 0.5)/2) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:28 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0) dx dy Output: _6 = cos(mpi*(t - 0.5)/2) _7 = sin(mpi*(t - 0.5)/2) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:19 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0) dx dy Output: _6 = cos(mpi*(t - 0.5)/2) _7 = sin(mpi*(t - 0.5)/2) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:17 2006 Input: (x^3).__div__(x^3 + 3*x^2 + 3*x + 1) Output: _3 = x^3/(x^3 + 3*x^2 + 3*x + 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:10 2006 Input: float(pi) dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0) dx dy Output: _3 = 3.1415926535897931 _6 = cos(mpi*(t - 0.5)/2) _7 = sin(mpi*(t - 0.5)/2) Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:49:04 2006 Input: pi dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0) dx dy Output: _3 = pi _6 = cos(mpi*(t - 0.5)/2) _7 = sin(mpi*(t - 0.5)/2) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:48:57 2006 Input: (x^3).__mod__(x^3 + 3*x^2 + 3*x + 1) Output: _3 = -3*x^2 - 3*x - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:48:43 2006 Input: dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0) dx dy Output: _5 = cos(mpi*(t - 0.5)/2) _6 = sin(mpi*(t - 0.5)/2) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:48:38 2006 Input: dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0) Output: Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:48:29 2006 Input: __mod__(x^3,x^3 + 3*x^2 + 3*x + 1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '__mod__' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:47:12 2006 Input: (x^3)/(x^3 + 3*x^2 + 3*x + 1) Output: _3 = x^3/(x^3 + 3*x^2 + 3*x + 1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:47:02 2006 Input: (x^3)/(x^3 + 3x^2 + 3x + 1) Output: Errors: ------------------------------------------------------------ File "", line 1 (x**ZZ(3))/(x**ZZ(3) + ZZ(3)x**ZZ(2) + ZZ(3)x + ZZ(1)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:44:56 2006 Input: def C(n,k): n = ZZ(n) k = ZZ(k) return ((n.factorial())/(((n-k).factorial())*(k.factorial()))) def Bern(n,d): n = (n) d = (d) return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return 1#(a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) Bern(0,1) Bern(1,1) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = -x + 1 _7 = x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:40:13 2006 Input: def C(n,k): n = ZZ(n) k = ZZ(k) return (RR(n.factorial())/(RR((n-k).factorial())*RR(k.factorial()))) def Bern(n,d): n = RR(n) d = RR(d) return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return 1#(a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) Bern(2,4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in Bern File "", line 2, in C File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/integer_ring.py", line 154, in __call__ File "integer.pyx", line 204, in integer.Integer.__init__ TypeError: Unable to coerce 4.0000000000000000 (of type ) to an Integer. ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:39:44 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (RR(n.factorial())/(RR((n-k).factorial())*RR(k.factorial()))) def Bern(n,d): n = RR(n) d = RR(d) return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return 1#(a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) Bern(2,4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 4, in Bern File "", line 2, in C File "integer.pyx", line 204, in integer.Integer.__init__ TypeError: Unable to coerce 4.0000000000000000 (of type ) to an Integer. ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:38:22 2006 Input: def BezierEval(p,tval): n = len(p) if n == 1: return p[0] return BezierEval([(1-tval)*p[i]+tval*p[i+1] for i in range(n-1)],tval) BezierEvail(((a/2,-a/2),(a,0),(a/2,a/2)), 0.5) Output: Errors: ------------------------------------------------------------ File "", line 5 l) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'BezierEvail' is not defined ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:37:23 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (RR(n.factorial())/(RR((n-k).factorial())*RR(k.factorial()))) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return 1#(a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) Bern(2,4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 6.0000000000000000 (parent: Real Field with 53 bits of precision) and x^2 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:37:11 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (RR(n.factorial())/(RR((n-k).factorial())*RR(k.factorial()))) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return 1#(a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) C(4,2) Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 6.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:37:03 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (RR(n.factorial())/(RR((n-k).factorial())*RR(k.factorial()))) def Bern(n,d): return 1#C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return 1#(a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) C(4,2) Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 6.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:36:55 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (RR(n.factorial())/(RR((n-k).factorial())*RR(k.factorial()))) def Bern(n,d): return 1#C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return 1#(a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) Output: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:36:14 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) RR(ZZ(3).factorial()) (Bern(0,2)) Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 6.0000000000000000 _7 = x^2 - 2*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:36:08 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) ZZ(3).factorial() (Bern(0,2)) Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 6 _7 = x^2 - 2*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:36:04 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0.5) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0.5) dx dy t=0 (mpi*cos(mpi*(t - 0.5)/2)/2) / (-mpi*sin(mpi*(t - 0.5)/2)/2) Output: _6 = 'diff(cos(mpi*(t - 0.5)/2),t,0.5) _7 = 'diff(sin(mpi*(t - 0.5)/2),t,0.5) _9 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.31s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:36:01 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) QQ(3).factorial() (Bern(0,2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'rational.Rational' object has no attribute 'factorial' ...: ...: ...: ...: ...: ...: ...: ...: _7 = x^2 - 2*x + 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:35:41 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) 3.factorial() (Bern(0,2)) Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 6 _7 = x^2 - 2*x + 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:35:30 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (RR(n.factorial())/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) (Bern(0,2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.0000000000000000 (parent: Real Field with 53 bits of precision) and 1 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:33:15 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return RR(C(d,n))*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) (Bern(0,2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.0000000000000000 (parent: Real Field with 53 bits of precision) and 1 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:33:02 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return (n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) (Bern(0,2)) Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = x^2 - 2*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:32:52 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return RR(n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) (Bern(0,2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.0000000000000000 (parent: Real Field with 53 bits of precision) and 1 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:32:40 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return RR(n.factorial()/((n-k).factorial()*k.factorial())) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) RR(Bern(0,2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.0000000000000000 (parent: Real Field with 53 bits of precision) and 1 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:32:22 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) RR(Bern(0,2)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x^2 - 2*x + 1') to real number. ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:32:04 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) ZZ QQ RR Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = Integer Ring _7 = Rational Field _8 = Real Field with 53 bits of precision Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:31:42 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) print RationalField()(Bern(0, 2)(2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:31:36 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) print RationalField()(Bern(0, 2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:31:30 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) RationalField()(Bern(0, 2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:30:28 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2)) Bern2(2, float(sqrt(2)), 2, 1/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern2 File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: cannot coerce nonconstant polynomial to float ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:29:25 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2))(t) Bern2(2, float(sqrt(2)), 2, 1/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern2 File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: cannot coerce nonconstant polynomial to float ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:29:14 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2))(t) Bern2(2, (float)sqrt(2), 2, 1/2) Output: Errors: ------------------------------------------------------------ File "", line 1 Bern2(ZZ(2), (float)sqrt(ZZ(2)), ZZ(2), ZZ(1)/ZZ(2)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:29:06 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2))(t) Bern2(2, sqrt(2), 2, 1/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern2 File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 1.4142135623730951 (parent: Real Field with 53 bits of precision) and -2*x^2 + 2*x (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:28:39 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2))(t) Bern2(2, 2, 2, 1/2) Output: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:27:57 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2))(t) Bern2(sqrt(2)/2, sqrt(2), sqrt(2)/2, 1/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern2 File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 0.70710678118654757 (parent: Real Field with 53 bits of precision) and x^2 - 2*x + 1 (parent: Univariate Polynomial Ring in x over Rational Field) ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:27:43 2006 Input: def Bern2(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2))(t) Bern2(sqrt(2)/2, sqrt(2), sqrt(2)/2, 1/2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern2 NameError: global name 'Bern' is not defined ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:27:15 2006 Input: def Bern3(a, b, c, t): return (a*Bern(0,2) + b*Bern(1,2) + c*Bern(2,2))(t) Output: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:24:41 2006 Input: cos((pi/2)(x-(1/2)) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:24:34 2006 Input: def F(): return cos((pi/2)(x-(1/2)), sin((pi/2)(x-(1/2)) F() Output: Errors: ------------------------------------------------------------ File "", line 4 F() ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:24:25 2006 Input: def F(): return cos((pi/2)(x-(1/2)), sin((pi/2)(x-(1/2)) F() Output: Errors: ------------------------------------------------------------ File "", line 5 F() ^ SyntaxError: invalid syntax ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:24:20 2006 Input: def F(): return 1, 2 F() Output: ...: ...: _4 = (1, 2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:24:14 2006 Input: def F(): return 1, 2 F() Output: Errors: ------------------------------------------------------------ File "", line 3 F() ^ SyntaxError: invalid syntax ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:24:05 2006 Input: def F(): return cos((pi/2)(x-(1/2)), sin((pi/2)(x-(1/2)) F() Output: Errors: ------------------------------------------------------------ File "", line 4 F() ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:23:51 2006 Input: def F(t): return cos((pi/2)(x-(1/2)), sin((pi/2)(x-(1/2)) F(0) Output: Errors: ------------------------------------------------------------ File "", line 4 F(ZZ(0)) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:23:34 2006 Input: def F(t): return cos((pi/2)(t-(1/2)), sin((pi/2)(t-(1/2)) print F(0) Output: Errors: ------------------------------------------------------------ File "", line 4 print F(ZZ(0)) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:23:25 2006 Input: def F(t): return cos((pi/2)(x-(1/2)), sin((pi/2)(x-(1/2)) print F(0) Output: Errors: ------------------------------------------------------------ File "", line 4 print F(ZZ(0)) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:23:18 2006 Input: def F(t): return cos((pi/2)(x-(1/2)), sin((pi/2)(x-(1/2)) print F(0) - 1 Output: Errors: ------------------------------------------------------------ File "", line 4 print F(ZZ(0)) - ZZ(1) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:22:16 2006 Input: def F(t): return 1, 2 print F(1) Output: ...: ...: (1, 2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:22:11 2006 Input: def F(t): return 1, 2 Output: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:19:45 2006 Input: sqrt(2) Output: _3 = 1.4142135623730951 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:10:36 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) maxima("sin(pi/2*(x-(1/2)))").diff('x') Output: _3 = -pi*sin(pi*(x - 1/2)/2)/2 _4 = pi*cos(pi*(x - 1/2)/2)/2 _5 = -pi*sin(pi*(x - 1/2)/2)/2 _6 = pi*cos(pi*(x - 1/2)/2)/2 _7 = pi*cos(pi*(x - 1/2)/2)/2 Exiting SAGE (CPU time 0m0.16s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:10:25 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',0) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',0) dx dy t=0 (mpi*cos(mpi*(t - 0.5)/2)/2) / (-mpi*sin(mpi*(t - 0.5)/2)/2) Output: _6 = cos(mpi*(t - 0.5)/2) _7 = sin(mpi*(t - 0.5)/2) _9 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:10:23 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) maxima("sin(pi/2*(x-(1/2)))") Output: _3 = -pi*sin(pi*(x - 1/2)/2)/2 _4 = pi*cos(pi*(x - 1/2)/2)/2 _5 = -pi*sin(pi*(x - 1/2)/2)/2 _6 = pi*cos(pi*(x - 1/2)/2)/2 _7 = sin(pi*(x - 1/2)/2) Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:09:55 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',1) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',1) dx dy t=1 (mpi*cos(mpi*(t - 0.5)/2)/2) / (-mpi*sin(mpi*(t - 0.5)/2)/2) Output: _6 = -mpi*sin(mpi*(t - 0.5)/2)/2 _7 = mpi*cos(mpi*(t - 0.5)/2)/2 _9 = -1.0000000000000000 Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:09:30 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',1) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',1) dx dy t=1 -mpi*sin(mpi*(t - 0.5)/2)/2 Output: _6 = -mpi*sin(mpi*(t - 0.5)/2)/2 _7 = mpi*cos(mpi*(t - 0.5)/2)/2 _9 = -1.1107207345395915 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:09:26 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) maxima('sin(pi/2*(x-(1/2))).diff("x")') Output: _3 = -pi*sin(pi*(x - 1/2)/2)/2 _4 = pi*cos(pi*(x - 1/2)/2)/2 _5 = -pi*sin(pi*(x - 1/2)/2)/2 _6 = pi*cos(pi*(x - 1/2)/2)/2 _7 = sin(pi*(x - 1/2)/2).del("x") Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:09:23 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',1) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',1) t=1 -mpi*sin(mpi*(t - 0.5)/2)/2 Output: _7 = -1.1107207345395915 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:09:07 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(t-0.5))').diff('t',1) dy = maxima('sin(mpi/2*(t-0.5))').diff('t',1) t=1 -mpi*sin(mpi*(t - 0.5)/2)/2 Output: _7 = -1.1107207345395915 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:08:18 2006 Input: mpi = 3.1415926535897931 dx = maxima('cos(mpi/2*(x-0.5))').diff('x',1) x=1 float(-pi*sin(pi*(x - 0.5)/2)/2) float(pi) Output: _6 = -1.1107207345395915 _7 = 3.1415926535897931 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:08:07 2006 Input: x = 0 derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) x = 1 derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))')) Output: _4 = -pi*sin(pi*(x - 1/2)/2)/2 _5 = pi*cos(pi*(x - 1/2)/2)/2 _7 = -pi*sin(pi*(x - 1/2)/2)/2 _8 = pi*cos(pi*(x - 1/2)/2)/2 Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.34s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:08:03 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) x=1 float(-pi*sin(pi*(x - 0.5)/2)/2) float(pi) Output: _5 = -1.1107207345395915 _6 = 3.1415926535897931 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:07:44 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) x=1 float(-pi*sin(pi*(x - 0.5)/2)/2) Output: _5 = -1.1107207345395915 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.47s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:07:36 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx x=1 float(-pi*sin(pi*(x - 0.5)/2)/2) Output: _4 = -pi*sin(pi*(x - 0.5)/2)/2 _6 = -1.1107207345395915 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:07:27 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx x=1 -pi*sin(pi*(x - 0.5)/2)/2 Output: _4 = -pi*sin(pi*(x - 0.5)/2)/2 _6 = (((-1*pi)*0.70710678118654746)/2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:07:14 2006 Input: x = PolynomialRing(RationalField()).gen() sin(x) f = PolynomialRing(QQ, 'x') f = derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) print f Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. _7 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _8 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _9 = (pi*cos(pi*(x - 1/2)/2)/2)[1] ( - pi*sin(pi*(x - 1/2)/2)/2)[0] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:07:03 2006 Input: pi = 3.14 dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx dx(1) x=1 -pi*sin(pi*(x - 0.5)/2)/2 Output: _5 = -pi*sin(pi*(x - 0.5)/2)/2 _6 = ( - pi*sin(pi*(x - 0.5)/2)/2)[1] _8 = -1.1097155343354246 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:57 2006 Input: pi = 3.14 dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx x=1 -pi*sin(pi*(x - 0.5)/2)/2 Output: _5 = -pi*sin(pi*(x - 0.5)/2)/2 _7 = -1.1097155343354246 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:50 2006 Input: pi = 3.14 dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) x=1 -pi*sin(pi*(x - 0.5)/2)/2 Output: _6 = -1.1097155343354246 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:38 2006 Input: pi = 3.14 dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) -pi*sin(pi*(x - 0.5)/2)/2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 344, in element.RingElement.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and 0.50000000000000000 (parent: Real Field with 53 bits of precision) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:33 2006 Input: pi = 3.14 dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx Output: _5 = -pi*sin(pi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:29 2006 Input: pi = 3.14 dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx Output: _5 = -pi*sin(pi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:17 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx Output: _4 = -pi*sin(pi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:13 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',0) dx Output: _4 = cos(pi*(x - 0.5)/2) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '65.96.4' ************** SAGE ***************** Host 65.96.4.182 (65.96.4.182) Time: Tue May 30 19:06:10 2006 Input: multiplicative_order(Mod(2, 188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059)) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 6068 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:06:07 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',1) dx Output: _4 = -pi*sin(pi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:05:46 2006 Input: pi = 3.14 dx = maxima('cos(pi/2*(x-0.5))').diff('x',0) dx Output: _5 = cos(pi*(x - 0.5)/2) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:05:43 2006 Input: f = PolynomialRing(QQ, 'x') f = derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) print f Output: _5 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _6 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _7 = (pi*cos(pi*(x - 1/2)/2)/2)[1] ( - pi*sin(pi*(x - 1/2)/2)/2)[0] Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:05:37 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',0) dx Output: _4 = cos(pi*(x - 0.5)/2) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:05:33 2006 Input: dx = maxima('cos(pi/2*(x-0.5))').diff('x',0) Output: Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:05:30 2006 Input: f = PolynomialRing(QQ, 'x') f = derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) Output: _5 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _6 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _7 = (pi*cos(pi*(x - 1/2)/2)/2)[1] Exiting SAGE (CPU time 0m0.13s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:05:25 2006 Input: f = PolynomialRing(QQ, 'x') derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) Output: _4 = ( - pi*sin(pi*(x - 1/2)/2)/2)[0] _5 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _6 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _7 = (pi*cos(pi*(x - 1/2)/2)/2)[1] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.37s). '65.96.4' ************** SAGE ***************** Host 65.96.4.182 (65.96.4.182) Time: Tue May 30 19:05:21 2006 Input: multiplicative_order(Mod(2, 15)) Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:05:12 2006 Input: PolynomialRing(QQ, 'x')derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) Output: Errors: ------------------------------------------------------------ File "", line 1 PolynomialRing(QQ, 'x')derivative(maxima('cos(pi/2*(x-(1/2)))'))(ZZ(0)) ^ SyntaxError: invalid syntax _4 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _5 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _6 = (pi*cos(pi*(x - 1/2)/2)/2)[1] Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.33s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:04:29 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) sin(25) Output: _3 = ( - pi*sin(pi*(x - 1/2)/2)/2)[0] _4 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _5 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _6 = (pi*cos(pi*(x - 1/2)/2)/2)[1] _7 = -0.13235175009777303 Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:04:25 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) sinf(25) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'sinf' is not defined _3 = ( - pi*sin(pi*(x - 1/2)/2)/2)[0] _4 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _5 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _6 = (pi*cos(pi*(x - 1/2)/2)/2)[1] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:03:58 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))')) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) Output: _3 = -pi*sin(pi*(x - 1/2)/2)/2 _4 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _5 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _6 = (pi*cos(pi*(x - 1/2)/2)/2)[1] Exiting SAGE (CPU time 0m0.14s, Wall time 0m0.36s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:03:44 2006 Input: dx= derivative(maxima('cos(pi/2*(x-0.5))'))(0) float(dx) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1185, in __float__ ValueError: invalid literal for float(): ( - 0.5*pi*sin(0.5*pi*(x - 0.5)))[0] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:03:29 2006 Input: dx= derivative(maxima('cos(pi/2*(x-0.5))'))(0) dx Output: _4 = ( - pi*sin(pi*(x - 0.5)/2)/2)[0] Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:03:24 2006 Input: dx= derivative(maxima('cos(pi/2*(x-0.5))'))(0) Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:03:19 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))'))(0) derivative(maxima('sin(pi/2*(x-(1/2)))'))(0) derivative(maxima('cos(pi/2*(x-(1/2)))'))(1) derivative(maxima('sin(pi/2*(x-(1/2)))'))(1) Output: _3 = ( - pi*sin(pi*(x - 1/2)/2)/2)[0] _4 = (pi*cos(pi*(x - 1/2)/2)/2)[0] _5 = ( - pi*sin(pi*(x - 1/2)/2)/2)[1] _6 = (pi*cos(pi*(x - 1/2)/2)/2)[1] Exiting SAGE (CPU time 0m0.15s, Wall time 0m0.37s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:03:08 2006 Input: fx= derivative(maxima('cos(pi/2*(x-0.5))')) fx(0) Output: _4 = ( - pi*sin(pi*(x - 0.5)/2)/2)[0] Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:03:01 2006 Input: fx= derivative(maxima('cos(pi/2*(x-0.5))')) Output: Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:02:58 2006 Input: fx= derivative(maxima('cos(pi/2*(x-0.5))')) ) Output: Errors: ------------------------------------------------------------ File "", line 1 fx= derivative(maxima('cos(pi/2*(x-0.5))')) ) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:02:41 2006 Input: ( derivative(maxima('cos(pi/2*(x-0.5))'), 0) ) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: derivative() takes exactly 1 argument (2 given) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:02:32 2006 Input: x = 0 ( derivative(maxima('cos(pi/2*(x-0.5))')) ) Output: _4 = -pi*sin(pi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:02:22 2006 Input: ( derivative(maxima('cos(pi/2*(x-0.5))')) ) Output: _3 = -pi*sin(pi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:02:16 2006 Input: float ( derivative(maxima('cos(pi/2*(x-0.5))')) ) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1185, in __float__ ValueError: invalid literal for float(): -0.5*pi*sin(0.5*pi*(x - 0.5)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:01:59 2006 Input: derivative(maxima('cos(pi/2*(x-(1/2)))')) Output: _3 = -pi*sin(pi*(x - 1/2)/2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:01:54 2006 Input: derivative(maxima('cos(pi/2*(x-0.5))')) Output: _3 = -pi*sin(pi*(x - 0.5)/2)/2 Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:01:32 2006 Input: pi + .1 Output: Errors: ------------------------------------------------------------ File "", line 1 pi + .ZZ(1) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:01:26 2006 Input: pi Output: _3 = pi Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:01:08 2006 Input: derivative(maxima('sin(x)')) Output: _3 = cos(x) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:00:55 2006 Input: maxima('sin(x)') Output: _3 = sin(x) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:00:45 2006 Input: sin(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:00:38 2006 Input: sin(5*x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 815, in sin File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='5*x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:00:33 2006 Input: sin(5.5*x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 5.5000000000000000 (parent: Real Field with 53 bits of precision) and x (parent: Univariate Polynomial Ring in x over Rational Field) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:00:29 2006 Input: sin(5.5x) Output: Errors: ------------------------------------------------------------ File "", line 1 sin(RealField(max(6,RR.precision()))('5.5')x) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 19:00:26 2006 Input: sin(5.5) Output: _3 = -0.70554032557039192 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.96.4' ************** SAGE ***************** Host 65.96.4.182 (65.96.4.182) Time: Tue May 30 19:00:23 2006 Input: znorder(Mod(2, 15)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'znorder' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.96.4' ************** SAGE ***************** Host 65.96.4.182 (65.96.4.182) Time: Tue May 30 18:59:42 2006 Input: 188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059*2 Output: _3 = 376397625841215927677394478923300879614327126758834765401526712845977719430469330970638121213009486090634776022606793432399384642411468063759101313992442610337518615300514118 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '65.96.4' ************** SAGE ***************** Host 65.96.4.182 (65.96.4.182) Time: Tue May 30 18:59:33 2006 Input: 188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059*2 Output: _3 = 376397625841215927677394478923300879614327126758834765401526712845977719430469330970638121213009486090634776022606793432399384642411468063759101313992442610337518615300514118 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:54:19 2006 Input: fx = maxima('cos(pi/2*(x-0.5))') fx.diff(x,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1089, in diff File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 538, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 482, in function_call File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 391, in new File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 368, in __call__ File "sage_object.pyx", line 332, in sage_object.SageObject._maxima_ File "sage_object.pyx", line 282, in sage_object.SageObject._interface_ NotImplementedError: coercion of x (of type ) to Maxima not implemented: 'Polynomial_rational_dense' object has no attribute '_interface_init_' 'Polynomial_rational_dense' object has no attribute '_interface_init_' Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:54:02 2006 Input: fx = maxima('cos(pi/2*x-0.5)) fx.diff(x,0) Output: Errors: ------------------------------------------------------------ File "", line 1 fx = maxima('cos(pi/2*x-0.5)) ^ SyntaxError: EOL while scanning single-quoted string ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'fx' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:52:29 2006 Input: deriv('x^2+10x+5') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'deriv' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:52:11 2006 Input: 5+10 Output: _3 = 15 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:48:00 2006 Input: maxima.eval(maxima("x^2").deriv()) Output: _3 = 'deriv(x^2)' Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:46:28 2006 Input: maxima("x^2").deriv() Output: _3 = deriv(x^2) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:46:03 2006 Input: x.cos() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Polynomial_rational_dense' object has no attribute 'cos' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:44:17 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() a= derivative(maxima("cos(pi/2*(t-0.5))")) b= derivative(maxima("sin(pi/2*(t-0.5))")) dxdt dydt a b Output: _8 = deriv(.7071067811865476) _9 = deriv( - .7071067811865475) _10 = 0 _11 = 0 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.32s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:44:03 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))) dydt = maxima(sin(pi/2*(t-0.5))) a= derivative(maxima("cos(pi/2*(t-0.5))")) b= derivative(maxima("sin(pi/2*(t-0.5))")) dxdt dydt a b Output: _8 = .7071067811865476 _9 = -.7071067811865475 _10 = 0 _11 = 0 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.31s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:43:52 2006 Input: True Output: _3 = True Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:43:50 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))) dydt = maxima(sin(pi/2*(t-0.5))) a= derivative(maxima("cos(pi/2*(t-0.5))")) b= derivative(maxima("sin(pi/2*(t-0.5))")) Output: Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.30s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:43:45 2006 Input: True def IsOne(x): if x == 1: return True else return False Output: Errors: ------------------------------------------------------------ File "", line 4 se ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function _3 = True ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:43:38 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))) dydt = maxima(sin(pi/2*(t-0.5))). a= derivative(maxima("cos(pi/2*(t-0.5))")) b= derivative(maxima("sin(pi/2*(t-0.5))")) Output: Errors: ------------------------------------------------------------ File "", line 1 dydt = maxima(sin(pi/ZZ(2)*(t-RealField(max(6,RR.precision()))('0.5')))). ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.28s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:43:36 2006 Input: def IsOne(x): if x == 1: return True else return False IsOne(1) Output: Errors: ------------------------------------------------------------ File "", line 4 se ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'IsOne' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:43:19 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() derivative(maxima("cos(pi/2*(t-0.5))")) derivative(maxima("sin(pi/2*(t-0.5))")) Output: _6 = 0 _7 = 0 Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:42:56 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() derivative(maxima("cos(pi/2*(t-0.5))")) derivative(maxima("sin(pi/2*(t-0.5))")) dydt/dxdt Output: _6 = 0 _7 = 0 _8 = deriv( - .7071067811865475)/deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.12s, Wall time 0m0.31s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:42:48 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dxdt = derivative(maxima("cos(pi/2*(t-0.5))")) dydt = derivative(maxima("sin(pi/2*(t-0.5))")) dydt/dxdt Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 368, in element.RingElement.__div__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 740, in _div_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 391, in new File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Error executing code in Maxima CODE: sage0 : sage1 / sage5; Maxima ERROR: Division by 0 -- an error. Quitting. To debug this try debugmode(true); (%o48) Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.30s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:42:30 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dxdt = dirivative(maxima("cos(pi/2*(t-0.5))")) dydt = dirivative(maxima("sin(pi/2*(t-0.5))")) dydt/dxdt Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'dirivative' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'dirivative' is not defined _8 = deriv( - .7071067811865475)/deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:42:21 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dxdt = dervative(maxima("cos(pi/2*(t-0.5))")) dydt = dervative(maxima("sin(pi/2*(t-0.5))")) dydt/dxdt Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'dervative' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'dervative' is not defined _8 = deriv( - .7071067811865475)/deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:42:08 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dxdt = dervative(maxima("cos(pi/2*(t-0.5))") dydt = dervative(maxima("sin(pi/2*(t-0.5))") dydt/dxdt Output: Errors: ------------------------------------------------------------ File "", line 2 dydt = dervative(maxima("sin(pi/2*(t-0.5))") ^ SyntaxError: invalid syntax ...: _7 = deriv( - .7071067811865475)/deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.27s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:41:29 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dydt dxdt dydt/dxdt Output: _6 = deriv( - .7071067811865475) _7 = deriv(.7071067811865476) _8 = deriv( - .7071067811865475)/deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.10s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:41:25 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dydt dxdt float(dydt/dxdt) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 1185, in __float__ ValueError: invalid literal for float(): deriv( - .7071067811865475)/deriv(.7071067811865476) _6 = deriv( - .7071067811865475) _7 = deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.29s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:41:13 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dydt dxdt Output: _6 = deriv( - .7071067811865475) _7 = deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:41:07 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() Output: Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:40:44 2006 Input: x = RR['x'].0 maxima("cos(x)")*x Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 118, in coerce.bin_op File "coerce.pyx", line 80, in coerce.canonical_coercion File "coerce.pyx", line 49, in coerce.coerce File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 346, in _coerce_ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/maxima.py", line 372, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 368, in __call__ File "sage_object.pyx", line 332, in sage_object.SageObject._maxima_ File "sage_object.pyx", line 282, in sage_object.SageObject._interface_ NotImplementedError: coercion of 1.0000000000000000*x (of type ) to Maxima not implemented: 'Polynomial_generic_dense_field' object has no attribute '_interface_init_' 'Polynomial_generic_dense_field' object has no attribute '_interface_init_' Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:40:30 2006 Input: t= 0 dxdt = maxima(cos(pi/2*(t-0.5))).deriv() dydt = maxima(sin(pi/2*(t-0.5))).deriv() dydt/dxdt Output: _6 = deriv( - .7071067811865475)/deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.09s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:40:23 2006 Input: x = RR['x'].0 derivative(maxima("cos(x)")) Output: _4 = -sin(x) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.27s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:40:12 2006 Input: x = RR['x'].0 maxima("cos(x)") Output: _4 = cos(x) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:39:53 2006 Input: x = RR['x'].0 cos(3) Output: _4 = -0.98999249660044542 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:39:45 2006 Input: t= 0 maxima(cos(pi/2*(t-0.5))).deriv() Output: _4 = deriv(.7071067811865476) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:39:39 2006 Input: t= 0.3 maxima(cos(pi/2*(t-0.5))).deriv() Output: _4 = deriv(.9510565162951535) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:39:23 2006 Input: x = RR['x'].0 maxima("cos(x)").deriv() Output: _4 = deriv(cos(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:39:12 2006 Input: t= 0.3 math? derivative(10*x)(0) cos(pi/2*(t-0.5)) derivative(cos(0)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'mpfr.RealNumber' object has no attribute 'derivative' Type: module Base Class: String Form: Namespace: Interactive File: /usr/local/sage/sage-0.9/local/lib/python2.4/lib-dynload/math.so Docstring: This module is always available. It provides access to the mathematical functions defined by the C standard. _5 = 10 _6 = 0.95105651629515353 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:39:05 2006 Input: t= 0.3 math.help derivative(10*x)(0) cos(pi/2*(t-0.5)) derivative(cos(0)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'module' object has no attribute 'help' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'mpfr.RealNumber' object has no attribute 'derivative' _5 = 10 _6 = 0.95105651629515353 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:38:43 2006 Input: x = RR['x'].0 cos(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 161, in cos File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='1.0000000000000000*x') to real number. Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:38:32 2006 Input: x = RR['x'].0 x Output: _4 = 1.0000000000000000*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:37:44 2006 Input: a = cos(x) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 161, in cos File "mpfr.pyx", line 306, in mpfr.RealField.__call__ File "mpfr.pyx", line 608, in mpfr.RealNumber.__init__ TypeError: Unable to convert x (='x') to real number. Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:36:59 2006 Input: t= 0.3 derivative(10*x)(0) cos(pi/2*(t-0.5)) derivative(cos(0)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'mpfr.RealNumber' object has no attribute 'derivative' _4 = 10 _5 = 0.95105651629515353 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:36:41 2006 Input: t= 0.3 derivative(10*x)(0) cos(pi/2*(t-0.5)) Output: _4 = 10 _5 = 0.95105651629515353 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:36:36 2006 Input: t= 0.3 derivative(10x)(0) cos(pi/2*(t-0.5)) Output: Errors: ------------------------------------------------------------ File "", line 1 derivative(ZZ(10)x)(ZZ(0)) ^ SyntaxError: invalid syntax _5 = 0.95105651629515353 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:36:24 2006 Input: t= 0.3 derivative(cos(pi/2*(t-0.5)))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'mpfr.RealNumber' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:36:07 2006 Input: t= 0.3 derivative(x^2+23*x)(0) Output: _4 = 23 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:35:59 2006 Input: t= 0.3 derivative(x^2+23)(1) Output: _4 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:35:51 2006 Input: t= 0.3 derivative(x^2+23)(0) Output: _4 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:35:29 2006 Input: t= 0.3 derivative(cos(pi/2*(t-0.5)))(0) derivative(sin(pi/2*(t-0.5)))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'mpfr.RealNumber' object has no attribute 'derivative' ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 260, in derivative AttributeError: 'mpfr.RealNumber' object has no attribute 'derivative' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:35:14 2006 Input: derivative(cos(pi/2*(x-0.5)))(0) derivative(sin(pi/2*(x-0.5)))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 344, in element.RingElement.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and 0.50000000000000000 (parent: Real Field with 53 bits of precision) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 344, in element.RingElement.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and 0.50000000000000000 (parent: Real Field with 53 bits of precision) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:34:54 2006 Input: dy = derivative(cos(pi/2*(x-0.5)))(0) dx = derivative(sin(pi/2*(x-0.5)))(0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 344, in element.RingElement.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and 0.50000000000000000 (parent: Real Field with 53 bits of precision) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 344, in element.RingElement.__sub__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and 0.50000000000000000 (parent: Real Field with 53 bits of precision) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:34:18 2006 Input: dy = derivative(cos(pi/2*(x-0.5))(0) dx = derivative(sin(pi/2*(x-0.5))(0) Output: Errors: ------------------------------------------------------------ File "", line 2 dx = derivative(sin(pi/ZZ(2)*(x-RealField(max(6,RR.precision()))('0.5')))(ZZ(0)) ^ SyntaxError: invalid syntax ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:33:33 2006 Input: t = 0 dy = derivative(cos(pi/2*(t-0.5)) dx = derivative(sin(pi/2*(t-0.5)) Output: Errors: ------------------------------------------------------------ File "", line 2 dx = derivative(sin(pi/ZZ(2)*(t-RealField(max(6,RR.precision()))('0.5'))) ^ SyntaxError: invalid syntax ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:32:47 2006 Input: t = 0 dydt = derivative(cos(pi/2*(t-0.5)) dxdt = derivative(sin(pi/2*(t-0.5)) Output: Errors: ------------------------------------------------------------ File "", line 2 dxdt = derivative(sin(pi/ZZ(2)*(t-RealField(max(6,RR.precision()))('0.5'))) ^ SyntaxError: invalid syntax ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:32:38 2006 Input: t = 0 dydt = derivative(cos(pi/2*(t-0.5)) dxdt = derivative(sin(pi/2*(t-0.5)) dydt/dxdt Output: Errors: ------------------------------------------------------------ File "", line 2 dxdt = derivative(sin(pi/ZZ(2)*(t-RealField(max(6,RR.precision()))('0.5'))) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'dydt' is not defined ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:32:16 2006 Input: t = 0 dydt = derivative(cos(pi/2*(t-0.5)) Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:32:08 2006 Input: t = 0 dydt = derivative(cos(pi/2*(t-.5)) Output: Errors: ------------------------------------------------------------ File "", line 1 dydt = derivative(cos(pi/ZZ(2)*(t-.ZZ(5))) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:31:20 2006 Input: float(pi*2) cos(0) Output: _3 = 6.2831853071795862 _4 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:31:14 2006 Input: float(pi*2) Output: _3 = 6.2831853071795862 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:30:52 2006 Input: float(pi*2) Output: _3 = 6.2831853071795862 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:30:41 2006 Input: d*2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'd' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:30:36 2006 Input: pi*2 Output: _3 = (pi*2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:30:32 2006 Input: pi*2 Output: _3 = (pi*2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Tue May 30 18:30:31 2006 Input: pi Output: _3 = pi Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:30:22 2006 Input: PI Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'PI' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:30:16 2006 Input: pi Output: _3 = pi Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:30:12 2006 Input: a = 0 cos(0) Output: _4 = 1.0000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 18:29:51 2006 Input: math.dir Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'module' object has no attribute 'dir' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:56:27 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 a = 8 b = 16 u1 = a u2 = a u3 = a def Foo(): print (1-u1)*(1-u2)*(1-u3)*P0 + ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1)*P1 + ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2)*P2 + u1*u2*u3*P3 Foo() Output: ....: ....: -1642 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:55:29 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)*(1-b)*(1-c)*p0 + ((1-a)*(1-b)*c + (1-a)*(1-c)*b + (1-b)*(1-c)*a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 a = 8 b = 14 Sup(a,a,a,-2,-1,2,3) Sup(a,a,b,-2,-1,2,3) Sup(a,b,b,-2,-1,2,3) Sup(b,b,b,-2,-1,2,3) Sup(a,a,a,0,3,2,1) Sup(a,a,b,0,3,2,1) Sup(a,b,b,0,3,2,1) Sup(b,b,b,0,3,2,1) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: ...: ...: _6 = -1642 _7 = -2980 _8 = -5398 _9 = -9760 _10 = 1352 _11 = 2522 _12 = 4700 _13 = 8750 _14 = -15/7 _15 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:52:09 2006 Input: 1.51-.015 Output: Errors: ------------------------------------------------------------ File "", line 1 RealField(max(9,RR.precision()))('1.51')-.ZZ(015) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:51:26 2006 Input: 3.82+5.06+4.56 Output: _3 = 13.439999999999998 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:51:04 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 a = -1 b = 2 u1 = a u2 = a u3 = a (1-u1)*(1-u2)*(1-u3)*P0 ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1)*P1 ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2)*P2 u1*u2*u3*P3 Output: _12 = -16 _13 = 12 _14 = 12 _15 = -3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:50:50 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 a = 0 b = 2 u1 = a u2 = a u3 = 1 (1-u1)*(1-u2)*(1-u3)*P0 ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1)*P1 ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2)*P2 u1*u2*u3*P3 Output: _12 = 0 _13 = -1 _14 = 0 _15 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:50:45 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 a = 0 b = 2 u1 = a u2 = a u3 = a (1-u1)*(1-u2)*(1-u3)*P0 ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1)*P1 ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2)*P2 u1*u2*u3*P3 Output: _12 = -2 _13 = 0 _14 = 0 _15 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:50:26 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)*(1-b)*(1-c)*p0 + ((1-a)*(1-b)*c + (1-a)*(1-c)*b + (1-b)*(1-c)*a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 a = -1 b = 2 Sup(a,a,a,-2,-1,2,3) Sup(a,a,b,-2,-1,2,3) Sup(a,b,b,-2,-1,2,3) Sup(b,b,b,-2,-1,2,3) Sup(a,a,a,0,3,2,1) Sup(a,a,b,0,3,2,1) Sup(a,b,b,0,3,2,1) Sup(b,b,b,0,3,2,1) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: ...: ...: _6 = 5 _7 = -16 _8 = 17 _9 = -4 _10 = -25 _11 = 20 _12 = -7 _13 = 2 _14 = -15/7 _15 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:50:20 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)*(1-b)*(1-c)*p0 + ((1-a)*(1-b)*c + (1-a)*(1-c)*b + (1-b)*(1-c)*a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 a = -1 b = 2 Sup(a,a,a,-2,-1,2,3) Sup(a,a,b,-2,-1,2,3) Sup(a,b,b,-2,-1,2,3) Sup(b,b,b,-2,-1,2,3) Sup(a,a,a,0,3,2,1) Sup(a,a,b,0,3,2,1) Sup(a,b,b,0,3,2,1) Sup(b,b,b,0,3,2,1) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: Errors: ------------------------------------------------------------ File "", line 3 a = -ZZ(1) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ...: ...: _13 = -15/7 _14 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:50:16 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 a = -1 b = 2 u1 = a u2 = a u3 = a (1-u1)*(1-u2)*(1-u3)*P0 ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1)*P1 ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2)*P2 u1*u2*u3*P3 Output: _12 = -16 _13 = 12 _14 = 12 _15 = -3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:50:15 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)*(1-b)*(1-c)*p0 + ((1-a)*(1-b)*c + (1-a)*(1-c)*b + (1-b)*(1-c)*a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 a = - 1 b = 2 Sup(a,a,a,-2,-1,2,3) Sup(a,a,b,-2,-1,2,3) Sup(a,b,b,-2,-1,2,3) Sup(b,b,b,-2,-1,2,3) Sup(a,a,a,0,3,2,1) Sup(a,a,b,0,3,2,1) Sup(a,b,b,0,3,2,1) Sup(b,b,b,0,3,2,1) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: Errors: ------------------------------------------------------------ File "", line 3 a = - ZZ(1) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ...: ...: _13 = -15/7 _14 = -3/7 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:49:27 2006 Input: .64 2/3 Output: Errors: ------------------------------------------------------------ File "", line 1 .ZZ(64) ZZ(2)/ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:48:35 2006 Input: 5/11 Output: _3 = 5/11 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:48:07 2006 Input: 19.6/3.2 Output: _3 = 6.1250000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:47:36 2006 Input: 27.34*16.943 Output: _3 = 463.22162000000003 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:47:14 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)*(1-b)*(1-c)*p0 + ((1-a)*(1-b)*c + (1-a)*(1-c)*b + (1-b)*(1-c)*a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 Sup(0,0,0,-2,-1,2,3) Sup(0,0,1,-2,-1,2,3) Sup(0,1,1,-2,-1,2,3) Sup(1,1,1,-2,-1,2,3) Sup(0,0,0,0,3,2,1) Sup(0,0,1,0,3,2,1) Sup(0,1,1,0,3,2,1) Sup(1,1,1,0,3,2,1) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: ...: ...: _4 = -2 _5 = -1 _6 = 2 _7 = 3 _8 = 0 _9 = 3 _10 = 2 _11 = 1 _12 = -15/7 _13 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:47:00 2006 Input: 4.64324-7 Output: _3 = -2.3567600000000004 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:46:22 2006 Input: 37.03+11.5627+3.4005+3423+1.141 Output: _3 = 3476.1342000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:45:54 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 u1 = 1 u2 = 1 u3 = 1 (1-u1)*(1-u2)*(1-u3) ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) u1*u2*u3 Output: _10 = 0 _11 = 0 _12 = 0 _13 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:45:50 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 u1 = 0 u2 = 1 u3 = 1 (1-u1)*(1-u2)*(1-u3) ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) u1*u2*u3 Output: _10 = 0 _11 = 0 _12 = 1 _13 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:45:43 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 u1 = 0 u2 = 0 u3 = 1 (1-u1)*(1-u2)*(1-u3) ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) u1*u2*u3 Output: _10 = 0 _11 = 1 _12 = 0 _13 = 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:45:31 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 u1 = 0 u2 = 0 u3 = 0 (1-u1)*(1-u2)*(1-u3) ((1-u1)*(1-u2)*u3 + (1-u2)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) ((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) u1*u2*u3 Output: _10 = 1 _11 = 0 _12 = 0 _13 = 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:45:07 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)*(1-b)*(1-c)*p0 + ((1-a)*(1-b)*c + (1-a)*(1-c)*b + (1-b)*(1-c)*a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 Sup(0,0,0,-2,-1,2,3) Sup(0,0,1,-2,-1,2,3) Sup(0,1,1,-2,-1,2,3) Sup(1,1,1,-2,-1,2,3) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: ...: ...: _4 = -2 _5 = -1 _6 = 2 _7 = 3 _8 = -15/7 _9 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:43:58 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 u1 = 0 u2 = 0 u3 = 0 (1-u1)*(1-u2)*(1-u3) Output: _10 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:41:37 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)*(1-b)*(1-c)*p0 + ((1-a)*(1-b)*c + (1-a)*(1-c)*b + (1-b)*(1-c)*a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 Sup(0,0,0,-1,-2,2,3) Sup(0,0,1,-1,-2,2,3) Sup(0,1,1,-1,-2,2,3) Sup(1,1,1,-1,-2,2,3) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: ...: ...: _4 = -1 _5 = -2 _6 = 2 _7 = 3 _8 = -15/7 _9 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:41:06 2006 Input: def Sup(a,b,c,p0,p1,p2,p3): return (1-a)(1-b)(1-c)*p0+ ((1-a)(1-b)*c + (1-a)(1-c)*b + (1-b)(1-c)a)*p1 + ((1-a)*b*c + (1-b)*a*c + (1-c)*a*b)*p2 + a*b*c*p3 Sup(0,0,0,-1,-2,2,3) Sup(0,0,1,-1,-2,2,3) Sup(0,1,1,-1,-2,2,3) Sup(1,1,1,-1,-2,2,3) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: Errors: ------------------------------------------------------------ File "", line 2 return (ZZ(1)-a)(ZZ(1)-b)(ZZ(1)-c)*p0+ ((ZZ(1)-a)(ZZ(1)-b)*c + (ZZ(1)-a)(ZZ(1)-c)*b + (ZZ(1)-b)(ZZ(1)-c)a)*p1 + ((ZZ(1)-a)*b*c + (ZZ(1)-b)*a*c + (ZZ(1)-c)*a*b)*p2 + a*b*c*p3 ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Sup' is not defined ...: _8 = -15/7 _9 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:40:06 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 u1 = 0 u2 = 0 u3 = 0 print (1 − u1)*(1 − u2)*(1 − u3)*P0 + ((1 − u1)*(1 − u2)*u3 + (1 − u1)*(1 − u3)*u2 + (1 − u2)*(1 − u3)*u1)*P1 + ((1 − u1)*u2*u3 + (1 − u2)*u1*u3 + (1 − u3)*u1*u2)*P2 + u1*u2*u3*P3 Output: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:39:58 2006 Input: P0 = -2 P1 = -1 P2 = 2 P3 = 3 u1 = 0 u2 = 0 u3 = 0 (1 − u1)*(1 − u2)*(1 − u3)*P0 + ((1 − u1)*(1 − u2)*u3 + (1 − u1)*(1 − u3)*u2 + (1 − u2)*(1 − u3)*u1)*P1 + ((1 − u1)*u2*u3 + (1 − u2)*u1*u3 + (1 − u3)*u1*u2)*P2 + u1*u2*u3*P3 Output: ....: ....: ....: ....: ....: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:36:43 2006 Input: def Sup(a,b,c): return a+b+c Sup(5,7,8) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: ...: ...: _4 = 20 _5 = -15/7 _6 = -3/7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:36:30 2006 Input: def Sup(a,b,c): return 1 ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: ...: ...: _4 = -15/7 _5 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:14:19 2006 Input: 4+5 Output: _3 = 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.174.' ************** SAGE ***************** Host 24.174.213.73 (24.174.213.73) Time: Tue May 30 17:13:58 2006 Input: 4+5 Output: _3 = 9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:07:48 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)/derivative(-108*x^3+162*x^2-63*x+5))(1) -25-(-(15/7)*5) 2-(-(3/7)*-4) ((-15/7)*x-(100/7))(-16) ((-3/7)*x+(2/7))(17) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 _8 = 2/7 _9 = 20 _10 = -7 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:07:01 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)/derivative(-108*x^3+162*x^2-63*x+5))(1) -25-(-(15/7)*5) 2-(-(3/7)*-4) ((-15/7)*x-(100/7))(-16) ((-3/7)*x+(2/7))(-4) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 _8 = 2/7 _9 = 20 _10 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:06:54 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)/derivative(-108*x^3+162*x^2-63*x+5))(1) -25-(-(15/7)*5) 2-(-(3/7)*-4) ((-15/7)-(100/7))(-16) ((-3/7)*x+(2/7))(-4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'rational.Rational' object is not callable _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 _8 = 2/7 _10 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:05:48 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)/derivative(-108*x^3+162*x^2-63*x+5))(1) -25-(-(15/7)*5) 2-(-(3/7)*-4) ((-3/7)*x+(2/7))(-4) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 _8 = 2/7 _9 = 2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:05:41 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)/derivative(-108*x^3+162*x^2-63*x+5))(1) -25-(-(15/7)*5) 2-(-(3/7)*-4) ((-3/7)+(2/7))(-4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'rational.Rational' object is not callable _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 _8 = 2/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:04:41 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)/derivative(-108*x^3+162*x^2-63*x+5))(1) -25-(-(15/7)*5) 2-(-(3/7)*-4) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 _8 = 2/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 17:01:13 2006 Input: ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(0) ((324*x^2-432*x+135) / (-324*x^2+324*x-63) )(1) Output: _3 = -15/7 _4 = -3/7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:59:49 2006 Input: ((324*x^2-432*x+135)/(-324*x^2-324*x-63))(0) ((324*x^2-432*x+135)/(-324*x^2-324*x-63))(1) Output: _3 = -15/7 _4 = -3/79 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:58:11 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)/derivative(-108*x^3+162*x^2-63*x+5))(1) -25-(-(15/7)*5) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:57:50 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) (derivative(108*x^3-216*x^2+135*x-25)(1))/(derivative(-108*x^3+162*x^2-63*x+5)(1)) -25-(-(15/7)*5) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:56:43 2006 Input: ((-324*x^2-432*x+135)/(324*x^2-324*x-63))(1) Output: _3 = 69/7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:56:31 2006 Input: ((-324*x^2-432*x+135)/(324*x^2-324*x-63))(0) Output: _3 = -15/7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:56:12 2006 Input: (-324*x^2-432*x+135)/(324*x^2-324*x-63)(0) Output: _3 = 36/7*x^2 + 48/7*x - 15/7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:56:02 2006 Input: (-324*x^2-432*x+135)(324*x^2-324*x-63)(0) Output: _3 = -1258605 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:55:50 2006 Input: (-324x^2-432x+135)(324x^2-324x-63)(0) Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(324)x**ZZ(2)-ZZ(432)x+ZZ(135))(ZZ(324)x**ZZ(2)-ZZ(324)x-ZZ(63))(ZZ(0)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:55:50 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) derivative(108*x^3-216*x^2+135*x-25)(1)/derivative(-108*x^3+162*x^2-63*x+5)(1) -25-(-(15/7)*5) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 _7 = -100/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:55:27 2006 Input: (x+5)(1) Output: _3 = 6 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.177.' ************** SAGE ***************** Host 67.177.224.45 (67.177.224.45) Time: Tue May 30 16:54:28 2006 Input: 17/0.85 Output: _3 = 20.000000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.177.' ************** SAGE ***************** Host 67.177.224.45 (67.177.224.45) Time: Tue May 30 16:54:12 2006 Input: 17*0.85 Output: _3 = 14.449999999999999 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '67.177.' ************** SAGE ***************** Host 67.177.224.45 (67.177.224.45) Time: Tue May 30 16:54:04 2006 Input: 17*.85 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(17)*.ZZ(85) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:49:55 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-25,135,-216,108]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:49:26 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(108*x^3-216*x^2+135*x-25)(0)/derivative(-108*x^3+162*x^2-63*x+5)(0) derivative(108*x^3-216*x^2+135*x-25)(1)/derivative(-108*x^3+162*x^2-63*x+5)(1) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -15/7 _6 = -3/7 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:49:11 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(-108*x^3+162*x^2-63*x+5)(0) derivative(108*x^3-216*x^2+135*x-25)(0) derivative(-108*x^3+162*x^2-63*x+5)(1) derivative(108*x^3-216*x^2+135*x-25)(1) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -63 _6 = 135 _7 = -63 _8 = 27 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:49:02 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) derivative(-108*x^3+162*x^2-63*x+5)(0) derivative(108*x^3-216*x^2+135*x-25)(0) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 _5 = -63 _6 = 135 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:48:32 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([5,-63,162,-108]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = [ 5] [-16] [ 17] [ -4] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:47:18 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-108,162,-63,5]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = [-108] [ -54] [ -21] [ -4] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:47:14 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:47:14 2006 Input: derivative(-108*x^3+162*x^2-63*x+5) derivative(108*x^3-216*x^2+135*x-25) Output: _3 = -324*x^2 + 324*x - 63 _4 = 324*x^2 - 432*x + 135 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:46:39 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-108,162,-63,5]) derivative? Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = [-108] [ -54] [ -21] [ -4] Type: function Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py Definition: derivative(x) Docstring: Return the derivative of a polynomial x. EXAMPLES: f = cyclotomic_polynomial(10) derivative(f) 4*x^3 - 3*x^2 + 2*x - 1 R = PolynomialRing(GF(7)) gen = R.gen(); x = gen; f = x^7 + x derivative(f) 1 Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:46:15 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) p ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-108,162,-63,5]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = [-108] [ -54] [ -21] [ -4] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:45:53 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m M = ~BasisToStandard([Bern(i,3) for i in range(4)]) M*Matrix(QQ,4,1,[5,-63,162,-108]) M*Matrix(QQ,4,1,[-25,135,-216,108]) derivative(-108*x^3+162*x^2-63*x+5) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [ 5] [-16] [ 17] [ -4] _8 = [-25] [ 20] [ -7] [ 2] _9 = -324*x^2 + 324*x - 63 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:45:43 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m M = ~BasisToStandard([Bern(i,3) for i in range(4)]) M*Matrix(QQ,4,1,[5,-63,162,-108]) M*Matrix(QQ,4,1,[-25,135,-216,108]) derivative(-108x^3+162x^2-63x+5) Output: Errors: ------------------------------------------------------------ File "", line 1 derivative(-ZZ(108)x**ZZ(3)+ZZ(162)x**ZZ(2)-ZZ(63)x+ZZ(5)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [ 5] [-16] [ 17] [ -4] _8 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:45:05 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) p = a(3*t-1) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-108,162,-63,5]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [-108] [ -54] [ -21] [ -4] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:41:27 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(3*t-1) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-4,42,-141,151]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _26 = [ -4] [ 10] [-23] [ 48] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:38:09 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(t) a(3*t-1) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-4,42,-141,151]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [-4*t^3 + 6*t^2 + 3*t - 2] [ 4*t^3 - 12*t^2 + 9*t] _26 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _27 = [ -4] [ 10] [-23] [ 48] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:38:07 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m M = ~BasisToStandard([Bern(i,3) for i in range(4)]) M*Matrix(QQ,4,1,[5,-63,162,-108]) M*Matrix(QQ,4,1,[-25,135,-216,108]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [ 5] [-16] [ 17] [ -4] _8 = [-25] [ 20] [ -7] [ 2] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:36:37 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(3*t-1) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-4,42,-141,151]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [ -108*t^3 + 162*t^2 - 63*t + 5] [108*t^3 - 216*t^2 + 135*t - 25] _26 = [ -4] [ 10] [-23] [ 48] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:34:58 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(2*t) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-4,42,-141,151]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [-32*t^3 + 24*t^2 + 6*t - 2] [ 32*t^3 - 48*t^2 + 18*t] _26 = [ -4] [ 10] [-23] [ 48] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:34:46 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(2t) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-4,42,-141,151]) Output: Errors: ------------------------------------------------------------ File "", line 1 a(ZZ(2)t) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _26 = [ -4] [ 10] [-23] [ 48] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:32:05 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(t-3) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-4,42,-141,151]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [-4*t^3 + 42*t^2 - 141*t + 151] [ 4*t^3 - 48*t^2 + 189*t - 243] _26 = [ -4] [ 10] [-23] [ 48] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:31:47 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(t-3) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)]) MatrixSpace(QQ,4,1)([-4,42,-141,151) Output: Errors: ------------------------------------------------------------ File "", line 1 MatrixSpace(QQ,ZZ(4),ZZ(1))([-ZZ(4),ZZ(42),-ZZ(141),ZZ(151)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [-4*t^3 + 42*t^2 - 141*t + 151] [ 4*t^3 - 48*t^2 + 189*t - 243] _26 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:31:34 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(t-3) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)]) #MatrixSpace(QQ,4,1)([-4,42,-141,151) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [-4*t^3 + 42*t^2 - 141*t + 151] [ 4*t^3 - 48*t^2 + 189*t - 243] _26 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.06s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:31:01 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m -2*Bern(0,3)-Bern(1,3)+2*Bern(2,3)+3*Bern(3,3) 3*Bern(1,3)+2*Bern(2,3)+Bern(3,3) a = 3*x - 1 -4*a^3 + 6*a^2 + 3*a - 2 4*a^3 - 12*a^2 + 9*a Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = -4*x^3 + 6*x^2 + 3*x - 2 _7 = 4*x^3 - 12*x^2 + 9*x _9 = -108*x^3 + 162*x^2 - 63*x + 5 _10 = 108*x^3 - 216*x^2 + 135*x - 25 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:30:58 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(t-3) ~BasisToStandard([Bernstein(t,3,i) for i in range(4)])*MatrixSpace(QQ,4,1)([-4,42,-141,151) Output: Errors: ------------------------------------------------------------ File "", line 1 ~BasisToStandard([Bernstein(t,ZZ(3),i) for i in range(ZZ(4))])*MatrixSpace(QQ,ZZ(4),ZZ(1))([-ZZ(4),ZZ(42),-ZZ(141),ZZ(151)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [-4*t^3 + 42*t^2 - 141*t + 151] [ 4*t^3 - 48*t^2 + 189*t - 243] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:30:01 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m -2*Bern(0,3)-Bern(1,3)+2*Bern(2,3)+3*Bern(3,3) 3*Bern(1,3)+2*Bern(2,3)+Bern(3,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = -4*x^3 + 6*x^2 + 3*x - 2 _7 = 4*x^3 - 12*x^2 + 9*x Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:28:56 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m -2*Bern(0,3)-Bern(1,3)+2*Bern(2,3)+3*Bern(3,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = -4*x^3 + 6*x^2 + 3*x - 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:28:34 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) def a(t): return Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(t-3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) ....: ....: _25 = [-4*t^3 + 42*t^2 - 141*t + 151] [ 4*t^3 - 48*t^2 + 189*t - 243] Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:28:04 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) a = Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) a(t-3) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_generic_dense_pid' object is not callable ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:27:34 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) a = Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) (a[0](t-3),a[1](t-3)) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'FreeModuleElement_generic_dense' object is not callable ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:24:45 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m (2-(Bern(1,3)*3 + Bern(3,3))(1/2))/(Bern(2,3)(1/2)) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:24:27 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m 2-(Bern(1,3)*3 + Bern(3,3))(1/2) Bern(2,3) (3/4)/(Bern(2,3)(1/2)) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 3/4 _7 = -3*x^3 + 3*x^2 _8 = 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:24:23 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,2)+Bernstein(t,3,3)*Vec(3,1) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) _24 = [-4*t^3 + 6*t^2 + 3*t - 2] [ 4*t^3 - 12*t^2 + 9*t] Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.05s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:23:54 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m 2-(Bern(1,3)*3 + Bern(3,3))(1/2) Bern(2,3) Bern(2,3)(1/2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 3/4 _7 = -3*x^3 + 3*x^2 _8 = 3/8 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:23:37 2006 Input: u1 = 2 u2 = 2 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -4 _7 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:23:36 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m 2-(Bern(1,3)*3 + Bern(3,3))(1/2) Bern(2,3) (x*(Bern(2,3)(1/2))).roots() Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 3/4 _7 = -3*x^3 + 3*x^2 _8 = [(0, 1)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:22:32 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m 2-(Bern(1,3)*3 + Bern(3,3))(1/2) Bern(2,3) (-3*x^3 + 3*x^2 - 3/4).roots() Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 3/4 _7 = -3*x^3 + 3*x^2 _8 = [] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.07s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:22:29 2006 Input: u1 = 14 u2 = 14 u3 = 14 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -9760 _7 = 8750 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:22:09 2006 Input: u1 = 8 u2 = 14 u3 = 14 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -5398 _7 = 4700 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:22:04 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m 2-(Bern(1,3)*3 + Bern(3,3))(1/2) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 3/4 _7 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:21:51 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m 2-(Bern(1,3)*3 + Bern(3,3))(1/2) Bern(2,3)(3/4) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 3/4 _7 = 27/64 _8 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:21:47 2006 Input: u1 = 8 u2 = 8 u3 = 14 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -2980 _7 = 2522 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:21:29 2006 Input: u1 = 8 u2 = 8 u3 = 8 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -1642 _7 = 1352 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:20:02 2006 Input: u1 = 2 u2 = 2 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -4 _7 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:19:05 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m (Bern(1,3)*3 + Bern(3,3)) Bern(2,3)(3/4) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 10*x^3 - 18*x^2 + 9*x _7 = 27/64 _8 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:19:04 2006 Input: u1 = -1 u2 = 2 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = 17 _7 = -7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:18:49 2006 Input: u1 = -1 u2 = -1 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -16 _7 = 20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:18:27 2006 Input: u1 = -1 u2 = -1 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -16 _7 = 20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:18:20 2006 Input: u1 = 2 u2 = 2 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -4 _7 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:18:16 2006 Input: u1 = -1 u2 = 2 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = 17 _7 = -7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:18:12 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m (Bern(1,3)*3 + Bern(3,3)) 2-(5/4) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 10*x^3 - 18*x^2 + 9*x _7 = 3/4 _8 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:18:11 2006 Input: u1 = -1 u2 = -1 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = -16 _7 = 20 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:17:33 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = 5 _7 = -25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:17:01 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m (Bern(1,3)*3 + Bern(3,3))(1/2) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 5/4 _7 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:15:57 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m (Bern(1,3)*3 + (2)*Bern(2,3) + Bern(3,3))(1/2) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 2 _7 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:15:40 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 Output: _6 = 5 _7 = -25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:15:28 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m (Bern(1,3)*3 + (4/3)*Bern(2,3) + Bern(3,3))(1/2) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 7/4 _7 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:15:02 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m Bern(1,3)*3 + Bern(3,3) Bern(2,3)(5) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 10*x^3 - 18*x^2 + 9*x _7 = -300 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:14:38 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([5, -63, 162, -108]) Y = V([-25, 135, -216, 108]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*X B*Y t = 3*x-1 (-2)*(1-t)^3 + (-1)*3*(1-t)^2*(t) + (2)*3*(1-t)*t^2 + (3)*t^3 (0)*(1-t)^3 + (3)*3*(1-t)^2*(t) + (2)*3*(1-t)*t^2 + (1)*t^3 Output: _9 = (5, -16, 17, -4) _10 = (-25, 20, -7, 2) _12 = -108*x^3 + 162*x^2 - 63*x + 5 _13 = 108*x^3 - 216*x^2 + 135*x - 25 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:12:59 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (g(14,8),f(14,8)) (g(14,14),f(14,14)) Bernstein(t,3,0)*Vec(-2,0)+Bernstein(t,3,1)*Vec(-1,3)+Bernstein(t,3,2)*Vec(2,26/3)+Bernstein(t,3,3)*Vec(3,1) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (21, 364) _23 = (27, 676) _24 = [-4*t^3 + 6*t^2 + 3*t - 2] [ -16*t^3 + 8*t^2 + 9*t] Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.07s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:12:53 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m Bern(1,3)*3 + Bern(3,3) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 10*x^3 - 18*x^2 + 9*x _7 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:12:47 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m Bern(1,3)*3 + Bern(3,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 10*x^3 - 18*x^2 + 9*x Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:12:35 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([143, -513, 432, 54]) Y = V([113, -313, 54, 270]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*Y t = 3*x-1 (-2)*(1-t)^3 + (-1)*3*(1-t)^2*(t) + (2)*3*(1-t)*t^2 + (3)*t^3 (0)*(1-t)^3 + (3)*3*(1-t)^2*(t) + (2)*3*(1-t)*t^2 + (1)*t^3 Output: _9 = (113, 26/3, -233/3, 124) _11 = -108*x^3 + 162*x^2 - 63*x + 5 _12 = 108*x^3 - 216*x^2 + 135*x - 25 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:12:08 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([143, -513, 432, 54]) Y = V([113, -313, 54, 270]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*Y t = 3*x-1 (-2)*(1-t)^3 + (-1)*3*(1-t)^2*(t) + (2)*3*(1-t)*t^2 + (3)*t^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _9 = (113, 26/3, -233/3, 124) _11 = -108*x^3 + 162*x^2 - 63*x + 5 _12 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:11:58 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([143, -513, 432, 54]) Y = V([113, -313, 54, 270]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*Y t = 3*-1 (-2)*(1-t)^3 + (-1)*3*(1-t)^2*(t) + (2)*3*(1-t)*t^2 + (3)*t^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _9 = (113, 26/3, -233/3, 124) _11 = 151 _12 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:11:44 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([143, -513, 432, 54]) Y = V([113, -313, 54, 270]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*Y t = 3*-1 (-2)*(1-t)^3 + (-1)*3*(1-t)^2*(t) + (2)*3*(1-t)t^2 + (3)*t^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(2))*(ZZ(1)-t)**ZZ(3) + (-ZZ(1))*ZZ(3)*(ZZ(1)-t)**ZZ(2)*(t) + (ZZ(2))*ZZ(3)*(ZZ(1)-t)t**ZZ(2) + (ZZ(3))*t**ZZ(3) ^ SyntaxError: invalid syntax _9 = (113, 26/3, -233/3, 124) _12 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:09:54 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([143, -513, 432, 54]) Y = V([113, -313, 54, 270]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*Y (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _9 = (113, 26/3, -233/3, 124) _10 = 54*x^3 + 432*x^2 - 513*x + 143 _11 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 16:09:44 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m -2*Bern(0,3) - Bern(1,3) + 3*Bern(3,3) Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = 2*x^3 + 3*x - 2 _7 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:09:40 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([143, -513, 432, 54]) X = V([113, -313, 54, 270]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*Y (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'Y' is not defined _10 = 54*x^3 + 432*x^2 - 513*x + 143 _11 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:08:50 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([143, -513, 432, 54]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*X (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _8 = (143, -28, -55, 116) _9 = 54*x^3 + 432*x^2 - 513*x + 143 _10 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:07:20 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1);B (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _5 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] _6 = 54*x^3 + 432*x^2 - 513*x + 143 _7 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:05:21 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (1)*u1*u2*u3 (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _6 = 5 _7 = -25 _8 = 54*x^3 + 432*x^2 - 513*x + 143 _9 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:04:27 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _6 = 5 _7 = 54*x^3 + 432*x^2 - 513*x + 143 _8 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:02:22 2006 Input: (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*(3*x-1)^3 Output: _3 = 54*x^3 + 432*x^2 - 513*x + 143 _4 = 270*x^3 + 54*x^2 - 315*x + 113 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:01:18 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*3*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*3*(3*x-1)^3 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_10' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_11' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_12' is not defined _6 = 5 _7 = 0 _11 = 216*x^3 + 270*x^2 - 459*x + 137 _12 = 324*x^3 - 297*x + 111 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:01:01 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*3*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*3*(3*x-1)^3 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_10' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_11' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_12' is not defined _6 = 5 _7 = 0 _11 = 216*x^3 + 270*x^2 - 459*x + 137 _12 = 324*x^3 - 297*x + 111 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 16:00:28 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) _6 + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*3*(3*x-1)^3 (0)*(-3*x+2)^3 + (3)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (1)*3*(3*x-1)^3 Output: _6 = -16 _7 = -4 _8 = 8 _9 = 5 _10 = 0 _11 = -36 _12 = -24 _13 = -25 _14 = 216*x^3 + 270*x^2 - 459*x + 137 _15 = 324*x^3 - 297*x + 111 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:59:49 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m -2*Bern(0,3) - Bern(1,3) + 3*Bern(2,3) -10*(1/8) + 9*(1/4) + 3*(1/2) - 2 Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = -10*x^3 + 9*x^2 + 3*x - 2 _7 = 1/2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:59:29 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) _6 + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 (-2)*(-3*x+2)^3 + (-1)*3*(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*3*(3*x-1)^3 Output: _6 = -16 _7 = -4 _8 = 8 _9 = 5 _10 = 0 _11 = -36 _12 = -24 _13 = -25 _14 = 216*x^3 + 270*x^2 - 459*x + 137 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:59:17 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) _6 + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 (-2)*(-3*x+2)^3 + (-1)*3(-3*x+2)^2*(3*x-1) + (2)*3*(-3*x+2)(3*x-1)^2 + (3)*3*(3*x-1)^3 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable _6 = -16 _7 = -4 _8 = 8 _9 = 5 _10 = 0 _11 = -36 _12 = -24 _13 = -25 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:57:13 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m -2*Bern(0,3) - Bern(1,3) + 3*Bern(2,3) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _6 = -10*x^3 + 9*x^2 + 3*x - 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:56:55 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m -2*Bern(0,3) - Bern(1,3) + 3*Bern(3,1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "", line 2, in Bern File "", line 4, in C File "integer.pyx", line 959, in integer.Integer.factorial ValueError: factorial -- self = (-2) must be nonnegative ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:53:00 2006 Input: u1 = -1 u2 = 2 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) _6 + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 Output: _6 = -4 _7 = 5 _8 = 29 _9 = 17 _10 = 0 _11 = -27 _12 = -3 _13 = -7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:52:50 2006 Input: u1 = -1 u2 = -1 u3 = 2 (-2)*(1-u1)*(1-u2)*(1-u3) _6 + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 Output: _6 = 8 _7 = -4 _8 = -22 _9 = -16 _10 = 0 _11 = 36 _12 = 18 _13 = 20 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:52:09 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-2)*(1-u1)*(1-u2)*(1-u3) _6 + (-1)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (3)*u1*u2*u3 (0)*(1-u1)*(1-u2)*(1-u3) _10 + (3)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (2)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (1)*u1*u2*u3 Output: _6 = -16 _7 = -4 _8 = 8 _9 = 5 _10 = 0 _11 = -36 _12 = -24 _13 = -25 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:49:04 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (f(14,8),g(14,8)) (g(14,14),f(14,14)) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (364, 21) _23 = (27, 676) Exiting SAGE (CPU time 0m0.05s, Wall time 0m0.04s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:48:31 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-108)*(1-u1)*(1-u2)*(1-u3) _6 + (-54)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (-21)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (-4)*u1*u2*u3 (108)*(1-u1)*(1-u2)*(1-u3) _10 + (36)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (9)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (2)*u1*u2*u3 -108*2^3 - 54*(-4 -4-4) - 21*(2+2+2) -4*(-1) Output: _6 = -864 _7 = -216 _8 = -342 _9 = -338 _10 = 864 _11 = 432 _12 = 486 _13 = 484 _14 = -338 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:48:23 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) (f(8,14),g(8,14)) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 _22 = (364, 21) Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:47:19 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-108)*(1-u1)*(1-u2)*(1-u3) _6 + (-54)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (-21)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (-4)*u1*u2*u3 (108)*(1-u1)*(1-u2)*(1-u3) _10 + (36)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (9)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (2)*u1*u2*u3 Output: _6 = -864 _7 = -216 _8 = -342 _9 = -338 _10 = 864 _11 = 432 _12 = 486 _13 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:47:11 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-108)*(1-u1)*(1-u2)*(1-u3) _6 + (-54)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _7 + (-21)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _8 + (-4)*u1*u2*u3 (108)*(1-u1)*(1-u2)*(1-u3) _10 + (36)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u2 + (1-u2)*(1-u3)*u1) _11 + (9)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u1*u2) _12 + (2)*u1*u2*u3 Output: _6 = -864 _7 = -216 _8 = -342 _9 = -338 _10 = 864 _11 = 432 _12 = 486 _13 = 484 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:46:52 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) g = 2*(x+y)/2-1 g(8,8) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 _21 = 15 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:46:26 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-108)*(1-u1)*(1-u2)*(1-u3) _6 + (-54)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u1 + (1-u2)*(1-u3)*u1) _7 + (-21)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u2*u1) _8 + (-4)*u1*u2*u3 (108)*(1-u1)*(1-u2)*(1-u3) _10 + (36)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u1 + (1-u2)*(1-u3)*u1) _11 + (9)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u2*u1) _12 + (2)*u1*u2*u3 Output: _6 = -864 _7 = -216 _8 = -342 _9 = -338 _10 = 864 _11 = 432 _12 = 486 _13 = 484 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:46:15 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 MV = QQ['x,y'].gens() x = MV[0] y = MV[1] f = 4*x*y-8*(x+y)/2+4 f(8,8) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 _19 = 196 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.04s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:46:15 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-108)*(1-u1)*(1-u2)*(1-u3) _6 + (-54)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u1 + (1-u2)*(1-u3)*x) _7 + (-21)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u2*u1) _8 + (-4)*u1*u2*u3 (108)*(1-u1)*(1-u2)*(1-u3) _10 + (36)*((1-u1)*(1-u2)*u3 + (1-u1)*(1-u3)*u1 + (1-u2)*(1-u3)*x) _11 + (9)*((1-u1)*u2*u3 + (1-u2)*u1*u3 + (1-u3)*u2*u1) _12 + (2)*u1*u2*u3 Output: _6 = -864 _7 = -216*x - 432 _8 = -216*x - 558 _9 = -216*x - 554 _10 = 864 _11 = 144*x + 576 _12 = 144*x + 630 _13 = 144*x + 628 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:44:49 2006 Input: u1 = -1 u2 = -1 u3 = -1 (-108)*(1-x)*(1-y)*(1-z) _6 + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _7 + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _8 + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) _10 + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _11 + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _12 + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_6' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_7' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_8' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_10' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_11' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_12' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:44:15 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) _6 + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _7 + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _8 + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) _10 + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _11 + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _12 + (2)*x*y*z Output: _6 = -864 _7 = -216 _8 = -342 _9 = -338 _10 = 864 _11 = 432 _12 = 486 _13 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:43:59 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) _6 + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _7 + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _8 + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) _11 + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _12 + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _13 + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_11' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_12' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_13' is not defined _6 = -864 _7 = -216 _8 = -342 _9 = -338 _10 = 864 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:43:29 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) _6 + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _7 + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _8 + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -864 _7 = -216 _8 = -342 _9 = -338 _10 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:43:16 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) _7 + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _8 + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) _9 + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_7' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_8' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name '_9' is not defined _6 = -864 _10 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:42:54 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -864 _7 = 648 _8 = -126 _9 = 4 _10 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:42:47 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) 3*(2*t+3)-1 Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] _14 = 6*t + 8 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:42:43 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z Output: _6 = -864 _7 = 648 _8 = -126 _9 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:42:29 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -864 _7 = 648 _8 = -126 _9 = 4 _10 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:42:00 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(108))*(ZZ(1)-x)*(ZZ(1)-y)*(ZZ(1)-z) + ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (-ZZ(54))*((ZZ(1)-x)*(ZZ(1)-y)*z + (ZZ(1)-x)*(ZZ(1)-z)*y + (ZZ(1)-y)*(ZZ(1)-z)*x) + ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 (-ZZ(21))*((ZZ(1)-x)*y*z + (ZZ(1)-y)*x*z + (ZZ(1)-z)*y*x) + ^ SyntaxError: invalid syntax _9 = 4 _10 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:38:36 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -338 _7 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:37:51 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _6 + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) _8 + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -216 _7 = -338 _8 = 432 _9 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:37:30 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -216 _7 = -122 _8 = 432 _9 = 52 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:37:06 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(108))*(ZZ(1)-x)*(ZZ(1)-y)*(ZZ(1)-z) + (ZZ(36))*((ZZ(1)-x)*(ZZ(1)-y)*z + (ZZ(1)-x)*(ZZ(1)-z)*y + (ZZ(1)-y)*(ZZ(1)-z)*x) + ^ SyntaxError: invalid syntax _6 = -216 _7 = -122 _9 = 52 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:36:59 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) Output: _6 = -216 _7 = -122 _8 = 432 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:36:54 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(108))*(ZZ(1)-x)*(ZZ(1)-y)*(ZZ(1)-z) + (ZZ(36))*((ZZ(1)-x)*(ZZ(1)-y)*z + (ZZ(1)-x)*(ZZ(1)-z)*y + (ZZ(1)-y)*(ZZ(1)-z)*x) + ^ SyntaxError: invalid syntax _6 = -216 _7 = -122 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:36:51 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -216 _7 = -122 _8 = 484 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:36:44 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -216 _7 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:36:32 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _6 = -216 _7 = -122 _8 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:36:13 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable _6 = -216 _7 = -122 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:36:06 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(108))*(ZZ(1)-x)*(ZZ(1)-y)*(ZZ(1)-z) + (-ZZ(54))*((ZZ(1)-x)*(ZZ(1)-y)*z + (ZZ(1)-x)*(ZZ(1)-z)*y + (ZZ(1)-y)*(ZZ(1)-z)*x) + ^ SyntaxError: invalid syntax _7 = -122 _8 = 484 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:35:52 2006 Input: y = 1 z = 1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) + (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: Errors: ------------------------------------------------------------ File "", line 1 (-ZZ(108))*(ZZ(1)-x)*(ZZ(1)-y)*(ZZ(1)-z) + (-ZZ(54))*((ZZ(1)-x)*(ZZ(1)-y)*z + (ZZ(1)-x)*(ZZ(1)-z)*y + (ZZ(1)-y)*(ZZ(1)-z)*x) + ^ SyntaxError: invalid syntax _6 = 17*x - 21 _7 = -7*x + 9 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:35:36 2006 Input: y = 1 z = 1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _5 = 0 _6 = 2*x Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:35:23 2006 Input: y = 1 z = 1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (-21)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*((1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x) (9)*((1-x)*y*z + (1-y)*x*z + (1-z)*y*x) + (2)*x*y*z Output: _5 = -4*x _6 = 2*x Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:34:41 2006 Input: y = 1 z = 1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (-21)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (9)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'list' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'list' object is not callable Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:34:37 2006 Input: y = 1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (-21)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (9)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'z' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'z' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:34:30 2006 Input: (-108)*(1-x)*(1-y)*(1-z) + (-54)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (-21)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (9)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:34:10 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (-21)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] (9)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'list' object is not callable ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'list' object is not callable Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:34:00 2006 Input: x = -1 y = -1 z = -1 (-108)*(1-x)*(1-y)*(1-z) + (-54)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] + (-21)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (-4)*x*y*z (108)*(1-x)*(1-y)*(1-z) + (36)*[(1-x)*(1-y)*z + (1-x)*(1-z)*y + (1-y)*(1-z)*x] + (9)*[(1-x)*y*z + (1-y)*x*z + (1-z)*y*x] + (2)*x*y*z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 527, in integer.Integer.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for -54 (parent: Integer Ring) and [-12] (parent: ) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "integer.pyx", line 527, in integer.Integer.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for 36 (parent: Integer Ring) and [-12] (parent: ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:30:51 2006 Input: x = 1 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:16:19 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([16,-48,36]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [16] [-8] [ 4] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:15:11 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([-108, 162, -63, 5]) Y = V([108, -216, 135, -25]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*Y -108*(1/3)^3 + 162*(1/3)^2 - 63*(1/3) + 5 Output: _9 = (108, 36, 9, 2) _10 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 15:13:46 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([12,-30,18]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [36*t^2 - 48*t + 16] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [12] [-3] [ 0] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:13:34 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([-108, 162, -63, 5]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) B = A^(-1) B*X -108*(1/3)^3 + 162*(1/3)^2 - 63*(1/3) + 5 Output: _8 = (-108, -54, -21, -4) _9 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:13:21 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([-108, 162, -63, 5]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) A^(-1) -108*(1/3)^3 + 162*(1/3)^2 - 63*(1/3) + 5 Output: _7 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] _8 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:13:15 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([-108, 162, -63, 5]); X A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) A^(-1) -108*(1/3)^3 + 162*(1/3)^2 - 63*(1/3) + 5 Output: _5 = (-108, 162, -63, 5) _7 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] _8 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:13:10 2006 Input: M = MatrixSpace(RationalField(),4,4) V = VectorSpace(RationalField(),4) X = V([-108, 162, -63, 5]) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]) A^(-1) -108*(1/3)^3 + 162*(1/3)^2 - 63*(1/3) + 5 Output: _7 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] _8 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:12:07 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]); A A^(-1) -108*(1/3)^3 + 162*(1/3)^2 - 63*(1/3) + 5 Output: _4 = [ 1 0 0 0] [-3 3 0 0] [ 3 -6 3 0] [-1 3 -3 1] _5 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] _6 = -2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:11:05 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]); A A^(-1) -108*(-1)^3 + 162*(-1)^2 - 63*(-1) + 5 Output: _4 = [ 1 0 0 0] [-3 3 0 0] [ 3 -6 3 0] [-1 3 -3 1] _5 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] _6 = 338 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:08:32 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]); A A^(-1) Output: _4 = [ 1 0 0 0] [-3 3 0 0] [ 3 -6 3 0] [-1 3 -3 1] _5 = [ 1 0 0 0] [ 1 1/3 0 0] [ 1 2/3 1/3 0] [ 1 1 1 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:08:23 2006 Input: M = MatrixSpace(RationalField(),4,4) A = M([1,0,0,0, -3,3,0,0, 3,-6,3,0, -1,3,-3,1]); A Output: _4 = [ 1 0 0 0] [-3 3 0 0] [ 3 -6 3 0] [-1 3 -3 1] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 15:06:33 2006 Input: (1-x)^3 3*(1-x)^2*x 3*(1-x)*x^2 Output: _3 = -x^3 + 3*x^2 - 3*x + 1 _4 = 3*x^3 - 6*x^2 + 3*x _5 = -3*x^3 + 3*x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:59:52 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m M = ~BasisToStandard([Bern(i,2) for i in range(3)]) M*Matrix(QQ,3,1,[-3, 6, 0]) M*Matrix(QQ,3,1,[16,-48,36]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [-3] [ 0] [ 3] _8 = [16] [-8] [ 4] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:58:39 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m M = ~BasisToStandard([Bern(i,2) for i in range(3)]) M*Matrix(QQ,3,1,[-1, 6, 0]) M*Matrix(QQ,3,1,[16,-48,36]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _7 = [-1] [ 2] [ 5] _8 = [16] [-8] [ 4] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.02s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 14:55:27 2006 Input: 9*(-3*x+2)^2*(3*x-1) + 6*(-3*x+2)*(3*x-1)^2 + (3*x-1)^3 Output: _3 = 108*x^3 - 216*x^2 + 135*x - 25 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '67.86.1' ************** SAGE ***************** Host 67.86.128.103 (67.86.128.103) Time: Tue May 30 14:54:42 2006 Input: 5+5 Output: _3 = 10 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 14:53:52 2006 Input: -2*(-3*x+2)^3 - 3*(-3*x+2)^2*(3*x-1) + 6*(-3*x+2)*(3*x-1)^2 + 3*(3*x-1)^3 Output: _3 = -108*x^3 + 162*x^2 - 63*x + 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 14:48:31 2006 Input: 1-(3*x-1)*(3*x-1)^2 Output: _3 = -27*x^3 + 27*x^2 - 9*x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.17.1' ************** SAGE ***************** Host 24.17.190.197 (24.17.190.197) Time: Tue May 30 14:47:53 2006 Input: 1-(3*x-1)^2*(3*x-1) Output: _3 = -27*x^3 + 27*x^2 - 9*x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:46:56 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print -Bern(0,2) + Bern(2,2) print 4*Bern(0,2) a = 3*x - 1 2*a - 1 4*a^2 - 8*a + 4 Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 2*x - 1 4*x^2 - 8*x + 4 _9 = 6*x - 3 _10 = 36*x^2 - 48*x + 16 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:46:31 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print -Bern(0,2) + Bern(2,2) print 4*Bern(0,2) a = 3*x - 1 Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 2*x - 1 4*x^2 - 8*x + 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:46:23 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print -Bern(0,2) + Bern(2,2) print 4*Bern(0,2) a = 3*t - 1 2*(3*t-1 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 2*x - 1 4*x^2 - 8*x + 4 ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:32:13 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print -Bern(0,2) + Bern(2,2) print 4*Bern(0,2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 2*x - 1 4*x^2 - 8*x + 4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:31:47 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print -Bern(0,2) + Bern(2,2) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: 2*x - 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:31:01 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print [Bern(i,2) for i in range(3)] Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: [x^2 - 2*x + 1, -2*x^2 + 2*x, x^2] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:30:54 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print ]Bern(i,2) for i in range(3)] Output: Errors: ------------------------------------------------------------ File "", line 1 print ]Bern(i,2) for i in range(3)] ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 14:30:38 2006 Input: def C(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bern(n,d): return C(d,n)*(x^n)*(1-x)^(d-n) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ,n,n,0)() for i in range(n): for j in range(n): m.set((i,j), a[j][i]) return m print Bern(i,2) for i in range(3) Output: Errors: ------------------------------------------------------------ File "", line 1 print Bern(i,ZZ(2)) for i in range(ZZ(3)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.62.3' ************** SAGE ***************** Host 24.62.36.25 (24.62.36.25) Time: Tue May 30 14:28:43 2006 Input: 9rf vr;['by6709ybfy Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(9)rf vr;['by6709ybfy ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '167.206' ************** SAGE ***************** Host 167.206.65.226 (167.206.65.226) Time: Tue May 30 13:38:14 2006 Input: maxima('x=y^2+z') Output: _3 = x = z + y^2 Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.04s). '167.206' ************** SAGE ***************** Host 167.206.65.226 (167.206.65.226) Time: Tue May 30 13:37:50 2006 Input: x=y^2+z Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '80.161.' ************** SAGE ***************** Host 80.161.32.116 (80.161.32.116) Time: Tue May 30 12:53:25 2006 Input: E=EllipticCurve([0,1,1,-2,0]) E.b_invariants() E.discriminant() Output: _4 = (4, -4, 1, -3) _5 = 389 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.161.' ************** SAGE ***************** Host 80.161.32.116 (80.161.32.116) Time: Tue May 30 12:53:12 2006 Input: E=EllipticCurve([0,1,1,-2,0]) E.discriminant() Output: _4 = 389 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.161.' ************** SAGE ***************** Host 80.161.32.116 (80.161.32.116) Time: Tue May 30 12:52:59 2006 Input: EllipticCurve([0,1,1,-2,0]) Output: _3 = Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:44:40 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) ~B*MatrixSpace(QQ,3,1)([12,-30,18]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [18*t^2 - 30*t + 12] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] _13 = [12] [-3] [ 0] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:40:08 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) def BasisToStandard(a): n = len(a) m = MatrixSpace(QQ, n, n, 0)() for i in range(len(a)): for j in range(len(a)): m.set((i,j), a[j][i]) return m B = BasisToStandard([Bernstein(t,2,i) for i in range(3)]) ~B*MatrixSpace(QQ,3,1)([-3,6,0]) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [18*t^2 - 30*t + 12] ....: ....: ....: ....: ....: ....: ....: _12 = [-3] [ 0] [ 3] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:36:24 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _9 = [ 6*t - 3] [18*t^2 - 30*t + 12] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:36:15 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) def a(t): return Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) a(3t-1) Output: Errors: ------------------------------------------------------------ File "", line 1 a(ZZ(3)t-ZZ(1)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:35:32 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) a = Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) a(3*t-1) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'Matrix_generic_dense_pid' object is not callable ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:35:20 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) a = Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) a(3t-1) Output: Errors: ------------------------------------------------------------ File "", line 1 a(ZZ(3)t-ZZ(1)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:35:11 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) a = Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:34:45 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0)(3t-1) Output: Errors: ------------------------------------------------------------ File "", line 1 Bernstein(t,ZZ(2),ZZ(0))*Vec(-ZZ(1),ZZ(4))+Bernstein(t,ZZ(2),ZZ(1))*Vec(ZZ(0),ZZ(1))+Bernstein(t,ZZ(2),ZZ(2))*Vec(ZZ(1),ZZ(0))(ZZ(3)t-ZZ(1)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:32:55 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _8 = [ 2*t - 1] [2*t^2 - 6*t + 4] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:32:46 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) Vec(2,1) #Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _8 = [2] [1] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:32:39 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ['t'],2,1)([x,y]) Vec([2,1]) #Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: Vec() takes exactly 2 arguments (1 given) ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:32:13 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ,2,1)([x*t^0,y*t^0]) MatrixSpace(QQ['t'],2,1)([x,y]) #Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'y' is not defined ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:31:32 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ,2,1)([x*t^0,y*t^0]) #Vec(2,1) #Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:31:07 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ,2,1)([x*t^0,y*t^0]) Vec(2,1) #Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: Errors: ------------------------------------------------------------ File "", line 3 ,ZZ(1)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:30:56 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ,2,1)([x*t^0,y*t^0]) #Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:30:49 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ,2,1)([x*t^0,y*t^0]) Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3848, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1562, in _right_scalar_multiply File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/rational_field.py", line 100, in __call__ File "rational.pyx", line 105, in rational.Rational.__init__ File "rational.pyx", line 183, in rational.Rational.__set_value TypeError: Unable to coerce t^2 - 2*t + 1 () to Rational ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:30:03 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ,2,1)([x,y]) #Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:29:44 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return MatrixSpace(QQ,2,1)([x,y]) Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3848, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1562, in _right_scalar_multiply File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/rational_field.py", line 100, in __call__ File "rational.pyx", line 105, in rational.Rational.__init__ File "rational.pyx", line 183, in rational.Rational.__set_value TypeError: Unable to coerce t^2 - 2*t + 1 () to Rational ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 12:29:18 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term def Vec(x,y): return Matrix(QQ,2,1,[x,y]) Bernstein(t,2,0)*Vec(-1,4)+Bernstein(t,2,1)*Vec(0,1)+Bernstein(t,2,2)*Vec(1,0) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 116, in coerce.bin_op File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 3848, in __mul__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/matrix/matrix.py", line 1562, in _right_scalar_multiply File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/rational_field.py", line 100, in __call__ File "rational.pyx", line 105, in rational.Rational.__init__ File "rational.pyx", line 183, in rational.Rational.__set_value TypeError: Unable to coerce t^2 - 2*t + 1 () to Rational ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.23s). '128.186' ************** SAGE ***************** Host 128.186.40.84 (128.186.40.84) Time: Tue May 30 11:48:38 2006 Input: 9-4 Output: _3 = 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:40:13 2006 Input: x = QQ['x,a,b'].gens()[0] a = QQ['x,a,b'].gens()[1] b = QQ['x,a,b'].gens()[2] (a*x-2)^2 Output: _6 = 4 - 4*x*a + x^2*a^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:37:56 2006 Input: x = QQ['x,a,b'].gens()[0] a = QQ['x,a,b'].gens()[1] b = QQ['x,a,b'].gens()[2] (a*x+b-1)^2 Output: _6 = 1 - 2*b + b^2 - 2*x*a + 2*x*a*b + x^2*a^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:37:51 2006 Input: x = QQ['x,a,b'].gens()[0] a = QQ['x,a,b'].gens()[1] b = QQ['x,a,b'].gens()[2] (ax+b-1)^2 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ax' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:37:17 2006 Input: QQ['x,y,z'].gens() Output: _3 = (x, y, z) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.225.' ************** SAGE ***************** Host 69.225.243.75 (69.225.243.75) Time: Tue May 30 11:25:21 2006 Input: 40/2.4 Output: _3 = 16.666666666666668 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.225.' ************** SAGE ***************** Host 69.225.243.75 (69.225.243.75) Time: Tue May 30 11:25:09 2006 Input: 40/2.4 Output: _3 = 16.666666666666668 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.225.' ************** SAGE ***************** Host 69.225.243.75 (69.225.243.75) Time: Tue May 30 11:24:05 2006 Input: 17*2.4 Output: _3 = 40.799999999999997 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:23:24 2006 Input: MV = QQ['x,y,z'] def AllCombinations(gens,tochoose): ret = [] def Backtrack(current,ind): if ind == len(gens): return if current.degree() == tochoose: ret.append(current) return for i in range(ind,len(gens)): Backtrack(ind+1,current) Backtrack(ind+1,current*gens[ind]) Backtrack(gens[0]^0) return ret AllCombinations(MV.gens(),2) Output: Errors: ------------------------------------------------------------ File "", line 6 : ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ret' is not defined ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 4) ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'AllCombinations' is not defined ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '69.225.' ************** SAGE ***************** Host 69.225.243.75 (69.225.243.75) Time: Tue May 30 11:23:01 2006 Input: 17(2.4) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: 'integer.Integer' object is not callable Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:16:31 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] (x*y*z).degree() Output: _4 = (x, y, z) _8 = 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:16:22 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] (x*y*z).degree(x) Output: _4 = (x, y, z) _8 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:16:15 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] (x*y*z).degree() Output: _4 = (x, y, z) _8 = 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:16:12 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] (x*y*z).degree() Output: _4 = (x, y, z) _8 = 3 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:16:07 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] (x*y*z).total_degree() Output: _4 = (x, y, z) _8 = 3 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:15:24 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] dir(x*y*z) Output: _4 = (x, y, z) _8 = ['Hom', '_MPolynomial__element', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__floordiv__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_repr_with_changed_varnames', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_variable_indices_', 'additive_order', 'base_ring', 'category', 'coefficient', 'constant_coefficient', 'db', 'degree', 'dump', 'dumps', 'element', 'exponents', 'factor', 'fix', 'gcd', 'homogenize', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_homogeneous', 'is_monomial', 'is_nonzero', 'is_unit', 'is_univariate', 'is_zero', 'mod', 'monomial_coefficient', 'monomials', 'multiplicative_order', 'newton_polytope', 'nvariables', 'order', 'parent', 'quo_rem', 'rename', 'reset_name', 'save', 'total_degree', 'univariate_polynomial', 'variable', 'variables', 'version'] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:15:13 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] (x*y*z).order? Output: _4 = (x, y, z) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:15:08 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] dir(x*y*z) (x*y*z).order? Output: _4 = (x, y, z) _8 = ['Hom', '_MPolynomial__element', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__floordiv__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_repr_with_changed_varnames', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_variable_indices_', 'additive_order', 'base_ring', 'category', 'coefficient', 'constant_coefficient', 'db', 'degree', 'dump', 'dumps', 'element', 'exponents', 'factor', 'fix', 'gcd', 'homogenize', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_homogeneous', 'is_monomial', 'is_nonzero', 'is_unit', 'is_univariate', 'is_zero', 'mod', 'monomial_coefficient', 'monomials', 'multiplicative_order', 'newton_polytope', 'nvariables', 'order', 'parent', 'quo_rem', 'rename', 'reset_name', 'save', 'total_degree', 'univariate_polynomial', 'variable', 'variables', 'version'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:14:53 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] dir(x*y*z) (x*y*z).order() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 388, in element.RingElement.order File "element.pyx", line 394, in element.RingElement.additive_order NotImplementedError _4 = (x, y, z) _8 = ['Hom', '_MPolynomial__element', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__floordiv__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_repr_with_changed_varnames', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_variable_indices_', 'additive_order', 'base_ring', 'category', 'coefficient', 'constant_coefficient', 'db', 'degree', 'dump', 'dumps', 'element', 'exponents', 'factor', 'fix', 'gcd', 'homogenize', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_homogeneous', 'is_monomial', 'is_nonzero', 'is_unit', 'is_univariate', 'is_zero', 'mod', 'monomial_coefficient', 'monomials', 'multiplicative_order', 'newton_polytope', 'nvariables', 'order', 'parent', 'quo_rem', 'rename', 'reset_name', 'save', 'total_degree', 'univariate_polynomial', 'variable', 'variables', 'version'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:14:40 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] dir(x*y*z) order(x*y*z) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 740, in order File "element.pyx", line 388, in element.RingElement.order File "element.pyx", line 394, in element.RingElement.additive_order NotImplementedError _4 = (x, y, z) _8 = ['Hom', '_MPolynomial__element', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__floordiv__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_repr_with_changed_varnames', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_variable_indices_', 'additive_order', 'base_ring', 'category', 'coefficient', 'constant_coefficient', 'db', 'degree', 'dump', 'dumps', 'element', 'exponents', 'factor', 'fix', 'gcd', 'homogenize', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_homogeneous', 'is_monomial', 'is_nonzero', 'is_unit', 'is_univariate', 'is_zero', 'mod', 'monomial_coefficient', 'monomials', 'multiplicative_order', 'newton_polytope', 'nvariables', 'order', 'parent', 'quo_rem', 'rename', 'reset_name', 'save', 'total_degree', 'univariate_polynomial', 'variable', 'variables', 'version'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:14:14 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] dir(x*y*z) Output: _4 = (x, y, z) _8 = ['Hom', '_MPolynomial__element', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__floordiv__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__invert__', '__module__', '__mul__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_gap_', '_gap_init_', '_gp_', '_gp_init_', '_im_gens_', '_interface_', '_interface_is_cached_', '_is_atomic', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_repr_', '_repr_with_changed_varnames', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_variable_indices_', 'additive_order', 'base_ring', 'category', 'coefficient', 'constant_coefficient', 'db', 'degree', 'dump', 'dumps', 'element', 'exponents', 'factor', 'fix', 'gcd', 'homogenize', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_homogeneous', 'is_monomial', 'is_nonzero', 'is_unit', 'is_univariate', 'is_zero', 'mod', 'monomial_coefficient', 'monomials', 'multiplicative_order', 'newton_polytope', 'nvariables', 'order', 'parent', 'quo_rem', 'rename', 'reset_name', 'save', 'total_degree', 'univariate_polynomial', 'variable', 'variables', 'version'] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:14:06 2006 Input: MV = QQ['x,y,z'] MV.gens() x = MV.gens()[0] y = MV.gens()[1] z = MV.gens()[2] x*y*z Output: _4 = (x, y, z) _8 = x*y*z Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:12:16 2006 Input: MV = QQ['x,y,z'] MV.gens() Output: _4 = (x, y, z) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:12:04 2006 Input: MV = QQ['x,y,z'] MV Output: _4 = Polynomial Ring in x, y, z over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:10:33 2006 Input: x = QQ['x'].0 y = QQ['y'].0 z = QQ['z'].0 x*y Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and y (parent: Univariate Polynomial Ring in y over Rational Field) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:10:15 2006 Input: x = QQ['x'].0 y = QQ['y'].0 z = QQ['z'].0 (x*y*z).order() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "element.pyx", line 353, in element.RingElement.__mul__ File "coerce.pyx", line 123, in coerce.bin_op TypeError: unable to find a common parent for x (parent: Univariate Polynomial Ring in x over Rational Field) and y (parent: Univariate Polynomial Ring in y over Rational Field) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 11:09:14 2006 Input: dir(x) Output: _3 = ['Hom', '_Polynomial_rational_dense__list', '_Polynomial_rational_dense__poly', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__floordiv__', '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__long__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_factor_pari_helper', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_gen', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_mul_generic', '_mul_karatsuba', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_pow', '_repr', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_extend', 'base_ring', 'category', 'coeffs', 'complex_roots', 'constant_coefficient', 'copy', 'db', 'degree', 'denominator', 'derivative', 'dict', 'disc', 'discriminant', 'dump', 'dumps', 'factor', 'factor_mod', 'factor_padic', 'galois_group', 'gcd', 'hensel_lift', 'integral', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_gen', 'is_irreducible', 'is_monic', 'is_nonzero', 'is_unit', 'is_zero', 'lcm', 'leading_coefficient', 'list', 'mod', 'monic', 'multiplicative_order', 'name', 'newton_raphson', 'newton_slopes', 'order', 'parent', 'polynomial', 'quo_rem', 'rename', 'rescale', 'reset_name', 'resultant', 'reverse', 'roots', 'save', 'truncate', 'valuation', 'version', 'xgcd'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.164.' ************** SAGE ***************** Host 65.164.135.254 (65.164.135.254) Time: Tue May 30 10:59:10 2006 Input: 45+35 Output: _3 = 80 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.164.' ************** SAGE ***************** Host 65.164.135.254 (65.164.135.254) Time: Tue May 30 10:59:09 2006 Input: 45+35 Output: _3 = 80 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 10:49:48 2006 Input: f = QQ[chr(ord('a')+1)].0 f Output: _4 = b Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 10:48:27 2006 Input: f = QQ['a'+1].0 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: cannot concatenate 'str' and 'int' objects Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 10:45:59 2006 Input: x.degree() Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Tue May 30 10:45:41 2006 Input: dir(x) Output: _3 = ['Hom', '_Polynomial_rational_dense__list', '_Polynomial_rational_dense__poly', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__dict__', '__div__', '__doc__', '__float__', '__floordiv__', '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__', '__int__', '__invert__', '__iter__', '__long__', '__mod__', '__module__', '__mul__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__setitem__', '__str__', '__sub__', '__truediv__', '__weakref__', '__xor__', '_add_', '_cmp_', '_coeff_repr', '_div_', '_factor_pari_helper', '_gap_', '_gap_init_', '_gcd', '_gp_', '_gp_init_', '_im_gens_', '_integer_', '_interface_', '_interface_is_cached_', '_is_atomic', '_is_gen', '_kash_', '_kash_init_', '_latex_', '_latex_coeff_repr', '_lcm', '_macaulay2_', '_macaulay2_init_', '_magma_', '_magma_init_', '_maple_', '_maple_init_', '_mathematica_', '_mathematica_init_', '_maxima_', '_maxima_init_', '_mul_', '_mul_generic', '_mul_karatsuba', '_octave_', '_octave_init_', '_parent', '_pari_', '_pari_init_', '_plot_', '_pow', '_repr', '_repr_', '_rich_to_bool', '_sage_', '_set_parent', '_singular_', '_singular_init_', '_sub_', '_xgcd', 'additive_order', 'base_extend', 'base_ring', 'category', 'coeffs', 'complex_roots', 'constant_coefficient', 'copy', 'db', 'degree', 'denominator', 'derivative', 'dict', 'disc', 'discriminant', 'dump', 'dumps', 'factor', 'factor_mod', 'factor_padic', 'galois_group', 'gcd', 'hensel_lift', 'integral', 'inverse_mod', 'inverse_of_unit', 'is_constant', 'is_gen', 'is_irreducible', 'is_monic', 'is_nonzero', 'is_unit', 'is_zero', 'lcm', 'leading_coefficient', 'list', 'mod', 'monic', 'multiplicative_order', 'name', 'newton_raphson', 'newton_slopes', 'order', 'parent', 'polynomial', 'quo_rem', 'rename', 'rescale', 'reset_name', 'resultant', 'reverse', 'roots', 'save', 'truncate', 'valuation', 'version', 'xgcd'] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '166.113' ************** SAGE ***************** Host 166.113.43.234 (166.113.43.234) Time: Tue May 30 09:28:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '131.111' ************** SAGE ***************** Host 131.111.8.97 (131.111.8.97) Time: Tue May 30 05:49:27 2006 Input: gap('SymmetricGroup(7)') Output: _3 = Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.45s). '202.156' ************** SAGE ***************** Host 202.156.6.51 (202.156.6.51) Time: Tue May 30 05:48:43 2006 Input: mensuration Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'mensuration' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '202.156' ************** SAGE ***************** Host 202.156.6.51 (202.156.6.51) Time: Tue May 30 05:48:22 2006 Input: fff Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'fff' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '203.129' ************** SAGE ***************** Host 203.129.158.119 (203.129.158.119) Time: Tue May 30 02:48:09 2006 Input: 3d+d Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)d+d ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '66.235.' ************** SAGE ***************** Host 66.235.1.162 (66.235.1.162) Time: Mon May 29 22:26:47 2006 Input: pari('(a*3*t)^2') Output: _3 = 9*t^2*a^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.40.180 (71.231.40.180) Time: Mon May 29 22:04:22 2006 Input: (1-(3*t-1))^3 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 't' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.231.' ************** SAGE ***************** Host 71.231.40.180 (71.231.40.180) Time: Mon May 29 22:03:44 2006 Input: (1-(3t-1))^3 Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(1)-(ZZ(3)t-ZZ(1)))**ZZ(3) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Mon May 29 21:33:00 2006 Input: 2*3 Output: _3 = 6 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '68.163.' ************** SAGE ***************** Host 68.163.217.63 (68.163.217.63) Time: Mon May 29 20:24:20 2006 Input: 3^3^3^3^3^3^3^3^3^3 mod 10000000000 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)**ZZ(3)**ZZ(3)**ZZ(3)**ZZ(3)**ZZ(3)**ZZ(3)**ZZ(3)**ZZ(3)**ZZ(3) mod ZZ(10000000000) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '205.188' ************** SAGE ***************** Host 205.188.117.12 (205.188.117.12) Time: Mon May 29 20:20:50 2006 Input: (x-3)^3=-64 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '202.78.' ************** SAGE ***************** Host 202.78.240.7 (202.78.240.7) Time: Mon May 29 17:48:48 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.20s). '202.78.' ************** SAGE ***************** Host 202.78.240.7 (202.78.240.7) Time: Mon May 29 17:48:29 2006 Input: factor(2006) Output: _3 = 2 * 17 * 59 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.80.' ************** SAGE ***************** Host 206.80.72.193 (206.80.72.193) Time: Mon May 29 16:42:43 2006 Input: 725.74-233.50-40-225-189 Output: _3 = 38.240000000000009 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '82.182.' ************** SAGE ***************** Host 82.182.97.188 (82.182.97.188) Time: Mon May 29 13:22:07 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.28s). '82.182.' ************** SAGE ***************** Host 82.182.97.188 (82.182.97.188) Time: Mon May 29 13:21:39 2006 Input: mathematica("2*") Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 388, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 571, in __init__ TypeError: Unable to start mathematica because the command 'math' failed. In order to use the Mathematica interface you need to have Mathematica installed and have a script in your PATH called "math" that runs the command-line version of Mathematica. (1) You might have to buy Mathematica (for at most $1880) at http://www.wolfram.com/. (2) * LINUX: The math script comes standard with your Mathematica install. * WINDOWS: Create a file named "math", which you place in the SAGE root directory. The file contained a single line, which was the path to the mathematica math.exe file. In my case, this was: "C:/Program Files/Wolfram Research/Mathematica/4.0/math.exe" The key points are 1) there is a file named "math.exe", and it will generally be located in a place analagous to the above (depending on where Mathematica has been installed). This file is used only for launching the kernel with a text-based interface. 2) a cygwin batch file must be created which executes this file, which means using forward slashes rather than back slashes, and probably surrounding everything in quotes 3) this cygwin batch file must be on the path for SAGE (placing it in /local/bin/ is an easy way to ensure this). * APPLE OS X: Use following directions, based on those at http://support.wolfram.com/applicationpacks/parallel/remoteosxpct2.html (a) create a file called math (in your PATH) (b) on the first line type the text "#!/bin/sh" (without quotes) (c) On the second line, type the path to the Mathematica kernel on Mac OS X, followed by $@. For example, if you installed Mathematica 5.0 into your Applications directory on Mac OS X, the second line would read as follows. /Applications/Mathematica\ 5.0.app/Contents/MacOS/MathKernel $@ (d) Save the file. (e) Make the file executable. chmod +x math Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.16.1' ************** SAGE ***************** Host 24.16.12.24 (24.16.12.24) Time: Mon May 29 13:05:24 2006 Input: def BezierEval(ControlPoints,arg): n = len(ControlPoints) if n == 1: return ControlPoints[0] else: return BezierEval([(1-arg)*ControlPoints[i]+arg*ControlPoints[i+1] for i in range(n-1)], arg) Output: Errors: ------------------------------------------------------------ File "", line 5 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). '80.161.' ************** SAGE ***************** Host 80.161.32.116 (80.161.32.116) Time: Mon May 29 13:00:01 2006 Input: E=EllipticCurve([0,1,1,-2,0]) E E.rank() Output: _4 = Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field _5 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.82s). '80.161.' ************** SAGE ***************** Host 80.161.32.116 (80.161.32.116) Time: Mon May 29 12:59:43 2006 Input: E=EllipticCurve([0,1,1,-2,0]) E Output: _4 = Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.161.' ************** SAGE ***************** Host 80.161.32.116 (80.161.32.116) Time: Mon May 29 12:59:37 2006 Input: E=EllipticCurve([0,1,1,-2,0]) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). '69.169.' ************** SAGE ***************** Host 69.169.194.30 (69.169.194.30) Time: Mon May 29 12:49:56 2006 Input: 4+5 Output: _3 = 9 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.169.' ************** SAGE ***************** Host 69.169.194.30 (69.169.194.30) Time: Mon May 29 12:49:31 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '83.43.1' ************** SAGE ***************** Host 83.43.179.143 (83.43.179.143) Time: Mon May 29 11:48:28 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.09s, Wall time 0m2.83s). '24.53.1' ************** SAGE ***************** Host 24.53.11.251 (24.53.11.251) Time: Mon May 29 09:21:59 2006 Input: 28,997 x 3,690 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(28),ZZ(997) x ZZ(3),ZZ(690) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.53.1' ************** SAGE ***************** Host 24.53.11.251 (24.53.11.251) Time: Mon May 29 09:21:30 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '200.147' ************** SAGE ***************** Host 200.147.238.105 (200.147.238.105) Time: Mon May 29 07:52:35 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.61s). '80.11.1' ************** SAGE ***************** Host 80.11.139.193 (80.11.139.193) Time: Mon May 29 07:43:43 2006 Input: print maxima('x^x^x^x^x').diff('x', 4) Output: x^x^x^x^x*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x)^3 + x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*log(x)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*(log(x) + 1)^2*(log(x) + (x - 1)/x) + 2*x^(x - 1)*log(x)*(log(x) + 1)*(log(x) + (x - 1)/x) + 3*(2/x - (x - 1)/x^2)*x^(x - 1)*(log(x) + (x - 1)/x) + 2*x^(x - 2)*(log(x) + (x - 1)/x) + 2*x^(x - 2)*(log(x) + (x - 2)/x) + x^x*log(x)*(log(x) + 1)^4 + x^(x - 1)*(log(x) + 1)^3 + 3*x^(x - 1)*log(x)*(log(x) + 1)^2 + (2/x - (x - 1)/x^2)*x^(x - 1)*(log(x) + 1) + 4*x^(x - 2)*(log(x) + 1) + (2/x - (x - 1)/x^2)*x^(x - 1)*log(x) + 2*x^(x - 2)*log(x) + (2*(x - 1)/x^3 - 3/x^2)*x^(x - 1)) + 4*x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^(x - 1)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x) + x^(x - 1)*log(x)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^3 + x^(x - 1)*(log(x) + 1)^2 + 2*x^(x - 1)*log(x)*(log(x) + 1) + (2/x - (x - 1)/x^2)*x^(x - 1) + 2*x^(x - 2)) + 3*x^(x^x - 1)*(x^(x - 1)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x) + x^(x - 1)*log(x)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^3 + x^(x - 1)*(log(x) + 1)^2 + 2*x^(x - 1)*log(x)*(log(x) + 1) + (2/x - (x - 1)/x^2)*x^(x - 1) + 2*x^(x - 2)) + x^(x^x - 1)*(2*x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x) + x^(x - 1)*log(x)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^3 + x^(x - 1)*(log(x) + 1)^2 + 2*x^(x - 1)*log(x)*(log(x) + 1) - x^(x - 2)*(log(x) + 1) + 2*(x^x - 1)/x^3 + 3*x^(x - 2)) + 3*x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x))^2 + 3*x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 6*x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 5*x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 3*x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x)*(x^x*log(x)*(log(x) + 1)^2 + 2*x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x) - (x^x - 1)/x^2) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^x*log(x)*(log(x) + 1)^2 + 2*x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x) - (x^x - 1)/x^2) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x)^3 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x)^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^4 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^3) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x) + x^(x - 1)*log(x)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^3 + x^(x - 1)*(log(x) + 1)^2 + 2*x^(x - 1)*log(x)*(log(x) + 1) + (2/x - (x - 1)/x^2)*x^(x - 1) + 2*x^(x - 2)) + 3*x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 3*x^(x^x - 1)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 2*x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^3 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 - x^(x^x - 2)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + 2*(x^x^x - 1)/x^3) + 4*x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x) + x^(x - 1)*log(x)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^3 + x^(x - 1)*(log(x) + 1)^2 + 2*x^(x - 1)*log(x)*(log(x) + 1) + (2/x - (x - 1)/x^2)*x^(x - 1) + 2*x^(x - 2)) + 3*x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 2*x^(x^x - 1)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1)^2 + 2*x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x) - (x^x - 1)/x^2) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x)^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^3 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2) + 3*x^(x^x^x - 1)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x) + x^(x - 1)*log(x)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^3 + x^(x - 1)*(log(x) + 1)^2 + 2*x^(x - 1)*log(x)*(log(x) + 1) + (2/x - (x - 1)/x^2)*x^(x - 1) + 2*x^(x - 2)) + 3*x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 2*x^(x^x - 1)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1)^2 + 2*x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x) - (x^x - 1)/x^2) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x)^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^3 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2) + 3*x^x^x^x*log(x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)))^2 + 3*x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + 6*x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^2*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + 5*x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + 3*x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + 2*x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) - (x^x^x - 1)/x^2) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + 2*x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) - (x^x^x - 1)/x^2) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x)^3 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x)^2 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^2*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x) + x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^4 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^3) + 4*x^x^x^x^x*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1)) + x^(x^x^x - 1))*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x)^2 + x^(x - 1)*(log(x) + 1)*(log(x) + (x - 1)/x) + x^(x - 1)*log(x)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^3 + x^(x - 1)*(log(x) + 1)^2 + 2*x^(x - 1)*log(x)*(log(x) + 1) + (2/x - (x - 1)/x^2)*x^(x - 1) + 2*x^(x - 2)) + 3*x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + 2*x^(x^x - 1)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1)^2 + 2*x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x) - (x^x - 1)/x^2) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x)^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^3 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2) + 3*x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + 2*x^(x^x^x - 1)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + 2*x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) - (x^x^x - 1)/x^2) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x)^2 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x) + x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^3 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^2) + 3*x^x^x^x^x*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x) + x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^2 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1)))^2 + 6*x^x^x^x^x*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1)) + x^(x^x^x - 1))^2*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x) + x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^2 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))) + x^x^x^x^x*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1)) + x^(x^x^x - 1))^4 Exiting SAGE (CPU time 0m1.15s, Wall time 0m1.61s). '80.11.1' ************** SAGE ***************** Host 80.11.139.193 (80.11.139.193) Time: Mon May 29 07:42:45 2006 Input: print maxima('x^x^x^x^x').diff('x', 2) Output: x^x^x^x^x*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^(x - 1)*(log(x) + (x - 1)/x) + x^x*log(x)*(log(x) + 1)^2 + x^(x - 1)*(log(x) + 1) + x^(x - 1)*log(x)) + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + (x^x - 1)/x) + x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))^2 + x^(x^x - 1)*(x^x*log(x)*(log(x) + 1) + x^(x - 1))) + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + (x^x^x - 1)/x) + x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))^2 + x^(x^x^x - 1)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1))) + x^x^x^x^x*(x^x^x^x*log(x)*(x^x^x*log(x)*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) + x^(x^x - 1)) + x^(x^x^x - 1))^2 Exiting SAGE (CPU time 0m0.11s, Wall time 0m0.30s). '80.11.1' ************** SAGE ***************** Host 80.11.139.193 (80.11.139.193) Time: Mon May 29 07:42:32 2006 Input: print maxima('x^x^x').diff('x') Output: x^x^x*(x^x*log(x)*(log(x) + 1) + x^(x - 1)) Exiting SAGE (CPU time 0m0.08s, Wall time 0m0.28s). '80.11.1' ************** SAGE ***************** Host 80.11.139.193 (80.11.139.193) Time: Mon May 29 07:42:25 2006 Input: print maxima('x^x^x').differentiate('x') Output: differentiate(x^x^x,x) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '80.11.1' ************** SAGE ***************** Host 80.11.139.193 (80.11.139.193) Time: Mon May 29 07:42:01 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.30s). '150.244' ************** SAGE ***************** Host 150.244.21.136 (150.244.21.136) Time: Mon May 29 03:08:35 2006 Input: E=EllipticCurve(GF(751),[0,0,1,-1,1]) E.points() Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 5005 Killed sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '129.94.' ************** SAGE ***************** Host 129.94.6.28 (129.94.6.28) Time: Mon May 29 00:42:45 2006 Input: 19.5/30 Output: _3 = 0.65000000000000002 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '129.194' ************** SAGE ***************** Host 129.194.66.158 (129.194.66.158) Time: Mon May 29 00:11:52 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 0m1.53s). '129.194' ************** SAGE ***************** Host 129.194.66.158 (129.194.66.158) Time: Mon May 29 00:11:40 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C Exiting SAGE (CPU time 0m0.10s, Wall time 0m1.81s). '129.194' ************** SAGE ***************** Host 129.194.66.158 (129.194.66.158) Time: Mon May 29 00:11:25 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) Exiting SAGE (CPU time 0m0.10s, Wall time 0m1.31s). '129.194' ************** SAGE ***************** Host 129.194.66.158 (129.194.66.158) Time: Mon May 29 00:11:10 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.03s, Wall time 0m1.96s). '129.194' ************** SAGE ***************** Host 129.194.66.158 (129.194.66.158) Time: Mon May 29 00:10:50 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.44s). '71.104.' ************** SAGE ***************** Host 71.104.148.51 (71.104.148.51) Time: Sun May 28 23:33:34 2006 Input: factor(445345) Output: _3 = 5 * 89069 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.104.' ************** SAGE ***************** Host 71.104.148.51 (71.104.148.51) Time: Sun May 28 23:33:25 2006 Input: factor(44) Output: _3 = 2^2 * 11 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.104.' ************** SAGE ***************** Host 71.104.148.51 (71.104.148.51) Time: Sun May 28 23:31:32 2006 Input: fact(44) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'fact' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.104.' ************** SAGE ***************** Host 71.104.148.51 (71.104.148.51) Time: Sun May 28 23:31:22 2006 Input: 44! Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(44)! ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '68.248.' ************** SAGE ***************** Host 68.248.147.236 (68.248.147.236) Time: Sun May 28 23:20:28 2006 Input: 42/10 Output: _3 = 21/5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.22.7' ************** SAGE ***************** Host 24.22.72.72 (24.22.72.72) Time: Sun May 28 21:34:24 2006 Input: log3x=4 Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:44:56 2006 Input: 26.65+53.07+8.63+78.13+7.98+18.74+7.86+61.56+3.95+154.80+52.42+130.63+27.21+18.52+40.85+6.34 Output: _3 = 697.34000000000015 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:44:35 2006 Input: 26.65+53.07+8.63+78.13+7.98+18.74+7.86+61.56+3.95+154.80+52.42+130.63+27.21+18.52+40.85-6.34 Output: _3 = 684.66000000000008 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:44:14 2006 Input: 26.65+53.07+8.63+78.13+7+98+18.74+7.86+61.56+3.95+154.80+52.42+130.63+27.21+18.52+40.85-6.34 Output: _3 = 781.68000000000006 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:43:51 2006 Input: 26.65+53.07+8.63+78+13+7+98+18.74+7.86+61.56+3.95+154.80+52.42+130.63+27.21+18.52+40.85-6.34 Output: _3 = 794.54999999999995 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:42:22 2006 Input: 11.22+3.61+2.15+61.31+25.92+23.09+18.52+46.96+39.00+37+416.17+11.0+24.50+17.66 Output: _3 = 738.11000000000001 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:42:06 2006 Input: 11.22+3.61+2.15+61.31+25.92+23.09+18.52+46.96+39.00+37+416.17+11.0+24.50 Output: _3 = 720.45000000000005 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:39:48 2006 Input: 24.02+25.55+11.00+7.50+3.62+5.29+44.18+3.76+3.49+7.50+36.43+6.46+10.14+103.00+28.00+13.76+49.55+15.00+21.35+16.59 Output: _3 = 436.19000000000000 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:39:21 2006 Input: 24.02+25.55+11.00+7.50+3.62+5.29+4.18+3.76+3.49+7.50+36.43+6.46+10.14+103.00+28.00+13.76+49.55+15.00+21.35+16.59 Output: _3 = 396.19000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:37:42 2006 Input: 22.98+14.98+15.31+4.64+5.76+222.74+84.29+74.56+113.00+6.68+44.03+12.32+48.69+5.62-445.26 Output: _3 = 230.34000000000003 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:37:16 2006 Input: 22.98+14.98+15.31+4.64+5.76+222.74+84.29+74.56+113.00+6.68+44.03+12.32+48.69+5.62 Output: _3 = 675.60000000000002 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). '69.152.' ************** SAGE ***************** Host 69.152.229.75 (69.152.229.75) Time: Sun May 28 15:36:00 2006 Input: 44+4 Output: _3 = 48 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '203.5.2' ************** SAGE ***************** Host 203.5.217.3 (203.5.217.3) Time: Sun May 28 15:31:19 2006 Input: sqrt(x^2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/misc/functional.py", line 795, in sqrt File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/complex_field.py", line 145, in __call__ File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/rings/complex_number.py", line 76, in __init__ TypeError: unable to coerce (x^2,0) to a ComplexNumber Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '203.5.2' ************** SAGE ***************** Host 203.5.217.3 (203.5.217.3) Time: Sun May 28 15:31:07 2006 Input: sqrt(4) Output: _3 = 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '24.7.15' ************** SAGE ***************** Host 24.7.157.106 (24.7.157.106) Time: Sun May 28 15:28:14 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.28.1' ************** SAGE ***************** Host 71.28.190.76 (71.28.190.76) Time: Sun May 28 13:25:10 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '65.93.1' ************** SAGE ***************** Host 65.93.18.171 (65.93.18.171) Time: Sun May 28 11:19:08 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:49:08 2006 Input: ('SymmetricGroup(9)') ('NumberField(X^9 + 5*X^3 - 45*X + 35)') (0, '(x,y,z)', 'dp') Output: _3 = 'SymmetricGroup(9)' _4 = 'NumberField(X^9 + 5*X^3 - 45*X + 35)' _5 = (0, '(x,y,z)', 'dp') Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:47:49 2006 Input: ('SymmetricGroup(9)') ('NumberField(X^9 + 5*X^3 - 5*X + 5)') (0, '(x,y,z)', 'dp') Output: _3 = 'SymmetricGroup(9)' _4 = 'NumberField(X^9 + 5*X^3 - 5*X + 5)' _5 = (0, '(x,y,z)', 'dp') Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:47:28 2006 Input: ('SymmetricGroup(9)') ('NumberField(X^9 + 15*X^3 - 15*X + 15)') (0, '(x,y,z)', 'dp') Output: _3 = 'SymmetricGroup(9)' _4 = 'NumberField(X^9 + 15*X^3 - 15*X + 15)' _5 = (0, '(x,y,z)', 'dp') Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:46:50 2006 Input: ('SymmetricGroup(7)') ('NumberField(X^3 + 15*X^2 - 15*X + 15)') (0, '(x,y,z)', 'dp') Output: _3 = 'SymmetricGroup(7)' _4 = 'NumberField(X^3 + 15*X^2 - 15*X + 15)' _5 = (0, '(x,y,z)', 'dp') Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:46:25 2006 Input: ('SymmetricGroup(7)') ('NumberField(X^3 + 15*X^2 - 15*X + 15)') ('tan(x)').integrate('x') (0, '(x,y,z)', 'dp') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'str' object has no attribute 'integrate' _3 = 'SymmetricGroup(7)' _4 = 'NumberField(X^3 + 15*X^2 - 15*X + 15)' _6 = (0, '(x,y,z)', 'dp') Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:44:16 2006 Input: ( ' tan(x)' ). (ingrate)'x' Output: Errors: ------------------------------------------------------------ File "", line 1 ( ' tan(x)' ). (ingrate)'x' ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:44:11 2006 Input: ( ' tan(x)' ). (ingrate)'x' Output: Errors: ------------------------------------------------------------ File "", line 1 ( ' tan(x)' ). (ingrate)'x' ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:43:37 2006 Input: ( ' tan(x)' ). (ingrate) Output: Errors: ------------------------------------------------------------ File "", line 1 ( ' tan(x)' ). (ingrate) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:41:11 2006 Input: 124 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(124) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.26.201 (71.139.26.201) Time: Sun May 28 10:32:20 2006 Input: 1324*647656 Output: _3 = 857496544 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '82.69.9' ************** SAGE ***************** Host 82.69.92.100 (82.69.92.100) Time: Sun May 28 09:16:02 2006 Input: factor(1007) Output: _3 = 19 * 53 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '4.253.1' ************** SAGE ***************** Host 4.253.10.239 (4.253.10.239) Time: Sun May 28 08:56:43 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.49s). '4.253.1' ************** SAGE ***************** Host 4.253.10.239 (4.253.10.239) Time: Sun May 28 08:55:44 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.95s). '83.49.1' ************** SAGE ***************** Host 83.49.140.114 (83.49.140.114) Time: Sun May 28 03:32:20 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '202.62.' ************** SAGE ***************** Host 202.62.94.8 (202.62.94.8) Time: Sun May 28 00:37:17 2006 Input: print singular.ring(0, '(x,y,z)', 'dp') Output: // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.35s). '72.26.1' ************** SAGE ***************** Host 72.26.17.133 (72.26.17.133) Time: Sun May 28 00:29:00 2006 Input: 28*5 Output: _3 = 140 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '71.34.2' ************** SAGE ***************** Host 71.34.23.88 (71.34.23.88) Time: Sat May 27 20:37:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '210.50.' ************** SAGE ***************** Host 210.50.88.12 (210.50.88.12) Time: Sat May 27 18:45:43 2006 Input: x^2 - 3x^3 = 0 Output: Errors: ------------------------------------------------------------ File "", line 1 x**ZZ(2) - ZZ(3)x**ZZ(3) = ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '130.253' ************** SAGE ***************** Host 130.253.117.8 (130.253.117.8) Time: Sat May 27 16:24:58 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.74s). '84.159.' ************** SAGE ***************** Host 84.159.208.158 (84.159.208.158) Time: Sat May 27 14:13:29 2006 Input: 73x22 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(73)x22 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '195.184' ************** SAGE ***************** Host 195.184.234.172 (195.184.234.172) Time: Sat May 27 14:03:27 2006 Input: print gp('ellinit([1,2,3,4,5])').j Output: j Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). '68.126.' ************** SAGE ***************** Host 68.126.203.155 (68.126.203.155) Time: Sat May 27 11:41:32 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.218.' ************** SAGE ***************** Host 24.218.46.231 (24.218.46.231) Time: Sat May 27 09:37:19 2006 Input: import pexpect Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.250.' ************** SAGE ***************** Host 24.250.97.166 (24.250.97.166) Time: Sat May 27 09:22:14 2006 Input: log(5) 9 Output: Errors: ------------------------------------------------------------ File "", line 1 log(ZZ(5)) ZZ(9) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.250.' ************** SAGE ***************** Host 24.250.97.166 (24.250.97.166) Time: Sat May 27 09:22:00 2006 Input: log5 9 Output: Errors: ------------------------------------------------------------ File "", line 1 log5 ZZ(9) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '202.156' ************** SAGE ***************** Host 202.156.6.51 (202.156.6.51) Time: Sat May 27 06:20:32 2006 Input: dimension_cusp_forms(Gamma0(11),2) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.03s). '213.112' ************** SAGE ***************** Host 213.112.152.208 (213.112.152.208) Time: Sat May 27 05:07:55 2006 Input: kronecker(17,49) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '213.112' ************** SAGE ***************** Host 213.112.152.208 (213.112.152.208) Time: Sat May 27 05:07:49 2006 Input: kronecker(16,49) Output: _3 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '213.112' ************** SAGE ***************** Host 213.112.152.208 (213.112.152.208) Time: Sat May 27 05:07:38 2006 Input: kronecker(15,49) Output: _3 = 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '213.112' ************** SAGE ***************** Host 213.112.152.208 (213.112.152.208) Time: Sat May 27 05:07:31 2006 Input: kronecke(15,49) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'kronecke' is not defined Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.01s). '213.112' ************** SAGE ***************** Host 213.112.152.208 (213.112.152.208) Time: Sat May 27 05:06:56 2006 Input: kronecker(15/49) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: kronecker() takes exactly 2 arguments (1 given) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.165.' ************** SAGE ***************** Host 80.165.170.91 (80.165.170.91) Time: Sat May 27 04:46:02 2006 Input: sympow.analytic_rank(EllipticCurve('37a')) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sympow: line 3: 1825 Segmentation fault ./sympow $* ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/lfunctions/sympow.py", line 240, in analytic_rank RuntimeError: failed to compute analytic rank Exiting SAGE (CPU time 0m0.35s, Wall time 0m1.80s). '80.165.' ************** SAGE ***************** Host 80.165.170.91 (80.165.170.91) Time: Sat May 27 02:19:25 2006 Input: E = EllipticCurve([0,0,1,-1,0]) E.rank() Output: _4 = 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '80.165.' ************** SAGE ***************** Host 80.165.170.91 (80.165.170.91) Time: Sat May 27 02:19:18 2006 Input: E = EllipticCurve([0,0,1,-1,0]) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.128.' ************** SAGE ***************** Host 71.128.203.48 (71.128.203.48) Time: Sat May 27 02:18:07 2006 Input: E=EllipticCurve([0,0,0,0,15^2]) E E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 = x^3 + 225 over Rational Field _5 = [(4 : 17 : 1), (15 : 60 : 1)] _6 = -1 * 2^4 * 3^7 * 5^4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.34s). '71.128.' ************** SAGE ***************** Host 71.128.203.48 (71.128.203.48) Time: Sat May 27 02:15:56 2006 Input: E=EllipticCurve([0,0,0,0,-27*15^2]) E E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 = x^3 - 6075 over Rational Field _5 = [(31 : 154 : 1), (482 : 3689 : 8)] _6 = -1 * 2^4 * 3^13 * 5^4 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.36s). '193.171' ************** SAGE ***************** Host 193.171.36.42 (193.171.36.42) Time: Sat May 27 01:40:57 2006 Input: maxima.diff(phi(t),t); Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'phi' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.165.' ************** SAGE ***************** Host 80.165.170.91 (80.165.170.91) Time: Sat May 27 00:53:31 2006 Input: E = EllipticCurve([0,0,1,-1,0]) Output: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.128.' ************** SAGE ***************** Host 71.128.201.159 (71.128.201.159) Time: Fri May 26 23:28:12 2006 Input: E=EllipticCurve([0,-12,0,148,0]) E E.rank() E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 = x^3 - 12*x^2 + 148*x over Rational Field _5 = 2 _6 = [(2 : 16 : 1), (9 : -33 : 1)] _7 = -1 * 2^14 * 7 * 37^2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.56s). '71.128.' ************** SAGE ***************** Host 71.128.201.159 (71.128.201.159) Time: Fri May 26 23:27:58 2006 Input: E=EllipticCurve([0,0,-12,148,0]) E E.rank() E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 - 12*y = x^3 + 148*x over Rational Field _5 = 2 _6 = [(0 : 12 : 1), (12285 : -57615 : 2197)] _7 = -1 * 2^8 * 5 * 162527 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.38s). '71.128.' ************** SAGE ***************** Host 71.128.201.159 (71.128.201.159) Time: Fri May 26 23:26:49 2006 Input: E=EllipticCurve([0,0,0,-12,148]) E E.rank() E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 = x^3 - 12*x + 148 over Rational Field _5 = 1 _6 = [(-6 : 2 : 1)] _7 = -1 * 2^8 * 3^4 * 11 * 41 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.28s). '71.128.' ************** SAGE ***************** Host 71.128.201.159 (71.128.201.159) Time: Fri May 26 23:20:30 2006 Input: E=EllipticCurve([0,-12,0,-76,-32]) E E.rank() E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 = x^3 - 12*x^2 - 76*x - 32 over Rational Field _5 = 2 _6 = [(-4 : 4 : 1), (54 : 344 : 1)] _7 = 2^14 * 7 * 11 * 23 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.42s). '24.5.24' ************** SAGE ***************** Host 24.5.245.223 (24.5.245.223) Time: Fri May 26 23:09:48 2006 Input: time s = pi.str(5000000*log(10,2)) Output: Errors: /usr/local/sage/sage-0.9/local/bin/sage-sage: line 119: 19567 Segmentation fault sage-ipython $READLINE $LOGOPT -rcfile="$IPYTHONRC" -c "$SAGE_STARTUP_COMMAND;" -------------------------------------------- | SAGE Version 1.3.1, Build Date: 2006-05-17-0016 | '24.5.24' ************** SAGE ***************** Host 24.5.245.223 (24.5.245.223) Time: Fri May 26 23:09:30 2006 Input: time s = pi.str(50000*log(10,2)) Output: CPU times: user 0.21 s, sys: 0.00 s, total: 0.21 s Wall time: 0.22 Exiting SAGE (CPU time 0m0.21s, Wall time 0m0.22s). '24.5.24' ************** SAGE ***************** Host 24.5.245.223 (24.5.245.223) Time: Fri May 26 23:09:23 2006 Input: time s = pi.str(500*log(10,2)) Output: CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s Wall time: 0.00 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.5.24' ************** SAGE ***************** Host 24.5.245.223 (24.5.245.223) Time: Fri May 26 23:09:04 2006 Input: time s = pi.str(5000*log(10,2)) Output: CPU times: user 0.01 s, sys: 0.00 s, total: 0.01 s Wall time: 0.10 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.11s). '131.215' ************** SAGE ***************** Host 131.215.28.163 (131.215.28.163) Time: Fri May 26 19:00:44 2006 Input: 1+1 print gap('SymmetricGroup(7)') Output: _3 = 2 Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.21s). '131.215' ************** SAGE ***************** Host 131.215.28.163 (131.215.28.163) Time: Fri May 26 19:00:27 2006 Input: 1+1 Output: _3 = 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.186.' ************** SAGE ***************** Host 24.186.244.16 (24.186.244.16) Time: Fri May 26 18:08:52 2006 Input: y=3x^2+2x-1 Output: Errors: ------------------------------------------------------------ File "", line 1 y=ZZ(3)x**ZZ(2)+ZZ(2)x-ZZ(1) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.163.124 (128.95.163.124) Time: Fri May 26 17:26:14 2006 Input: 4/13 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4)/ZZ(13) = ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.163.124 (128.95.163.124) Time: Fri May 26 17:26:06 2006 Input: 4/13 Output: _3 = 4/13 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.95.' ************** SAGE ***************** Host 128.95.163.124 (128.95.163.124) Time: Fri May 26 17:25:58 2006 Input: =4/13 Output: Errors: ------------------------------------------------------------ File "", line 1 =ZZ(4)/ZZ(13) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '192.167' ************** SAGE ***************** Host 192.167.206.227 (192.167.206.227) Time: Fri May 26 16:31:00 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '192.167' ************** SAGE ***************** Host 192.167.206.227 (192.167.206.227) Time: Fri May 26 16:30:39 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.63.1' ************** SAGE ***************** Host 24.63.176.16 (24.63.176.16) Time: Fri May 26 16:07:15 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.11s, Wall time 0m3.18s). '128.95.' ************** SAGE ***************** Host 128.95.163.124 (128.95.163.124) Time: Fri May 26 15:03:43 2006 Input: 23/68 Output: _3 = 23/68 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 14:13:07 2006 Input: E=EllipticCurve([0,-12,0,148,0]) E E.gens() E=EllipticCurve([0,24,0,144-4*148,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 - 12*x^2 + 148*x over Rational Field _5 = [(2 : 16 : 1), (9 : -33 : 1)] _7 = Elliptic Curve defined by y^2 = x^3 + 24*x^2 - 448*x over Rational Field _8 = [(-16 : -96 : 1), (64 : -576 : 1)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.55s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 14:11:40 2006 Input: E=EllipticCurve([0,-12,0,148,0]) E E.rank() E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 = x^3 - 12*x^2 + 148*x over Rational Field _5 = 2 _6 = [(2 : 16 : 1), (9 : -33 : 1)] _7 = -1 * 2^14 * 7 * 37^2 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.57s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 14:11:18 2006 Input: E=EllipticCurve([0,0,-12,148,0]) E E.rank() E.gens() factor(E.discriminant()) Output: _4 = Elliptic Curve defined by y^2 - 12*y = x^3 + 148*x over Rational Field _5 = 2 _6 = [(0 : 12 : 1), (12285 : -57615 : 2197)] _7 = -1 * 2^8 * 5 * 162527 Exiting SAGE (CPU time 0m0.04s, Wall time 0m0.44s). '66.68.4' ************** SAGE ***************** Host 66.68.42.14 (66.68.42.14) Time: Fri May 26 14:03:41 2006 Input: x^2 Output: _3 = x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '209.82.' ************** SAGE ***************** Host 209.82.167.172 (209.82.167.172) Time: Fri May 26 13:18:36 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:54:19 2006 Input: E=EllipticCurve([0,0,0,15555,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 15555*x over Rational Field _5 = [(49 : -938 : 1)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.25s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:54:14 2006 Input: E=EllipticCurve([0,0,0,1555,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 1555*x over Rational Field _5 = [(36 : 1893 : 64)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.24s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:54:07 2006 Input: E=EllipticCurve([0,0,0,155,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 155*x over Rational Field _5 = [(5 : 30 : 1), (1156 : 5967 : 64)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.31s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:54:00 2006 Input: E=EllipticCurve([0,0,0,1,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + x over Rational Field _5 = [] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). '71.39.1' ************** SAGE ***************** Host 71.39.185.145 (71.39.185.145) Time: Fri May 26 11:23:42 2006 Input: 2^2000 Output: _3 = 114813069527425452423283320117768198402231770208869520047764273682576626139237031385665948631650626991844596463898746277344711896086305533142593135616665318539129989145312280000688779148240044871428926990063486244781615463646388363947317026040466353970904996558162398808944629605623311649536164221970332681344168908984458505602379484807914058900934776500429002716706625830522008132236281291761267883317206598995396418127021779858404042159853183251540889433902091920554957783589672039160081957216630582755380425583726015528348786419432054508915275783882625175435528800822842770817965453762184851149029376 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:15:51 2006 Input: A = QuaternionAlgebra(QQ, -2,54) A.ramified_primes() Output: _4 = [] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.32s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:01:34 2006 Input: E=EllipticCurve([0,0,0,-65,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 - 65*x over Rational Field _5 = [(-1 : -8 : 1), (9 : -12 : 1)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.31s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:01:28 2006 Input: E=EllipticCurve([0,0,0,65,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 65*x over Rational Field _5 = [(4 : -129 : 64), (588 : 2926 : 27)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.28s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:01:08 2006 Input: E=EllipticCurve([0,0,0,65,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 65*x over Rational Field _5 = [(4 : -129 : 64), (588 : 2926 : 27)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.29s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:01:00 2006 Input: E=EllipticCurve([0,0,0,-65,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 - 65*x over Rational Field _5 = [(-1 : -8 : 1), (9 : -12 : 1)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.30s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 11:00:10 2006 Input: E=EllipticCurve([0,0,0,-65,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 - 65*x over Rational Field _5 = [(-1 : -8 : 1), (9 : -12 : 1)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.31s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:59:31 2006 Input: E=EllipticCurve([0,0,0,65,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 65*x over Rational Field _5 = [(4 : -129 : 64), (588 : 2926 : 27)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.28s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:58:21 2006 Input: E=EllipticCurve([0,0,0,260,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 260*x over Rational Field _5 = [(10 : 60 : 1), (64 : -528 : 1)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.31s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:57:47 2006 Input: E=EllipticCurve([0,0,0,-260,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 - 260*x over Rational Field _5 = [(-16 : -8 : 1), (90 : 840 : 1)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.31s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:57:14 2006 Input: E=EllipticCurve([0,0,0,60,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 60*x over Rational Field _5 = [(6 : 24 : 1)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:57:02 2006 Input: E=EllipticCurve([0,0,0,-60,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 - 60*x over Rational Field _5 = [(-6 : -12 : 1)] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.27s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:45:57 2006 Input: E=EllipticCurve([0,0,0,254,0]) E E.gens() P = E([18,102]) 2*P 3*P 4*P Output: _4 = Elliptic Curve defined by y^2 = x^3 + 254*x over Rational Field _5 = [(4 : 255 : 64), (18 : 102 : 1)] _7 = (1225/10404 : 5803595/1061208 : 1) _8 = (381520342242/34613486209 : -414289623937135986/6439735268725823 : 1) _9 = (755825252801483985121/1401698248278224400 : -20788430815863730522270722319919/1659517344824117394290472000 : 1) Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.31s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:38:28 2006 Input: E=EllipticCurve([0,0,0,254,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 254*x over Rational Field _5 = [(4 : 255 : 64), (18 : 102 : 1)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.28s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:38:16 2006 Input: E=EllipticCurve([0,0,0,255,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 255*x over Rational Field _5 = [(1 : -16 : 1)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.21s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:38:04 2006 Input: E=EllipticCurve([0,0,0,213,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 213*x over Rational Field _5 = [(484 : 2893 : 64)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.22s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:37:54 2006 Input: E=EllipticCurve([0,0,0,45,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 45*x over Rational Field _5 = [] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:37:44 2006 Input: E=EllipticCurve([0,0,0,42,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 42*x over Rational Field _5 = [] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.17s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:37:34 2006 Input: E=EllipticCurve([0,0,0,10,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 10*x over Rational Field _5 = [] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.17s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:37:08 2006 Input: E=EllipticCurve([0,0,0,18,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 18*x over Rational Field _5 = [(3 : 9 : 1)] Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.21s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:37:01 2006 Input: E=EllipticCurve([0,0,0,16,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 16*x over Rational Field _5 = [] Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.16s). '71.128.' ************** SAGE ***************** Host 71.128.203.69 (71.128.203.69) Time: Fri May 26 10:36:21 2006 Input: E=EllipticCurve([0,0,0,14,0]) E E.gens() Output: _4 = Elliptic Curve defined by y^2 = x^3 + 14*x over Rational Field _5 = [(2 : 6 : 1), (2 : 15 : 8)] Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.71s). '68.14.2' ************** SAGE ***************** Host 68.14.202.132 (68.14.202.132) Time: Fri May 26 09:49:04 2006 Input: 2(x+2)/5(x-3)*5x-15/4(x-2) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)(x+ZZ(2))/ZZ(5)(x-ZZ(3))*ZZ(5)x-ZZ(15)/ZZ(4)(x-ZZ(2)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '80.165.' ************** SAGE ***************** Host 80.165.170.91 (80.165.170.91) Time: Fri May 26 09:19:28 2006 Input: E = EllipticCurve([0, 0, 1, -1, 0]) E.discriminant() E.b_invariants() Output: _4 = 37 _5 = (0, -2, 1, -1) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.165.' ************** SAGE ***************** Host 80.165.170.91 (80.165.170.91) Time: Fri May 26 08:58:51 2006 Input: E = EllipticCurve([0, 0, 1, -1, 0]) E.discriminant() Output: _4 = 37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.165.' ************** SAGE ***************** Host 80.165.170.91 (80.165.170.91) Time: Fri May 26 08:58:31 2006 Input: E = EllipticCurve([0, 0, 1, -1, 0]) E.j_invariant() Output: _4 = 110592/37 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.05s). '149.173' ************** SAGE ***************** Host 149.173.6.25 (149.173.6.25) Time: Fri May 26 06:41:29 2006 Input: 2 + 3 Output: _3 = 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '165.111' ************** SAGE ***************** Host 165.111.2.149 (165.111.2.149) Time: Fri May 26 06:39:43 2006 Input: e^2 Output: _3 = (e^2) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '141.85.' ************** SAGE ***************** Host 141.85.37.242 (141.85.37.242) Time: Fri May 26 05:20:25 2006 Input: log2(2) Output: _3 = log2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '141.85.' ************** SAGE ***************** Host 141.85.37.242 (141.85.37.242) Time: Fri May 26 05:20:11 2006 Input: log(2) Output: _3 = 0.69314718055994529 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '80.8.18' ************** SAGE ***************** Host 80.8.181.179 (80.8.181.179) Time: Fri May 26 01:01:56 2006 Input: 3+2/(x-1) Output: _3 = (3*x - 1)/(x - 1) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '80.8.18' ************** SAGE ***************** Host 80.8.181.179 (80.8.181.179) Time: Fri May 26 01:01:29 2006 Input: x^2-2*x+1 Output: _3 = x^2 - 2*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.8.18' ************** SAGE ***************** Host 80.8.181.179 (80.8.181.179) Time: Fri May 26 01:00:32 2006 Input: (3*x+1)*(x+2) Output: _3 = 3*x^2 + 7*x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '80.8.18' ************** SAGE ***************** Host 80.8.181.179 (80.8.181.179) Time: Fri May 26 01:00:30 2006 Input: (3*x+1)*(x+2) Output: _3 = 3*x^2 + 7*x + 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '209.223' ************** SAGE ***************** Host 209.223.7.162 (209.223.7.162) Time: Fri May 26 00:31:41 2006 Input: print singular.ring(0, '(x,y,z)', 'dp') Output: // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.05s). '209.223' ************** SAGE ***************** Host 209.223.7.162 (209.223.7.162) Time: Fri May 26 00:31:26 2006 Input: print gap('SymmetricGroup(7)') Output: Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.22s). '69.225.' ************** SAGE ***************** Host 69.225.161.121 (69.225.161.121) Time: Thu May 25 21:50:38 2006 Input: (3x-1)(4x+3) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(3)x-ZZ(1))(ZZ(4)x+ZZ(3)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '69.225.' ************** SAGE ***************** Host 69.225.161.121 (69.225.161.121) Time: Thu May 25 21:50:02 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.2.1' ************** SAGE ***************** Host 128.2.170.141 (128.2.170.141) Time: Thu May 25 20:26:22 2006 Input: maxima('tan(x)').integrate('x') Output: _3 = log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '71.198.' ************** SAGE ***************** Host 71.198.176.41 (71.198.176.41) Time: Thu May 25 20:25:51 2006 Input: 4 X2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4) X2 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.198.' ************** SAGE ***************** Host 71.198.176.41 (71.198.176.41) Time: Thu May 25 20:25:51 2006 Input: 4 X2 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(4) X2 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '71.198.' ************** SAGE ***************** Host 71.198.176.41 (71.198.176.41) Time: Thu May 25 20:25:31 2006 Input: 2+2 Output: _3 = 4 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.2.1' ************** SAGE ***************** Host 128.2.170.141 (128.2.170.141) Time: Thu May 25 20:18:44 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '128.250' ************** SAGE ***************** Host 128.250.37.103 (128.250.37.103) Time: Thu May 25 19:34:26 2006 Input: import os os.system("uname") Output: _4 = 0 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '128.250' ************** SAGE ***************** Host 128.250.37.103 (128.250.37.103) Time: Thu May 25 19:34:14 2006 Input: import os os.system("uname -a") Output: _4 = 0 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '128.250' ************** SAGE ***************** Host 128.250.37.103 (128.250.37.103) Time: Thu May 25 19:33:23 2006 Input: print maxima('log(sec(x))').eval('x = 3') Output: eval(log(sec(x)),x = 3) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '128.250' ************** SAGE ***************** Host 128.250.37.103 (128.250.37.103) Time: Thu May 25 19:32:55 2006 Input: print maxima('log(sec(x))').derivative('x') Output: tan(x) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.27s). '198.104' ************** SAGE ***************** Host 198.104.64.238 (198.104.64.238) Time: Thu May 25 19:32:23 2006 Input: 7+7+7 Output: _3 = 21 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '198.104' ************** SAGE ***************** Host 198.104.64.238 (198.104.64.238) Time: Thu May 25 19:32:15 2006 Input: 7+7 Output: _3 = 14 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '198.104' ************** SAGE ***************** Host 198.104.64.238 (198.104.64.238) Time: Thu May 25 19:32:11 2006 Input: 7 Output: _3 = 7 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '128.250' ************** SAGE ***************** Host 128.250.37.103 (128.250.37.103) Time: Thu May 25 19:31:57 2006 Input: print maxima('tan(x)').integrate('x') Output: log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.29s). '24.250.' ************** SAGE ***************** Host 24.250.105.111 (24.250.105.111) Time: Thu May 25 19:31:01 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '24.57.1' ************** SAGE ***************** Host 24.57.185.71 (24.57.185.71) Time: Thu May 25 19:27:35 2006 Input: gf Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'gf' is not defined Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '128.208' ************** SAGE ***************** Host 128.208.160.175 (128.208.160.175) Time: Thu May 25 19:02:28 2006 Input: maxima.eval('integrate(tan(x),x)') Output: _3 = 'log(sec(x))' Exiting SAGE (CPU time 0m0.07s, Wall time 0m0.26s). '24.4.24' ************** SAGE ***************** Host 24.4.249.251 (24.4.249.251) Time: Thu May 25 16:43:41 2006 Input: 2x3 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2)x3 ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.4.24' ************** SAGE ***************** Host 24.4.249.251 (24.4.249.251) Time: Thu May 25 16:43:11 2006 Input: 18/12 Output: _3 = 3/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.4.24' ************** SAGE ***************** Host 24.4.249.251 (24.4.249.251) Time: Thu May 25 16:43:03 2006 Input: 18/12 Output: _3 = 3/2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.127.' ************** SAGE ***************** Host 71.127.1.31 (71.127.1.31) Time: Thu May 25 16:42:48 2006 Input: x^2 Output: _3 = x^2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '24.4.24' ************** SAGE ***************** Host 24.4.249.251 (24.4.249.251) Time: Thu May 25 16:42:28 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:26:40 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term x1 = Bernstein(t,2,0)*-1+Bernstein(t,2,1)*2+Bernstein(t,2,2)*5 y1 = Bernstein(t,2,0)*-1+Bernstein(t,2,1)*-1+Bernstein(t,2,2)*35 print y1 print x1**2+2*x1 Output: ...: ...: ...: ...: ...: ...: ...: ...: 36*t^2 - 1 36*t^2 - 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:20:53 2006 Input: t = QQ['t'].0 print (25+10)*(t**2)-1 print (6*t-1)**2+2*(6*t-1) Output: 35*t^2 - 1 36*t^2 - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:13:15 2006 Input: t = QQ['t'].0 print (-7+25+10)*t**2+8*t-1 print (6*t-1)**2+2*(6*t-1) Output: 28*t^2 + 8*t - 1 36*t^2 - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:12:50 2006 Input: t = QQ['t'].0 print (-7+25+10)*t**2+8*t-1 print 2*(6*t-1)**2+2*(6*t-1) Output: 28*t^2 + 8*t - 1 72*t^2 - 12*t Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:12:01 2006 Input: t = QQ['t'].0 print (-7+25+10)*t**22+8*t-1 print 2*(6*t-1)**2+2*(6*t-1) Output: 28*t^22 + 8*t - 1 72*t^2 - 12*t Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:11:39 2006 Input: t = QQ['t'].0 print (-7+25+10)*t**22+8*t-1 print (6*t-1)**2+2*(6*t-1) Output: 28*t^22 + 8*t - 1 36*t^2 - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:11:22 2006 Input: t = QQ['t'].0 print (-7+25+10)*t**22+8t-1 print (6*t-1)**2+2*(6*t-1) Output: Errors: ------------------------------------------------------------ File "", line 1 print (-ZZ(7)+ZZ(25)+ZZ(10))*t**ZZ(22)+ZZ(8)t-ZZ(1) ^ SyntaxError: invalid syntax 36*t^2 - 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:11:14 2006 Input: t = QQ['t'].0 print (-7+25+10)*t**22+8t-1 print (6*t-1)**2+2*(6t-1) Output: Errors: ------------------------------------------------------------ File "", line 1 print (-ZZ(7)+ZZ(25)+ZZ(10))*t**ZZ(22)+ZZ(8)t-ZZ(1) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print (ZZ(6)*t-ZZ(1))**ZZ(2)+ZZ(2)*(ZZ(6)t-ZZ(1)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 16:10:51 2006 Input: t = QQ['t'].0 print (-7+25+10)t**22+8t-1 print (6t-1)**2 Output: Errors: ------------------------------------------------------------ File "", line 1 print (-ZZ(7)+ZZ(25)+ZZ(10))t**ZZ(22)+ZZ(8)t-ZZ(1) ^ SyntaxError: invalid syntax ------------------------------------------------------------ File "", line 1 print (ZZ(6)t-ZZ(1))**ZZ(2) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '198.3.1' ************** SAGE ***************** Host 198.3.128.3 (198.3.128.3) Time: Thu May 25 15:45:09 2006 Input: print gap('SymmetricGroup(7)') print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') print maxima('tan(x)').integrate('x') print singular.ring(0, '(x,y,z)', 'dp') print gp('ellinit([1,2,3,4,5])').j Output: Sym( [ 1 .. 7 ] ) Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field log(sec(x)) // characteristic : 0 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C j Exiting SAGE (CPU time 0m0.10s, Wall time 0m3.56s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 15:09:56 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term x1 = Bernstein(t,2,0)*-1 + Bernstein(t,2,2)*1 y1 = Bernstein(t,2,0)*-1 + Bernstein(t,2,1)*-1 + Bernstein(t,2,2)*3 print x1 print y1 print (x1**2+2*x1) Output: ...: ...: ...: ...: ...: ...: ...: ...: 2*t - 1 4*t^2 - 1 4*t^2 - 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 15:09:38 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term x1 = Bernstein(t,2,0)*-1 + Bernstein(t,2,2)*1 y1 = Bernstein(t,2,0)*-1 + Bernstein(t,2,1)*-1 + Bernstein(t,2,2)*3 print x1 print y1 print (x1**2*2*x1) Output: ...: ...: ...: ...: ...: ...: ...: ...: 2*t - 1 4*t^2 - 1 16*t^3 - 24*t^2 + 12*t - 2 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 15:09:28 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term x1 = Bernstein(t,2,0)*-1 + Bernstein(t,2,2)*1 y1 = Bernstein(t,2,0)*-1 + Bernstein(t,2,1)*-1 + Bernstein(t,2,2)*3 print x1 print y1 print (x1**2*2x1) Output: Errors: ------------------------------------------------------------ File "", line 1 print (x1**ZZ(2)*ZZ(2)x1) ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: 2*t - 1 4*t^2 - 1 Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 15:08:58 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term x = Bernstein(t,2,0)*-1 + Bernstein(t,2,2)*1 y = Bernstein(t,2,0)*-1 + Bernstein(t,2,1)*-1 + Bernstein(t,2,2)*3 print x print y print x**2*2x Output: Errors: ------------------------------------------------------------ File "", line 1 print x**ZZ(2)*ZZ(2)x ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: 2*t - 1 4*t^2 - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 15:08:33 2006 Input: t = QQ['t'].0 def ZeroPoly(t): return t^0-t^0 def comb(n,k): n = Integer(n) k = Integer(k) return n.factorial()/((n-k).factorial()*k.factorial()) def Bernstein(t,deg,term): return comb(deg,term)*(1-t)^(deg-term)*t^term x = Bernstein(t,2,0)*-1 + Bernstein(t,2,2)*1 y = Bernstein(t,2,0)*-1 + Bernstein(t,2,1)*-1 + Bernstein(t,2,2)*3 print x print y print x^2*2x Output: Errors: ------------------------------------------------------------ File "", line 1 print x**ZZ(2)*ZZ(2)x ^ SyntaxError: invalid syntax ...: ...: ...: ...: ...: ...: ...: ...: 2*t - 1 4*t^2 - 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '68.3.13' ************** SAGE ***************** Host 68.3.131.103 (68.3.131.103) Time: Thu May 25 14:28:35 2006 Input: .80(88)+.20(10) Output: Errors: ------------------------------------------------------------ File "", line 1 .ZZ(80)(ZZ(88))+.ZZ(20)(ZZ(10)) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:16:35 2006 Input: def f(a): if a == 5: return a if a != 5: return 23 print f(5) Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(5): ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:16:14 2006 Input: def f(a): if a == 5: return a print f(5) Output: ...: ...: ...: 5 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:16:11 2006 Input: def f(a): if a == 5: return a f(5) print f(5) Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(5)) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:16:00 2006 Input: def f(a): if a == 5: return a f(5) print f(6) Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(5)) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:15:45 2006 Input: def f(a): if a == 5: return a return 23 print f(6) Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(23) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:15:35 2006 Input: def f(a): if a == 5: return a print f(6) Output: ...: ...: ...: None Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:15:18 2006 Input: def f(a): if a == 5: return a print f(5) Output: ...: ...: ...: 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:15:02 2006 Input: def f(a): if a == 5: return a else: return 23 print f(5) Output: Errors: ------------------------------------------------------------ File "", line 4 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:14:35 2006 Input: def f(a): if a == 5: return a else: return 23 print f(5) Output: Errors: ------------------------------------------------------------ File "", line 1 def f(a): if a == ZZ(5): return a else: return ZZ(23) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:14:14 2006 Input: def f(a): if a == 5: return a else: return 23 print f(5) Output: Errors: ------------------------------------------------------------ File "", line 4 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'f' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:13:39 2006 Input: if 1 == 1: print 1 else: print 3 Output: ...: ...: ...: ...: 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:13:23 2006 Input: if 1 == 2: print 1111 else: print 2222 Output: ...: ...: ...: ...: 2222 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:13:19 2006 Input: if 1 == 2: print 1 else: print 2 Output: ...: ...: ...: ...: 2 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:13:14 2006 Input: if 1 == 1: print 1 else: print 2 Output: ...: ...: ...: ...: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:12:43 2006 Input: if len(p) == 1: return p[0] else: return 3 Output: Errors: ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ File "", line 1 se: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:07:16 2006 Input: if len(p) == 1: return p[0] else: return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],tval) Output: Errors: ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ File "", line 1 se: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:06:58 2006 Input: butts = { } def hoho(a): return 0 def haha(a): return 1 def fff(a): return butts[a == 555](a) butts[true] = haha butts[false] = hoho print fff(555) print fff(666) Output: ...: ...: ...: ...: ...: ...: 1 0 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:06:50 2006 Input: butts = { } def hoho(a): return 0 def haha(a): return 1 def fff(a): return butts[a == 555](a) butts[true] = haha butts[false] = hoho print fff(555) Output: ...: ...: ...: ...: ...: ...: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:06:05 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: _3 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:05:58 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] else: return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],tval) Output: Errors: ------------------------------------------------------------ File "", line 4 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:04:41 2006 Input: butts = { } def fff(a): return a butts[true] = fff print fff(555) Output: ...: ...: 555 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:03:45 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] else: return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],tval) Output: Errors: ------------------------------------------------------------ File "", line 4 e: ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:02:27 2006 Input: butts = { } def fff(a): return a butts[true] = fff print fff(555) Output: ...: ...: 555 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:01:39 2006 Input: p = [1,2,3] p[0] Output: _4 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:01:38 2006 Input: def fff(a): return a butts = { } butts[0] = fff print fff(555) Output: ...: ...: 555 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:01:31 2006 Input: def fff(a): return a butts = { } print fff(555) Output: ...: ...: 555 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:01:30 2006 Input: def DeCastlejau(p,tval): if len(p) != 1: return 3 return p[Integer(0)] Output: Errors: ------------------------------------------------------------ File "", line 4 )] ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:01:17 2006 Input: def fff(a): return a butts[0] = fff print fff(555) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'butts' is not defined ...: ...: 555 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:01:00 2006 Input: def fff(a): return a print fff(555) Output: ...: ...: 555 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:01:00 2006 Input: def DeCastlejau(p,tval): if len(p) != 1: return 3 return p[0] Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(0)] ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:00:54 2006 Input: def fff(a) return a print fff(555) Output: Errors: ------------------------------------------------------------ File "", line 1 def fff(a) ^ SyntaxError: invalid syntax ------------------------------------------------------------ SyntaxError: 'return' outside function ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'fff' is not defined Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 13:00:31 2006 Input: def DeCastlejau(p,tval): if len(p) != 1: return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],tval) return p[0] Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(0)] ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:59:57 2006 Input: def ffff(p, tval): if 1 == 1: return 1 return 1 Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 4) ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:59:12 2006 Input: b = 1 def a(): if 1==2: return 555 return b Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:59:03 2006 Input: def dc(p,tval): return monkey() Output: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:58:57 2006 Input: def dc(p,tval): if len(p) == 1: return p[0] return monkey() Output: Errors: ------------------------------------------------------------ File "", line 4 () ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:58:48 2006 Input: butts = 1 def a(): if 1==2: return 555 return bu Output: Errors: ------------------------------------------------------------ File "", line 4 bu ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:58:45 2006 Input: butts = 1 def a(): if 1==2: return 555 return but Output: Errors: ------------------------------------------------------------ File "", line 4 ut ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:58:41 2006 Input: butts = 1 def a(): if 1==2: return 555 return butts Output: Errors: ------------------------------------------------------------ File "", line 4 ts ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:58:02 2006 Input: def a(): if 1==2: return 555 return 6 Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:57:54 2006 Input: def a(): if 1==2: return 555 return 666 Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(66) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:57:48 2006 Input: def a(): if 1==2: return 555 return a() Output: Errors: ------------------------------------------------------------ File "", line 4 () ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:57:43 2006 Input: def a(): if 1==2: return 555 return a() Output: Errors: ------------------------------------------------------------ File "", line 4 () ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:57:10 2006 Input: def a(): return a() Output: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:56:57 2006 Input: def a(): return a() print ffff(1,2) Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ffff' is not defined ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:56:42 2006 Input: def ffff(p, tval): if 1 == 1: return 1 print ffff(1,2) Output: ...: ...: ...: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:56:33 2006 Input: def ffff(p, tval): if 1 == 1: return 1 ffff(p, tval) print ffff(1,2) Output: Errors: ------------------------------------------------------------ File "", line 4 l) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ffff' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:56:25 2006 Input: def ffff(p, tval): if 1 == 1: return 1 return ffff(p, tval) print ffff(1,2) Output: Errors: ------------------------------------------------------------ File "", line 4 l) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ffff' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:56:09 2006 Input: def ffff(p, tval): if 1 == 1: return 1 return ffff print ffff(1,2) Output: Errors: ------------------------------------------------------------ File "", line 4 ff ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'ffff' is not defined ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:55:48 2006 Input: def dc(p,tval): if len(p) == 1: return p[0] return dc([1],1) Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(1)) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:55:22 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return 1 Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:55:16 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return DeCastlejau Output: Errors: ------------------------------------------------------------ File "", line 4 au ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:55:10 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return DeCastlejau() Output: Errors: ------------------------------------------------------------ File "", line 4 () ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:55:00 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)]) Output: Errors: ------------------------------------------------------------ File "", line 4 ]) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:54:54 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],3) Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(3)) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:53:34 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],tval) Output: Errors: ------------------------------------------------------------ File "", line 4 l) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:53:19 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return 1 Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:53:02 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],tval) Output: Errors: ------------------------------------------------------------ File "", line 4 l) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:52:35 2006 Input: def ffff(p, tval): if 1 == 1: return 1 return 2 print ffff(1,2) Output: ...: ...: ...: ...: 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:52:31 2006 Input: def ffff(p, tval): if 1 == 1: return 1 return 2 ffff(1,2) Output: ...: ...: ...: ...: _4 = 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:52:17 2006 Input: def ffff(p, tval): if 1 == 1: return 1 return 1 Output: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:52:01 2006 Input: def ffff(p, tval): if 1 == 1: return 1 return 1 Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 4) ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:51:41 2006 Input: def DeCastlejau(p,tval): if 1 == 1: return 1 return 1 Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 4) ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:51:08 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return p[0] Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(0)] ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:50:44 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return 555 Output: Errors: ------------------------------------------------------------ File "", line 4 ZZ(55) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:48:31 2006 Input: def DeCastlejau(p,tval): if len(p) == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(len(p)-1)],tval) Output: Errors: ------------------------------------------------------------ File "", line 4 l) ^ SyntaxError: invalid syntax ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:46:05 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return 5 #def Vec(v): # return Matrix(QQ,1,2,v) #DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: Errors: ------------------------------------------------------------ SyntaxError: 'return' outside function ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:45:39 2006 Input: def DeCastlejau(p,tval): n = len(p) return 5 #def Vec(v): # return Matrix(QQ,1,2,v) #DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:45:02 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return 5 #def Vec(v): # return Matrix(QQ,1,2,v) #DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 5) ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:41:25 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return 5 #def Vec(v): # return Matrix(QQ,1,2,v) #DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 5) ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:40:33 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return 5 #def Vec(v): # return Matrix(QQ,1,2,v) #DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 5) ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:40:21 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return 5 def Vec(v): return Matrix(QQ,1,2,v) DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 5) ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'DeCastlejau' is not defined ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:39:48 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(n-1)],tval) def Vec(v): return Matrix(QQ,1,2,v) DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: Errors: ------------------------------------------------------------ File "", line 5 l) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'DeCastlejau' is not defined ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:38:39 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(n-1)],tval) def Vec(v): return Matrix(QQ,1,2,v) DeCastlejau([Vec([-2,0]),Vec([-2,4]),Vec([2,4]),Vec([2,0])]) Output: Errors: ------------------------------------------------------------ File "", line 5 l) ^ SyntaxError: invalid syntax ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'DeCastlejau' is not defined ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:33:26 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return 5 Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 5) ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:33:03 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return 5 Output: Errors: ------------------------------------------------------------ IndentationError: unindent does not match any outer indentation level (, line 5) ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:32:53 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(n-1)],tval) Output: Errors: ------------------------------------------------------------ File "", line 5 l) ^ SyntaxError: invalid syntax ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.245.' ************** SAGE ***************** Host 84.245.68.115 (84.245.68.115) Time: Thu May 25 12:32:50 2006 Input: sin2x-cos x=0 Output: Errors: ------------------------------------------------------------ File "", line 1 sin2x-cos x=ZZ(0) ^ SyntaxError: invalid syntax Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '84.245.' ************** SAGE ***************** Host 84.245.68.115 (84.245.68.115) Time: Thu May 25 12:32:36 2006 Input: sin2x-cosx=0 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:32:23 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return DeCastlejau([5],3) Output: Errors: ------------------------------------------------------------ File "", line 5 ZZ(3)) ^ SyntaxError: invalid syntax ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '206.15.' ************** SAGE ***************** Host 206.15.72.193 (206.15.72.193) Time: Thu May 25 12:32:01 2006 Input: def DeCastlejau(p,tval): n = len(p) if n == 1: return p[0] return DeCastlejau([(1-tval)*p[i]+tval*p[i+1] for i in range(n-1)] Output: Errors: -----------ild Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = (27, 0) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.05s). '68.19.5' ************** SAGE ***************** Host 68.19.53.219 (68.19.53.219) Time: Mon Mar 13 19:29:03 2006 Input: log(25000)-log(15000)=xlog1.05 Output: Errors: ------------------------------------------------------------ SyntaxError: can't assign to operator -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '71.9.13' ************** SAGE ***************** Host 71.9.133.146 (71.9.133.146) Time: Mon Mar 13 18:53:13 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '69.236.' ************** SAGE ***************** Host 69.236.96.103 (69.236.96.103) Time: Mon Mar 13 18:35:27 2006 Input: 6+9 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 15 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '12.222.' ************** SAGE ***************** Host 12.222.248.111 (12.222.248.111) Time: Mon Mar 13 18:33:29 2006 Input: y=x+6 y+ -1 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _2 = x + 5 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.21s). '83.78.3' ************** SAGE ***************** Host 83.78.30.138 (83.78.30.138) Time: Mon Mar 13 18:25:29 2006 Input: print maxima('tan(x)').integrate('x') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- log(sec(x)) Exiting SAGE (CPU time 0m0.06s, Wall time 0m0.98s). '83.78.3' ************** SAGE ***************** Host 83.78.30.138 (83.78.30.138) Time: Mon Mar 13 18:24:53 2006 Input: import Numeric Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '66.177.' ************** SAGE ***************** Host 66.177.139.62 (66.177.139.62) Time: Mon Mar 13 18:08:02 2006 Input: 3yx3y Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)yx3y ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '66.177.' ************** SAGE ***************** Host 66.177.139.62 (66.177.139.62) Time: Mon Mar 13 18:08:02 2006 Input: 3yx3y Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(3)yx3y ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '24.247.' ************** SAGE ***************** Host 24.247.68.227 (24.247.68.227) Time: Mon Mar 13 17:42:07 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '68.221.' ************** SAGE ***************** Host 68.221.18.175 (68.221.18.175) Time: Mon Mar 13 17:19:48 2006 Input: factor(2*3*5*7*11*17 + 1) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 173 * 227 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '68.221.' ************** SAGE ***************** Host 68.221.18.175 (68.221.18.175) Time: Mon Mar 13 17:18:52 2006 Input: factor(123456789) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 3^2 * 3607 * 3803 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '152.2.1' ************** SAGE ***************** Host 152.2.192.232 (152.2.192.232) Time: Mon Mar 13 17:01:18 2006 Input: factor(279827342389876896797657659234589798273429312398471) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 23761639089605537 * 11776432649896049900404139366399783 Exiting SAGE (CPU time 0m4.32s, Wall time 0m4.62s). '66.134.' ************** SAGE ***************** Host 66.134.185.250 (66.134.185.250) Time: Mon Mar 13 16:52:11 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '67.87.2' ************** SAGE ***************** Host 67.87.205.34 (67.87.205.34) Time: Mon Mar 13 16:47:20 2006 Input: 6yd Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(6)yd ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '128.135' ************** SAGE ***************** Host 128.135.121.212 (128.135.121.212) Time: Mon Mar 13 16:23:38 2006 Input: 1+1/(2+1/(3+1/(4+1/(5+1/6))) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '128.135' ************** SAGE ***************** Host 128.135.121.212 (128.135.121.212) Time: Mon Mar 13 16:23:25 2006 Input: 1+1/(2+1/(3+1/(4+1/(5+1/6))) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '128.135' ************** SAGE ***************** Host 128.135.121.212 (128.135.121.212) Time: Mon Mar 13 16:23:14 2006 Input: 1+1/(2+1/(3+1/(4+1/5))) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 225/157 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.15s). '68.36.2' ************** SAGE ***************** Host 68.36.215.56 (68.36.215.56) Time: Mon Mar 13 16:13:53 2006 Input: (5 1/2 + 2 1/4) * 3= Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(5) ZZ(1)/ZZ(2) + ZZ(2) ZZ(1)/ZZ(4)) * ZZ(3)= ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '205.202' ************** SAGE ***************** Host 205.202.206.130 (205.202.206.130) Time: Mon Mar 13 16:08:20 2006 Input: 23x2= Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(23)x2= ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '69.234.' ************** SAGE ***************** Host 69.234.118.188 (69.234.118.188) Time: Mon Mar 13 13:22:34 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '68.53.1' ************** SAGE ***************** Host 68.53.130.5 (68.53.130.5) Time: Mon Mar 13 13:06:14 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '128.196' ************** SAGE ***************** Host 128.196.0.24 (128.196.0.24) Time: Mon Mar 13 12:40:11 2006 Input: E=EC("605a") E.ans? Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Object `E.ans` not found. Exiting SAGE (CPU time 0m0.25s, Wall time 0m0.25s). '128.196' ************** SAGE ***************** Host 128.196.0.24 (128.196.0.24) Time: Mon Mar 13 12:40:04 2006 Input: E=EC("605a") E.anlist? Output: Errors: sh: less: command not found -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.26s, Wall time 0m0.26s). '128.196' ************** SAGE ***************** Host 128.196.0.24 (128.196.0.24) Time: Mon Mar 13 12:39:47 2006 Input: E=EC("605a") E.anlist? E.an? Output: Errors: sh: less: command not found -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Type: instancemethod Base Class: String Form: Namespace: Interactive File: /home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/schemes/elliptic_curves/ell_rational_field.py Definition: E.an(self, n) Docstring: The n-th Fourier coefficient of the modular form corresponding to this elliptic curve, where n is a positive integer. Exiting SAGE (CPU time 0m0.26s, Wall time 0m0.27s). '128.196' ************** SAGE ***************** Host 128.196.0.24 (128.196.0.24) Time: Mon Mar 13 12:39:32 2006 Input: E=EC("605a") E.anlist() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: anlist() takes at least 2 arguments (1 given) -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.25s, Wall time 0m0.25s). '128.196' ************** SAGE ***************** Host 128.196.0.24 (128.196.0.24) Time: Mon Mar 13 12:39:20 2006 Input: E=EC("605a") E.an() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? TypeError: an() takes exactly 2 arguments (1 given) -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.27s, Wall time 0m0.27s). '128.196' ************** SAGE ***************** Host 128.196.0.24 (128.196.0.24) Time: Mon Mar 13 12:38:51 2006 Input: E=EC("605a") E.ans() Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? AttributeError: 'EllipticCurve_rational_field' object has no attribute 'ans' -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.26s, Wall time 0m0.29s). '128.196' ************** SAGE ***************** Host 128.196.0.24 (128.196.0.24) Time: Mon Mar 13 12:38:40 2006 Input: EC("605a") Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 1414*x - 44027 over Rational Field Exiting SAGE (CPU time 0m0.31s, Wall time 0m1.52s). '130.15.' ************** SAGE ***************** Host 130.15.201.225 (130.15.201.225) Time: Mon Mar 13 12:27:57 2006 Input: e^252.5570583 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = (e^252.55705827) Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '158.109' ************** SAGE ***************** Host 158.109.66.122 (158.109.66.122) Time: Mon Mar 13 10:29:57 2006 Input: true or false; Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Mar 13 09:35:23 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.80s). '80.55.1' ************** SAGE ***************** Host 80.55.14.2 (80.55.14.2) Time: Mon Mar 13 09:34:56 2006 Input: print kash('NumberField(X^3 + 15*X^2 - 15*X + 15)') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Number Field with defining polynomial X^3 + 15*X^2 - 15*X + 15 over the Rational Field Exiting SAGE (CPU time 0m0.00s, Wall time 0m2.13s). '213.132' ************** SAGE ***************** Host 213.132.254.2 (213.132.254.2) Time: Mon Mar 13 07:10:11 2006 Input: 2846 - 2073 / 1 + 3.3log (50) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(2846) - ZZ(2073) / ZZ(1) + RealField(6)('3.3')log (ZZ(50)) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '69.19.1' ************** SAGE ***************** Host 69.19.14.24 (69.19.14.24) Time: Mon Mar 13 04:52:18 2006 Input: 50000000 divided into 313980396244 = Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(50000000) divided into ZZ(313980396244) = ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:26:28 2006 Input: print kash('Round ( 7015460422968*57264168970223481226273458862846808078011946889 ) ') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 401734511064755044601157807028379616499558412062461091746552 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.79s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:25:25 2006 Input: print kash('Round ( 7015460422967*57264168970223481226273458862846808078011946889 ) ') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 401734511064697780432187583547153343040695565254383079799663 Exiting SAGE (CPU time 0m0.03s, Wall time 0m0.80s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:24:02 2006 Input: print kash('Round ( 7015460422968*57264168970223481226273458862846808078011946889 ) ') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 401734511064755044601157807028379616499558412062461091746552 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.79s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:23:43 2006 Input: print kash('Round ( 401734511064747568885490523085290650630550748445698208825344/57264168970223481226273458862846808078011946889 ) ') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 7015460422968 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.79s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:23:23 2006 Input: print Kash('round(401734511064747568885490523085290650630550748445698208825344/57264168970223481226273458862846808078011946889) ') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/kash.py", line 401, in __init__ cmd += " -a %s"%int(max_workspace) NameError: global name 'max_workspace' is not defined Exception exceptions.AttributeError: in ignored -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:23:09 2006 Input: print Kash('Round(401734511064747568885490523085290650630550748445698208825344/57264168970223481226273458862846808078011946889) ') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/kash.py", line 401, in __init__ cmd += " -a %s"%int(max_workspace) NameError: global name 'max_workspace' is not defined Exception exceptions.AttributeError: in ignored -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.03s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:22:29 2006 Input: ((4^99) / (3^99) ) * 3 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 401734511064747568885490523085290650630550748445698208825344/57264168970223481226273458862846808078011946889 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:21:19 2006 Input: print kash('Round ( 7015460422968*(3^99)*3 ) ') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 3615610599582795401410420263255416548496025708562149825718968 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.79s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:21:00 2006 Input: print kash('Round ( 7015460422968*(3^99))*3 ) ') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 373, in __call__ return cls(self, x) File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 556, in __init__ raise TypeError, x TypeError: Error executing code in Kash CODE: _s_[1]:=Round ( 7015460422968*(3^99))*3 ) ;; Kash ERROR: Syntax error: ; expected _s_[1]:=Round ( 7015460422968*(3^99))*3 ) ;; ^ -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.78s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:20:24 2006 Input: print kash('Round ( ((4^99)/(3^99))*3 ) ') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 7015460422968 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.79s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:19:27 2006 Input: print kash('Round(7/3)') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 2 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.80s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 04:19:14 2006 Input: print kash('Round(2/3)') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 1 Exiting SAGE (CPU time 0m0.00s, Wall time 0m1.97s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 03:52:26 2006 Input: 4^99 / (3^99) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 401734511064747568885490523085290650630550748445698208825344/171792506910670443678820376588540424234035840667 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:46:18 2006 Input: ((4+36*i)/(5+i) -(2+7*i))*26 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 3.9999999999999973 - 6.0000000000000018*I Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:46:07 2006 Input: (4+36*i)/(5+i) -(2+7*i) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 0.15384615384615374 - 0.23076923076923084*I Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:43:47 2006 Input: (4+36*i)/(5+i) *26 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 56.000000000000000 + 176.00000000000000*I Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:43:36 2006 Input: (4+36*i)/(5+i) *36 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 77.538461538461533 + 243.69230769230768*I Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:43:27 2006 Input: (4+36*i)/(5+i) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 2.1538461538461537 + 6.7692307692307692*I Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:42:08 2006 Input: (2+7*i)*(5+i) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 3.0000000000000000 + 37.000000000000000*I Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:41:49 2006 Input: (4+36*i)/(5+i) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 2.1538461538461537 + 6.7692307692307692*I Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.04s). '18.243.' ************** SAGE ***************** Host 18.243.5.105 (18.243.5.105) Time: Mon Mar 13 03:41:24 2006 Input: i^2 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = -1.0000000000000000 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 03:18:19 2006 Input: 4^99 / (3^98) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 401734511064747568885490523085290650630550748445698208825344/57264168970223481226273458862846808078011946889 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 03:17:48 2006 Input: (3^99) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 171792506910670443678820376588540424234035840667 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 03:17:20 2006 Input: (4^99) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 401734511064747568885490523085290650630550748445698208825344 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 03:16:51 2006 Input: (2^3) / (3^2) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 8/9 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.02s). '218.43.' ************** SAGE ***************** Host 218.43.17.230 (218.43.17.230) Time: Mon Mar 13 03:16:26 2006 Input: 2^3 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 8 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '64.132.' ************** SAGE ***************** Host 64.132.0.250 (64.132.0.250) Time: Mon Mar 13 01:36:05 2006 Input: 69.75 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 69.750 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '130.245' ************** SAGE ***************** Host 130.245.200.190 (130.245.200.190) Time: Sun Mar 12 23:24:43 2006 Input: log5 Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? NameError: name 'log5' is not defined -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '24.164.' ************** SAGE ***************** Host 24.164.86.224 (24.164.86.224) Time: Sun Mar 12 21:34:15 2006 Input: (3.5*10^4)^.5 Output: Errors: ------------------------------------------------------------ File "", line 1 (RealField(6)('3.5')*ZZ(10)**ZZ(4))**.ZZ(5) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '24.164.' ************** SAGE ***************** Host 24.164.86.224 (24.164.86.224) Time: Sun Mar 12 21:33:49 2006 Input: 3.5e4^.5 Output: Errors: ------------------------------------------------------------ File "", line 1 3.5e4**.ZZ(5) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '68.210.' ************** SAGE ***************** Host 68.210.105.160 (68.210.105.160) Time: Sun Mar 12 19:50:43 2006 Input: 500(1+.04)^50 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(500)(ZZ(1)+.ZZ(04))**ZZ(50) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '70.22.2' ************** SAGE ***************** Host 70.22.239.41 (70.22.239.41) Time: Sun Mar 12 19:03:32 2006 Input: 9^(.5) Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(9)**(.ZZ(5)) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '70.22.2' ************** SAGE ***************** Host 70.22.239.41 (70.22.239.41) Time: Sun Mar 12 19:03:11 2006 Input: 8^2 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 64 Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.02s). '140.247' ************** SAGE ***************** Host 140.247.31.114 (140.247.31.114) Time: Sun Mar 12 18:42:53 2006 Input: print gap('CharTable("Symmetric",3)') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 373, in __call__ return cls(self, x) File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 556, in __init__ raise TypeError, x TypeError: Gap produced error output Variable: 'CharTable' must have a value executing $sage1:=CharTable("Symmetric",3);; -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.15s). '140.247' ************** SAGE ***************** Host 140.247.31.114 (140.247.31.114) Time: Sun Mar 12 18:42:39 2006 Input: print gap('SymmetricGroup(7)') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Sym( [ 1 .. 7 ] ) Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.31s). '140.247' ************** SAGE ***************** Host 140.247.31.114 (140.247.31.114) Time: Sun Mar 12 18:42:25 2006 Input: print gap('CharTable("Symmetric", 5 )') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 373, in __call__ return cls(self, x) File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 556, in __init__ raise TypeError, x TypeError: Gap produced error output Variable: 'CharTable' must have a value executing $sage1:=CharTable("Symmetric", 5 );; -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.15s). '140.247' ************** SAGE ***************** Host 140.247.31.114 (140.247.31.114) Time: Sun Mar 12 18:41:38 2006 Input: print gap('CharTable("Symmetric", 5 )') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 373, in __call__ return cls(self, x) File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 556, in __init__ raise TypeError, x TypeError: Gap produced error output Variable: 'CharTable' must have a value executing $sage1:=CharTable("Symmetric", 5 );; -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.02s, Wall time 0m0.15s). '140.247' ************** SAGE ***************** Host 140.247.31.114 (140.247.31.114) Time: Sun Mar 12 18:41:27 2006 Input: print gap('CharTable( "Symmetric", 5 )') Output: Errors: ------------------------------------------------------------ Traceback (most recent call last): File "", line 1, in ? File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 373, in __call__ return cls(self, x) File "/home/sage/usr/local/sage/sage-0.9/local/lib/python2.4/site-packages/sage/interfaces/expect.py", line 556, in __init__ raise TypeError, x TypeError: Gap produced error output Variable: 'CharTable' must have a value executing $sage1:=CharTable( "Symmetric", 5 );; -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.01s, Wall time 0m1.34s). '67.160.' ************** SAGE ***************** Host 67.160.17.91 (67.160.17.91) Time: Sun Mar 12 17:38:33 2006 Input: 10^.05495593 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(10)**.ZZ(05495593) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '67.160.' ************** SAGE ***************** Host 67.160.17.91 (67.160.17.91) Time: Sun Mar 12 17:38:18 2006 Input: (10^.05495593) Output: Errors: ------------------------------------------------------------ File "", line 1 (ZZ(10)**.ZZ(05495593)) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '87.202.' ************** SAGE ***************** Host 87.202.43.172 (87.202.43.172) Time: Sun Mar 12 17:09:24 2006 Input: cos(5) Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 0.28366218546322625 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.04s). '138.16.' ************** SAGE ***************** Host 138.16.29.149 (138.16.29.149) Time: Sun Mar 12 16:21:56 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '71.105.' ************** SAGE ***************** Host 71.105.86.49 (71.105.86.49) Time: Sun Mar 12 16:18:46 2006 Input: h0 = (1+x^2)*(1-x+x^2) h0 h1 = (1+x^8)*(1-x^4+x^8) h1 h2 = (1+x^32)*(1-x^16+x^32) h2 h3 = (1+x^128)*(1-x^64+x^128) h3 h4 = (1+x^512)*(1-x^256+x^512) h4 h0*h1 h0*h1*h2 h0*h1*h2*h3 f = (1-x) f*h0*h1*h2*h3 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _2 = x^4 - x^3 + 2*x^2 - x + 1 _4 = x^16 - x^12 + 2*x^8 - x^4 + 1 _6 = x^64 - x^48 + 2*x^32 - x^16 + 1 _8 = x^256 - x^192 + 2*x^128 - x^64 + 1 _10 = x^1024 - x^768 + 2*x^512 - x^256 + 1 _11 = x^20 - x^19 + 2*x^18 - x^17 + x^15 - 2*x^14 + x^13 + x^12 - 2*x^11 + 4*x^10 - 2*x^9 + x^8 + x^7 - 2*x^6 + x^5 - x^3 + 2*x^2 - x + 1 _12 = x^84 - x^83 + 2*x^82 - x^81 + x^79 - 2*x^78 + x^77 + x^76 - 2*x^75 + 4*x^74 - 2*x^73 + x^72 + x^71 - 2*x^70 + x^69 - x^68 + x^64 - x^63 + 2*x^62 - x^61 - x^60 + 2*x^59 - 4*x^58 + 2*x^57 - x^56 - x^55 + 2*x^54 - x^53 + 2*x^52 - x^51 + 2*x^50 - x^49 - x^48 + 2*x^47 - 4*x^46 + 2*x^45 + 2*x^44 - 4*x^43 + 8*x^42 - 4*x^41 + 2*x^40 + 2*x^39 - 4*x^38 + 2*x^37 - x^36 - x^35 + 2*x^34 - x^33 + 2*x^32 - x^31 + 2*x^30 - x^29 - x^28 + 2*x^27 - 4*x^26 + 2*x^25 - x^24 - x^23 + 2*x^22 - x^21 + x^20 - x^16 + x^15 - 2*x^14 + x^13 + x^12 - 2*x^11 + 4*x^10 - 2*x^9 + x^8 + x^7 - 2*x^6 + x^5 - x^3 + 2*x^2 - x + 1 _13 = x^340 - x^339 + 2*x^338 - x^337 + x^335 - 2*x^334 + x^333 + x^332 - 2*x^331 + 4*x^330 - 2*x^329 + x^328 + x^327 - 2*x^326 + x^325 - x^324 + x^320 - x^319 + 2*x^318 - x^317 - x^316 + 2*x^315 - 4*x^314 + 2*x^313 - x^312 - x^311 + 2*x^310 - x^309 + 2*x^308 - x^307 + 2*x^306 - x^305 - x^304 + 2*x^303 - 4*x^302 + 2*x^301 + 2*x^300 - 4*x^299 + 8*x^298 - 4*x^297 + 2*x^296 + 2*x^295 - 4*x^294 + 2*x^293 - x^292 - x^291 + 2*x^290 - x^289 + 2*x^288 - x^287 + 2*x^286 - x^285 - x^284 + 2*x^283 - 4*x^282 + 2*x^281 - x^280 - x^279 + 2*x^278 - x^277 + x^275 - 2*x^274 + x^273 - x^272 + x^260 - x^259 + 2*x^258 - x^257 + x^255 - 2*x^254 + x^253 + x^252 - 2*x^251 + 4*x^250 - 2*x^249 + x^248 + x^247 - 2*x^246 + x^245 - 2*x^244 + x^243 - 2*x^242 + x^241 + x^240 - 2*x^239 + 4*x^238 - 2*x^237 - 2*x^236 + 4*x^235 - 8*x^234 + 4*x^233 - 2*x^232 - 2*x^231 + 4*x^230 - 2*x^229 + x^228 + x^227 - 2*x^226 + x^225 - 2*x^224 + x^223 - 2*x^222 + x^221 + x^220 - 2*x^219 + 4*x^218 - 2*x^217 + x^216 + x^215 - 2*x^214 + x^213 + x^212 - 2*x^211 + 4*x^210 - 2*x^209 + x^208 + x^207 - 2*x^206 + x^205 + x^204 - 2*x^203 + 4*x^202 - 2*x^201 + x^200 + x^199 - 2*x^198 + x^197 - 2*x^196 + x^195 - 2*x^194 + x^193 + x^192 - 2*x^191 + 4*x^190 - 2*x^189 - 2*x^188 + 4*x^187 - 8*x^186 + 4*x^185 - 2*x^184 - 2*x^183 + 4*x^182 - 2*x^181 + 4*x^180 - 2*x^179 + 4*x^178 - 2*x^177 - 2*x^176 + 4*x^175 - 8*x^174 + 4*x^173 + 4*x^172 - 8*x^171 + 16*x^170 - 8*x^169 + 4*x^168 + 4*x^167 - 8*x^166 + 4*x^165 - 2*x^164 - 2*x^163 + 4*x^162 - 2*x^161 + 4*x^160 - 2*x^159 + 4*x^158 - 2*x^157 - 2*x^156 + 4*x^155 - 8*x^154 + 4*x^153 - 2*x^152 - 2*x^151 + 4*x^150 - 2*x^149 + x^148 + x^147 - 2*x^146 + x^145 - 2*x^144 + x^143 - 2*x^142 + x^141 + x^140 - 2*x^139 + 4*x^138 - 2*x^137 + x^136 + x^135 - 2*x^134 + x^133 + x^132 - 2*x^131 + 4*x^130 - 2*x^129 + x^128 + x^127 - 2*x^126 + x^125 + x^124 - 2*x^123 + 4*x^122 - 2*x^121 + x^120 + x^119 - 2*x^118 + x^117 - 2*x^116 + x^115 - 2*x^114 + x^113 + x^112 - 2*x^111 + 4*x^110 - 2*x^109 - 2*x^108 + 4*x^107 - 8*x^106 + 4*x^105 - 2*x^104 - 2*x^103 + 4*x^102 - 2*x^101 + x^100 + x^99 - 2*x^98 + x^97 - 2*x^96 + x^95 - 2*x^94 + x^93 + x^92 - 2*x^91 + 4*x^90 - 2*x^89 + x^88 + x^87 - 2*x^86 + x^85 - x^83 + 2*x^82 - x^81 + x^80 - x^68 + x^67 - 2*x^66 + x^65 - x^63 + 2*x^62 - x^61 - x^60 + 2*x^59 - 4*x^58 + 2*x^57 - x^56 - x^55 + 2*x^54 - x^53 + 2*x^52 - x^51 + 2*x^50 - x^49 - x^48 + 2*x^47 - 4*x^46 + 2*x^45 + 2*x^44 - 4*x^43 + 8*x^42 - 4*x^41 + 2*x^40 + 2*x^39 - 4*x^38 + 2*x^37 - x^36 - x^35 + 2*x^34 - x^33 + 2*x^32 - x^31 + 2*x^30 - x^29 - x^28 + 2*x^27 - 4*x^26 + 2*x^25 - x^24 - x^23 + 2*x^22 - x^21 + x^20 - x^16 + x^15 - 2*x^14 + x^13 + x^12 - 2*x^11 + 4*x^10 - 2*x^9 + x^8 + x^7 - 2*x^6 + x^5 - x^3 + 2*x^2 - x + 1 _15 = -x^341 + 2*x^340 - 3*x^339 + 3*x^338 - x^337 - x^336 + 3*x^335 - 3*x^334 + 3*x^332 - 6*x^331 + 6*x^330 - 3*x^329 + 3*x^327 - 3*x^326 + 2*x^325 - x^324 - x^321 + 2*x^320 - 3*x^319 + 3*x^318 - 3*x^316 + 6*x^315 - 6*x^314 + 3*x^313 - 3*x^311 + 3*x^310 - 3*x^309 + 3*x^308 - 3*x^307 + 3*x^306 - 3*x^304 + 6*x^303 - 6*x^302 + 6*x^300 - 12*x^299 + 12*x^298 - 6*x^297 + 6*x^295 - 6*x^294 + 3*x^293 - 3*x^291 + 3*x^290 - 3*x^289 + 3*x^288 - 3*x^287 + 3*x^286 - 3*x^284 + 6*x^283 - 6*x^282 + 3*x^281 - 3*x^279 + 3*x^278 - x^277 - x^276 + 3*x^275 - 3*x^274 + 2*x^273 - x^272 - x^261 + 2*x^260 - 3*x^259 + 3*x^258 - x^257 - x^256 + 3*x^255 - 3*x^254 + 3*x^252 - 6*x^251 + 6*x^250 - 3*x^249 + 3*x^247 - 3*x^246 + 3*x^245 - 3*x^244 + 3*x^243 - 3*x^242 + 3*x^240 - 6*x^239 + 6*x^238 - 6*x^236 + 12*x^235 - 12*x^234 + 6*x^233 - 6*x^231 + 6*x^230 - 3*x^229 + 3*x^227 - 3*x^226 + 3*x^225 - 3*x^224 + 3*x^223 - 3*x^222 + 3*x^220 - 6*x^219 + 6*x^218 - 3*x^217 + 3*x^215 - 3*x^214 + 3*x^212 - 6*x^211 + 6*x^210 - 3*x^209 + 3*x^207 - 3*x^206 + 3*x^204 - 6*x^203 + 6*x^202 - 3*x^201 + 3*x^199 - 3*x^198 + 3*x^197 - 3*x^196 + 3*x^195 - 3*x^194 + 3*x^192 - 6*x^191 + 6*x^190 - 6*x^188 + 12*x^187 - 12*x^186 + 6*x^185 - 6*x^183 + 6*x^182 - 6*x^181 + 6*x^180 - 6*x^179 + 6*x^178 - 6*x^176 + 12*x^175 - 12*x^174 + 12*x^172 - 24*x^171 + 24*x^170 - 12*x^169 + 12*x^167 - 12*x^166 + 6*x^165 - 6*x^163 + 6*x^162 - 6*x^161 + 6*x^160 - 6*x^159 + 6*x^158 - 6*x^156 + 12*x^155 - 12*x^154 + 6*x^153 - 6*x^151 + 6*x^150 - 3*x^149 + 3*x^147 - 3*x^146 + 3*x^145 - 3*x^144 + 3*x^143 - 3*x^142 + 3*x^140 - 6*x^139 + 6*x^138 - 3*x^137 + 3*x^135 - 3*x^134 + 3*x^132 - 6*x^131 + 6*x^130 - 3*x^129 + 3*x^127 - 3*x^126 + 3*x^124 - 6*x^123 + 6*x^122 - 3*x^121 + 3*x^119 - 3*x^118 + 3*x^117 - 3*x^116 + 3*x^115 - 3*x^114 + 3*x^112 - 6*x^111 + 6*x^110 - 6*x^108 + 12*x^107 - 12*x^106 + 6*x^105 - 6*x^103 + 6*x^102 - 3*x^101 + 3*x^99 - 3*x^98 + 3*x^97 - 3*x^96 + 3*x^95 - 3*x^94 + 3*x^92 - 6*x^91 + 6*x^90 - 3*x^89 + 3*x^87 - 3*x^86 + x^85 + x^84 - 3*x^83 + 3*x^82 - 2*x^81 + x^80 + x^69 - 2*x^68 + 3*x^67 - 3*x^66 + x^65 + x^64 - 3*x^63 + 3*x^62 - 3*x^60 + 6*x^59 - 6*x^58 + 3*x^57 - 3*x^55 + 3*x^54 - 3*x^53 + 3*x^52 - 3*x^51 + 3*x^50 - 3*x^48 + 6*x^47 - 6*x^46 + 6*x^44 - 12*x^43 + 12*x^42 - 6*x^41 + 6*x^39 - 6*x^38 + 3*x^37 - 3*x^35 + 3*x^34 - 3*x^33 + 3*x^32 - 3*x^31 + 3*x^30 - 3*x^28 + 6*x^27 - 6*x^26 + 3*x^25 - 3*x^23 + 3*x^22 - 2*x^21 + x^20 + x^17 - 2*x^16 + 3*x^15 - 3*x^14 + 3*x^12 - 6*x^11 + 6*x^10 - 3*x^9 + 3*x^7 - 3*x^6 + x^5 + x^4 - 3*x^3 + 3*x^2 - 2*x + 1 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '71.139.' ************** SAGE ***************** Host 71.139.206.76 (71.139.206.76) Time: Sun Mar 12 15:28:16 2006 Input: 5x5 Output: Errors: ------------------------------------------------------------ File "", line 1 ZZ(5)x5 ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '131.111' ************** SAGE ***************** Host 131.111.8.98 (131.111.8.98) Time: Sun Mar 12 13:58:23 2006 Input: E = EllipticCurve('389a') L = E.Lseries_dokchitser() print L(2) print L.taylor_series(1, 15) # about 1, 15 terms. Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- 0.36009286357888071 -0.000000000000000000000026912956656299995 + 0.000000000000000000000015251490196899998*z + 0.75931650028842668*z^2 + -0.43030233758336195*z^3 + -0.19350931382998102*z^4 + 0.45997155837364223*z^5 + -0.36717493214658964*z^6 + 0.17264792666881795*z^7 + -0.039760823451302073*z^8 + -0.011005350581245282*z^9 + 0.016876247620288366*z^10 + -0.010084803590493994*z^11 + 0.0041188847989835197*z^12 + -0.0012104733642010026*z^13 + 0.00021555387774367977*z^14 + O(z^15) Exiting SAGE (CPU time 0m0.36s, Wall time 0m3.20s). '83.99.2' ************** SAGE ***************** Host 83.99.28.24 (83.99.28.24) Time: Sun Mar 12 13:49:53 2006 Input: print maxima('tan(x)').integrate('x') Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- log(sec(x)) Exiting SAGE (CPU time 0m0.07s, Wall time 0m1.04s). '83.99.2' ************** SAGE ***************** Host 83.99.28.24 (83.99.28.24) Time: Sun Mar 12 13:49:23 2006 Input: A:matrix([1,2,3],[4,5,6],[7,8,9]); Output: Errors: ------------------------------------------------------------ File "", line 1 A:matrix([ZZ(1),ZZ(2),ZZ(3)],[ZZ(4),ZZ(5),ZZ(6)],[ZZ(7),ZZ(8),ZZ(9)]); ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '207.7.1' ************** SAGE ***************** Host 207.7.184.174 (207.7.184.174) Time: Sun Mar 12 12:31:10 2006 Input: 1+2+3+4+5+6 Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 21 Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.00s). '66.18.2' ************** SAGE ***************** Host 66.18.229.141 (66.18.229.141) Time: Sun Mar 12 00:04:39 2006 Input: "Replace this by some code, then click [SAGE] or [PARI]!" Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- _1 = 'Replace this by some code, then click [SAGE] or [PARI]!' Exiting SAGE (CPU time 0m0.00s, Wall time 0m0.00s). '18.243.' ************** SAGE ***************** Host 18.243.7.113 (18.243.7.113) Time: Sat Mar 11 23:34:12 2006 Input: K = NumberField(x^3 - x + 2, 'a'); x = [0,0,0,0,0,0]; for n in range(10000): if n in Primes(): x[5] = x[5]+1; fac = K.factor_integer(n); dis = len(fac); tot = 0; for m in range(dis): tot = tot + fac[m][1]; if tot == 3: x[3-dis] = x[3-dis] + 1; else: x[5-dis] = x[5-dis] + 1; x [1.*x[0]/x[5],1.*x[1]/x[5],1.*x[2]/x[5],1.*x[3]/x[5],1.*x[4]/x[5]] Output: -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: _4 = [198, 2, 0, 620, 409, 1229] _5 = [0.19, 0.0016273393002441008, 0.0, 0.5044751830756713, 0.33279088689991865] Exiting SAGE (CPU time 0m0.63s, Wall time 0m0.64s). '18.243.' ************** SAGE ***************** Host 18.243.7.113 (18.243.7.113) Time: Sat Mar 11 23:33:03 2006 Input: K = NumberField(x^3 - x + 2, 'a'); x = [0,0,0,0,0,0]; for n in range(10000): if n in Primes(): x[5] = x[5]+1; fac = K.factor_integer(n); dis = len(fac); tot = 0; for m in range(dis): tot = tot + fac[m][1]; if tot == 3: x[3-dis] = x[3-dis] + 1; else: x[5-dis] = x[5-dis] + 1; x[0] Output: Errors: ------------------------------------------------------------ File "", line 13 x[0] ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '18.243.' ************** SAGE ***************** Host 18.243.7.113 (18.243.7.113) Time: Sat Mar 11 23:32:56 2006 Input: K = NumberField(x^3 - x + 2, 'a'); x = [0,0,0,0,0,0]; for n in range(10000): if n in Primes(): x[5] = x[5]+1; fac = K.factor_integer(n); dis = len(fac); tot = 0; for m in range(dis): tot = tot + fac[m][1]; if tot == 3: x[3-dis] = x[3-dis] + 1; else: x[5-dis] = x[5-dis] + 1; print(x) Output: Errors: ------------------------------------------------------------ File "", line 13 print(x) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '18.243.' ************** SAGE ***************** Host 18.243.7.113 (18.243.7.113) Time: Sat Mar 11 23:32:52 2006 Input: K = NumberField(x^3 - x + 2, 'a'); x = [0,0,0,0,0,0]; for n in range(10000): if n in Primes(): x[5] = x[5]+1; fac = K.factor_integer(n); dis = len(fac); tot = 0; for m in range(dis): tot = tot + fac[m][1]; if tot == 3: x[3-dis] = x[3-dis] + 1; else: x[5-dis] = x[5-dis] + 1; print(x) Output: Errors: ------------------------------------------------------------ File "", line 13 print(x) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '18.243.' ************** SAGE ***************** Host 18.243.7.113 (18.243.7.113) Time: Sat Mar 11 23:32:43 2006 Input: K = NumberField(x^3 - x + 2, 'a'); x = [0,0,0,0,0,0]; for n in range(10000): if n in Primes(): x[5] = x[5]+1; fac = K.factor_integer(n); dis = len(fac); tot = 0; for m in range(dis): tot = tot + fac[m][1]; if tot == 3: x[3-dis] = x[3-dis] + 1; else: x[5-dis] = x[5-dis] + 1; print(x) Output: Errors: ------------------------------------------------------------ File "", line 13 print(x) ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '18.243.' ************** SAGE ***************** Host 18.243.7.113 (18.243.7.113) Time: Sat Mar 11 23:32:34 2006 Input: K = NumberField(x^3 - x + 2, 'a'); x = [0,0,0,0,0,0]; for n in range(10000): if n in Primes(): x[5] = x[5]+1; fac = K.factor_integer(n); dis = len(fac); tot = 0; for m in range(dis): tot = tot + fac[m][1]; if tot == 3: x[3-dis] = x[3-dis] + 1; else: x[5-dis] = x[5-dis] + 1; x Output: Errors: ------------------------------------------------------------ File "", line 13 x ^ SyntaxError: invalid syntax -------------------------------------------------------- | SAGE Version 1.1.0, Build Date: 2006-03-09-1810 | -------------------------------------------------------- ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: ...: Exiting SAGE (CPU time 0m0.01s, Wall time 0m0.01s). '18.243.' *